展开全部
分有点低 通讯录管理系统 我这个是原版,但差别不大,修改几个地方就可以了,我就不修改了! #include<stdio.h>#include<string.h>#define M 100 static int N=0,I=0; struct student { char name[20]; char num[20]; char qq[20]; char type[10]; }stu[M]; void menu(); void add(); void find(); void alter(); void Delete(); void list(); void input(); void output(); int quit(); int Find(char []); int Find_num(char []); int Find_qq(char []); int Find_type(char []); void main() { int op; menu(); while(1) { printf("\t\n\t\t 请选择功能(1-8):"); scanf("%d",&op); getchar(); switch(op) { case 1: printf("\n\t1.***********新增记录****************\n"); add(); break; case 2: printf("\n\t2.**********查找通讯录***************\n"); find(); break; case 3: printf("\n\t3.**********修改通讯录***************\n"); alter(); break; case 4: printf("\n\t4.**********删除通讯录***************\n"); Delete(); break; case 5: printf("\n\t5.**********显示通讯录***************\n"); list(); break; case 6: printf("\n\t6.*******从内存导出文件中************\n"); output(); break; case 7: printf("\n\t7.*******从文件导入内存中************\n"); input(); break; break; case 8: printf("\n\t8.*************退出******************\n"); op=quit(); break; default: printf("\tNot have the function!\n"); break; } if(op==8) { printf("\n\t感谢您的使用,已退出程序!\n\t"); break; } else continue; } } void menu() { printf("\n"); printf("\t************通讯录管理菜单***********\n"); printf("\t\t1.增加新的记录\n"); printf("\t\t2.查找通讯录\n"); printf("\t\t3.修改通讯录\n"); printf("\t\t4.删除通讯录\n"); printf("\t\t5.显示全部通讯录\n"); printf("\t\t6.把通讯录导出到文件\n"); printf("\t\t7.从文件导入通讯录\n"); printf("\t\t8.退出\n"); printf("\t*************************************\n"); } //1实现新增 void add() { struct student stud; while(1) { printf("\n\t当前共存在%d条记录,请输入下一条:",N); if(N==0) { printf("\n\t请输入姓名:"); scanf("%s",stu[N].name); printf("\t请输入电话号码:"); scanf("%s",stu[N].num); printf("\t请输入QQ号:"); scanf("%s",stu[N].qq); printf("\t请输入类别(小学、初中、高中、大学):"); scanf("%s",stu[N].type); N++; printf("\n\t是否输入下一条(Y)?按任意键返回主菜单:"); if(getchar()=='Y'||getchar()=='y') continue; break; } printf("\n\t请输入姓名:"); scanf("%s",&stud.name); printf("\t请输入电话号码:"); scanf("%s",&stud.num); printf("\t请输入QQ号:"); scanf("%s",&stud.qq); printf("\t请输入类别(小学、初中、高中、大学):"); scanf("%s",&stud.type); if(!Find(stud.name)) { printf("\n\t发现通讯录中存在该记录,确认新增吗(Y)?其它任意键将覆盖:"); if(getchar()=='Y'||getchar()=='y') { stu[N]=stud; N++; } else stu[I]=stud; printf("\n\t操作成功!\n"); } else { stu[N]=stud; N++; } printf("\n\t是否输入下一条(Y)?按任意键返回主菜单:"); if(getchar()=='Y'||getchar()=='y') continue; break; } menu(); } //2 实现查找 void find() { char s[20],ch,ch1; while(1) { printf("\n\t****选择查找方式****"); printf("\n\t1.按姓名查找:"); printf("\n\t2.按电话号码查找:"); printf("\n\t3.按QQ查找:"); printf("\n\t4.按类别查找:"); printf("\n\t*******************\n"); printf("\n\t请输入查找方式(1-4):"); ch=getchar(); getchar(); switch(ch) { case '1': printf("\n\t请输入姓名:"); gets(s); if(Find(s)) printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n"); break; case '2': printf("\n\t请输入电话号码:"); gets(s); if(Find_num(s)) printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n"); break; case '3': printf("\n\t请输入QQ号码:"); gets(s); if(Find_qq(s)) printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n"); break; case '4': printf("\n\t请输入类别:"); gets(s); if(Find_type(s)) printf("\n\t查找失败,请确认是否输入有误或不存在该记录!\n"); break; default: printf("\tHave not the function!"); printf("\t\n"); break; } printf("\n\t继续查找吗(Y)?,按任意键返回主菜单:"); ch1=getchar(); getchar(); if(ch1=='Y'||ch1=='y') continue; break; } menu(); } //3 实现修改 void alter() { char ch,ch1,ch2,s[20]; printf("\n\t请输入要修改的姓名:"); gets(s); if(Find(s)) printf("\n\t查找失败,请确认是否输入有误或不存在该记录!"); else { printf("\n\t*****请选择修改方式*****:"); printf("\n\t1.覆盖修改(重新输入全部信息)"); printf("\n\t2.部分修改"); printf("\n\t************************\n"); printf("\n\t请选择修改的方式(1-2):"); ch=getchar(); getchar(); switch(ch) { case '1': printf("\n\t请输入姓名:"); scanf("%s",stu[I].name); printf("\t请输入电话号码:"); scanf("%s",stu[I].num); printf("\t请输入QQ:"); scanf("%s",stu[I].qq); printf("\t请输入类别(小学、初中、高中、大学):"); scanf("%s",stu[I].type); printf("\n\t修改成功! 修改后记录为:\n"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); printf("\n\t%-8s%-16s%-16s%-8s",stu[I].name,stu[I].num,stu[I].qq,stu[I].type); break; case '2': while(1) { printf("\n\t**请选择要修改的项目:***"); printf("\n\t1.姓名"); printf("\n\t2.电话号码:"); printf("\n\t3.QQ:"); printf("\n\t4.类别:"); printf("\n\t************************\n"); printf("\n\t请输入要修改的项目(1-4):"); ch1=getchar(); getchar(); switch(ch1) { case '1': printf("\n\t请输入修改后的姓名:"); scanf("%s",s); break; case '2': printf("\n\t请输入修改后的电话号码:"); scanf("%s",stu[I].num); break; case '3': printf("\n\t请输入修改后的QQ:"); scanf("%s",stu[I].qq); break; case '4': printf("\n\t请输入修改后的类别(小学、初中、高中、大学):"); scanf("%s",stu[I].type); break; } getchar(); printf("\n\t修改成功! 修改后记录为:\n"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); printf("\n\t%-8s%-16s%-16s%-8s",stu[I].name,stu[I].num,stu[I].qq,stu[I].type); printf("\n\t继续修改(Y)?按任意键返回主菜单:"); ch2=getchar(); getchar(); if(ch2=='Y'||ch2=='y') continue; break; } break; } } menu(); } //4 实现删除 void Delete() { char s[20],ch; while(1) { printf("\n\t请输入要删除的姓名:"); scanf("%s",s); getchar(); if(Find(s)) { printf("\n\t不存在该条记录,请确认是否输入有误或不存在该记录!\n"); break; } else { printf("\n\t确认删除该条记录吗(Y)?按任意键保留原纪录并返回主菜单:"); ch=getchar(); if(ch=='Y'||ch=='y') { for(I;I<N-1;I++) stu[I]=stu[I+1]; printf("\n\t删除成功!\n"); N-=1; break; } printf("\n\t已保留原纪录!\n"); break; } } menu(); } //5 实现全部显示 void list() { int c=0; for(int i=0;i<N;i++) { if(c==0) { printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); } printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type); c++; } printf("\n\t\t\t\t当前记录共有%d条!",i); menu(); } //6实现导出 void output() { FILE *fp; if((fp=fopen("tongxunlu.txt","w"))==NULL) printf("\n\tcan not open the file!"); for(int i=0;i<N;i++) { fwrite(&stu[i],sizeof(struct student),1,fp); } fclose(fp); printf("\n\t导出成功!\n"); menu(); } //7实现导入 void input() { FILE *fp; struct student stud1; if((fp=fopen("tongxunlu.txt","r"))==NULL) printf("\n\tcan not open the file!"); printf("\t姓名\t电话号码\tQQ\t\t类别\n"); for(int i=0;i<N;i++) { fread(&stud1,sizeof(struct student),1,fp); printf("\n\t%-8s%-16s%-16s%-8s",stud1.name,stud1.num,stud1.qq,stud1.type); } fclose(fp); printf("\n\t导入成功!\n"); menu(); } //8实现程序退出 int quit() { char ch; printf("\n\t确定退出吗(Y)?按任意键返回主菜单:"); ch=getchar(); if(ch=='Y'||ch=='y') return(8); else return(1); } //用于名字查找 int Find(char s[]) { int i,c,c1=0; for(i=0;i<N;i++) { while(1) { if((strcmp(stu[i].name,s))==0) { I=i,c=0; if(c1==0) { printf("\n\t查找成功:"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); } printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type); c1++; break; } else break; } } if(c==0) return(c); else return(1); } int Find_num(char s[]) { int i,c,c1=0; for(i=0;i<N;i++) { while(1) { if((strcmp(stu[i].num,s))==0) { I=i,c=0; if(c1==0) { printf("\n\t查找成功:"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); } printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type); c1++; break; } break; } } if(c==0) return(c); else return(1); } int Find_qq(char s[]) { int i,c,c1=0; for(i=0;i<N;i++) { while(1) { if((strcmp(stu[i].qq,s))==0) { I=i,c=0; if(c1==0) { printf("\n\t查找成功:"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); } printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type); c1++; break; } break; } } if(c==0) return(c); else return(1); } int Find_type(char s[]) { int i,c,c1=0; for(i=0;i<N;i++) { while(1) { if((strcmp(stu[i].type,s))==0) { I=i,c=0; if(c1==0) { printf("\n\t查找成功:"); printf("\n\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"); printf("\n\t姓名\t电话号码\tQQ\t\t类别"); } printf("\n\t%-8s%-16s%-16s%-8s",stu[i].name,stu[i].num,stu[i].qq,stu[i].type); c1++; break; } break; } } if(c==0) return(c); else return(1); }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
校管家
2024-12-23 广告
2024-12-23 广告
我们学校用的校管家,用了三年了,挺不错的。校管家是国内第一批做教务管理系统的,公司的资质久,做了十几年,是这个行业数一数二的大牌子了,很多万人机构都在用,可以从招生、收费报名、分班排课、点名上课、家校服务、数据分析各个方面管理机构的日常办学...
点击进入详情页
本回答由校管家提供
展开全部
童鞋,要想学好,又不想花时间,那是不可能的,就算一天你学一课,你也得学20多天,但是每天必须在电脑前做的超过5个小时,用MFC开发把,很简单的就是这添加点,那添加点代码写的不是很多
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怎么讲?你这等于什么都没说啊
更多追问追答
追问
我只学了c++,完全不知道怎么用MFC设计界面 但是课程设计要求做成界面 我现在只写了个程序 但是不是界面
追答
那你必须会windows编程啊,C++是基础,必须会,在此基础上必须学MFC,学了MFC再做吧。学MFC最好先学Windows编程,这样理解更深刻。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询