1、通讯录课程设计信息工程学院课程设计报告项目名称:通讯录管理系统的分析与设计项目组长:刘项目成员:叶 杨班级名称:11信管(3)专业名称:C程序设计完成时间:4月5号信息工程学院制一、 案例描述(小四号字体,段前断后0.5行)1.、总体描述在通讯录中有添加、删除、修改、查询和显示等功能,用户可以根据计算机的提示完成各项操作,实现电脑协助人工管理信息的功能。(正文5号宋体,单倍行距)2、模块描述1)菜单设计:由封面和添加、删除、修改、查询、显示和退出五大功能构成。封面通过ptintf(),摆出各式各样的图形,又用上了system()更改了页面的背景颜色、字体颜色、通讯录的标题,已达到美化封面的作用
2、,而五大功能则是使通讯录的功能达到完善。 2)初始化模块: 通过初始化函数,可以判断是否可打开读取通讯录所保存的文件,若无,则提醒用户添加文件;若有,则打开文件读取资料,并在其后的功能运行中保存相关资料,起到一定的储存功能。 3)add模块:用于添加联系人信息。创建联系人,并依次输入联系人学号、姓名、生日、电话、性别、QQ、地址等详细信息,完善联系人资料,并将其保存在文件记录中。添加完一人信息后,界面提示用户“是否继续添加?(Y or N)”。若选择继续添加,则重复上述步骤,添加新联系人信息,并将其详细信息一并保存到文件记录中,文件记录显示加1。 4)search模块用于查询已添加联系人的信息
3、。以姓名、学号、电话等其中任意一项为关键词进行搜索并显示该联系人的详细信息。若输入的关键词不存在,则提示用户“选择错误”。若输入关键词正确,则显示该联系人的所有相关信息。 5)delete模块用于删除用户不需要或输入错误的联系人的详细信息。首先,以姓名、学号、电话等其中任意一项为关键词进行搜索并显示该联系人的详细信息所在地。然后,删除该联系人所有信息,并将下一联系人的信息提前到当前位置并保存。6)show模块用于显示所有成员名单以及相关信息。该模块建立后,用户通过点击该模块的名称,则可显示之前输入的所有联系人的详细信息,使所有信息一目了然,有利于用户核对之前所输入的信息,方便用户使用。7)sa
4、ve模块用于保存之前用户输入的所有联系人的有用信息。该模块建立后,用户之前所输入的所有联系人的详细信息皆可保存到指定文件中,方便用户在下一次使用时仍能轻松、便捷地找到其所需的有用信息。8)cover模块作为程序的封面,对主界面的颜色、尺寸、图案进行设置,起到美化作用。同时,把程序里的每一项主要功能的名称显示到主界面上,使界面更加亲近、友好,方便用户进入并进行使用,在不知不觉中提升了程序的档次。二、 界面设计界面::添加:添加成员信息。删除:查询要删除的成员信息,进行删除。修改:查询要修改的成员信息,进行修改。查询:查询自己想要查询的成员信息。显示:显示所有成员名单以及相关信息本通讯录界面简单明
5、了,易于操作,输入相关数字即可操作。三、 模块化设计方案1、系统主要函数及功能(五号黑体)1)init函数:通过初始化函数,打开文件读取资料,并在其后的功能运行中保存相关资料,起到一定的储存功能。2)添加功能:添加联系人,用户根据系统提示输入相关联系人的学号、姓名、性别等基本信息,入完成后系统自动保存联系人信息,返回系统用户界面。3)删除功能:用户根据系统提示输入需要删除的联系人的姓名,学号或电话,系统根据用户输入信息进行删除,在删除之后,返回系统用户界面。4)修改功能:用户根据系统提示输入需要修改的联系人的姓名,学号或电话,系统根据用户输入信息进行删除、修改,在修改成功之后,返回系统用户界面
6、。5)查询功能:用户根据系统提示输入需要查询的联系人的姓名,学号或电话,系统根据用户输入信息进行查询,在查询成功之后,返回系统用户界面。6)显示功能:系统将显示通讯录中所有的联系人信息。7)退出功能:完成所有操作后,用户可以退出通讯录。8)main函数:主函数提供用户操作界面(主菜单),供用户选择相应的功能模块。2、主函数调用各功能函数流程图四、 数据结构描述struct student /*结构体,存放通讯录成员信息 char num15; char name10; char birth8; char phone15; char sex15; char QQ15; char address5
7、0; char mail20;stu80;int length=0; /全局变量,用于计数已存入数量FILE*fp; /文件指针,用于打开或保存通讯录文件五、 算法设计1、添加功能2、删除功能3、修改功能4、查询功能5、显示功能六、 程序运行结果 添加:删除: 查询: 显示:七、 总结1、工作时间(5号黑色)封面设计 10分钟总体框架(添加、删除、查询、显示) -一周连续添加拓展功能 -30分钟显示功能分类设计 30分钟2、分工情况封面设计: 总体框架:流程图: 连续拓展功能: 显示功能设计: 3、心得体会C语言是国内外广泛使用的计算机语言,它功能丰富,表达能力强,使用灵活方便,应用面广,目标
8、程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,既适用于编写系统软件,又能方便地用来编写应用软件,因此,对于我们信管专业的学生来说,能够灵活运用C语言进行程序设计非常重要。 在这次的实验中,我们三人共同协作,完成了“通讯录”这个程序的大体设计。在还没有完全掌握C语言的情况下,完成这项任务,对我们来说是不小的挑战。因此在完成任务的过程中,我们遇到了很多不可避免的细节方面的问题。但这丝毫没有影响我们对这项设计的热情。我们三人常常一起在图书馆研究、讨论,查阅相关书籍,尽自己最大的努力解决难题。遇到商讨后仍无法解决的问题,我们就虚心请教老师,在老师的点拨后继续努力钻研。通过这次
9、程序设计,我们发现自己对这门课程有了进一步的了解,但同时也发现自己在这门课上仍有待加强。因为有些看似已经掌握的知识点,在实际运用上仍会出现欠缺。 本次课题设计让我们了解到在学习上,我们不仅要在课上认真听讲,更要重视课后的复习和练习。平时的练习不要只局限于老师布置的作业,要以积极主动的态度去学习,这样我们才会有更多的收获。附页(源代码附加注释)#include#include#include #includestruct student /*结构体,存放通讯录成员信息*/ char num15;char name10;char birth8;char phone15;char sex15; ch
10、ar QQ15;char address50; stu80;int length=0; /全局变量,用于计数已存入数量FILE*fp; /文件指针,用于打开或保存通讯录文件void init() int i=0; fp=fopen(student11.txt,rb); /储存文件名 if(fp!=NULL) while (fread(&stui,sizeof(struct student),1,fp)=1) i+; length=i; printf(-n); printf(通讯录中已有%d条记录n,length); printf(-n); fclose (fp); else printf(路径
11、不存在,无此文件); void add(int i) /添加 char choice; printf(请输入该同学信息n); printf(学号:);scanf(%s,stui.num); printf(姓名:);scanf(%s,stui.name); printf(生日:);scanf(%s,stui.birth); printf(电话:);scanf(%s,stui.phone); printf(性别:);scanf(%s,stui.sex); printf(QQ:);scanf(%s,stui.QQ); printf(地址:);scanf(%s,stui.address); if(i=
12、length) length+; printf(已经存有信息%d项,length); printf(是否继续添加?(Y or N)); scanf(%c,&choice); scanf(%c,&choice); if(choice=y|choice=Y) add(length); else if(choice=n|choice=N);elseprintf(输入有误,请重试);if(choice=y|choice=Y) add(length);void showw(int i) printf(学号:%sn,stui.num); printf(姓名:%sn,stui.name); printf(生
13、日:%sn,stui.birth); printf(手机号:%sn,stui.phone); printf(性别:%sn,stui.sex); printf(QQ号:%sn,stui.QQ); printf(地址:%sn,stui.address); int num1() /根据学号查询char xuehao20,i; printf(请输入所查询人学号n); scanf(%s,xuehao); for(i=0;i=length) return -1; int num2() /根据姓名查询char mingzi20,i; printf(请输入所查询人姓名n); scanf(%s,mingzi);
14、 for(i=0;i=length) return -1; int num3() /根据电话号码查询char dianhua20,i; printf(请输入所查询人电话n); scanf(%s,dianhua); for(i=0;i=length) return -1; int search()printf(请选择你所查询的依据n);printf(1.学号n);printf(2.姓名n);printf(3.电话n); int p;scanf(%d,&p); switch(p)case 1:num1();break; case 2:num2();break; case 3:num3();brea
15、k; default: printf(选择错误n); void del(int i)int j; for(j=i;j(length-1);j+) strcpy(stuj.num,stuj+1.num); strcpy(stuj.name,stuj+1.name); strcpy(stuj.birth,stuj+1.birth); strcpy(stuj.phone,stuj+1.phone); strcpy(stuj.sex,stuj+1.sex); strcpy(stuj.QQ,stuj+1.QQ); strcpy(stuj.address,stuj+1.address); length-;
16、 printf(t删除成功n); void show(int x,int y) int a; for(a=x;a=y;a+) printf(学号:%sn,stua.num); printf(姓名:%sn,stua.name); printf(生日:%sn,stua.birth); printf(电话:%sn,stua.phone); printf(性别:%sn,stua.sex); printf(QQ: %sn,stua.QQ); printf(地址:%sn,stua.address); printf(n); void save() int i; fp=fopen(student11.txt,
17、wb); for(i=0;i)n); printf( n); printf(1:添加信息n); printf(2:删除信息n); printf(3:修改信息n); printf(4:查询信息n); printf(5:显示所有信息n); printf(0:退出n); int main() int select; while(1) cover(); init(); printf(请输入你的选择:); scanf(%d,&select); switch(select) case 1:add(length);save(); break; /添加 case 2: int sch; if(sch=sear
18、ch()!=-1) del(sch); save(); else printf(t记录中无此人信息n);break; /删除 case 3: int sch; if(sch=search()!=-1) printf(t已找到此人,请输入修改信息:nn); add(sch); save(); else printf(查无此人); break; /修改 case 4:search(); break;/ 查询 case 5:show(0,length-1); break;/显示 case 0: exit(0);break; default: printf(n);printf(n);printf(n); printf( 选择错误,请重新输入n); printf(n);printf(n);printf(n); printf(nt按回车键继续); getch(); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1