| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 514 人关注过本帖
标题:在 c++中如何查询的问题!
只看楼主 加入收藏
jiarujian
Rank: 1
来 自:吉林延吉
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-9-22
结帖率:100%
收藏
 问题点数:0 回复次数:1 
在 c++中如何查询的问题!
某个实验室有老师和学生,现在需要一个通讯录,包括三项:姓名、属性(老师/学生)、联系方式(电话或宿舍号),老师有电话,学生只有宿舍号。

编写函数实现:通讯录的一条信息的输入,所有信息的输出显示、根据姓名查询某个人的信息并显示。

编写主程序实现:定义通讯录数组(长度小于100),输入5个人的信息、查询一个人的信息、输出5个人的信息。

分析提示:这是一个结构体、共用体、枚举类型的综合应用题。关于每个人的属性,只有两种情况(老师或学生),适合用枚举类型;关于电话和宿舍号,对于每个人,只有二者之一,适合用共用体类型。而每个人的信息,包含三项,适合用结构体类型。
下面是我根据问题只是弄出来输入和输出了!如何查询啊!?
希望高手们帮我看看!对了!麻烦再帮我加上注释吧!我怕我看不懂!
#include<iostream.h>
struct message{
    char name[20];
    char attribute[10];
    char num[9];
};
union num{
    char phonenum[9];
    char bedroomnum[8];
};
enum attribute{
    teacher,student
};
message input(message m1)
{
    cout<<"输入姓名,身份,联系方式"<<endl;
cin>>m1.name>>m1.attribute>>m1.num;
return m1;
}
void output(message m1)
{
    cout<<m1.name<<'\t'<<m1.attribute<<'\t'<<m1.num<<endl;
}
void main()
{
    message note[5];
    for(int i=0;i<5;i++)
        note[i]=input(note[i]);
    cout<<"姓名"<<'\t'<<"身份"<<'\t'<<"联系方式"<<endl;
    for(i=0;i<5;i++)
        output(note[i]);
}
搜索更多相关主题的帖子: 查询 
2008-11-12 21:51
jiarujian
Rank: 1
来 自:吉林延吉
等 级:新手上路
帖 子:39
专家分:0
注 册:2008-9-22
收藏
得分:0 
没人回,不小心自己研究出来了
#include<iostream.h>
union num{                             //共用体定义手机号码和寝室号码
    char phonenum[9];
    char bedroomnum[8];
};
enum attribute{                          //枚举类型定义老师和学生
    teacher,student
};
struct message{                          //结构体定义姓名,属性,联系方式
    char name[20];
    attribute ts;
    num phone;
};
message input(message m1)                 //定义一个message类型的input用来输入的函数
{
    cout<<"输入姓名,身份,联系方式"<<endl;
cin>>m1.name;
int i;
cin>>i;                                 //由于枚举类型不能直接输入,所以用条件语句根据条件分别输入
if(i==0)
{
    m1.ts=teacher;                          //0代表老师
    cin>>m1.phone.phonenum;
}
else
{
    m1.ts=student;                           //其他数据代表学生
    cin>>m1.phone.bedroomnum;
}
return m1;                                      //返回m1的值
}
void output(message m1)                        //定义一个无返回值类型的output函数用于输出
{
    if(m1.ts==0)                              //同样根据利用条件语句根据不同条件输出不同内容
    cout<<m1.name<<'\t'<<"老师"<<'\t'<<m1.phone.phonenum<<endl;
    else
        cout<<m1.name<<'\t'<<"学生"<<'\t'<<m1.phone.bedroomnum<<endl;
}
void main()                                 
{
    message note[5];                  //定义一个message结构体类型的note数组
    for(int i=0;i<5;i++)                 //循环输入内容,引用自定义函数input
        note[i]=input(note[i]);            
    cout<<"姓名"<<'\t'<<"身份(老师输入0,学生输入1)"<<'\t'<<"联系方式"<<endl;
    for(i=0;i<5;i++)
        output(note[i]);
    cout<<"输入你所要查询内容的信息(姓名)"<<endl;
    char find[20];                 //定义字符串数组
        cin>>find;                   //输入
    for(i=0;i<5;i++)                //利用循环来查找
    {
            if(find[0]==note[i].name[0])   //如果满足首个字符相同即可输出内容(有点偷懒的嫌疑!!)
                output(note[i]);
    }
}
2008-11-15 23:07
快速回复:在 c++中如何查询的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016263 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved