




免费预览已结束,剩余8页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
_设计课题题目一、课程设计目的与要求1.课程设计目的(1) 综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2) 充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。2. 课程设计要求制作一个通讯录系统。(1)该程序具有查找、添加、修改、删除功能。(2)通讯录包括:姓名、电话、街道、城市、省、邮编等。二、总体设计根据系统的要求,系统总体设计如图1所示。信息录入管理系统通讯录信息显示通讯录信息保存显示通讯录信息删除通讯录信息增加信息通讯录信息查询信息通讯录信息修改通讯录信息录入录入 图三、详细设计1、数据结构设计#include /*标准输入输出函数库*/#include /*标准函数库*/#include /*字符串函数库*/#define FILENAME phone.datstruct date /定义一个结构体类型数组 char name10; /*姓名*/ char phone12; /*电话*/ char email20;/*邮箱*/ char QQ20; /*QQ*/ per10; int menu() /主菜单选择函数2函数说明(1) 主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。(2) 其他各功能函数包括函数名功能int Input(struct date per10,int n) 输入记录 void Query_a_record(struct date per10,int n) 信息查询void Display(struct date per10,int n) 信息展示void writeToFile(struct date per10,int n)记录保存为文件int Delete_a_record(struct date per10,int n) 信息删除int menu_select(); void Change(struct date per10,int n) void WritetoText(struct date per10,int n) 主菜单函数修改信息信息增加四、程序清单1、头文件#include /*标准输入输出函数库*/#include /*标准函数库*/#include /*字符串函数库*/#define FILENAME phone.dat2、主函数void main() /主函数 int n=0,i;while(1) switch (menu() case 1: printf(nt 通讯信息录入n); /信息录入 n=Input(per, n); break;case 2: printf(nttt 通讯录记录表n); /显示记录Display(per,n); break;case 3: printf(nt保存功能n); WritetoText(per,n); /保存数据printf(t); system(pause); /操作完成后进行暂停break;case 4: printf(nt从通讯录中删除记录n); n=Delete_a_record(per,n); /删除记录printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录n); Change(per,n); /修改数据printf(t); system(pause); break;case 6: printf(nt添加记录到通讯录n); /添加记录 n=Input(per,n); break; case 7: printf(nt在通讯录中查找记录n); Query_a_record(per,n); /查找记录printf(t); system(pause); /从程序里调用”pause”命令break;case 0: printf(ntt谢谢使用,再见!n); /结束程序printf(ntt); system(pause); exit(0); 五、总程序和分工执行结果#include /*标准输入输出函数库*/#include /*标准函数库*/#include /*字符串函数库*/#define FILENAME phone.datstruct date /定义一个结构体类型数组 char name10; /*姓名*/ char phone12;char email20;/*邮箱*/char QQ20; per10; int menu() /主菜单选择函数 int c; /定义一个整型变量do system(cls); /清屏 printf(t*通讯录*n);printf(t-n);printf(t 1、通讯信息录入 n);printf(t 2、通讯信息显示 n);printf(t 3、通讯信息保存 n); printf(t 4、通讯信息删除 n); printf(t 5、通讯信息修改 n); printf(t 6、通讯信息增加 n); printf(t 7、通讯信息查询 n); printf(t 0. 退出 n); printf(t-n);printf(t请您选择(0-7):); scanf(%d,&c); while(c7&c0); return(c); int Input(struct date per10,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t姓名:); scanf(%s,pern+); printf(t电话号码:); scanf(%s,pern+i.phone); printf(t电子邮箱:);scanf(%s,pern+i.email);printf(tQQ:);scanf(%s,pern+i.QQ);gets(x); printf(nt是否继续添加?(Y/N); fflush(stdin); /清空缓存scanf(%c,&sign); i+; return(n+i); void writeToFile(struct date per10,int n)FILE *fp=NULL;int i=0;fp=fopen(phone.dat,wb);if(fp=NULL)printf(打开文件出错!n);exit(0);for(i=0;i10;i+)fwrite(&peri,sizeof(per),1,fp); /把字节为1的信息写入文件fclose(fp);void Display(struct date per10,int n) int i; printf(-n); /格式/ printf( 姓名 电话号码 QQ 电子邮箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n);system(pause); int Delete_a_record(struct date per10,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.phone,perj+1.phone); strcpy(,perj+1.name); strcpy(perj.QQ,perj+1.QQ);strcpy(perj.email,perj+1.email); printf(ttt已经成功删除!n); return(n-1); void Query_a_record(struct date per10,int n) int m;printf(tn请选择查询方式:n); printf(tn); printf(t1-姓名 n); printf(t2-电话 n); printf(t3-返回 n); printf(tn); printf(请选择:); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf(输入错误,请重新选择:);scanf(%d,&m);if(m=1)char s20; int i=0; printf(t请输入想查询的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人QQ: %sn,peri.QQ);printf(t电话号码: %sn,peri.phone); printf(t电子邮箱: %sn,peri.email); ;if(m=2) char s20; int i=0; printf(t请输入想查询的电话:); scanf(t%s,s); while(strcmp(peri.phone,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t此人姓名: %sn,);printf(t此人QQ: %sn,peri.QQ); printf(t电子邮箱: %sn,peri.email); ;void Change(struct date per10,int n) char s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(姓名:); scanf(%s,); printf(电话号码:); scanf(%s,peri.phone); printf(QQ:); scanf(%s,peri.QQ);printf(电子邮箱:);scanf(%s,peri.email);printf(n修改成功!);void WritetoText(struct date per10,int n) int i=0; FILE *fp; /定义文件指针char filename20; /定义文件名 printf(t保存到文件n); /输入文件名if(fp=fopen(phone.dat,w)=NULL) printf(t无法打开文件n); system(pause); return; fprintf(fp,*通讯录*n);fprintf(fp, 姓名 电话号码 QQ 电子邮箱n);fprintf(fp,-n);while(in) fprintf(fp,%-10st%-3st%-20st%-20sn,,peri.phone,peri.QQ,peri.email); i+; fprintf(fp,-n);fprintf(fp,*共有%d条记录*n,n); fclose(fp); /关闭文件printf(保存成功!n); void main() /主函数 int n=0,i;while(1) switch (menu() case 1: printf(nt 通讯信息录入n); /信息录入 n=Input(per, n); break;case 2: printf(nttt 通讯录记录表n); /显示记录Display(per,n); break;case 3: printf(nt保存功能n); WritetoText(per,n); /保存数据printf(t); system(pause); /操作完成后进行暂停break;case 4: printf(nt从通讯录中删除记录n); n=Delete_a_record(per,n); /删除记录printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录n); Change(per,n); /修改数据printf(t); system(pause); break;case 6: printf(nt添加记录到通讯录n); /添加记录 n=Input(per,n); break; case 7: printf(nt在通讯录中查找记录n); Query_a_record(per,n); /查找记录printf(t); system(pause); break;case 0: printf(ntt谢谢使用,再见!n); /结束程序printf(ntt); system(pause); exit(0); 图1 通讯录主菜单结果图2 信息录入图3 通讯信息显示图4 通讯信息保存五、调试与测试所谓程序调试是对程序的查错和排错。对此程序我们进行了以步骤:人工检查,即静态检查。此过程我们对于写好的程序进行了排查,并且进行了注释。上机调试。通过上机调试发现的错误为动态检查,这时发现了许多错误和警告,我们根据提示逐一改正。运行程序。这一步骤我们逐一检查每个菜单是否运行正常与正确,在这个过程中我们出现了许多格式不正确,我们细心的进行修改。总之,在我们对程序进行了细心的调试和测试之后,我们的程序正常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新能源汽车智能网联技术应用与用户付费意愿2025年前瞻性报告
- 第16课 苏联的工业化与农业集体化说课稿-2025-2026学年高中历史华东师大版上海第五分册-华东师大版上海2007
- 2025年大型锻件行业规模分析及投资前景研究报告
- 2025年产业用纺织品行业前景分析及投资机遇研究报告
- 2025年生态厕所行业规模分析及投资前景研究报告
- (2025年标准)户口过继协议书
- (2025年标准)和平精英协议书
- (2025年标准)和老婆的协议书
- 2025年离合器行业需求分析及创新策略研究报告
- (2025年标准)合伙种植大棚协议书
- 天路男声合唱谱
- 电网工程劳务分包 投标方案(技术方案)
- 小学道德与法治六年级上册第三单元《我们的国家机构》单元整体分析 大单元整体教学设计
- 《电力系统治安反恐防范要求 第4部分:风力发电企业》
- 2022水利工程工程量清单计价规范
- 《生产部月报模板》课件
- 医疗器械市场开发的成功案例分析
- 部编版四年级上册道德与法治《我们班四岁了》说课教学复习课件
- 小学道德与法治知识讲座
- 设备采购 投标方案(技术方案)
- 数字经济与人工智能
评论
0/150
提交评论