您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 85湖南文理学院_通讯录管理系统课程设计报告书(C语言)
湖南文理院学二〇一〇学年第二学期电气与信息工程学院课程设计报告书课程名称:C语言课程设计班级:通信09102班学号:200916020216姓名:颜文武指导老师:张晓虎二〇一〇年十月通讯录管理系统一.需求分析设计题目及要求:◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;◆能够提供添加、删除和修改通讯录信息的功能;◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询;◆将通讯录保存在文件中;◆能够按表格方式输出通讯录信息。系统功能需求分析:主要包含一下多种功能:添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件二.概要设计系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件三.详细设计(1).通讯录:typedefstruct{charscore;/*编号*/charname[10];/*姓名*/charnum[15];/*号码*/charemail[20];/*邮箱*/charage[8];/*年龄*/charadds[20];/*住址*/}Person;voidmain()/*主函数*/{intn=0;for(;;){switch(menu_select()){case1:printf(\n\t添加记录到通讯录\n);/*添加记录*/n=Input(pe,n);break;case2:printf(\n\t\t\t通讯录记录表\n);/*显示记录*/Display(pe,n);break;case3:printf(\n\t从通讯录中删除记录\n);n=Delete_a_record(pe,n);/*删除记录*/printf(\t);system(pause);break;case4:printf(\n\t在通讯录中查找记录\n);Query_a_record(pe,n);/*查找记录*/printf(\t);system(pause);break;case5:printf(\n\t修改通讯录中的记录\n);Change(pe,n);/*修改数据*/printf(\t);system(pause);break;case6:printf(\n\t保存功能\n);WritetoText(pe,n);/*保存数据*/printf(\t);system(pause);break;case0:printf(\n\t\t谢谢使用,再见!\n);/*结束程序*/printf(\n\t\t);system(pause);exit(0);}}}(2).工作流程图:①添加:添加通讯录记录②显示:显示通讯录记录③删除:删除通讯录记录④查询:查询通讯录记录先选择查询方式,以姓名查询方式为例⑤修改:修改通讯录记录四.源程序代码#includestdio.h#includestdlib.h#includestring.htypedefstruct{charscore;/*编号*/charname[10];/*姓名*/charnum[15];/*号码*/charemail[20];/*邮箱*/charage[8];/*年龄*/charadds[20];/*住址*/}Person;Personpe[80];intmenu_select(){charc;do{system(cls);printf(\t\t*****通讯录*****\n);printf(\t\t┌───────┐\n);printf(\t\t│1.添加记录│\n);printf(\t\t│2.显示记录│\n);printf(\t\t│3.删除记录│\n);printf(\t\t│4.查询记录│\n);printf(\t\t│5.修改记录│\n);printf(\t\t│6.保存记录│\n);printf(\t\t│0.退出程序│\n);printf(\t\t└───────┘\n);printf(\t\t请您选择(0-6):);c=getchar();}while(c'0'||c'6');return(c-'0');}intInput(Personper[],intn){inti=0;charsign,x[10];while(sign!='n'&&sign!='N'){printf(\t编号:);scanf(\t%d,&per[n+i].score);printf(\t姓名:);scanf(\t%s,per[n+i].name);printf(\t年龄:);scanf(\t%s,per[n+i].age);printf(\t电话号码:);scanf(\t%s,per[n+i].num);printf(\t通讯住址:);scanf(\t%s,per[n+i].adds);printf(\t电子邮箱:);scanf(\t%s,per[n+i].email);gets(x);printf(\n\t是否继续添加?(Y/N));scanf(\t%c,&sign);i++;}return(n+i);}voidDisplay(Personper[],intn){inti;printf(----------------------------------------------------------------------\n);/*格式*/printf(编号姓名年龄电话号码通讯地址电子邮箱\n);printf(----------------------------------------------------------------------\n);for(i=1;in+1;i++){printf(%-5d%-8s%-6s%-13s%-15s%-15s\n,per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,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(Personper[],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].num,per[j+1].num);strcpy(per[j].name,per[j+1].name);strcpy(per[j].age,per[j+1].age);strcpy(per[j].adds,per[j+1].adds);strcpy(per[j].email,per[j+1].email);per[j].score=per[j+1].score;}printf(\t\t\t已经成功删除!\n);return(n-1);}voidQuery_a_record(Personper[],intn){intm;printf(\t\n请选择查询方式:\n);printf(\t┌──────┐\n);printf(\t│1------姓名│\n);printf(\t│2------电话│\n);printf(\t│3------地址│\n);printf(\t│4------返回│\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此人编号:%d\n,per[i].score);printf(\t此人年龄:%s\n,per[i].age);printf(\t电话号码:%s\n,per[i].num);printf(\t通讯地址:%s\n,per[i].adds);printf(\t电子邮箱:%s\n,per[i].email);};if(m==2){chars[20];inti=0;printf(\t请输入想查询的电话:);scanf(\t%s,s);while(strcmp(per[i].num,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t此人编号:%d\n,per[i].score);printf(\t此人姓名:%s\n,per[i].name);printf(\t此人年龄:%s\n,per[i].age);printf(\t通讯地址:%s\n,per[i].adds);printf(\t电子邮箱:%s\n,per[i].email);};if(m==3){chars[20];inti=0;printf(\t请输入想查询的地址:);scanf(\t%s,s);while(strcmp(per[i].adds,s)!=0&&in)i++;if(i==n){printf(\t通讯录中没有此人!\n);return;}printf(\t此人编号:%d\n,per[i].score);printf(\t此人姓名:%s\n,per[i].name);printf(\t此人年龄:%s\n,per[i].age);printf(\t电话号码:%s\n,per[i].num);printf(\t电子邮箱:%s\n,per[i].email);};}voidChange(Personper[],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(\t编号:);scanf(\t%d,&per[i].score);printf(\t姓名:);scanf(\t%s,per[i].name);printf(\t年龄:);scanf(\t%s,per[i].age);printf(\t电话号码:);scanf(\t%s,per[i].num);printf(\t通讯住址:);scanf(\t%s,per[i].adds);printf(\t电子邮箱:);scanf(\t%s,per[i].email);printf(\t修改成功!);}voidWritetoText(Personper[],intn){inti=0;FILE*fp;/*
本文标题:85湖南文理学院_通讯录管理系统课程设计报告书(C语言)
链接地址:https://www.777doc.com/doc-4265228 .html