毕业设计_c语言_课程设计
课 程 设 计 报 告
课程名称 C语言程序设计 课题名称 通讯录管理系统 专 业 汽车服务 班 级 0901班 学 号 座机电话号码0114 姓 名 伏铄臻 指导教师 王宁 陈多 2010年9月12日
湖南工程学院
课 程 设 计 任 务 书
课程名称 C语言程序设计 课 题 通讯录管理系统 专业班级 汽车服务0901 学生姓名 伏铄臻 学 号 座机电话号码0114 指导老师 王宁 陈多 审 批 王宁 陈多 任务书下达日期 2010年 9月 12 日
任务完成日期 2010年 9月 13日
通讯录管理系统
通讯录管理系统要求分析及其主要功能
1、问题描述:
通过该系统实现对通讯录信息进行录入、显示、修改、删除、插入、排序、保存等操作的管理。
2、功能要求:
1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:编号、姓名、电话号码。
2)本系统显示这样的菜单:
请选择系统功能项:
通讯信息录入
通讯信息显示
通讯信息保存
通讯信息删除
通讯信息修改
通讯信息查询
按编号查询
按姓名查询
按电话号码查询
g. 退出系统
3)、执行一个具体的功能之后,程序将重新显示菜单。
4)、将通讯信息保存到文件中。
3、算法提示:
1)、数据结构:结构体类型数组
2)、数据库结构:下表构成该系统的基本数据库。
编号姓名电话号码charchar Char4、测试数据:
纪录数20
5、其它 对该系统有兴趣的同可以在实现上述基本功能后,完 善系统的其它功能
功能模块的划分
系统功能模块图:
录入:可以添加通讯录记录,依次输入编号、姓名、电话号码后,会提示是否继续添加。
显示:可以以横排形式输出所有通讯录里的记录
删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容
查询:可以选择用姓名、电话、编号三种方式查询
修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、即可完成修改
保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件
主要功能的实现
详细设计
主函数 voide main 通过主函数main 利用无限次循环结构for(;;)和switch()结构实现各函数的调用。系统根据数字选项来调用函数。
菜单选择函数 int menu_select 这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,再自行返回该函数。
输入记录函数 int Input 这是一个无参函数,用数组函数输入所需记录人员的信息。用字符sign来标记是否将继续记录输入信息。
显示记录函数Display ;
此函数利用for循环从输入第一个人的信息至最后一个人的信息全都显示出来。使用if语句。
删除记录函数Delete_a_record 用比较字符串处理函数strcmp 逐一比较输入的字符串,是否相同,无相同,则显示无此人,若输入的字符串和s【】中的某一个相同,则用函数strcpy ,只取字符串1的地址,即删去了字符串2的内容,从而删除记录。流程图如图一。
查询记录函数Query_a_record 该函数先用while循环来判断查询方式是否正确,再用if语句来判断输入的m的值,从而选择查询方式。如姓名查询,同样用strcmp 函数将输入的姓名与s【】比较,若匹配则显示此人信息,不匹配则显示无此人。其它查询方式类似。
流程图如图二所示。
修改数据函数Change 该函数先是调用strcmp 函数进行匹配,若无匹配显示无此人,若有则对该人的信息通过scanf 重新记录,即对该人信息进行修改。
保存数据函数WritetoText pe,n
通过文件指针来保存所要保存的文件。
四、程序调试
程序调试与分析
在程序运行前总有一些错误或警告,最开始显示主菜单函数后,当进入其他功能项时主菜单在TC屏幕上消失,后了解到用system “c\s 可以控该现象使主菜单一直显示。与此相似的还有system “pause” 都是 有关的函数。
文件的保存没有涉及了解,经过查寻料了解到 fp fopen filename,"w" NULL 这句话是说打开文件, 打开只写文件,若文件存在则文件长度为0,即该文件消失,若文件不存在则建立该文件。而fprintf是写数据到打开的文件中,调试过程中经常因排版不太整齐而多次去修改,Printf和字符所在宽度影响排版。
在通讯信息查询这一模块中,特别是对按编号查询这一项与电话查询和姓名查询不一样不能用strcmp 函数配对查找因为没有留意字符串数组来定义数编号。运行时程序出现了错误后经该正将子符串