C语言课程设计论文通讯录管理系统.doc
中国地质大学(武汉)C语言课程设计学 院: 计算机学院 专 业: 网络工程 题 目: 通讯录管理系统班 级: 姓 名: 学 号: 指导教师: 2010年6月30日1 题目:通讯录管理系统2 要求:具有数据输入,删除,修改,显示和查询功能的电话薄管理系统。 (1) 数据包括:人名,工作单位,电话号码和E-mail地址。 (2)可对记录中的姓名和电话号码进行修改。 (3)可增加或删除记录。 (4)可显示所有保存记录。 (5)可按人名或电话号码进行查询。3 设计思路:根据题目要求,本程序应该采用结构体数组和文件系统实现。其中,结构体成员包括人名,工作单位,电话号码和E-mail地址。数组中的数据均为字符串型。 (1) 输入模块流程图结束 开始输入通讯录管理系统的信息保存信息(2)删除模块流程图 结束I!=0吗?输入要删除的姓名开始显示用户想要删除的记录没有找到显示找到的记录并删除记录是否删除返回主菜单(3)修改模块流程图提示没有找到I!=吗?输入要修改的姓名显示所有记录,让用户看那条信息需要修改开始是否修改显示找到的记录并修改记录NYY结束返回主菜单N 开始 结束(4)显示模块流程图输入想要显示的信息显示信息结束(5) 查询模块流程图选择下一步操作是否继续退出显示找到的纪录提示没有找到是否找到记录输入要查找的姓名开始结束Y源程序:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>struct contacks char name10; char workplace20; char tele20; char email20; con50;int k=0;void enter();void display();void look();void change();void del();void save();void main()int a; do printf("nn *n"); printf(" *"); printf("tt欢迎进入通讯录管理系统"); printf("tt*"); printf("n *n"); printf(" *"); printf("t 1.增加记录"); printf("ttttt*n"); printf(" *"); printf("t 2.显示记录"); printf("tttt*n"); printf(" *"); printf("t 3.查询记录"); printf("ttttt*n"); printf(" *"); printf("t 4.修改记录"); printf("ttttt*n"); printf(" *"); printf("t 5.删除记录"); printf("ttttt*n"); printf(" *"); printf("t 6.保存记录"); printf("tttt*n"); printf(" *"); printf("t 7.退出系统"); printf("ttttt*n"); printf(" *n"); printf(" Enter you choice : "); scanf("%d",&a); switch(a) case 1:printf("n");enter();break; case 2:printf("n");display();break; case 3:printf("n");look();break; case 4:printf("n");change();break; case 5:printf("n");del();break; case 6:printf("n");save();break; case 7:printf("n");exit(0);break; default:printf("nThe choice is between 1 to 6.n"); while(a!=0); getch(); void enter() char ch20;printf("nenter student information:n");do printf("nname: "); scanf("%s",conk.name); printf("workplace: "); scanf("%s",conk.workplace); printf("ntelephone: "); scanf("%s",conk.tele); printf("nemail: "); scanf("%s",conk.email); k+; printf("nif want continue input student information(y/n): "); scanf("%s",ch); while(strcmp(ch,"y")=0|strcmp(ch,"Y")=0); display();void display() int i; printf(" the information is:n"); for(i=0;i<k;i+) printf("%-10s %-20s %-20s %-20s ",coni.name,coni.workplace,coni.tele,coni.email); printf("n"); void look()int i;char a20; printf("nenter you want look name:"); scanf("%s",a); for(i=0;i<k;i+) if(strcmp(coni.name,a)=0) printf("%-10s %-20s %-20s %-20s ",coni.name,coni.workplace,coni.tele,coni.email); printf("nenter you want look telephone:"); scanf("%s",a); for(i=0;i<k;i+) if(strcmp(coni.tele,a)=0) printf("%-10s %-20s %-20s %-20s ",coni.name,coni.workplace,coni.tele,coni.email); void change() int i; char ch20,a20; printf("nenter you want change name:"); scanf("%s",a); for(i=0;i<k;i+) if(strcmp(coni.name,a)=0) printf("nyou sure want change student name(y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("nname:"); scanf("%s",coni.name); printf("nyou sure want change telephone(y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("ntelephone"); scanf("%s",coni.tele); display();void del()int i,j;char c20,ch20; printf("nyou sure want delete (y/n): "); scanf("%s",ch); if(strcmp(ch,"y")=0|strcmp(ch,"Y")=0) printf("nname : ") ; scanf("%s",c); for(i=0;i<k;i+) if(strcmp(c,coni.name)=0) break; for(j=i;j<=2;j+) conj=conj+1; printf("tttyou had delete %sn",c); k-; display();void save() FILE *fp; int i; if(fp=fopen("xinxi.txt","w")=NULL) printf("cannot write the file.n"); exit(0); for(i=0;strlen(coni.name)!=0;i+) fprintf(fp,"%s %s %s %s n",coni.name,coni.workplace,coni.tele,coni.email); fclose(fp);程序运行后的截图操作界面(2)增加功能(3)显示功能(4)查询功能(5)修改功能(6)删除功能个人感想: 经过这次C语言课程设计,我认识到自身对于个别程序设计方法不理解,也就是自己在平时学习中的漏洞,这要求我在今后的学习中要多多努力,彻底弄清楚C语言这门课精髓所在。这次课程设计,也大大提高了我的动手操作能力,我认为,自己这次收获很大。