通讯录管理系统源代码
(完整word版)通讯录管理系统源代码
源代码:#include "stdio.h"#include ”stdlib。
h"#include "string.h”#include "conio.h”#include "stdlib.h”#define null 0struct record{char name[20];char phone[20];char adress[40];char postcode[10];char e_mail[30];}student[500];struct LinkList{struct record US;struct LinkList *next;}a;struct LinkList *head=null;int num=0;FILE *fp;int menu_select();int adduser();int list();int search();int display();int add();int listbyname();int dele();int save();int exit();void main(){system(”cls”);for(;;){switch(menu_select()){case 0:adduser();break;case 1:list();break;case 2:search();break;case 3:display();break;case 4:add();break;case 5:listbyname();break;case 6:dele();break;case 7:save();break;case 8:exit(0);}}}menu_select(){char s[80];int a;printf("*_* press any key enter menu!*_*\n");getch();system(”cls”);printf(”\t\t********************MENU*********************\n\n");printf("\t\t 0。
[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录
[数据结构课程设计通讯录查询系统实验报告范文及源代码]数据结构通讯录工程名称:停车管理系统姓名:学号:专业:软件工程1.需求分析为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的与地址。
设计散列表存储,设计并实现通讯录查找系统。
1.根本要求〔1〕每个记录有以下数据项:号码、用户名、地址;〔2〕从键盘输入各记录,分别以号码为关键字建立散列表;〔3〕采用二次探测再散列法解决冲突;〔4〕查找并显示给定号码的记录;〔5〕通讯录信息文件保存。
2.重点、难点重点:〔1〕通过实验深入理解哈希表既是一种存储形式,又是一种查找方法;〔2〕哈希表的构造;〔3〕哈希冲突方案的设计。
难点:哈希表的构造与哈希冲突方案的设计输入的形式和输入值的范围;输入三个字符串:分别是号码,姓名,地址,每行一个数据字符串长度适当如:号码〔纯数字〕姓名地址输出的形式;如:姓名号码地址程序所能到达的功能。
1:并且通过号码为关键字,用二次再散列法寻找地址储存在哈希表中。
2:3:4:5:显示通讯录6:把通讯录写入文件储存。
2.概要设计(1)数据结构tructlit{chara[12];charname[15];charadd[15];intf=0;};用连续的内存空间构建哈希表tructqtack{tructlit某bae;inti;};(2)程序模块1:构建二次再散列:inti;for(i=1;i<25;i++)d[2某i]=-1某i某i;for(i=1;i<25;i++)/某构造二次再散列某/d[i+i-1]=i某i;2:主菜单:voidinterface(){inti;printf("某某某某某某某某某某某某某某某某某某某某\n");printf("某某某某某某某某某某某某某某某某某某某某\n");canf("%d",&i);witch(i){cae0:return;break;cae1:huru();break;cae2:print();break;cae3:each();break;cae4:del();break;cae5:change();break;cae6:write();break;};}3:输入voidhuru()4:存入哈希表,采用二次探测再散列法解决冲突;voidtore(char某a,char某name,char某add)voideach();voidchange()Voiddel〔〕;voidwrite()(3)各模块之间的调用关系以及算法设计3.详细设计4.测试与分析主界面:构建哈希表,允许号码重复可以支持姓名,,地址三个关键字的查找可以按照姓名地址删除写文件:创立文件通讯录.t某t 如图:5.附录3.cpp#include<tdio.h>#include<tdlib.h>#include<tring.h>#include<iotream>#include<tring.h>uingnamepacetd;intd[50];/某再散列某/tructlit{chara[12];charname[15];charadd[15];intf=0;};tructqtack{tructlit某bae;inti;};tructqtackS;voidtore(char某a,char某name,char某add){intkey;key=int(a[0])+int(a[3])+int(a[7]);/某以号码的第1,4,8位作为关键字构造哈希函数某/S.i=key%20;intj=1;while(true){if((S.bae+S.i)->f==0){trcpy((S.bae+S.i)->a,a);trcpy((S.bae+S.i)->name,name);trcpy((S.bae+S.i)->add,add);(S.bae+S.i)->f=1;break;}S.i=(key%20+d[j])%20;j++;}}voidhuru(){voidinterface();cout<<"请输入:\n例如:\n小王\n安徽省合肥市\n输入0结束\n"; chara[12];charname[15];charadd[15];while(true){canf("%",a);if(a[0]=='0')break;canf("%",name);canf("%",add);printf("%已保存\n",name);tore(a,name,add);/某将输入保存到哈希表某/}interface();}voidprint(){voidinterface();inti;printf("姓名号码地址\n");for(i=0;i<20;i++){if((S.bae+i)->f==1){printf("%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);}}interface();}voideach(){voidinterface();inti;intff=0;intb;chara[15];printf("输入1按号码查找,输入2按姓名查找,输入3按地址查找\n");canf("%d",&b);witch(b){cae1:printf("请输入号码\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->a)==0){printf("%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add); ff=1;}if(ff==0)printf("找不到该用户\n");break;cae2:printf("请输入姓名\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->name)==0){printf("%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add); ff=1;}if(ff==0)printf("找不到该用户\n");break;cae3:printf("请输入地址\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->add)==0){printf("%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add); ff=1;}if(ff==0)printf("找不到该用户\n");break;}interface();}voiddel(){voidinterface();inti;intff=0;chara[15];printf("输入1按号码删除,输入2按姓名删除,输入3按地址删除\n");canf("%d",&b);witch(b){cae1:printf("请输入号码\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->a)==0){(S.bae+i)->f=0;Print(“已删除:%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);ff=1;}if(ff==0)printf("找不到该用户\n");cae2:printf("请输入姓名\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->name)==0){(S.bae+i)->f=0;printf("已删除:%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);ff=1;}if(ff==0)printf("找不到该用户\n");break;cae3:printf("请输入地址\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->add)==0){(S.bae+i)->f=0;printf("已删除:%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);ff=1;}if(ff==0)printf("找不到该用户\n");break;}interface();}voidchange(){voidinterface();inti;intff=0;intb;chara[15];printf("请输入姓名\n");canf("%",a);for(i=0;i<20;i++)if(trcmp(a,(S.bae+i)->name)==0){printf("您要修改的是:%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);printf("请输入新信息\n");canf("%",(S.bae+i)->a);canf("%",(S.bae+i)->name);canf("%",(S.bae+i)->add);printf("已修改成:%%%\n",(S.bae+i)->name,(S.bae+i)->a,(S.bae+i)->add);ff=1;}if(ff==0)printf("找不到该用户\n");interface();}voidwrite()voidinterface();inti=0;FILE某fp;if((fp=fopen("通讯录.t某t","wb"))==NULL){printf("openfileerror\n");e某it(1);}for(i=0;i<=20;i++){intch=32;if((S.bae+i)->f==1){fprintf(fp,"%",(S.bae+i)->name);fputc(ch,fp); fprintf(fp,"%",(S.bae+i)->a);fputc(ch,fp);ch=10;fprintf(fp,"%",(S.bae+i)->add);fputc(ch,fp); }fcloe(fp);interface();}voidinterface(){inti;printf("某某某某某某某某某某某某某某某某某某某某\n"); printf("某某某某某某某某某某某某某某某某某某某某\n"); canf("%d",&i);witch(i){cae0:return;break;cae1:huru();break;cae2:print();break;cae3:each();break;cae4:del();break;cae5:change();break;cae6:write();break;}intmain(){ytem("color70");//可以写成red调出颜色组S.bae=(tructlit某)malloc(20某izeof(tructlit)); ytem("date/T");ytem("TIME/T");inti;for(i=1;i<25;i++)d[2某i]=-1某i某i;for(i=1;i<25;i++)/某构造二次再散列某/d[i+i-1]=i某i;interface();}6.用户使用手册根据主菜单提示选择所想要的操作0:结束程序小华安徽合肥可以根据姓名,,地址分别作为关键字进行查询谢谢使用!。
Java课程设计通讯录管理系统
摘要随着社会的发展,人际关系变来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理系统。
通讯录管理系统是一个基于C/S模式的个人通讯录管理系统,它是将自己的联系人的具体信息集中处理,成为一个方便人们使用的小软件。
在开发过程中应用java,JDK,MYSQL,SWING等技术,由于开发工具与数据库之间的良好使用,可以为开发带来方便,使之成为可视性的系统。
通过采用相关技术,将系统设计的功能全部实现。
功能包括:用户登录,添加联系人信息,修改联系人信息,删除联系人信息,查询联系人信息,可以浏览全部通讯录联系人,可以根据数据表的歌字段来查询你要找的联系人等功能。
关键字:C/S架构,联系信息,通讯录,数据库目录一、需求分析 (2)二、系统总体规划 (2)三、程序流程 (2)四、设计步骤 (5)1.数据库表的设计 (5)2.详细设计 (5)五、设计总结 (9)六、结束语 (10)六、参考文献 (11)七、程序清单 (12)1一需求分析通讯录在当今的日常生活工作中的应用是十分普及的,每个人都拥有大量的通讯录资料信息,当前大家一般都用手工来记录所有的通讯录信息。
但随着时代的发展,人们的联系方式及信息变得复杂多样,通讯录信息大量增加,导致管理这些信息资料就成了问题。
直接操作来查找,添加,修改,删除这些信息,由于数据多,工作量十分巨大,查找,编辑都很困难,而且极易出错,容易造成资料的混乱或丢失。
在各种手机,上午通内设的电话簿尽管携带方便却又存在“记录量少,界面小,浏览不方便,记录信息不全面”的缺点。
有人利用Excel或Word编制通讯录,虽然数据比较全面,信息比较充分,可是查找及其不便,维护起来也麻烦,所以运用文件或数据库技术建立一个通讯录管资料理系统十分必要,使通讯录资料管理工作规范化,系统化,程序化,避免资料管理中的混乱。
通讯录查询系统课程设计
《数据结构》课程设计报告信息工程学院计算机科学与技术专业单位员工通讯录管理系统(线性表应用)计算机093班第2组组员:姓名:林鸿学号:0906210319姓名:张明学号:0909310238姓名:周龙学号:0906210335指导教师:郭晓利日期:2011年1月2日程序设计书目录一、程序设计目标二、问题描述三、需求分析(说明课程设计的任务)四、概要设计(说明课程设计中用到的抽象数据类型的定义、主程序的流程以及各程序模块之间的调用关系等)五、详细设计(实现程序模块的具体算法)六、软件说明书(给出软件应如何使用,使用时的具体事项)七、源程序清单(要求400行以上,要有注释说明)八、测试报告(调试过程中遇到的问题以及解决方法,并列出测试结果,包括输入和输出)九、课程设计总结一:程序设计目标通过对通讯录管理链表的课程设计,加深对程序设计的理解,熟练掌握和加深c语言的基本知识和语法规范,同时更进一步地理解数据结构对单链表知识的应用,培养我们调查研究、查阅技术文献、资料、手册以及编写程序的能力,同时也考验我们善于思考,互相帮助的团队精神。
本程序是学会建立通讯录,使人员之间联系更加方便快捷,增加办事效率。
二:问题描述为某个单位建立一个员工通讯录管理系统,可以方便查询每一个员工的办公室电话、手机号及电子邮箱。
其功能包括通讯录链表的建立、员工通讯信息的查询、修改、插入与删除、以及整个通讯录的输出。
三:需求分析想要建立一个单位员工通讯录的管理系统,方便查询其每个员工的一些信息。
首先,应运用c语言中结构体的知识。
把员工的各项信息储存到结构体的链表中,定义一个新的结构体类型struct(struct是声明结构体时所必须使用的关键字)它向编译系统声明这是一个“结构体类型”,它包括num, name ,phone等不同类型的数据项。
其次:运用数据结构中线性表的知识。
线性表的存储结构分为线性表的线性存储结构和线性表的链式存储结构,线性表的顺序存储结构是指用一组地址连续的存储单元一次存储线性表的数据元素。
员工通讯管理系统
void inquire(LinkList L){ char b[10]; cout<<"请输入你要查询的员工姓名"<<endl; cin>>b; LinkList r; for(r=L->next;r!=NULL&&strcmp(b,r->);r=r->next){} if(r==NULL) cout<<"你要查询的员工不存在"<<endl;
自己用c++写的员工通讯录管理系统,经过反复测试,绝对没 问题,请放心使用。 1、 单位员工通讯录管理系统(线性表的应用) [问题描述] 为某个单位建立一个员工通讯录管理系统,可以方便查询 每一个员工的办公室电话、手机号、及电子邮箱。其功能包括 通讯录链表的建立、员工通讯信息的查询、修改、插入与删 除、以及整个通讯录表的输出。 [实现提示] 可以采用单链表的存储结构,如可定义如下的存储结构: typedef struct { /*员工通讯信息的结构类型定义*/ char num[5]; /*员工编号*/ char name[10]; /*员工姓名*/ char phone[15]; /*办公室电话号码*/ char call[15]; /*手机号码*/ }DataType; /*通讯录单链表的结点类型*/ typedef struct node { DataType data; /*结点的数据域*/ struct node *next; /*结点的指针域*/ }ListNode,*LinkList; 截图 增添信息
} } void xiugai(LinkList &L){ char c[5]; LinkList r,s; cout<<"请输入你要修改的员工的编号"<<endl; cin>>c; for(r=L->next;r!=NULL&&strcmp(c,r->data.num);r=r->next){} if(r==NULL) cout<<"你要修改的员工不存在"<<endl;
通讯录源代码,直接可用
#include <stdio.h>#include <windows.h>#include <stdlib.h>#include <conio.h>#include <string.h>/********************结构体定义******************************/ struct Contact{char NAME[20];char Phone[12];char QQ[12];};struct Node{Contact person;Node *next;};Node *head=NULL;/**************************函数申明*************************/ void AddPerson(Contact); //添加联系人Contact *FindPerson(char *name); //查找联系人void DelPerson(char *name); //删除联系人void ShowAll(); //显示所有联系人void function_6(); //分类显示联系人void SaveData(); //保存联系人信息void LoadData(); //载入联系人信息void face(); //界面int CheckPhone(char *num); //检验手机号是否合法int JudgePhone(char *num); //判断电话号码的用户类型/**********************主函数部分****************************/ int main(){system("title 迷你通讯录BY 马恒");system("color f2");LoadData();int op;face();while(1){printf("请选择功能:");fflush(stdin);if(0==scanf("%d",&op)){printf("\n输入不合法,请重新输入!\n");continue;}switch(op){case 0:{printf("感谢您的使用,下次再见!\n");getchar();exit(0);}break;case 1:{Contact per;fflush(stdin);printf("姓名:");scanf("%s",);do{printf("联系电话:");scanf("%s",per.Phone);}while(!CheckPhone(per.Phone));printf("QQ:");scanf("%s",per.QQ);AddPerson(per);SaveData();printf("添加联系人成功!\n");}break;case 2:{char name[15];printf("输入查找姓名:");scanf("%s",name);Contact *per=FindPerson(name);if(NULL!=per){printf("%s %s %s",per->NAME,per->Phone,per->QQ);}else{printf("%s联系人不存在,查询失败!",name);}}break;case 3:{char name[15];printf("输入需要修改的联系人:\n");scanf("%s",name);Contact *per=FindPerson(name);if(NULL==per){printf("%s联系人不存在,修改失败!",name);}else{printf("新姓名:");scanf("%s",per->NAME);printf("\n新号码:");scanf("%s",per->Phone);printf("\n新QQ号:");scanf("%s",per->QQ);SaveData();printf("更新联系人成功!\n");}}break;case 4:{char name[20];printf("输入需要删除的联系人:");scanf("%s",name);Contact *per=FindPerson(name);if(per==NULL){printf("%s联系人不存在,删除失败!",name);}else{DelPerson(name);SaveData();printf("\n成功删除联系人!\n");}}break;case 5:{ShowAll();}break;case 6:{system("cls");for(int i=1;i<=80;i++){printf("@");}printf("\t\t\t\t1.显示全部移动用户\n");//2printf("\t\t\t\t2.显示全部联通用户\n");//1printf("\t\t\t\t3.显示全部电信用户\n");//3printf("\t\t\t\t0.返回主菜单\n");for(i=1;i<=80;i++){printf("@");}int m=1,op;while(m){Node *p=head;printf("请输入指令:");fflush(stdin);if(0==scanf("%d",&op)){printf("您输入的指令无效,重新输入:");continue;}switch(op){case 0:{system("cls");face();m=0;}break;case 1:{while(NULL!=p){if(2==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;case 2:{while(NULL!=p){if(1==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;case 3:{while(NULL!=p){if(3==JudgePhone(p->person.Phone)){printf("%s %s %s \n",p->,p->person.Phone,p->person.QQ);}p=p->next;}}break;default:{printf("输入不合法,重新输入:");}}}}break;default:{printf("您输入的内容不合法,请重新输入!\n");}}}return 0;}void AddPerson(Contact person) //添加联系人Node *pNewNode;pNewNode=(Node*)malloc(sizeof(Node));pNewNode->person=person;pNewNode->next=NULL;if(NULL==head){head=pNewNode;}else{Node *pNode=head;while(NULL!=pNode->next){pNode=pNode->next;}pNode->next=pNewNode;}}void ShowAll() //显示所有联系人{Node *pNode=head;int icnt=0;while(NULL!=pNode){printf("%s %s %s \n",pNode->,pNode->person.Phone,pNode->person.QQ);pNode=pNode->next;icnt++;}printf("一共有%d个联系人\n",icnt);}Contact *FindPerson(char *name) //查找联系人{Node *pNode=head;while(NULL!=pNode){if(strcmp(pNode->,name)==0){break;}elsepNode=pNode->next;}return pNode?(&(pNode->person)):NULL;}void DelPerson(char *name){if(strcmp(head->,name)==0){Node *pNewHead=head->next;free(head);head=pNewHead;return;}Node *p1=head;while(strcmp(p1->next->,name)!=0) {p1=p1->next;}Node *p2=p1->next->next;free(p1->next);p1->next=p2;}void LoadData(){FILE *fp=fopen("data","rb");if(NULL==fp){return;}Contact ct;while(fread(&ct,sizeof(Contact),1,fp)){AddPerson(ct);}fclose(fp);}void SaveData(){FILE *fp=fopen("data","wb"); //以二进制写入Node *pNode=head;while(NULL!=pNode){fwrite(&(pNode->person),sizeof(Contact),1,fp);pNode=pNode->next;}fclose(fp);}void face(){for(int i=1;i<=80;i++)printf("=");for(i=1;i<=30;i++)printf("=");printf("通讯录管理系统v1.0");for(i=0;i<=30;i++)printf("=");for(i=1;i<=80;i++)printf("=");printf("\t\t\t\t1.添加联系人\n");printf("\t\t\t\t2.查找联系人\n");printf("\t\t\t\t3.修改联系人\n");printf("\t\t\t\t4.删除联系人\n");printf("\t\t\t\t5.显示所有联系人\n");printf("\t\t\t\t6.分类显示联系人\n");printf("\t\t\t\t0.退出通讯录\n");for(i=1;i<=80;i++){printf("=");}for(i=1;i<=80;i++){printf("=");}}int CheckPhone(char *num){if(11!=strlen(num)){return 0;}int i;for(i=0;i<11;i++){if(num[i]<'0'||num[i]>'9'){return 0;}}return 1;}int JudgePhone(char *num) //判断电话号码的用户类型{if('1'!=num[0]){return 0;}if('1'==num[0]){if('3'==num[1]){switch(num[2]){case '0':case '1':case '2':return 1;break;case '3':return 3;break;case '4':case '5':case '6':case '7':case '8':case '9':return 2;break;default:return 0;}}else if('5'==num[1]){switch(num[2]){case '0':case '1':case '2':case '7':case '8':case '9':return 2;break;case '5':case '6':return 1;break;case '3':return 3;break;default:return 0;}}else if('8'==num[1]){switch(num[2]){case'5':case'6':return 1;break;case'0':case'1':case'2':case'7':case'8':case'9':return 2;break;case'3':return 3;break;default:return 0;break;}}else{return 0;}}return 0;}。
施磊磊的数据结构课程设计1 通讯录系统
课程设计题目名称通讯录系统课程名称数据结构课程设计学生姓名施磊磊学号0813022057班级计082指导教师管致锦1,设计项目名称:通讯录管理系统2,问题描述通讯录是用来记载、查询联系人通讯信息的工具,通过设计一个《通讯录管理系统》,进一步熟悉C++中类的概念、基本知识和技利用所学的基本知识和技能解决简单的面向对象的程序设计问题。
了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C的理解与Visual C++环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。
全部源代码:#include<iostream>#include<fstream>//输入输出流#include<iomanip>//字符格式包含的头文件#include<string>//字符之间的运算using namespace std;//************************************************************************ **********************class pbook//总的类体系********************************************************************* {char cellphone[1000];///char name[20],first,sex[10],workplace[30];char date[15];public:void addin();char* gname(){return name;}char getf(){ return first;}void print(){//static int i=0;cout<<setw(12)<<name<<setw(12)<<sex;cout<<setw(12)<<workplace<<setw(12)<<cellphone<<setw(12)<<date<<endl;} static int dele(pbook *book,int n);//使用静态函数保护数据,防止意外修改static void edit(pbook *book,int n,char *name);static void findn(pbook *book,int n,char *name);static void findf(pbook *book,int n,char f);static void rang(pbook *book,int n);};//只用一个类实现,全部的函数实现其主要功能,缺陷是没法保存。
程序设计基础综合实验 综合实验四:学生电子通讯录管理系统—链表的应用实验报告
**大学**学院
程序设计基础综合实验 实验报告
综合实验四:学生电子通讯录管理系统—
一、实验内容:
问题描述:基于结构体链表,重新设计“综合实验二:学生电子通讯录管理系统——数组的 应用”里涉及的学生电子通讯录管理系统,要求重新设计后的系统应用以下功能。
二、实验源代码:
三、实验结果与分析(含测试数据、运行结果截图、分析和实验总结等):
四、教师评语: 实验成绩:
教师:谢胜利
1.链表应用:输入功能。基于用户键盘输入,创建学生个人通讯信息链表,要求对用户输入 的个人信息进行有效性检查。
2.链表应用:输出功能。在上面设计的基础上,设计链表输出函数。 3.链表应用:查找功能。在上面设计的基础上,设计链表查找函数。要求可以根据 1)学号 查找、2)姓名查找、3)手机查找、4)性别查找、以及 5)生日范围查找等。然后,在显示器上 输出查找到的学生信息。 4.链表应用:插入功能。在上面设计的基础上,设计节点插入函数; 5.链表应用:删除功能。在上面设计的基础上,基于查找函数,设计节点删除函数,要求能 够根据查找的结果删除相应的节点。然后,在显示器上显示删除后的链表内容。 6.链表应用:排序功能。在上面设计的基础上,设计链表排序函数。要求可以根据 1)学号 排序、2)姓名排序、3)性别排序、4)手机排序、以及 5)生日排序等。然后,在显示器上,输 出排序后的通讯录。 7.链表应用:保存功能。在上面设计的基础上,设计链表保存到外部文件的函数; 8.链表应用:创建功能。在上面设计的基础上,设计基于外部文件创建链表的函数。
C++程序设计通讯录管理系统
C++程序设计通讯录管理系统通讯录管理系统文档1.引言本文档描述了一个C++程序设计的通讯录管理系统的设计和实现细节。
本系统旨在提供一个用户友好的界面,帮助用户轻松管理其通讯录信息。
本文档将详细介绍系统的需求分析、设计、实现和测试过程。
2.需求分析2.1 系统介绍通讯录管理系统是一个用于存储和管理个人联系人信息的工具。
它允许用户创建、查看、编辑和删除联系人信息,同时提供搜索和排序等功能。
2.2 功能需求①用户登录与注册功能用户通过输入用户名和密码进行登录,如果没有账号,可以进行注册。
②联系人管理功能用户可以创建、查看、编辑和删除联系人信息。
③联系人搜索功能用户可以根据姓名、方式号码等关键字进行联系人的搜索。
④联系人排序功能用户可以按照姓名、拼音首字母或方式号码等属性对联系人进行排序。
⑤联系人导入和导出功能用户可以将联系人信息导入和导出到外部文件,以便在不同设备之间共享和备份。
2.3 非功能性需求①用户界面友好性界面应简洁、直观,方便用户操作。
②数据安全性用户数据应进行加密存储,确保用户隐私的安全。
3.系统设计3.1 系统架构系统采用MVC(Model-View-Controller)架构,将数据模型、用户界面和控制逻辑分离。
3.2 数据库设计系统使用关系型数据库存储联系人信息,包括姓名、方式号码、电子邮件等属性。
3.3 用户界面设计系统采用图形用户界面(GUI),提供直观的操作界面,包括菜单、按钮、输入框等。
4.系统实现4.1 开发环境本系统使用C++编程语言开发,开发工具为Visual Studio。
4.2 数据库操作使用SQL语句实现数据库的创建、查询、插入、更新和删除等操作。
4.3 用户界面实现使用C++中的图形库实现用户界面,包括菜单栏、按钮、文本框等控件。
5.系统测试在开发完成后,对系统进行功能测试和性能测试,确保系统能够稳定运行并满足用户需求。
6.附件本文档附带通讯录管理系统的源代码和数据库文件。
通讯录管理系统java课程设计源代码
通讯录管理系统简介通讯录是一种记录联系人信息的工具,用于存储和管理与个人、组织或机构相关的联系信息。
通讯录管理系统是一个用于创建、编辑、查找和删除联系人信息的软件应用程序。
本文将介绍一个使用Java编写的通讯录管理系统的设计源代码。
功能需求通讯录管理系统需要具备以下功能: 1. 添加联系人:用户可以输入联系人的姓名、电话号码、电子邮件地址等信息,并将其添加到通讯录中。
2. 编辑联系人:用户可以选择要编辑的联系人,并可以修改其姓名、电话号码、电子邮件地址等信息。
3. 查找联系人:用户可以输入关键字进行搜索,系统将根据关键字在通讯录中查找匹配的联系人并显示出来。
4. 删除联系人:用户可以选择要删除的联系人,并将其从通讯录中删除。
5. 显示所有联系人:系统可以列出所有已存储在通讯录中的联系人信息。
设计思路数据结构为了实现上述功能,我们需要设计合适的数据结构来存储联系人信息。
在这里,我们可以使用一个类来表示每个联系人,其中包含姓名、电话号码和电子邮件地址等属性。
然后,我们可以使用一个集合(如ArrayList)来存储所有的联系人对象。
用户界面为了方便用户操作,我们可以使用命令行界面(CLI)来实现通讯录管理系统。
用户可以通过输入不同的命令来执行相应的操作,如添加联系人、编辑联系人、查找联系人等。
功能实现1.添加联系人:用户输入联系人的姓名、电话号码和电子邮件地址,系统创建一个联系人对象,并将其添加到集合中。
2.编辑联系人:用户选择要编辑的联系人,并输入要修改的信息,系统更新该联系人对象的属性。
3.查找联系人:用户输入关键字,系统遍历所有联系人对象并检查是否包含该关键字,将匹配的结果显示出来。
4.删除联系人:用户选择要删除的联系人,系统从集合中移除该对象。
5.显示所有联系人:系统遍历集合中的所有联系人对象,并将其属性逐个显示出来。
代码实现import java.util.ArrayList;import java.util.Scanner;class Contact {private String name;private String phoneNumber;private String email;public Contact(String name, String phoneNumber, String email) { = name;this.phoneNumber = phoneNumber;this.email = email;}public String getName() {return name;}public void setName(String name) { = name;}public String getPhoneNumber() {return phoneNumber;}public void setPhoneNumber(String phoneNumber) {this.phoneNumber = phoneNumber;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}}public class AddressBook {private ArrayList<Contact> contacts;public AddressBook() {contacts = new ArrayList<>();}public void addContact(Contact contact) {contacts.add(contact);System.out.println("Contact added successfully!");}public void editContact(int index, Contact contact) {if (index >= 0 && index < contacts.size()) {contacts.set(index, contact);System.out.println("Contact edited successfully!");} else {System.out.println("Invalid index!");}}public void searchContacts(String keyword) {boolean found = false;for (Contact contact : contacts) {if (contact.getName().contains(keyword) || contact.getPhoneNumber ().contains(keyword)|| contact.getEmail().contains(keyword)) {System.out.println(contact.getName() + " | " + contact.getPhon eNumber() + " | " + contact.getEmail());found = true;}}if (!found) {System.out.println("No matching contacts found.");}}public void deleteContact(int index) {if (index >= 0 && index < contacts.size()) {contacts.remove(index);System.out.println("Contact deleted successfully!");} else {System.out.println("Invalid index!");}}public void displayAllContacts() {for (Contact contact : contacts) {System.out.println(contact.getName() + " | " + contact.getPhoneNum ber() + " | " + contact.getEmail());}}public static void main(String[] args) {AddressBook addressBook = new AddressBook();Scanner scanner = new Scanner(System.in);while (true) {System.out.println("\nAddress Book Management System");System.out.println("1. Add Contact");System.out.println("2. Edit Contact");System.out.println("3. Search Contacts");System.out.println("4. Delete Contact");System.out.println("5. Display All Contacts");System.out.println("6. Exit");System.out.print("\nEnter your choice: ");int choice = scanner.nextInt();switch (choice) {case 1:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String name = scanner.nextLine();System.out.print("Enter phone number: ");String phoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String email = scanner.nextLine();Contact contact = new Contact(name, phoneNumber, email);addressBook.addContact(contact);break;case 2:System.out.print("Enter index of the contact to edit: ");int indexToEdit = scanner.nextInt();if (indexToEdit >= 0 && indexToEdit < addressBook.contacts. size()) {scanner.nextLine(); // Consume newline characterSystem.out.print("Enter name: ");String newName = scanner.nextLine();System.out.print("Enter phone number: ");String newPhoneNumber = scanner.nextLine();System.out.print("Enter email address: ");String newEmail = scanner.nextLine();Contact newContact = new Contact(newName, newPhoneNumb er, newEmail);addressBook.editContact(indexToEdit, newContact);} else {System.out.println("Invalid index!");}break;case 3:scanner.nextLine(); // Consume newline characterSystem.out.print("Enter keyword to search contacts: ");String keyword = scanner.nextLine();addressBook.searchContacts(keyword);break;case 4:System.out.print("Enter index of the contact to delete: "); int indexToDelete = scanner.nextInt();addressBook.deleteContact(indexToDelete);break;case 5:addressBook.displayAllContacts();break;case 6:System.exit(0);break;default:System.out.println("Invalid choice!");}}}}总结通过以上的设计和实现,我们创建了一个简单的通讯录管理系统。
个人通讯录管理
个人通讯录管理 The manuscript was revised on the evening of 2021安徽工业大学《C语言课程设计》实习综合报告课题名称:个人通讯录管理系统实习成员:王刚学号: 2专业班级: 网络工程103班指导教师: 郑啸老师目录一.问题描述 (2)显示模块 (3)查找模块……………………………………………4..添加模块 (6)删除模块 (8)修改模块 (9)三、文件的读取与保存 (11)五、调试与运行结果 (18)六、计算机学院课程设计评定意见一.问题描述设计通讯录包含以下功能:(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。
(2)输入功能:可以一次完成若干条信息的输入。
(3)显示功能:完成全部通讯录信息的显示。
(4)查找功能:可以按姓名等多种方式查找通讯信息。
(5)增加、删除、修改功能:完成通讯录信息的多种更新。
二.各功能流程图与设计思路Menu菜单:运用switch()进行操作:case'1': 显示功能,list()函数说明:利用for循环,逐个输出已保存的内容代码如下:ame[0]){ printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);}}printf("\t\t\t----------------END--------------\n");}case'2': 查找功能,search()函数说明:先用switch让操作者选择是按姓名查找还是按编号查找,然后再按操作者的输入,逐个判断是否有操作者要查的联系人信息,若有则输出此人信息,若没有则输出“通讯录中没有您要查找的联系人”代码如下:姓名查找\n");printf("→2.按编号查找\n");printf("请选择...\n");ch=getchar();getchar();switch(ch){case'1':printf("输入查找的姓名\n");gets(xm);for(i=0;i<m;i++){ if(strcmp(xm,rec[i].name)==0){ printf("\t\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n"); break;case'2':printf("输入查找的编号\n");scanf("%d",&d);for(i=0;i<m;i++){if(d==rec[i].num){ printf("\t\t☆☆☆☆☆这是您需要查找的联系人的信息☆☆☆☆\n\n");printf("编号姓名电话 \t手机 \t工作单位\tEMAIL \t\tQQ\n");printf("%d、%-8s%-10s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name, rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);break;}}if(i==m)printf("\t\t\t☆☆☆☆☆通讯录中没有您要查找的联系人☆☆☆☆☆\n"); break;default:printf("输入错误!!");}getchar();}case'3': 增加功能,app()函数说明:按照屏幕的提示,依次输入要添加联系人的各项信息,并保存到结构体当中,输入完成后,提示是否继续添加,若是,则进入循环,若否,则结束。
通讯录大型实验报告
通讯录⼤型实验报告⼤类基础课程⼤型实验实验题⽬通讯录学⽣姓名学⽣学号学⽣班级任课教师提交⽇期计算机科学与技术学院通讯录实验报告⼀、⼤型实验的内容通讯录⽤于联系⼈信息的管理,要求完成的主要的功能包括查询功能、根据姓名对⼈员信息排序输出、能根据姓名、电话修改或删除⼈员信息等。
可以完成查询联系⼈、添加、删除或修改联系⼈、从⼩到⼤依次显⽰联系⼈信息等⼯作。
要求使⽤学习过的C/C++程序设计的知识完成通讯录的设计与实现。
⼆、运⾏环境通讯录(LMS)在Visual Studio 2010平台下开发,操作系统:Windows 7。
硬件环境:(备注:可以查看“计算机”属性)处理器:Intel(R)Core(TM)********************.70GHz内存:2.00GB系统类型:32位操作系统三、实验课题分析(主要的模块功能、流程图)3.1 通讯录的主要功能通讯录主要功能为:查询功能、根据姓名对⼈员信息排序输出、能根据姓名、电话修改或删除⼈员信息等,可以完成查询联系⼈、添加、删除或修改联系⼈、从⼩到⼤依次显⽰联系⼈信息等⼯作。
详细的系统功能结构为图1所⽰。
图1 系统结构图系统各模块的功能具体描述为:1、查找模块选择查找⽅式,不同查找⽅式的结果可能会有差异。
根据姓名、电话能精确查询⼈员信息;根据地址能够进⾏模糊查询⼈员信息;根据⼈员类别能查询⼈员信息。
2、输⼊模块使⽤者可以添加新的联系⼈,添加内容包括联系⼈的姓名、性别、电话、地址、邮政编码、邮箱、QQ号、类别。
3、排序展⽰模块该功能可以显⽰排序前通讯录中所有联系⼈信息,然后按照各名字的中⽂ASCII⼤⼩从⼩到⼤进⾏排序,然后显⽰排序后的所有联系⼈信息。
4、变更⼈员模块修改:⾸先进⾏查找,按姓名或电话号码进⾏查找,找到相应的联系⼈直接进⼊修改。
根据提⽰选择该联系⼈需要修改的字段,并进⾏修改。
删除:⾸先进⾏查找,按姓名或电话号码进⾏查找,找到相应的联系⼈直接进⼊确认删除。
通讯录设计63219
多用户通讯录一、选题意义随着计算机的普及,人们一系列的日常生活和工作方式都开始走向信息化,例如无纸化办公、电子商务、电子政务等.多用户通讯录系统的实现也是信息化的一个体现,它代替了传统的通讯录、电话本,实现了多个用户能够在网上建立各自的通讯录,互不干扰,并且可以按照类别将联系人分成同学、同事等多个组,使得查询和管理非常方便。
二、系统功能概述根据功能要求,设计多用户通讯录系统的功能模块及结构如图:各模块的功能如下:1)用户登录模块根据用户输入的账号和密码判断该用户是否合法以及是否为管理员,并根据级别进行“用户管理"模块的授权。
2)用户注册模块对于新用户的注册,注册成功的用户将自动登录系统。
新注册的用户默认为普通用户,不能使用“用户管理”模块。
3)通讯录模块包括三个子模块:查询搜索子模块、联系人管理子模块、分类管理子模块。
(1)查询搜索子模块:能够根据用户自行设计的分类查询联系人,能根据姓名、住址等字段进行分类查询联系人(2)联系人管理子模块:用户可以根据自己的联系人查询详情、添加、修改和删除操作。
(3)分类管理子模块:用户可以管理自己的联系人分类,包括添加、修改和删除分类。
4)我的资料模块用户可以查看和修改自己的资料。
5)用户管理模块管理员登录后可以查看用户的详细资料和删除用户。
6)退出系统结束用户在登录模块获得的session变量,退出系统,返回登录页面。
三、系统设计说明1、数据库设计系统可采用SQL SERVER或ACCESS类型的数据库作为后台支持数据库,根据功能的需要建立适合的数据表。
2、功能设计根据以上的功能概述,设计程序,可以根据自己的需要增加和完善一些功能和服务。
四、开发环境前台开发工具可以利用所学的任何一种语言,比如VB、PB、ASP、VC、Java等等,后台数据库可以选用所学的任何数据库比如Access、SQL、ASA(PB自带的)等等。
五、时间安排(4周)六、写出毕业设计报告书(论文)论文必须包括以下内容:1)该设计的摘要2)设计的需求分析3)设计的目的4)程序主要源代码及其说明5)程序运行的结果6)毕业设计的收获、感想以及体会7)参考文献七、设计成绩评定设计成绩是依据学生在设计中的表现和设计成果综合评定,包括:1)设计纪律(20%):根据设计出勤情况、遵守纪律和服从管理情况、以及设计态度等因素评定;如有严重纪律问题,可按学校有关规定直接评为不及格;2)设计报告书的完成质量(40%):设计报告书的完成情况;3)系统的运行效果以及答辩情况(40%):根据设计实际完成的质量而考核。
通讯录课程设计
《应用程序设计课程设计》报告班级:学号:姓名:指导教师:成绩评定:通讯通管理目录一、设计方案简介 (01)二、设计题目实现 (01)1)需求分析 (01)2)概要设计 (01)3)详细设计 (03)4)测试分析 (03)5)使用说明 (04)6)测试结果 (05)三、设计附录部分 (07)1)参考资料 (07)2)源程序 (07)2012年01 月一、设计方案简介:生活中我们常常需要跟同学、老师、同事等各类人员联系,为此,可以设计一个简易通讯录。
方便管理各位联系人的信息,读入导出保存的联系人信息。
此通讯录至少可以按姓名、电话号码查询联系人,实现诸如添加、修改、删除、查询、保存并记录等简易功能。
通讯录是最常用的应用程序,各种电子产品中均附有。
而且目前所设计的通讯录最为简化,还处于DOS界面运行。
C++都可以做出效果比较好的面向对象程序。
不过,这次的设计至少检验了我们的数据结构学习情况。
让我们的理论知识通过实践得到了一次质的飞跃,值得肯定。
由简入难,相信通过此类练习,编程能力将会不断提高。
二、设计题目实现:1)需求分析①本题旨在建立一个通讯录系统,其中保存着个人员的姓名、电话、Email以及与本人的关系等信息,通过该系统的简单界面可以对通讯录进行新建、浏览、查找、更新、删除等操作。
②本程序的能够提供添加、删除和修改通讯录信息的功能。
③能够提供按按照不同方式查询的功能,如按照姓名或电话等。
④测试数据:(附后)。
2)概要设计1.抽象数据类型的定义:ADT STUDENT{数据对象V:数据关系R:基本操作P:int input(STUDENT stu[],int n,i)2012年01 月//添加通讯录记录;void show(STUDENT stu[],int n,i)//显示通讯录记录;int del(STUDENT stu[],int n,s[])//删除通讯录记录;void search(STUDENT stu[],int m,n)//查询通讯录记录,m初始化,根据给定值分别返回各函数;void modify(STUDENT stu[],int n,s[])//修改通讯录记录;void save(STUDENT stu[],int n)//保存通讯录记录,生成文件;}ADT STUDENT2. 主程序void main(){初始化;for(;;){接受命令;处理命令;退出;}}3. 程序模块2012年01 月3)详细设计1. 类型定义:typedef struct{char score; /*编号*/char name[10]; /*姓名*/char num[15]; /*号码*/char email[20]; /*邮箱*/char relate[8]; /*年龄*/char adds[20]; /*住址*/}STUDENT;2.4①本程序参考网络资料编写而成,其中的调用函数、框架设计、编译运行等部分均亲自完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include<stdio.h>#include<stdlib.h>#include<windows.h>#include<time.h>#define SIZE 500struct people{char name[15];char jie[10];char num[12];char pro[10];char city[10];char ems[7];};struct people stud[SIZE];void submenu();void buffer();void cha1();void cha2();int menu();void help();void exit1();void buffer1();void submenu1();void make();void add();void cha();void display();void dele();void change();void come();void save();void load();int system(const char*string);FILE *fp;int count=1;int i=1;char NAME[10];char MIMA[8],MIMA1[6],YONG[10]; main(){system("COLOR 3");submenu();}void submenu(){int k;printf("\n\n\t\t\t欢迎使用通讯录管理系统!\n");printf("\n\t ------------------------------------------------");printf("\n\t ------------------------------------------------");printf("\n\n\n\n\t\t《 1.开始使用通讯录管理系统》\n");printf("\n\n\t\t《 2.关于系统帮助》\n");printf("\n\n\t\t《 3.退出系统》\n");printf("\n\n\t -------------------------------------------------");printf("\n\t -------------------------------------------------\n");printf("\t 请正确选择:");scanf("%d",&k);switch(k){case 1 : system("cls");make();come();break;case 2 : system("cls");help();break;case 3 : system("cls");exit1();break;default: printf("没有此选项,请按任意键返回重新选择!");break;system("cls");}}int menu(){system("COLOR 4");printf("\n\t ---------------------------------------------------");printf("\n\t ---------------------------------------------------");printf("\n\n\t\t\t % s 的通讯录",NAME);printf("\n\n\n\t\t\t1. 添加联系人\n");printf("\n\t\t\t2. 查找联系人信息\n");printf("\n\t\t\t3. 修改联系人信息\n");printf("\n\t\t\t4. 删除联系人信息\n");printf("\n\t\t\t5. 显示联系人信息\n");printf("\n\t\t\t6. 返回上级菜单\n");printf("\n\n\t ----------------------------------------------------");printf("\n\t ----------------------------------------------------\n");printf("\t 请正确选择:");}void help(){printf("\n\n\n\n\n\t\t ¤通讯录管理系统使用帮助¤\n\n");printf("Ⅰ.输入相应的数字进入相应的功能\n\nⅡ.注册完成后将会进入登陆界面\n\nⅢ.登陆之后你就可以开始对你的联系人进行相应的操作了\n\n\n");}void exit1(){printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢使用!\n\n\n\n\n\n");printf(" 退出状态,按任意键退出! ");}void submenu1(){int in;char a;scanf("%d",&in);switch(in){case 1 : system("cls");add();break;case 2 : system("cls");cha();break;case 3 : system("cls");change();break;case 4 : system("cls");dele();break;case 5 : system("cls");display();printf("\n\n\t\t\t\t返回上一级?(y/n)");scanf("%s",&a);if(a==121){system("cls");menu();submenu1();}else{system("cls");display();}break;case 6 : system("cls");submenu();break;default: system("cls");printf("\n\n\n\n\n\n\t\t\t 没有此选项,请重新选择! ");menu();submenu1();break;system("cls");}}void make(){ int k;char a;printf("\n\n\t\t\t注册通讯录管理系统!\n\n");printf("\n\t\t\t请完善自己的信息:\n");printf("--------------------------------------------------------------------------");printf("\n\n请输入你的姓名:");scanf("%s",&NAME);printf("\n请创建一个新用户名:");scanf("%s",&YONG);printf("\n请设置一个六位密码:");for(k=0;k<6;k++){MIMA[k]=getch();printf("@");}MIMA[6]='\0';printf("\n\n请再次输入你的密码:");for(k=0;k<6;k++){MIMA1[k]=getch();printf("@");}MIMA1[6]='\0';if(strcmp(MIMA,MIMA1)==0){printf("\n\n\n\n\n确认注册使用通讯录? (y/n)");scanf("%s",&a);if(a==121){system("cls");buffer1();system("COLOR 5");printf("\n\n\n\n\n\n\n\n\n\t\t\t注册成功!!!\n\n\n\n\n\n\n\n");printf("\n\n\t\t 欢迎% s 使用通讯录管理系统!\n\n",NAME);buffer1();system("cls");}else{system("cls");printf("\n\n\n\t\t\t\t警告! ! !");printf("\n\n\n\n\t 如果你没有完善信息,你将不能使用该系统! "); printf("\n\n\n\n\n\n\n\t\t 正在返回注册界面, 请等待! ");buffer1();system("cls");make();}}else{system("cls");printf("\n\n\n\n\t\t两次密码不一致,请重新输入!");printf("\n\n\n\n\t\t 正在返回注册界面, 请等待! ");buffer1();system("cls");make();}}void come(){int k;char mmm[15];char pwd[6];printf("\n\n\t\t\t登陆使用通讯录管理系统\n");printf("--------------------------------------------------------------------------");printf("\n\n\n请输入用户名:");scanf("%s",&mmm);if(strcmp(mmm,YONG)==0){printf("\n\n\n请输入六位密码:");for(k=0;k<6;k++){pwd[k]=getch();printf("@");}pwd[6]='\0';if(strcmp(pwd,MIMA)==0){system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t");printf(" 密码正确,正在登陆,请等待!");buffer1();system("cls");system("COLOR 3");printf("\n\n\n\n\n\n\n\n\t\t\t欢迎使用通讯录管理系统!\n");buffer1();system("cls");menu();submenu1();}else{system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t");buffer1();printf("密码错误,请重新输入");printf("\n\n\n\n\n\n\n\t\t 正在返回登陆界面, 请等待! ");buffer1();system("cls");come();}}else{system("cls");printf("\n\n\n\n\n\n\n\n\n\t\t\t");buffer1();printf("用户名错误,请重新输入");printf("\n\n\n\n\n\n\n\t\t 正在返回登录界面, 请等待! ");buffer1();system("cls");come();}}void add(){char a;do{system("COLOR 2");system("cls");printf("\n\n\n\t\t\t请准确输入联系人信息:\n");printf("--------------------------------------------------------------------------");printf("\n%d.姓名:",count);scanf("%s",&stud[count].name );printf("\n 号码:");scanf("%s",&stud[count].num);printf("\n 省:");scanf("%s",&stud[count].pro);printf("\n 城市:");scanf("%s",&stud[count].city);printf("\n 街道:");scanf("%s",&stud[count].jie);printf("\n 邮政编码:");scanf("%s",&stud[count].ems);printf("\t\t\t添加成功! \n");printf("\n是否继续输入另外一个联系人信息?(y/n)");scanf("%s",&a);count++;}while(a=='y' && count<=500);save();system("cls");menu();submenu1();}void display (){int i;char a;load();printf("\n\n\n\t\t\t\t\t 联系人信息:\n");for(i=1;i<count;i++)printf(" \n\t\t序号:%d\n\t\t姓名:%s\n\t\t 号码:%s\n\t\t 省:%s\n\t\t 城市:%s\n\t\t 街道:%s\n\t\t 邮政编码:%s\n",i,stud[i].name,stud[i].num,stud[i].pro,stud[i].city,stud[i].jie,stud[i].ems);}void buffer1(){time_t start,end;start=time(NULL);end=time(NULL);while(end-start<2.0)end=time(NULL);}void buffer(){time_t start,end;start=time(NULL);end=time(NULL);while(end-start<10.0)end=time(NULL);}void dele(){char c;int a,k,j;system("cls");do{display();printf("\n请输入要删除的联系人的序号:\n");scanf("%d",&a);for(k=0;k<count;k++){if(a==i)break;}for(j=k;j<count;j++)stud[j]=stud[j+1];count--;printf("\t\t\t 删除成功! \n");printf("\n是否继续删除另一个学生信息?(y/n) ");fflush(stdin);c=getchar();}while(c=='y');save();system("cls");menu();submenu1();}void change(){char c;int a;system("cls");do{display();printf("\n请输入要修改的联系人的序号:\n");scanf("%d",&a);printf("\n\n\n\t\t\t请准确输入联系人信息:\n");printf("--------------------------------------------------------------------------");printf("\n 姓名:");scanf("%s",&stud[a].name );printf("\n 号码:");scanf("%s",&stud[a].num);printf("\n 省:");scanf("%s",&stud[a].pro);printf("\n 城市:");scanf("%s",&stud[a].city);printf("\n 街道:");scanf("%s",&stud[count].jie);printf("\n 邮政编码:");scanf("%s",&stud[a].ems);printf("\t\t\t 修改成功! \n");printf("\n是否继续修改另一个学生信息?(y/n) ");fflush(stdin);c=getchar();}while(c=='y');save();system("cls");menu();submenu1();}void save(){int k;if((fp=fopen("D:\\people.dat","wb"))==NULL){printf("打开文件失败\n");exit(0);}for(k=0;k<count;k++)fwrite(&stud[k],sizeof(struct people),1,fp);fclose(fp);}void load(){int k;if((fp=fopen("D:\\people.dat","rb"))==NULL){printf("打开文件失败\n");exit(0);}for(k=0;!feof(fp);k++)fread(&stud[k],sizeof(struct people),1,fp);fclose(fp);count=k-1;}void cha(){char a[15];char m[11];int n,j;system("cls");printf("\n\n\t\t------------------------------------------------");printf("\n\t\t------------------------------------------------");printf("\n\n\n\n\t\t\t 1.按姓名查询\n");printf("\n\n\t\t\t 2.按号码查询\n");printf("\n\n\t\t\t 3.返回上一级\n");printf("\n\n\t\t------------------------------------------------");printf("\n\t\t------------------------------------------------");printf("\n\n\n\t\t\t请选择:");scanf("%d",&n);switch(n){case 1 : system("cls");cha1();break;case 2 : system("cls");cha2();break;case 3 : system("cls");menu();submenu1();break;default: system("cls");printf("\n\n\n\n\n\n\t\t\t 没有此项选择,请重新选择! ");cha();break;system("cls");}}void cha1(){char a[15],b;char m[11];int n,j;printf("\n\n\n\n\n 请输入姓名:");scanf("%s",&a);for(j=1;j<=SIZE;j++){if(strcmp(a,stud[j].name)==0){printf("********************\n");printf("序号:%d\n",j);printf("姓名:%s\n",stud[j].name);printf("号码:%s\n",stud[j].num);printf("省份:%s\n",stud[j].pro);printf("城市:%s\n",stud[j].city);printf("街道:%s\n",stud[j].jie);printf("邮编:%s\n",stud[j].ems);printf("\n\n\t\t\t\t返回上一级?(y/n)");scanf("%s",&b);if(a==121){cha1();}else{system("cls");cha();}break;}else{system("cls");printf("\n\n\n\n\n\n\t\t\t 没有此联系人,请重新选择! "); buffer1();cha();}}}void cha2(){char a;char m[11];int n,j;printf("\n\n\n\n\n 请输入号码:");scanf("%s",&m);for(j=1;j<=SIZE;j++){if(strcmp(m,stud[j].num)==0){printf("********************\n");printf("序号:%d\n",j);printf("姓名:%s\n",stud[j].name);printf("号码:%s\n",stud[j].num);printf("省份:%s\n",stud[j].pro);printf("城市:%s\n",stud[j].city);printf("街道:%s\n",stud[j].jie);printf("邮编:%s\n",stud[j].ems);printf("\n\n\t\t\t\t返回上一级?(y/n)");scanf("%s",&a);if(a=='y'){system("cls");cha2();}else{cha();}break;}else{system("cls");printf("\n\n\n\n\n\n\t\t\t 没有此联系人,请重新选择! "); buffer1();cha();}}}。