读书人

啊关于c++ ,哪位高手能帮小弟我检查调

发布时间: 2012-02-14 19:19:19 作者: rapoo

求助啊~~关于c++ ,谁能帮我检查调试一下我编的程序...
这是题目:设计一个电子通讯录管理系统.
1.题目功能描述:
电子通讯录是一个小信息系统,记录通讯信息,包括姓名,性别,出生日期,通讯地址,电话号码。具有浏览,增加,删除,查询,插入等功能。
2.问题详细描述
电子通讯录功能如下:
1.Read
2.Append
3.Delete
4.Search
5.Insert
说明:上图是电子通讯录的主菜单,利用它,将能够轻松地录入一个朋友的性别、出生日期、通讯地址、电话号码,而且它还提供了浏览、删除、检索和插入功能。 功能包括:1)显示功能:电子通讯录的浏览,完成全部通讯录信息的显示;2)添加:在原有数据资料的基础上按顺序增加记录,可以一次完成若干条信息的输入;3)删除:按照记录的ID或姓名删除通讯信息,执行删除后,查询是否被删除,显示通讯
录的内容; 4)查询:给出姓名,列出该记录的信息。5)插入:给出插入位置,执行插入后,查询是否被插入,显示通讯录的内容。5)删除功能:完成按姓名删除通讯信息. 6)应提供一个界面来调用各个功能。

2.基本请求:
(1)请求用C++语言编程,在Visual C++环境下调试完成;
(2)请求划分功能模块,各个功能分别使用函数来完成;
(3)源代码程序要有必要的注释。


3.问题的解决方案建议:

根据问题的描述,可以按照程序要求的功能采用结构化的设计思想。
(1)根据的分析,主要问题在于:用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据类型,第一步就是在结构中定义所需要的各项信息。 一般的通讯录都包括姓名,性别,出生年月,通讯地址和联系电话这几项,而在这几项中,出生年月又包括年份,月份和日期三项,通讯地址包括邮编和家庭地址二项,我们把这些联系较为紧密的内容又用单独的结构表示,这样就产生
了电子通讯录的基本结构。
(2)对于电子通讯录这样一张线性来说,内容的录入和显示是必不可少的操作。可构造函数Data_Input()
完成了信息的录入工作:可以构造Data_Show()完成信息的显示工作。
(3)可以用线性表顺序表设计电子通讯录的结构,为了表示较为复杂的数据内容,一般用结构这种数据
类型
(4)查询时请分别使用折半查找法和顺序查找法进行查找,注意折半查找法是对有序数组的操作。


自编的:
#include <iostream.h>
void data_input(struct man )
void read(struct man *p,int n)
void append (struct man *p,int n)
void search (char name[20])
struct date
{
int month;
int day;
int year;
}
struct add
{
int youbian;
char home;
}
struct student
{
char name[20];
char sex;
struct date brith;
struct add home;
int number;
}
data_input(struct man *p,int n)
{
struct man *p=n;
for(;p <n;p++)
{
cout < < "name ;sex ;brith ;add ;num " < <endl;
cin> > p-> name> > p-> sex;
cin> > p-> brith.month> > p-> brith.day> > p-> brith.year;
cin> > p-> add> > p-> num;
}
}
data_show(struct man *p,int n)
{
struct man a[3];
cout < < "请输入三个人的通讯信息: " < <endl;
data_input(struct man *p,int n);
cout < < "浏览通讯信息请选择1\n " < <endl;
cout < < "添加通讯信息请选择2\n " < <endl;
cout < < "删除某条通讯信息请选择3\n " < <endl;
cout < < "按姓名查询通讯信息请选择4\n " < <endl;
cout < < "在指定位置插入通讯信息请选择5\n " < <endl;
int i;
switch (i)
{
case '1 ':void read(struct man *p,int n);break;
case '2 ':void append (struct man *p,int n);break;
case '3 ':
case '4 ':
case '5 ':void search (char name[20]);break;
default :cout < < "error\n ";
}
}
void read(struct man *p,int n)
{
struct man *p;
cout < < "name ;sex ;brith ;add ;num " < <endl;
for(int p=1;p <=n;p++)
{
cout < <p-> name < <p-> sex;
cout < <p-> brith.month < <p-> brith.day < <p-> brith.year;
cout < <p-> add < <p-> num < <endl;


}
}
void append (struct man *p,int n)
{
struct man *q=p+n;
cout < < "请输入想添加的人数i:\n ";
cin> > i;
for(;p <q;p++)
{
cout < < "name ;sex ;brith ;add ;num " < <endl;
cin> > p-> name> > p-> sex;
cin> > p-> brith.month> > p-> brith.day> > p-> brith.year;
cin> > p-> add> > p-> num;
}
}
void search (char name[20])
{
cout < < "请输入想查询的人的姓名:\n ";
cin> > name[20];
cout < <name.name < < "\t " < <name.sex < < "\t ";
cout < <name.add.youbian < < "\t " < <name.add.home < < "\t ";
cout < <name.brith.month < < "\t " < <name.brith.day < < "\t ";
cout < <name.brith.year < <endl;
}

哪里错了,或者需要修改补充的,请高手帮帮忙...

[解决办法]
你的错误很多啊.就开头:

void data_input(struct man )
void read(struct man *p,int n)
void append (struct man *p,int n)

这函数声明都不对啊,不知道你是把那个结构体定义成man了,在你要定义成man的结构体那用typedef定义一下,另外都要加上分号结束
[解决办法]
void data_input(struct man );
这不是个好的使用方法
应该是
typedef struct man
{
....
,,..
} t_man;

用void data_input(t_man ***);

读书人网 >C++

热点推荐