c语言通信录实习报告

上传人:第*** 文档编号:37805776 上传时间:2018-04-22 格式:DOC 页数:14 大小:212.50KB
返回 下载 相关 举报
c语言通信录实习报告_第1页
第1页 / 共14页
c语言通信录实习报告_第2页
第2页 / 共14页
c语言通信录实习报告_第3页
第3页 / 共14页
c语言通信录实习报告_第4页
第4页 / 共14页
c语言通信录实习报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《c语言通信录实习报告》由会员分享,可在线阅读,更多相关《c语言通信录实习报告(14页珍藏版)》请在金锄头文库上搜索。

1、浙江林学院信息工程学院课 程 实 习 报 告课程名称: 程序设计综合实习 课程编号: 05001009 实习内容: 电子通讯录查询系统 专 业: 电子信息类 班 级: 电子信息类 075 学 号: 200705060520 姓 名: 周勤伟 指导教师: 蔺陆军 实习地点: 教 1505 实习时间: 2008.6 2008 年年 7 月月 15 日日目目 录录1.课程实习目的.12.课程实习题目描述和要求.12.1 实习题目.12.2 实习要求.13.课程实习报告内容.13.1 功能分析和模块划分.13.2 数据管理模块分析.13.3 用户操作模块设计.43. main 函数设计.73. 程序测

2、试.74.总结.7浙江林学院信息工程学院11.1.课程实习目的课程实习目的根据所学语言和数据结构知识,设计一个完整的系统,学会软件开发的基本方法以及提高 C 语言编程的综合应用能力。通过实习,把所学知识投入实践,做到理论联系实际,扎实所学专业知识。2.2.课程实习题目描述和要求课程实习题目描述和要求参考手机中的电话薄管理模式,设计一个通讯录查询系统。通过该系统,可以方便查询通中成员的详细信息(ID 号,姓名,性别,年龄,职业,电话,住址,E-mail等) 。 2.2 实习要求1、基本要求1 根据 ID 号查询成员信息;2 根据姓名查询成员信息(姓名重复时,显示所有同名者信息) ;3 显示通讯录

3、中所有成员信息;4 往通讯录中添加一个成员;5 根据 ID 号删除一个成员;6 程序退出时将通讯录中所有成员信息保存到文件中;7 程序启动时将文件中所有成员信息读入程序中。2、扩展要求1 通讯录中所有成员按 ID 号排序;2 通讯录中所有成员按姓名排序;3 按职业分类显示所有成员信息;自己设计一些合理的附加功能3.3.课程实习报告内容课程实习报告内容3.1 功能分析和模块划分从功能上说,该系统可以划分为两大功能模块,即数据(电话簿)管理模块和用户操作界面模块(人机交互模块) 。3.2 数据管理模块分析该模块的功能是完成所有数据信息的管理,由于成员人数是动态变化的,所以程序中所有的数据采用链表的

4、方式进行组织。程序运行的时候,把所有人的信息放到一个链表中管理。实际上,这个模块的功能是维护一个单向的链表。根据系统要求,应该实现的链表操作函数为:初始化链表、销毁链表,链表插入操作、链表删除操作、定位元素在链表中的位置、修改链表中某个结点的数据、获得链表中某个结点数据、浙江林学院信息工程学院2遍历链表等。根据系统要求和采用的数据结构,设计相关的数据类型如下:/定义数据对象的类型typedef struct studentchar ID16; /成员 ID 号char name16; /成员姓名char sex3; /成员性别int score2; /成员的年龄和电话char add16; /

5、成员地址char email16; /成员 e-mail 地址char job16; /职业ElemType, STUDENT;/定义链表结点结构typedef struct lnodeElemType data; /结点数据struct lnode *next; /指向下一个结点的指针LNode, *LinkList, *ListType;数据文件文件组织文件名可设计为 stuscore.dat,保存到可执行程序的当前目录下。文件内部数据存储格式如下存储第一个成员的信息,占字节数为 sizeof(STUDENT)个紧跟着存储第二个成员的信息占的字节数为sizeof(STUDENT)个 主要函

