为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

《高级语言程序设计》课程设计报告——电话簿管理系统

2017-09-26 48页 doc 198KB 60阅读

用户头像

is_633808

暂无简介

举报
《高级语言程序设计》课程设计报告——电话簿管理系统《高级语言程序设计》课程设计报告——电话簿管理系统 1 一、课程设计题目:电话簿管理系统 二、课程设计目的和要求 目的:电话簿管理程序,具有加入、删除、显示和查询电话号码的功能。 要求:1. 除有加入、删除、显示和查询功能外,还允许修改用户姓名、电话。 2. 具有缺省查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电 话资料均在屏幕上显示出来。 三、系统分析与设计 (一) 系统总体设计 通过对整个系统的分析,根据上述要求,可以将这个系统的设计分为三个模块(见图1): 文件导入、通讯录编辑和退出。 通...
《高级语言程序设计》课程设计报告——电话簿管理系统
《高级语言程序设计》课程设计——电话簿管理系统 1 一、课程设计题目:电话簿管理系统 二、课程设计目的和要求 目的:电话簿管理程序,具有加入、删除、显示和查询电话号码的功能。 要求:1. 除有加入、删除、显示和查询功能外,还允许修改用户姓名、电话。 2. 具有缺省查询方式,即查询时只输入姓名的首字母,所有符合这一条件的电 话资料均在屏幕上显示出来。 三、系统分析与设计 (一) 系统总体设计 通过对整个系统的分析,根据上述要求,可以将这个系统的设计分为三个模块(见图1): 文件导入、通讯录编辑和退出。 通讯录管理系统 删除菜单 新建菜单 浏览菜单 查找菜单 修改菜单 图1 系统功能模块 (二) 系统详细设计 ? 主函数 主函数一般设计得比较简洁,只提供部分提示语及部分功能模块函数的调用。 [程序] void main() {printf("\n\t\t :)欢迎使用通讯录管理系统beta"); printf("\n\t\t~~~~(>_<)~~~~ 文件导入中……请稍后……\n\n\n\n\n"); system("cls"); loadfile(); while (1) { mainmenu(); } } ? 各功能模块设计 (1)主菜单函数 2 此函数功能为提供键盘式选择菜单以调用不同函数。其如图2所示。 开始 显示一系列功能选项 n 输入n,判断n是否是1~ 5? 根据n的值调用各功能模块函数 结束 图2 主菜单函数流程图 [程序] void mainmenu() { char choice; system("cls"); printf("\n\t\t******************** 主菜单 ********************"); printf("\n\t\t****************** 1-新建菜单 ******************"); printf("\n\t\t****************** 2-浏览菜单 ******************"); printf("\n\t\t****************** 3-查找菜单 ******************"); printf("\n\t\t****************** 4-修改菜单 ******************"); printf("\n\t\t****************** 5-删除菜单 ******************"); printf("\n\t\t****************** 6-退 出 ******************"); printf("\n\t\t************************************************"); printf("\n\t\t请选择:"); choice=getch(); switch (choice) { case '1':newrecord();break; case '2':browsemenu();break; case '3':searchmenu();;break; case '4':modifymenu();break; case '5':deletemenu();break; case '6':exit(0); default:mainmenu(); 3 } } (2) 新建菜单函数 该函数的功能是用户需要新建联系人,从键盘输入并逐条写到原来的通讯录文件 中,注意采用新建而不是覆盖的方式。其流程如图3所示。 开始 新建联系人 y 是否继续新建?y/n n 结束 图3 新建函数流程图 [程序] void newrecord() { printf("\n\t\t**************** 请输入联系人信息 ****************\n"); printf("\n\t\t输入姓名:"); scanf("%s",&contact[NO].name); printf("\n\t\t输入电话号码:"); scanf("%s",&contact[NO].phone); printf("\n\t\t输入工作单位:"); scanf("%s",&contact[NO].adress); printf("\n\t\t输入E-mail:"); scanf("%s",&contact[NO].e_mail); NO++; savefile(); printf("\n\t\t是否继续添加?(y/n):"); if (getch()=='y') newrecord(); return; 4 } (3) 浏览菜单函数 此函数功能为提供浏览所有联系人记录。其流程如图4所示。 开始 浏览全部联系人记录 结束 图4 浏览模块流程图 [程序] void browsemenu() { int i; system("cls"); if(NO!=0) { printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;i_<)~~~~电话簿文件不存在"); if ((fp=fopen("contact.txt","wb"))==0) { printf("\n\t\t\t\t%>_<%建立失败"); exit(0); } else { printf("\n\t\t\t ^_^电话簿已建立"); printf("\n\t\t\t 按任意键进入主菜单"); getch(); return(NO); } exit(0); } fseek(fp,0,2); /*文件位置指针移动到文件末尾*/ if (ftell(fp)>0) /*文件不为空*/ { 16 rewind(fp); /*文件位置指针移动到文件开始位置*/ for (NO=0;!feof(fp) && fread(&contact[NO],sizeof(struct record),1,fp);NO++); printf("\n\n\n\n\t\t\t\t :)文件导入成功"); printf("\n\t\t\t\t 按任意键返回主菜单"); getch(); return(NO); } printf("\n\n\n\n\t\t\t :)文件导入成功"); printf("\n\t\t\t+_+电话簿文件中无任何纪录"); printf("\n\t\t\t 按任意键返回主菜单"); getch(); return(NO); } (2) 文件保存函数 [程序] void savefile() { int i; if ((fp=fopen("student.txt","wb"))==0) { printf("\n\t\t+_+文件打开失败!\n"); } for (i=0;i总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能 力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日 异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握 计算机开发技术是十分重要的。 回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理 论到实践,在一周的时间里,可以学到很多的的东西,同时不仅可以巩固了以前所学过的知 识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实 际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起 来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的 能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过 各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得 不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过 的知识重新温故。 经过短短一周的课程设计,我才算真正了解C语言的基本知识。运用C语言可以解决许 21 多实际问题。C语言作为一门高级和计算机编程语言,有其强大的功能。同样了解到C语言 程序设计时所需的一种严谨和认真的精神,只有这样,才能更好的适应这个日新月异的飞速 发展的社会。 七、参考书目 1、《C语言程序设计题典》 李春葆 张植民 肖忠付 清华大学出版社 2002 2、《C程序设计习题解答与上机指导》 谭浩强 清华大学出版社 2005 3、《C语言程序设计》 廖 雷 高等教育出版社 2006 八、附录(源文件) #include #include #include #include struct record { char name[20]; char phone[20]; char adress[40]; char e_mail[30]; }contact[500]; int NO=0; FILE *fp; void mainmenu(); void newrecord(); void browsemenu(); void searchmenu(); void searchname(); void searchphone(); void modifymenu(); void deletemenu(); void deleteall(); void deletesingle(); void deletename(); void deletephone(); int loadfile(); void savefile(); void main() {printf("\n\t\t :)欢迎使用通讯录管理系统beta"); 22 printf("\n\t\t~~~~(>_<)~~~~ 文件导入中……请稍后……\n\n\n\n\n"); system("cls"); loadfile(); while (1) { mainmenu(); } } void mainmenu() { char choice; system("cls"); printf("\n\t\t******************** 主菜单 ********************"); printf("\n\t\t****************** 1-新建菜单 ******************"); printf("\n\t\t****************** 2-浏览菜单 ******************"); printf("\n\t\t****************** 3-查找菜单 ******************"); printf("\n\t\t****************** 4-修改菜单 ******************"); printf("\n\t\t****************** 5-删除菜单 ******************"); printf("\n\t\t****************** 6-退 出 ******************"); printf("\n\t\t************************************************"); printf("\n\t\t请选择:"); choice=getch(); switch (choice) { case '1':newrecord();break; case '2':browsemenu();break; case '3':searchmenu();;break; case '4':modifymenu();break; case '5':deletemenu();break; case '6':exit(0); default:mainmenu(); } } void newrecord() { printf("\n\t\t**************** 请输入联系人信息 ****************\n"); printf("\n\t\t输入姓名:"); scanf("%s",&contact[NO].name); printf("\n\t\t输入电话号码:"); scanf("%s",&contact[NO].phone); printf("\n\t\t输入工作单位:"); 23 scanf("%s",&contact[NO].adress); printf("\n\t\t输入E-mail:"); scanf("%s",&contact[NO].e_mail); NO++; savefile(); printf("\n\t\t是否继续添加?(y/n):"); if (getch()=='y') newrecord(); return; } void browsemenu() { int i; system("cls"); if(NO!=0) { printf("\n\t\t*************** 以下为通讯录所有信息************"); for (i=0;i_<)~~~~电话簿文件不存在"); if ((fp=fopen("contact.txt","wb"))==0) { printf("\n\t\t\t\t%>_<%建立失败"); exit(0); } else { printf("\n\t\t\t ^_^电话簿已建立"); printf("\n\t\t\t 按任意键进入主菜单"); getch(); return(NO); } exit(0); } fseek(fp,0,2); if (ftell(fp)>0) { rewind(fp); for (NO=0;!feof(fp) && fread(&contact[NO],sizeof(struct record),1,fp);NO++); printf("\n\n\n\n\t\t\t\t :)文件导入成功"); printf("\n\t\t\t\t 按任意键返回主菜单"); getch(); return(NO); } printf("\n\n\n\n\t\t\t :)文件导入成功"); printf("\n\t\t\t+_+电话簿文件中无任何纪录"); 32 printf("\n\t\t\t 按任意键返回主菜单"); getch(); return(NO); } void savefile() { int i; if ((fp=fopen("student.txt","wb"))==0) { printf("\n\t\t+_+文件打开失败!\n"); } for (i=0;i
/
本文档为【《高级语言程序设计》课程设计报告——电话簿管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索