欢迎来到天天文库
浏览记录
ID:44483198
大小:380.96 KB
页数:10页
时间:2019-10-22
《报告参考样文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、(一)设计目的2(二)设计内容2(三)概要设计2-3(四)详细设计3-8(五)调试与测试8-10《C语言课程设计》通讯录管理系统一、课程设计目的1、通过课稈设计,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。2、通过课程设计,学会设计数据结构。其中包括对结构数组、链表和数据文件等知识的运用。3、通过课稈设计,提高程序开发功能,能运用合理的控制流稈编写清晰高效的稈序。4、通过课程设计,训练C程序调试能力,能将一个中小型各级组织系统联调通过。5、通过课程设计,开发一个中小型系统,掌握系统研发全过程。6、通话
2、课程设计,培养分析问题、解决实际问题的能力。二、课程设计内容设计一个实用的学生通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索,具体要示:(1)录入:学生通讯录信息包括:学号,姓名,性别,出生年月,地址,电话,课题小组,E-mail等。以结构数组或数据文件的形式存放通讯录信息。(2)更新:能插入、删除通讯录信息。(3)浏览:按学号为序或姓名为序进行通讯录信息浏览。(4)查询:能实现指定联系人信息查询或指定课题组人员查询功能。(5)系统以菜单方式工作,要求界而友好,易于操作。三、总体设计1、模块化设计为实现系统功能,本程序主
3、要分为六个模块。它们分别为:输入一个学生信息、删除一个学生信息、查询一个学生信息、插入一个学生信息、列出所有的学生信息、保存并且退出该程序。这六个函数再通过主函数调用分别得以实现。主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做岀选择,以便决定使用通讯录的哪种功能。然后,通过执行多分支选择语句switch语句,分别实现其它各个函数的调用功能。其它各个函数的功能分别如下:creat函数用于对通讯录中的数据以文件的方式进行读入;1叩ut函数用于录入通讯录中学生的信息:Delete函数用于对通讯录中指定信息的删除;Sear
4、ch函数用于对通讯录中指定信息的查询;Insert函数用于在通讯录中插入信息;List函数用于对通讯录中所有信息进行浏览;Save函数用于保存通讯录信息并且退出。2、模块调用图四、详细设计(1)数据结构设计本程序屮,运用了多种数据结构。首先对于学生通讯录中各项详细信息的记录用了结构数组的形式,然后又运用链表动态地分配内存单元,在creat函数中,把保存在数组中的值再赋值给其中的一个结点,通过指针的后移,把多个数据连成一个链,形成一个链表。在这过程当中,还运用了数据文件的方式,每一次从终端输入的数据都以数据文件的形式保存到了磁盘。对
5、于主要数据结构的举例如F:结构数组:①structstudent学生结构体定义{intnumber;charname[10J;charsex[6];structdatebirthday;charaddr[30J;chartel[15J;charemail[30];intgroup;}student[max];学生结构体数组链表:把保存在数组中的值再赋值给其中的一个结点,所以我们需定义一个链表①typedefstructInode{intnumber;charname]10];charsex[6];structdatebirthda
6、y;charaddr[30];chartelf15];charemail[30J;intgroup;structInode*next;}listnode,*linklist;②while(strcmp(p4・>next->name,namel)!=O)p4=p4->next;p5=p4next;p4->next=p5->next;数据文件:功能是每一次从终端输入数据①FILE*fp;fp=fopen(MContacts.c,"r4-u);if(fp!=NULL){fbr(i=l;i7、(j==EOF)return;k=i-l;fseek(fp,k*sizeof(structstudent),0);fread(&student[i],sizeof(structstudent)J,fp);②voidSave()将每一次从终端输入的数据都以数据文件的形式保存到磁盘。{intj;fp=fopen(,'Contacts.c,,,nw");for(p2=headJ=0;p2!=NULL;j++,p2=p2->next)fwrite(&student[j],sizeof(structstudent),l,fp);(2)模块接8、口设计由于本程序中大部分运用了链表这一数据结构,函数中存在很多指针,所以这个程序屮被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,
7、(j==EOF)return;k=i-l;fseek(fp,k*sizeof(structstudent),0);fread(&student[i],sizeof(structstudent)J,fp);②voidSave()将每一次从终端输入的数据都以数据文件的形式保存到磁盘。{intj;fp=fopen(,'Contacts.c,,,nw");for(p2=headJ=0;p2!=NULL;j++,p2=p2->next)fwrite(&student[j],sizeof(structstudent),l,fp);(2)模块接
8、口设计由于本程序中大部分运用了链表这一数据结构,函数中存在很多指针,所以这个程序屮被调用的函数都是空类型的,但这并没有影响最终结果的输出,反而使得函数调用的过程更加简便。本程序执行的入口是main函数,然后在main函数中首先调用了creat函数,
此文档下载收益归作者所有