6、数设计根据该模块的功能,设计本模块的主要函数如下:/* 初始化链表 */STATUS InitList(LinkList 浙江林学院信息工程学院3/* 销毁链表,释放包括头结点的所有结点 */STATUS DestroyList(LinkList /* 从链表中取位序为 i 的结点数据,并用 e 返回该值 */STATUS GetElem(LinkList L, int i, ElemType /*判断元素 e 是否在链表中,如果在返回其在链表中的位序,否则返回 0*/int LocateElem(LinkList L, ElemType e, STATUS (*compare)(ElemTy

7、pe e1, ElemType e2) );/*往链表中添加一个结点,结点数据为 e*/STATUS ListInsert(LinkList L, int i, ElemType e );/*删除位序为 i 的结点,并用 e 返回结点数据 */STATUS ListDelete(LinkList L, int i, ElemType /*遍历链表中的每个结点,并调用 visit()对结点数据处理 */STATUS ListTraverse(LinkList L, STATUS (*visit)(ElemType e) );/*修改位序为 i 的结点数据,将结点数据更新成 e 的值 */STAT

8、US ListModify(LinkList L, int i, ElemType e );/* 从文件中将成员信息导入内存,每个成员信息用一个链表节点保存,从文件中顺序读成员信息的同时,将节点插入链表中 */void LoadData(LinkList L, char *filename );/*将链表中的成员信息写到文件中,链表中每个节点都对应一个成员的信息主函数设计 */void SaveData(LinkList L, char *filename);程序代码组织和这个模块相关的文件包含,宏定义,数据类型定义和函数声明放到文件 list.h浙江林学院信息工程学院4中,具体的函数实现放到

9、文件 list.cpp 中。3.3 用户操作模块设计用户交互界面设计用户操作模块完成计算机和用户的信息交互,要求操作界面友好。根据这一原则和系统功能要求设计界面如下:系统启动时,输出如下界面如果用户选择 1,则分别提醒用户输入一个完整的成员信息:请输入 ID:请输入姓名:请输入年龄:请输入电话:请输入职业:请输入性别:请输入地址:请输入 email:然后调用链表操作函数,将该成员添加进去,如果添加成功,则提示用户:操作成功否则,提示用户:浙江林学院信息工程学院5操作失败如果用户选择 2,则完成如下操作:请输入 ID:根据输入的 ID,将该成员从链表中删除,然后提示用户:操作成功如果没从链表中找

10、到该成员,则提示用户:操作失败如果用户选择 3,则完成下面操作:请输入 ID:请输入姓名:请输入年龄:请输入电话:请输入职业:请输入性别:请输入地址:请输入 email:然后根据 ID 确定链表中是否存在该成员,如果存在,则调用链表操作函数,完成修改操作,并提示用户:操作成功如果在链表中没找到该 ID 的成员,则提示用户:操作失败如果用户选择 4,则进行如下操作:请输入 ID:然后调用链表操作函数,查找该成员的信息,如果找到该成员,则输出该成员的信息,并提示用户:操作成功如果在链表中没找到该 ID 的成员,则提示用户:浙江林学院信息工程学院6操作失败如果用户选择 5,则进行如下操作:请输入姓名

11、:然后调用链表操作函数,查找该成员的信息,如果找到该成员,则输出该成员的信息,并提示用户:操作成功如果在链表中没找到该 ID 的成员,则提示用户:操作失败如果用户选择 6,则遍历整个链表,显示所有成员成绩信息。如果用户选择 7,则按姓名排序。如果用户选择 8,则按 ID 排序。如果用户选择 9,则按职业。如果用户选择 0,则打印如下信息,并退出系统。主要函数设计上面主要的 9 个操作,分别封装成 9 个函数如下/往链表中添加一个成员void AddStu();/从链表中删除一个成员,根据成员的 ID 决定删除哪个成员void DelStu();浙江林学院信息工程学院7/修改成员信息,根据 ID 决定修改哪个成员的信息void ModifyStu();/根据 ID 查询某个成员的信息void chkStu();/根据姓名查询个人信息void checkname();/姓名排序void Arrangename()/ID 排序void ArrangeID();/职业排序void ArrangeJob();/打印所

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号