当前位置:文档之家› 数据结构课程设计报告通讯录.doc

数据结构课程设计报告通讯录.doc

数据结构课程设计报告
专业:计算机科学与技术
年级:
课题名称:通讯录
小组成员1:
小组成员2:
小组成员3:
信息技术学院专业教研室一
一、问题描述
设计目的:用〈〈数据结构〉〉中的双向链表作数据结构,结合C语言基本知识。编写一个通讯录管理系统。以把所学数据结构知识应用到实际软件开发中去。
设计内容:本系统应完成一下几方面的功能:
{
char choic;
system("cls");
printf("\n\t\t*******************查询菜单*******************");
printf("\n\t\t**************** 1-显示所有********************");
1)输入信息——enter();
2)显示信息———display( );
3)查找以姓名作为关键字———search( );
4)删除信息———delete( );
5Байду номын сангаас存盘———save ( );
6)装入———load( ) ;
设计要求:
1)每条信息至包含:姓名(NAME)街道(STREET)城市(CITY)邮编(EIP)国家(STATE)几项
getch();//从键盘接收一个字符
}
return;//返回主函数的主菜单
}
exit(0);
}
fseek(fp,0,2);/*文件位置指针移动到文件末尾*/
if (ftell(fp)>0)/*文件不为空*/
{
rewind(fp);/*文件位置指针移动到文件开始位置*/
for (num=0;!feof(fp) && fread(&student[num],sizeof(struct record),1,fp);num++);
void display();显示所有
void load();读取文件
void save();写入文件
void delete();按姓名删除
3.结构体:
struct record
{
char street[20];
char name[20];
char city[20];
char state[20];
char eip[20];
void display();显示
void load();读取文件
void save();写入文件
void delete();删除
四、详细设计
通讯录管理系统功能说明图:
通讯录管理系统
数据结构及各模块分析:
1.设计类、对象及基本数据类型:
创建一个record类,它有五个数据成员:
char name[20];姓名
switch (choic)
{
case '1':enter();break;
case '2':searchmenu();break;
case '3':delet();break;
case '4':save();break;
case '5':exit(0);
default:mainmenu();
}
}
void searchmenu()//查询菜单
2)作为一个完整的系统,应具有友好的界面和较强的容错能力
3)上机能正常运行,并写出课程设计报告
二、需求分析
A,添加:
系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名(name),街道(street),城市(city),邮编(eip),国家(state).
B,删除:
首先由用户输入要删除的人员的姓名,然后调用删除函数,删除该人员的所有相关资料.
C,显示所有人员信息:
该功能将显示已经保存的所有人员的姓名,街道,城市,邮编及国家.
D,查询:
可由用户输入要查找的人员姓名,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.
E,退出系统
关闭通讯录管理系统.
三、概要设计
六个函数的实现:
void enter();新添纪录
void search();按姓名查询
.......
getch();
return;
}
void mainmenu()//主菜单
{
char choic;
system("cls");
printf("\n\t\t***************欢迎进入通讯录系统***************");
printf("\n\t\t******************1-新添纪录******************");
printf("\n\t\t******************5-不保存退出***************");
printf("\n\t\t************************************************");
printf("\n\t\t请选择:");
choic=getch();
}student[500];
struct slnode
{
record date;
struct slnode *next;
struct slnode *prior;
};
五、调试分析
void load()//从文件导入
{
if((fp=fopen("student","rb"))==NULL)//打开文件进行读的操作
printf("\n\t\t******************2-查找联系人****************");
printf("\n\t\t******************3-删除联系人***************");
printf("\n\t\t******************4-保存退出*****************");
{
printf("\n\t\t通讯录文件不存在");
if ((fp=fopen("student","wb"))==NULL)//打开文件进行读的操作
{
printf("\n\t\t建立失败");
exit(0);
}
else
{
printf("\n\t\t通讯录文件已建立");
printf("\n\t\t按任意键进入主菜单");
char street[20];街道
char city[20];城市
char eip[20];邮编
char state[20];国家
2.包含函数及功能如下:
void mainmenu();主菜单
void searchmenu();查找菜单
void enter();新添纪录
void search();按姓名查询
相关主题