您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 通讯录管理系统课程设计报告..
1设计课题题目一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。2.课程设计要求制作一个通讯录系统。(1)该程序具有查找、添加、修改、删除功能。(2)通讯录包括:姓名、电话、街道、城市、省、邮编等。二、总体设计根据系统的要求,系统总体设计如图1所示。图信息录入管理系统通讯录信息显示通讯录信息保存显示通讯录信息删除通讯录信息增加信息通讯录信息查询信息通讯录信息修改通讯录信息录入录入2三、详细设计1、数据结构设计#includestdio.h/*标准输入输出函数库*/#includestdlib.h/*标准函数库*/#includestring.h/*字符串函数库*/#defineFILENAMEphone.datstructdate//定义一个结构体类型数组{charname[10];/*姓名*/charphone[12];/*电话*/charemail[20];/*邮箱*/charQQ[20];/*QQ*/}per[10];intmenu()//主菜单选择函数2.函数说明(1)主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。(2)其他各功能函数包括函数名功能intInput(structdateper[10],intn)输入记录voidQuery_a_record(structdateper[10],intn)信息查询voidDisplay(structdateper[10],intn)信息展示voidwriteToFile(structdateper[10],intn)记录保存为文件intDelete_a_record(structdateper[10],intn)信息删除intmenu_select();voidChange(structdateper[10],intn)主菜单函数修改信息3voidWritetoText(structdateper[10],intn)信息增加四、程序清单1、头文件#includestdio.h/*标准输入输出函数库*/#includestdlib.h/*标准函数库*/#includestring.h/*字符串函数库*/#defineFILENAMEphone.dat2、主函数voidmain()//主函数{intn=0,i;while(1){switch(menu()){case1:{printf(\n\t通讯信息录入\n);//信息录入n=Input(per,n);}break;case2:printf(\n\t\t\t通讯录记录表\n);//显示记录Display(per,n);break;case3:printf(\n\t保存功能\n);WritetoText(per,n);//保存数据printf(\t);system(pause);//操作完成后进行暂停break;case4:printf(\n\t从通讯录中删除记录\n);n=Delete_a_record(per,n);//删除记录printf(\t);system(pause);break;case5:printf(\n\t修改通讯录中的记录\n);Change(per,n);//修改数据4printf(\t);system(pause);break;case6:printf(\n\t添加记录到通讯录\n);//添加记录n=Input(per,n);break;case7:printf(\n\t在通讯录中查找记录\n);Query_a_record(per,n);//查找记录printf(\t);system(pause);//从程序里调用”pause”命令break;case0:printf(\n\t\t谢谢使用,再见!\n);//结束程序printf(\n\t\t);system(pause);exit(0);}五、总程序和分工执行结果#includestdio.h/*标准输入输出函数库*/#includestdlib.h/*标准函数库*/#includestring.h/*字符串函数库*/#defineFILENAMEphone.datstructdate//定义一个结构体类型数组{charname[10];/*姓名*/charphone[12];charemail[20];/*邮箱*/charQQ[20];}per[10];intmenu()//主菜单选择函数{intc;//定义一个整型变量do{system(cls);//清屏printf(\t*******通讯录*******\n);printf(\t--------------------\n);printf(\t1、通讯信息录入\n);5printf(\t2、通讯信息显示\n);printf(\t3、通讯信息保存\n);printf(\t4、通讯信息删除\n);printf(\t5、通讯信息修改\n);printf(\t6、通讯信息增加\n);printf(\t7、通讯信息查询\n);printf(\t0.退出\n);printf(\t--------------------\n);printf(\t请您选择(0-7):);scanf(%d,&c);}while(c7&&c0);return(c);}intInput(structdateper[10],intn){inti=0;charsign,x[10];while(sign!='n'&&sign!='N'){printf(\t姓名:);scanf(%s,per[n+i].name);printf(\t电话号码:);scanf(%s,per[n+i].phone);printf(\t电子邮箱:);scanf(%s,per[n+i].email);printf(\tQQ:);scanf(%s,per[n+i].QQ);gets(x);printf(\n\t是否继续添加?(Y/N));fflush(stdin);//清空缓存scanf(%c,&sign);i++;}return(n+i);}voidwriteToFile(structdateper[10],intn){FILE*fp=NULL;inti=0;fp=fopen(phone.dat,wb);if(fp==NULL){printf(打开文件出错!\n);exit(0);}6for(i=0;i10;i++)fwrite(&per[i],sizeof(per),1,fp);//把字节为1的信息写入文件fclose(fp);}voidDisplay(structdateper[10],intn){inti;printf(----------------------------------------------------------------------\n);//格式/printf(姓名电话号码QQ电子邮箱\n);printf(----------------------------------------------------------------------\n);for(i=1;in+1;i++){printf(%-15s%-14s%-14s%-14s\n,per[i-1].name,per[i-1].phone,per[i-1].QQ,per[i-1].email);if(i1&&i%10==0){printf(\t-----------------------------------\n);printf(\t);system(pause);printf(\t-----------------------------------\n);}}printf(----------------------------------------------------------------------\n);system(pause);}intDelete_a_record(structdateper[10],intn){chars[20];inti=0,j;printf(\t请输入想删除记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return(n);}for(j=i;jn-1;j++){strcpy(per[j].phone,per[j+1].phone);strcpy(per[j].name,per[j+1].name);strcpy(per[j].QQ,per[j+1].QQ);strcpy(per[j].email,per[j+1].email);}printf(\t\t\t已经成功删除!\n);return(n-1);}7voidQuery_a_record(structdateper[10],intn){intm;printf(\t\n请选择查询方式:\n);printf(\t┌──────┐\n);printf(\t│1------姓名│\n);printf(\t│2------电话│\n);printf(\t│3------返回│\n);printf(\t└──────┘\n);printf(请选择:);scanf(%d,&m);while(m!=1&&m!=2&&m!=3&&m!=4){printf(输入错误,请重新选择:);scanf(%d,&m);}if(m==1){chars[20];inti=0;printf(\t请输入想查询的姓名:);scanf(\t%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t此人QQ:%s\n,per[i].QQ);printf(\t电话号码:%s\n,per[i].phone);printf(\t电子邮箱:%s\n,per[i].email);};if(m==2){chars[20];inti=0;printf(\t请输入想查询的电话:);scanf(\t%s,s);while(strcmp(per[i].phone,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;8}printf(\t此人姓名:%s\n,per[i].name);printf(\t此人QQ:%s\n,per[i].QQ);printf(\t电子邮箱:%s\n,per[i].email);};}voidChange(structdateper[10],intn){chars[20];inti=0;printf(\t请输入想修改的记录中的名字:);scanf(%s,s);while(strcmp(per[i].name,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(姓名:);scanf(%s,per[i].name);printf(电话号码:);scanf(%s,per[i].phone);printf(QQ:);scanf(%s,per[i].QQ);printf(电子邮箱:);scanf(%s,per[i].email);printf(\n修改成功!);}voidWritetoText(structdateper[10],intn){inti=0;FILE*fp;//定义文件指针charfilename[20];//定义文件名printf(\t保存到文件\n);//输入文件名if((fp=fopen(pho
本文标题:通讯录管理系统课程设计报告..
链接地址:https://www.777doc.com/doc-3089857 .html