为了正常的体验网站,请在浏览器设置里面开启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方法
。其流程如图5所示。 开始 按姓名查找 按号码查找 结束 图5 查找函数流程图 [程序] void searchmenu() { 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************************************************"); printf("\n\t\t请选择:"); choice=getch(); switch (choice) { case '1':searchname();break; case '2':searchphone();break; case '3':mainmenu();break; } } ?按姓名查找函数。其流程如图6 所示。 6 开始 输入联系人姓名 n 是否找到此记录? y 提示未找到此记录 显示此记录 y n 是否查找相同姓名? 结束 图6 按姓名查找函数流程图 [程序] void searchname() { int mark=0; int i; int a=0; char name[20]; printf("\n\t\t***************** 按姓名查找 *******************"); printf("\n\t\t请输入姓名:"); scanf("%s",name); for(i=a;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,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索