星空5G 导航

用C++语言通讯录管理软件的设计-

2024-07-06编辑:本站
通讯录管理系统设计C++~

我们C++实习刚好做过一个类似的题目(笑),你可以把题目要求说得更详细一些吗?比如从文件中读取和存储是txt文件还是其他?查询功能要求使用指针吗?显示功能是全部输出吗?
因为是私人编写,所以最好私信我,我尽量帮忙解决问题(个人也不是特别熟练//摸头)

哦哦哦

有点难看。如果有邮箱可以再发给你。
我这个是原版,但差别不大,修改结构体的成员就可以了,我就不修改了!我的劳动成果。请采纳啊!!!!!!!!!#include<stdio.h>#include<string.h>#define M 100static 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;}elsecontinue;}}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++;}elsestu[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);elsereturn(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;}elsebreak;}} if(c==0)return(c);elsereturn(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);elsereturn(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);elsereturn(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);elsereturn(1);}

写个结构体,结构体成员包括姓名,地址,电话,邮编,E-mail等,下载一个汉字对应字母的表格,建个按字母顺序排好的双链表就可以实现。

  • 这是一个c语言通讯录管理系统,有几个小功能需要实现
  • 答:int num; //这里使用数组解决通讯录的问题,实际上使用链表更好。int menu_select(){ char s[80];int a;/*定义整形变量*/ system("cls");printf("\t\t***欢迎进入通讯管理界面***\n\n");printf("\t\t\t0. 输入记录\n");printf("\t\t\t1. 显示记录\n");printf("\t\t\t...

  • C语言程序设计——课程设计——通讯录管理系统
  • 答:C语言程序设计课程设计任务书一、设计题目、内容及要求题目:通讯录程序设计设计一个实用的小型通讯录程序,具有查询和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件... C语言程序设计 课程设计任务书一、设计题目、内容及要求题目:通讯录程序设计设计一个实用的小型通讯录程序,具有查询和删除功能,并且能...

  • C语言程序设计—通讯录管理系统
  • 答:):输出电话薄中联系人的个人信息的子函数*/ void output(){ struct person one;if((fp=fopen(filename,"r"))==NULL){ printf("\n不能打开通讯录!");exit();} printf("\n\n%20s\n","通 讯 录");while(!feof(fp)){ fscanf(fp,"%s%s%s\n",one.name,one.tel,one.addr);...

  • c语言程序设计——编一个通讯录管理程序:序号 姓名 电话 地址
  • 答:简单通讯录管理程序,代码如下:#include <stdio.h> include <string.h> include <stdlib.h> typedef struct student ST;struct student { char stN[20];char stVal[128];char stNo[10];char stTel[12];ST next;};ST head = NULL;int ShowNode(){ char no[20]= {0};ST t;printf("...

  • 麻烦高手帮我编个C语言程序,通讯录管理程序,
  • 答:include <stdio.h> include <string.h> include <stdlib.h> typedef struct student *ST;struct student { char stN[20];char stVal[128];char stNo[10];char stTel[12];ST next;};ST head = NULL;int ShowNode(){ char no[20] = {0};ST t;printf("输入姓名:");scanf("%s", ...

  • C语言课程设计求通讯录管理代码
  • 答:C语言课程设计求通讯录管理代码 80 1.注意功能:(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询2.要求:界面友好,易于操作... 1.注意功能:(1) 能建立、修改和增删学生通讯录(2) 能够按多种方式进行查询2.要求:界面友好,易于操作 展开  我来答 ...

  • c语言程序设计——编一个通讯录管理程序:序号 姓名 电话 地址
  • 答:c语言程序设计——编一个通讯录管理程序:序号姓名电话地址可显示已录入的通讯录实现新纪录的录入可以删除、修改任何一条记录可以根据姓名、电话、或地址查询相关信息系统的退出嗯,邮... c语言程序设计——编一个通讯录管理程序:序号 姓名 电话 地址可显示已录入的通讯录实现新纪录的录入可以删除、修改任何一条记录...

  • 谁帮我做个C语言通讯录啊,不要有错误啊谢啦。。(需求分析都在)_百度知 ...
  • 答:2009-06-16 哪位高手能帮忙做个C语言通讯录啊.(急) 1 2014-06-12 做了一个C语言通讯录,总是在出错,帮忙看下 1 2011-12-21 谁能帮我写一个c语言通讯录程序设计,要用大一上学期所学的知识... 7 2007-08-08 C语言编写通讯录项目有谁会啊 20 2015-01-06 急求c语言编程的个人通讯录管理系统~...

  • 求用C语言建立通讯录管理系统
  • 答:2012-04-18 求用C语言编写一个 通讯录管理系统 。设计要求如下 14 2012-06-09 用C语言编写一个通讯录管理系统 29 2010-11-29 用C语言. 编写一个“通讯录管理系统”程序 18 2015-01-06 急求c语言编程的个人通讯录管理系统~ 4 2015-01-14 C语言,编写一个简单的通讯录管理系统?? 49 更多类似问...

  • 怎么介绍c语言制作的通讯录管理系统
  • 答:1. 任务描述 设计一个管理通讯录的程序。完成:1、数据的插入、删除、修改和显示功能;2、实现按人名或电话号码进行查询的功能;3、提供键盘式选择菜单以实现功能选择。提示:信息记录要求放到文件中,因而要实现文件的输入输出操作,整个系统可以设计为多模块结构,由数据插入模块、数据修改模块、数据删除...

    相关内容

    首页 新知 身健
    返回顶部

    © 星空5G w.xkyn.com