1.
高级语言(C)课程设计
题目: 小型通讯录设计
院(系、部): 信息工程学院
姓 名: 李海霞 (5120110752)
孙 琳 (5120110723)
班 级:
电 112
指导教师签名:
2012 年 7 月 4日·北京
北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
目录
一、 任务书*************************************2 二、 小组成员情况*******************************2 三、 总体设计***********************************2 四、 模块划分及功能*****************************3 五、 算法说明***********************************4 六、 框架图*************************************6 七、 流程图*************************************8 八、 源程序清单*********************************12 九、 程序测试***********************************26 十、 结论、体会及建议***************************32 十一、 附:参考文献资料************************33
1
北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
一、任务书
题目6:小型通讯录设计
功能:实现简单的通讯录信息管理,基本信息包括编号、姓名、手机、邮编、地
址、关系、性别、生日、QQ、e-mail. 基本要求:
1.设计简单的菜单,能够进行系统功能选择。 2.实现信息的录入功能。
3.在已有信息的基础上添加新的记录。 4.删除指定编号的记录。 5.复制指定编号的记录 6.实现信息的浏览功能 7.按编号查询功能 8.按手机号排序功能
二.小组成员情况
组长:李海霞 学号:5120110752 负责:文件导出、删除、排序、复制、
输出
组员:孙琳 学号:5120110723 负责:主菜单、添加、查询、保存退出 另外:主函数,结构体定义,函数声明,文件及实验报告,虽有分工,但是大多
数内容是有两人讨论后共同完成的。期间各自编写函数的过程中遇到的问题均由两人共同商讨,以及询问老师后,一起解决的。
三、总体设计
利用struct record定义数据结构,用void声明函数,用开关语句switch,
2
北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
case分开事件进行程序,实现系统功能选择,利用if,while语句判断函数,for语句实现循环,利用printf和scanf进行输出与输入,用getch()输入字符串,最终实现通讯录功能。
通讯录中的记录项用结构体record表示,包含10个属性:id、name、phone 、address、postcode、e-mail、relation、QQ、sex、birthday分别代表用户的编号、姓名、电话、地址、邮编、e_mail、关系、QQ 、性别、生日。 1、结构体数组:
struct record //定义一个结构体数组 {
char id[10]; //编号 char name[20];//姓名 char phone[20];//电话 char adress[40]; //地址 char postcode[10]; //邮编 char e_mail[30]; //e_mail char relation[20];//关系 char QQ[20];//QQ char sex[10];//性别 char birthday[20];//生日 }student[500]; 2、包括的函数:
void mainmenu();//主菜单
void readfromfile();//读取文件 void newrecord();//新添纪录 void showall();//输出记录 void searchmenu();//查询菜单 void searchbyid();//按编号查询 void searchbyname();//按姓名查询 void searchbyphone();//按电话查询 void deletemenu();//删除菜单 void deleteall();//删除所有 void deleteone();//删除单个 void deletebyid();//按编号删除 void deletebyname();//按姓名删除 void listmenu();//排序菜单 void listbyid();//按编号排序 void listbyname();//按姓名排序 void copy();//复制菜单
void writetofile();//保存退出
四、模块划分及功能
主模块:main()//主函数
3
北京石油化工学院 BEIJING INSTITUTE OF PETROCHEMICAL TECHNOLOGY 课程设计用纸
其他模块:
模块一:void mainmenu(); //主菜单 模块二:void readfromfile(); //读取文件 模块三:void newrecord(); //新添纪录 模块四:void showall(); //输出记录 模块五:void searchmenu(); //查询菜单 模块六:void searchbyid(); //按编号查询 模块七:void searchbyname(); //按姓名查询 模块八:void searchbyphone(); //按电话查询 模块九:void deletemenu(); //删除菜单 模块十:void deleteall(); //删除所有 模块十一:void deleteone(); //删除单个 模块十二:void deletebyid(); //按编号删除 模块十三:void deletebyname(); //按姓名删除 模块十四:void listmenu(); //排序菜单 模块十五:void listbyid(); //按编号排序 模块十六:void listbyname(); //按姓名排序 模块十七:void copy(); //复制菜单 模块十八:void writetofile(); //保存退出
五、算法说明:
1.通讯录中的记录项用结构体record表示,包含10个属性。
2.主菜单:利用switch语句进行选择所需功能;输入“1”会进入“新添记录”的界面;输入“2”进入“输出记录”的界面;输入“3”会进入“查询菜单”的界面;输入“4”进入“删除记录”的界面;输入“5”进入“记录排序”的界面;输入“7”进入“保存退出”的界面;输入“8”进入“不保存退出”的界面。 3.添加记录:利用printf()函数和scanf() 函数实现按要求输入信息,再利用if()语句实现是否继续添加记录。
4.输出记录:利用for循环和if语句实现全部输出;
5.查询菜单:利用switch选择查询方式。在查询菜单中输入“1”进入“按编号
4