通讯录课程设计.docx
- 文档编号:26850639
- 上传时间:2023-06-23
- 格式:DOCX
- 页数:19
- 大小:77.54KB
通讯录课程设计.docx
《通讯录课程设计.docx》由会员分享,可在线阅读,更多相关《通讯录课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
通讯录课程设计
通讯录管理系统
目录:
一、课程设计目的2
二、课程设计题目描述及要求2
三、总体设计3
四、详细设计3
五、源程序清单4
六、执行结果12
七、总结和体会15
摘要:
通过一周的编程,在老师的辅导下,我完成了课程设计。
通过课程设计的完成对C语言邮了更深的了解。
我做的课程设计题目是通讯录管理系统,主要用到了结构体、结构体数组、指针、文件等等。
对函数的声明和调用有了更深的理解。
但我做的这个关于通讯录管理系统的课程设计还存在不足,还希望老师的指点。
1、课程设计目的
通过这次课程设计更好的掌握以下知识:
●掌握函数的定义与说明。
●掌握各种基本的数据类型和结构体的定义
●掌握数组的定义与使用,注意下标的使用
●掌握基本的程序结构:
顺序、选择、循环
2、课程设计题目描述及要求
建立一个通讯录管理系统,具有数据插入、修改、删除、显示、查询和统计功能的电话薄管理程序。
其中记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。
【程序设计功能及要求】
(1)人数不定,数据使用文件存放。
(2)记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。
(3)可对记录中的姓名和电话号码等进行修改。
(4)可增加或删除记录。
(5)可显示所有保存的记录。
(6)加入统计功能,可以统计男女同学或总人数。
(7)加入查询功能,通过姓名、学号或电话号码查询到同学的条目。
(8)在开始画面加入简单的菜单便于选择功能。
(9)文件格式。
3、总体设计
系统功能模板图
显示:
可以以表格形式输出所有通讯录里的记录。
查找:
可以选择用姓名、学号、手机号码三种选择方式。
增加:
可以添加通讯录记录,依次是学号、姓名、性别、
工作单位、电话号码和E-mail,并会提示是否继续
添加。
删除:
输入要删除的姓名,自动删除他(她)的记录内容。
修改:
输入要修改的姓名,再一次按学号、姓名、性别、
工作单位、电话号码和E-mail完成修改。
保存:
将通讯录信息保存到指定的文件中。
读取:
从保存到的指定文件中读取通讯录信息。
统计:
可以统计男生、女生或男女生总人数。
4、详细设计
程序流程图:
五、源程序清单
#include
#include
#include
#defineSIZE100
inti,m=0,mnan=0,mnv=0;//m为当前通讯录内人数
charmenu();//菜单
voidlist();//显示
voidsearch();//查找
voidapp();//增加
voiddele();//删除
voidcorrect();//修改
voidsave();//保存
voidload();//读入
voidjieguo();//结果
structrecord{
intrr;//编号
intnum;//学号
charname[20];//姓名
charsex[10];//性别
chardw[20];//工作单位
chartel[12];//电话
charemail[20];//邮箱
}rec[SIZE];
voidmain(){
charchoice;
chara;
while
(1)
{
choice=menu();
switch(choice)
{
case1:
printf("显示通讯录中内容\n");
list();
break;
case2:
printf("查找联系人\n");
search();
break;
case3:
printf("增加联系人记录\n");
app();
break;
case4:
printf("删除联系人记录\n");
dele();
break;
case5:
printf("修改联系人记录\n");
correct();
break;
case6:
printf("保存通讯录到文件中\n");
save();
break;
case7:
printf("从文件中读取记录\n");
load();
break;
case8:
printf("统计信息结果\n");
jieguo();
break;
case0:
printf("退出通讯录管理系统\n");
printf("是否保存y/n?
\n");
scanf("%s",&a);
if(a=='y')
{
save();
return;
}
else
return;
default:
printf("输入错误!
!
");
}
}
}
charmenu()
{
intc;
printf("------------欢迎使用------------\n\n");
printf("*************简易通讯录*************\n");
printf("1.显示通讯录\n");
printf("2.查找联系人\n");
printf("3.增加联系人\n");
printf("4.删除联系人\n");
printf("5.修改通讯录\n");
printf("6.保存到文件\n");
printf("7.从文件读取\n");
printf("8.统计信息结果\n");
printf("0.退出此系统\n");
printf("************************************\n");
printf("\n请选择………\n\n");
scanf("%d",&c);
returnc;
}
voidlist()
{
printf("学号姓名性别工作单位电话号码E-mail\n");
for(i=0;i { if(rec[i].name[0]) { printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email); } } printf("----------------END--------------\n"); } voidapp() { chara; puts("当前通讯录中的内容\n"); list(); do { rec[m].rr=m+1; printf("请输入新的联系人信息: \n"); printf("姓名: "); scanf("%s",rec[m].name); printf("手机电话: "); scanf("%s",rec[m].tel); printf("工作单位: "); scanf("%s",rec[m].dw); printf("EMAIL: "); scanf("%s",rec[m].email); printf("学号: "); scanf("%d",&rec[m].num); printf("性别: "); scanf("%s",rec[m].sex); puts("这是新添加的联系人信息: \n"); printf("学号\t姓名\t性别\t工作单位\t电话号码\tE-mail\n"); printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[m].num,rec[m].name,rec[m].sex,rec[m].dw,rec[m].tel,rec[m].email); m++; if(rec[m].sex=="nan") mnan++; else mnv++; puts("\t\t\t新纪录输入完成! \n"); puts("继续添加吗? (y/n)"); scanf("%s",&a); }while(a=='y'); } voidsearch() { intch; intk=1; printf("1、按姓名查找: \n"); printf("2、按学号查找: \n"); printf("3、按手机号码查找: \n"); printf("请选择: "); scanf("%d",&ch); switch(ch) { charxm[20]; intd; case1: printf("输入要查找的姓名: "); scanf("%s",xm); for(i=0;i if(strcmp(xm,rec[i].name)==0){ k=0; printf("这是您需要查找的联系人的信息。 \n"); printf("学号姓名性别工作单位电话号码E-mail\n"); printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email); } } if(k) printf("通讯录中没有你要查找的人。 "); break; case2: printf("输入查找的学号\n"); scanf("%d",&d); for(i=0;i if(d==rec[i].num){ k=0; printf("这是您需要查找的联系人的信息。 \n"); printf("学号姓名性别工作单位电话号码E-mail\n"); printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email); } } if(k) printf("通讯录中没有你要查找的人。 "); break; case3: printf("输入要查找的电话号码: "); scanf("%s",xm); for(i=0;i if(strcmp(xm,rec[i].tel)==0){ k=0; printf("这是您需要查找的联系人的信息。 \n"); printf("学号姓名性别工作单位电话号码E-mail\n"); printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email); } } if(k) printf("通讯录中没有你要查找的人。 "); break; default: printf("输入错误! ! "); } } voiddele() { charxm[10]; inta; list(); printf("输入要删除的姓名: "); scanf("%s",xm); for(i=0;i if(strcmp(xm,rec[i].name)==0) { a=rec[i].rr; break; } if(i==m) { printf("没有此人! "); return; } if(rec[i].sex=="nan") mnan--; else mnv--; if(a! =m+1) { for(i=a;i rec[i-1]=rec[i]; rec[i-1].rr=i; } m--; list(); printf("已删除! "); } } voidcorrect() { charxm[10]; boolk=1; list(); printf("输入要修改联系人的姓名: "); scanf("%s",xm); for(i=0;i { if(strcmp(xm,rec[i].name)==0) { k=0; printf("\n这是您要修改联系人的初始信息\n\n"); printf("学号姓名性别工作单位电话号码E-mail\n"); printf("%d\t%s\t%s\t%s\t%s\t%s\n",rec[i].num,rec[i].name,rec[i].sex,rec[i].dw,rec[i].tel,rec[i].email); printf("请输入修改后的电话号码: "); scanf("%s",rec[i].tel); printf("请输入修改后的工作单位: "); scanf("%s",rec[i].dw); printf("请输入修改后的E-mail: "); scanf("%s",rec[i].email); printf("请输入修改后的学号: "); scanf("%d",&rec[i].num); list(); printf("修改完成! "); break; } } if(k) printf("输入有误,未找到! "); } voidsave() { FILE*fp; if((fp=fopen("E: //课程设计//通讯录.txt","wb"))==NULL) { printf("Can'topenfile"); exit(0); } list(); for(i=0;i if(fwrite(&rec[i],sizeof(structrecord),1,fp)! =1) printf("Filewreteerror! \n"); fclose(fp); printf("\t保存成功! \n"); } voidload() { FILE*fp; m=0;mnan=0;mnv=0; if((fp=fopen("E: //课程设计//通讯录.txt","rb"))==NULL) { printf("Can'topenfile\n"); exit(0); } for(i=0;i { if(fread(&rec[i],sizeof(structrecord),1,fp)! =1) { if(feof(fp)) break; printf("Filereaderror! \n"); } if(strcmp("nan",rec[i].sex)==0) mnan++; else mnv++; rec[i].rr=i+1; m++; } list(); printf("\t读取成功\n"); fclose(fp); } voidjieguo() { intch; printf("1、男生人数: \n"); printf("2、女生人数: \n"); printf("3、总人数: \n"); printf("请选择: "); scanf("%d",&ch); switch(ch) { case1: printf("男生总人数是: %d",mnan); break; case2: printf("女生总人数是: %d",mnv); break; case3: printf("总人数是: %d",m); break; default: printf("输入错误! ! "); } } 6、执行结果 (1)显示主菜单的界面 (2)增加联系人界面 (3)显示通讯录界面 (4)查找联系人界面 (5)删除联系人界面 (6)修改通讯录界面 (7)保存到文件界面 (8)从文件中读取界面 (9)统计男女人数界面 7、总结与体会 这次课程设计是对我进入大学以来学习C语言结果的一次大检验。 自己动手、自己发现和解决问题,发现了自己的许多不足,在设计程序时考虑的不够全面。 在答辩的过程中,老师给我提了许多好的建议,比如在执行是否给予添加联系人时,y/n是否有大小写之分,联系电话的类型能否输入不是数字的信息等等。 所以这次编程的收货不小,不仅让我对C语言的操作有了进一步的掌握,还让我了解到程序设计的书写风格及其注释的格式。 通过这为期一周的课程设计,我们对C语言这门课程有了更深一步的了解。 它是计算机程序设计的重要理论基础,在我们数学和信息专业的学习中占据着十分重要的地位。 同时也让我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。 因为我们学习知识就是为了实践。 而只有多实践,多编写程序,才能更好地理解与掌握书本上的东西。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 通讯录 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)