欢迎来到天天文库
浏览记录
ID:25074396
大小:212.50 KB
页数:14页
时间:2018-11-18
《C语言通信录实习研究报告.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、浙江林学院信息工程学院课程实习报告课程名称:程序设计综合实习课程编号:05001009实习内容:电子通讯录查询系统专业:电子信息类班级:电子信息类075学号:200705060520姓名:周勤伟指导教师:蔺陆军实习地点:教1505实习时间:2008.62008年7月15日目录1.课程实习目的12.课程实习题目描述和要求12.1实习题目12.2实习要求13.课程实习报告内容13.1功能分析和模块划分13.2数据管理模块分析13.3用户操作模块设计43.4main函数设计73.4程序测试74.总结7浙江林学院
2、信息工程学院13浙江林学院信息工程学院1.课程实习目的根据所学C语言和数据结构知识,设计一个完整的系统,学会软件开发的基本方法以及提高C语言编程的综合应用能力。通过实习,把所学知识投入实践,做到理论联系实际,扎实所学专业知识。2.课程实习题目描述和要求参考手机中的电话薄管理模式,设计一个通讯录查询系统。通过该系统,可以方便查询通中成员的详细信息(ID号,姓名,性别,年龄,职业,电话,住址,E-mail等)。2.2实习要求1、基本要求1.根据ID号查询成员信息;2.根据姓名查询成员信息(姓名重复时,显示所有
3、同名者信息);3.显示通讯录中所有成员信息;4.往通讯录中添加一个成员;5.根据ID号删除一个成员;6.程序退出时将通讯录中所有成员信息保存到文件中;7.程序启动时将文件中所有成员信息读入程序中。2、扩展要求1.通讯录中所有成员按ID号排序;2.通讯录中所有成员按姓名排序;3.按职业分类显示所有成员信息;自己设计一些合理的附加功能3.课程实习报告内容3.1功能分析和模块划分从功能上说,该系统可以划分为两大功能模块,即数据(电话簿)管理模块和用户操作界面模块(人机交互模块)。3.2数据管理模块分析1.该模块
4、的功能是完成所有数据信息的管理,由于成员人数是动态变化的,所以程序中所有的数据采用链表的方式进行组织。程序运行的时候,把所有人的信息放到一个链表中管理。实际上,这个模块的功能是维护一个单向的链表。根据系统要求,应该实现的链表操作函数为:初始化链表、销毁链表,链表插入操作、链表删除操作、定位元素在链表中的位置、修改链表中某个结点的数据、获得链表中某个结点数据、遍历链表等。2.根据系统要求和采用的数据结构,设计相关的数据类型如下:13浙江林学院信息工程学院//定义数据对象的类型typedefstructstu
5、dent{charID[16];//成员ID号charname[16];//成员姓名charsex[3];//成员性别intscore[2];//成员的年龄和电话charadd[16];//成员地址charemail[16];//成员e-mail地址charjob[16];//职业}ElemType,STUDENT;//定义链表结点结构typedefstructlnode{ElemTypedata;//结点数据structlnode*next;//指向下一个结点的指针}LNode,*LinkList,*L
6、istType;2.数据文件文件组织文件名可设计为stuscore.dat,保存到可执行程序的当前目录下。文件内部数据存储格式如下存储第一个成员的信息,占字节数为sizeof(STUDENT)个紧跟着存储第二个成员的信息占的字节数为sizeof(STUDENT)个...3.主要函数设计根据该模块的功能,设计本模块的主要函数如下:/*初始化链表*/STATUSInitList(LinkList&L);/*销毁链表,释放包括头结点的所有结点*/STATUSDestroyList(LinkList&L);13浙
7、江林学院信息工程学院/*从链表中取位序为i的结点数据,并用e返回该值*/STATUSGetElem(LinkListL,inti,ElemType&e);/*判断元素e是否在链表中,如果在返回其在链表中的位序,否则返回0*/intLocateElem(LinkListL,ElemTypee,STATUS(*compare)(ElemTypee1,ElemTypee2));/*往链表中添加一个结点,结点数据为e*/STATUSListInsert(LinkListL,inti,ElemTypee);/*删除
8、位序为i的结点,并用e返回结点数据*/STATUSListDelete(LinkListL,inti,ElemType&e);/*遍历链表中的每个结点,并调用visit()对结点数据处理*/STATUSListTraverse(LinkListL,STATUS(*visit)(ElemTypee));/*修改位序为i的结点数据,将结点数据更新成e的值*/STATUSListModify(LinkListL,inti,ElemT
此文档下载收益归作者所有