第一篇:通讯录管理系统的设计与实现c++源代码
通讯录管理系统的设计与实现源代码 #include
} } } iCount=t;} infile.close();} void Print(Student *h)//打印记录 { if(h==NULL){ cout<<“n****************************************nn”;cout<<“没有学生记录!n”;cout<<“n****************************************n”;return;} cout<<“n********************************************************************************nn”;cout<<“所有的学生:nn”;cout<<“-----------n”;cout<<“| ”<
if(h==NULL){cout<<“n****************************************n”;cout<<“没有学生记录!n”;cout<<“n****************************************n”;return;} cout<<“n********************************************************************************n”;cout<<“所有学生:nn”;cout<<“-----------n”;cout<<“| ”<
void Print_search(Student *h)//查询 { if(h==NULL){cout<<“n********************************************************************************n”;cout<<“没有学生记录!n”;cout<<“n****************************************n”;return;} cout<<“n********************************************************************************n”;cout<<“所查学生:nn”;cout<<“-----------n”;cout<<“| ”<
{ cout<<“-----------n”;cout<<“| ”<
cout<<“n********************************************************************************nn”;cout<<“请输入内容:”<
cout<<“n********************************************************************************n”;cout<<“[1] 增加一个学生n”
<<“[2] 显示所有的学生以及他们的成绩n” <<“[3] 显示数组中平均成绩<40的学生以及他们的成绩n” <<“[4] 显示数组中学号为I的学生信息n” <<“[5] 存盘并退出n”;cout<<“********************************************************************************nn”;cout<<“请选择操作项:[1-5] ”;cin>>n;} } }
第二篇:C++通讯录管理系统
黑龙江工程学院
第一章 问题分析和任务定义
1.1 问题分析
问题: 编写一个通讯录管理系统。要求包括通讯录建立、增加号码、删除号码、查询号码(按姓名、按号码)、修改号码、号码分组、打印通讯录(全部或分组号码)等功能,并设计主控菜单和子菜单供用户选择要执行的操作。
分析:
实现以下功能:
1)通讯录编辑(添加、删除); 2)按不同的项进行查找;
3)对已存在的通讯录按不同的项排序; 4)将通讯录写入文件; 5)从文件读入通讯录。
1.2 任务定义
创建一个链表,每个节点有姓名和号码以及关系三个信息。增加号码操作为增加节点,删除号码操作为删除节点,查找号码为链表的遍历。每个功能以函数的形式出现,由主控菜单控制。并以文件的形式对号码信息进行保存。
第二章 详细设计
主函数(main()函数)是通过一个多分支语句(switch(i)语句)实现的。显示菜单函数(displaymenu()函数)显示与用户交互的界面。以下是各个模块实现程序各项功能的函数的详细设计:
1、插入新的记录:insert()函数
定义变量,设计loop模块,模块的功能是用来输入记录:输入姓名、性别、电话号码、地址的信息。用for语句查找是否输入了与原有记录相同的记录,用strcmp 函数比较,if 语句判断,如果输入了重复的记录,提示信息:“此记录已存在,请重新输入!”并且用 goto语句返回到loop,重新输入信息。设计一个a模块:键盘输入一个字符,必须是“Y”“y”“N”“n”,否则重新输入。最后if 语句判断变量的值是否重新输入信息,如果输入的是“Y”或“y”,返回到loop,黑龙江工程学院
用户可以输入下一条信息,直到用户输入“N”或“n”返回主界面。每插入一条记录n的值加1。功能的实现见源程序:
2、示好友的信息:display()函数
定义整型变量i用来循环输出记录。分别输出每条记录,并输出记录的个数。
3、查找好友的信息search()函数
定义字符型变量c,字符型数组a,定义loop模块,功能:通过键盘输入要查找的信息。首先显示提示信息:“输入你要查找的好友的姓名”然后从键盘输入姓名。For语句循环内嵌if语句,用strcmp 函数查找信息,并且显示该记录的所有信息,并跳出循环。再用for 语句内嵌if语句判断,如果没有查到显示提示信息:“如果没有查到相关语句,是否重新查找(Y/N)?定义abc模块的功能输入一个字符(“Y”或“y”“N”“n”)用来判断是否重新查找。如果输入“Y”或“y”,则用goto语句返回loop重新查找。否则令i的值为n跳出循环。最后返回主界面。
4、删除好友信息:del()函数
首先定义字符数组、变量和a、b两个goto标识符。在a模块中用scanf函数输入要删除的好友的姓名,用for循环和if 语来实现对好友的查找,如果找到记录末尾,提示查无此人。在b模块中,用来实现删除功能。先确认是否删除,如果键盘输入Y 或y来确认要删除再执行for循环,通过strcmpy函数把后一条记录复制到前一条记录。进行删除记录后,并把原末尾记录数据赋空字符,按任意键删除,按任意键返回主菜单。
5、修改记录:modify()函数
定义了a、b两个goto标识符。在a模块中,用scanf函数输入要修改人的姓名,用for 循环、if语句及strcmp函数找到该姓名的记录,若到记录末尾提示“查无此人”是否继续重新输入姓名,黑龙江工程学院
如果重新输入姓名再用goto语句再执行重新查找。在b模块中,用于修改记录,如果要修改记录则从键盘输入Y或y,用scanf函数来输入新的记录数据来实现修改记录。
6、排序:sort()函数
选择法排序的方法。定义变量i,j,用于循环,定义4个字符型数组,用于替换的中间变量;用两个for循环语句,用strcmp函数比较。按姓名升序排序。比较前一条记录和后一条记录的姓名,如果strcmp函数值大于0,则将这两条记录的所有信息替换,4个字符型数组用作替换的中间变量。最后调用display()(显示结果)显示排序后的结果。
第三章 程序编码
#include
黑龙江工程学院
void format();int back(){
cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”;
char back;
cin>>back;
if(back=='R'||back=='r')
return 1;
else
return 0;} void print(int i){
cout<<“学号:”< cout<<“姓名:”< cout<<“地址:”< cout<<“电话号码:”< cout<<“邮编:”< cout<<“E_MAIL:”< <<“tt★★★★★★★★★★★★★★★★★★★★★★★★★★” < <<“tt※ ※” < <<“tt※ 通 迅 录 ※” < <<“tt※ ※” < <<“tt※ 1.通讯录编辑.4.按序排列.※” < <<“tt※ ※” < <<“tt※ 2.查询联系人.5.将文件读入程序.※” < <<“tt※ ※” < <<“tt※ 3.将资料写入文件.6.格式化(慎用).※” < <<“tt※ ※” < <<“tt★★★★★★★★★★★★★★★★★★★★★★★★★★” < <<“tt ”< <<“ttt选择 :”;cin>>select1;switch(select1) 黑龙江工程学院 { case '1':cout<<“(1)添加:”< cout<<“(2)删除:”< cout<<“(3)修改:”< char select2; cout<<“ 请选择:”< cin>>select2; switch(select2) { case '1':cout<<“ 输入添加的资料:”< char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40]; cout<<“ 输入学号:”< cin>>no; cout<<“ 输入姓名:”< cin>>name; cout<<“ 输入地址:”< cin>>address; cout<<“ 输入电话号码:”< cin>>tel_no; cout<<“ 输入邮编:”< cin>>post_code;cout<<“ 输入E_mail:”< cin>>e_mail; a.add(no,name,address,tel_no,post_code,e_mail); cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”; char back_add; cin>>back_add; if(back_add=='R'||back_add=='r') goto top; else goto bottom; break; case '2':cout<<“ 输入要删除人的姓名:”< char name2[20]; cin>>name2; a.del(name2); cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”; 黑龙江工程学院 “; ”; char back_del; cin>>back_del; if(back_del=='R'||back_del=='r') goto top; else goto bottom; break;case '3':cout<<“ 输入需要修改人的姓名:”< char name3[20]; cin>>name3; if(a.correct(name3)) goto top; else goto bottom; break;} break;case '2':cout<<“(1)根据姓名查找”< cout<<“ 输入姓名: ”; cin>>name4; a.find2(name4); cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): char back_f1;cin>>back_f1;if(back_f1=='R'||back_f1=='r') goto top;else goto bottom;break;case '2':char no4[13];cout<<” 输入学号: “;cin>>no4;a.find1(no4); cout<<” 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): char back_f2;cin>>back_f2; 黑龙江工程学院 “; ”; if(back_f2=='R'||back_f2=='r') goto top; else goto bottom; break;} break;case '3':a.write();cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”;char back_w;cin>>back_w;if(back_w=='R'||back_w=='r') goto top;else goto bottom;break;case '4':cout<<“(1)按学号排序:”< cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): char back;cin>>back;if(back=='R'||back=='r') goto top;else goto bottom;break;case '2':a.list2();cout<<” 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): } char back1;cin>>back1;if(back1=='R'||back1=='r')goto top;else goto bottom;break; 黑龙江工程学院 break;case '5':a.read(); cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”; char back_r; cin>>back_r; if(back_r=='R'||back_r=='r') goto top; else goto bottom; break;case '6':cout<<“ 请确认删除所有资料!(Y/N)”; char select5; cin>>select5; if(select5=='Y'||select5=='y') a.format(); cout<<“ 返回还是回到主菜单(T为退出,R为回到主菜单,不计大小写): ”; char back_f; cin>>back_f; if(back_f=='R'||back_f=='r') goto top; else goto bottom; break;} bottom:cout<<“ ★★★★★★★★★★★★★★★★★★★★★★★ ”< void inter::add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]){ int x=1;for(int i=0;i<35;i++){ if(!strcmp(st[i].no,“0”)) { strcpy(st[i].address,address); strcpy(st[i].e_mail,e_mail); strcpy(st[i].name,name); strcpy(st[i].no,no); strcpy(st[i].post_code,post_code); strcpy(st[i].tel_no,tel_no); x=0; } 黑龙江工程学院 if(x==0) break;} } //删除联系人 void inter::del(char name[20]){ int x=1;for(int i=0;i<35;i++){ if(!strcmp(st[i].name,name)) { strcpy(st[i].address,“0”); strcpy(st[i].e_mail,“0”); strcpy(st[i].name,“0”); strcpy(st[i].no,“0”); strcpy(st[i].post_code,“0”); strcpy(st[i].tel_no,“0”); } else x=0;} if(x==0) cout<<“ error:输入姓名错误!”< int inter::correct(char name[30]){ int x;for(int i=0;i<35;i++){ if(!strcmp(st[i].name,name)) x=i;} char select;cout<<“(1)修改姓名:”< 黑龙江工程学院 char name1[30]; cin>>name1; strcpy(st[x].name,name1); cout<<“ 修改成功!”< return back(); break;case '2':cout<<“ 输入要修改的学号:”; char no1[13]; cin>>no1; strcpy(st[i].no,no1); cout<<“ 修改成功!”< return back(); break;case '3':cout<<“ 输入要修改的地址:”; char address1[100]; cin>>address1; strcpy(st[x].address,address1); cout<<“ 修改成功!”< return back(); break;case '4':cout<<“ 输入要修改的邮编:”; char post_code1[7]; cin>>post_code1; strcpy(st[x].post_code,post_code1); cout<<“ 修改成功!”< return back(); break;case '5':cout<<“ 输入要修改的电话号码:”; char tel_no1[12]; cin>>tel_no1; strcpy(st[x].tel_no,tel_no1); cout<<“ 修改成功!”< return back(); break;case '6':cout<<“ 输入要修改的E_MAIL:”; char e_mail1[40]; cin>>e_mail1; strcpy(st[x].e_mail,e_mail1); cout<<“ 修改成功!”< return back(); break;} } //按学号查询联系人 黑龙江工程学院 void inter::find1(char no[13]){ int x,y=1,z=1;for(int i=0;i<35;i++){ if(!strcmp(st[i].no,no)) { x=i; z=0; } else y=0; if(z==0) break;} if(y==0) cout<<“ 输入的学号查找不到!!”< } //按姓名查询联系人 void inter::find2(char name[20]){ int x,y=1,z=1;for(int i=0;i<35;i++){ if(!strcmp(st[i].name,name)) { x=i; z=0; } else y=0; if(z==0) break;} if(y==0) cout<<“ 输入的姓名查找不到!!”< void inter::read(){ char name1[20];cout<<“ 输入你要导入的文件名: ”;cin>>name1; 黑龙江工程学院 strcat(name1,“.txt”);ifstream file(name1);char line[120];char no[120];char name[120];char address[120];char post_code[120];char tel_no[120];char e_mail[120];int time=0;file.getline(line,120);while(!file.eof()){ for(int k=0;k<35;k++){ if(time==0) { strcpy(no,line); time=1; for(int i=0;i<120;i++) { if(no[i]==':') { i++; for(int j=0;j<13;j++) { st[k].no[j]=no[i]; i++; } } } file.getline(line,120,'n'); } if(time==1){ strcpy(name,line); time=2; for(int i=0;i<120;i++) { if(name[i]==':') { i++; for(int j=0;j<20;j++) { 黑龙江工程学院 st[k].name[j]=name[i]; i++; } } } file.getline(line,120,'n');} if(time== 2){ strcpy(address,line);time=3;for(int i=0;i<120;i++){ if(address[i]==':') { i++; for(int j=0;j<100;j++) { st[k].address[j]=address[i]; i++; } } } file.getline(line,120,'n');} if(time==3){ strcpy(tel_no,line);time=4;for(int i=0;i<120;i++){ if(tel_no[i]==':') { i++; for(int j=0;j<12;j++) { st[k].tel_no[j]=tel_no[i]; i++; } } } file.getline(line,120,'n');} 黑龙江工程学院 if(time==4) { strcpy(post_code,line); time=5; for(int i=0;i<120;i++) { if(post_code[i]==':') { i++; for(int j=0;j<7;j++) { st[k].post_code[j]=post_code[i]; i++; } } } file.getline(line,120,'n'); } if(time==5) { strcpy(e_mail,line); time=0; for(int i=0;i<120;i++) { if(e_mail[i]==':') { i++; for(int j=0;j<40;j++) { st[k].e_mail[j]=e_mail[i]; i++; } } } file.getline(line,120,'n'); } } } file.close();} //写入文件 void inter::write(){ char name[20]; 黑龙江工程学院 cout<<“ 输入要保存的文件名 ”;cin>>name;strcat(name,“.txt”);ofstream savefile(name);for(int i=0;i<35;i++){ savefile << “学号:”< savefile << “姓名:”< savefile << “地址:”< savefile << “电话号码:”< savefile << “邮编:”< savefile << “E_MAIL:”< void inter::list1(){ for(int i=0;i<34;i++){ for(int j=0;j<35-i;j++) { if(strcmp(st[j].no,st[j+1].no)>0) { char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40]; strcpy(no,st[j].no); strcpy(st[j].no,st[j+1].no); strcpy(st[j+1].no,no); strcpy(name,st[j].name); strcpy(st[j].name,st[j+1].name); strcpy(st[j+1].name,name); strcpy(address,st[j].address); strcpy(st[j].address,st[j+1].address); strcpy(st[j+1].address,address); strcpy(tel_no,st[j].tel_no); 黑龙江工程学院 strcpy(st[j].tel_no,st[j+1].tel_no); strcpy(st[j+1].tel_no,tel_no); strcpy(post_code,st[j].post_code); strcpy(st[j].post_code,st[j+1].post_code); strcpy(st[j+1].post_code,post_code); strcpy(e_mail,st[j].e_mail); strcpy(st[j].e_mail,st[j+1].e_mail); strcpy(st[j+1].e_mail,e_mail); } } } for(int k=0;k<35;k++){ int x=0; if(strcmp(st[k].no,“0”)) { print(k); x=1; } if(x==1) { cout< cout<<“---------------”< } } } //按姓名排序 void inter::list2(){ for(int i=0;i<34;i++){ for(int j=0;j<35-i;j++) { if(strcmp(st[j].name,st[j+1].name)>0) { char no[13];char name[20];char address[100];char tel_no[12];char post_code[7]; 黑龙江工程学院 char e_mail[40]; strcpy(no,st[j].no); strcpy(st[j].no,st[j+1].no); strcpy(st[j+1].no,no); strcpy(name,st[j].name); strcpy(st[j].name,st[j+1].name); strcpy(st[j+1].name,name); strcpy(address,st[j].address); strcpy(st[j].address,st[j+1].address); strcpy(st[j+1].address,address); strcpy(tel_no,st[j].tel_no); strcpy(st[j].tel_no,st[j+1].tel_no); strcpy(st[j+1].tel_no,tel_no); strcpy(post_code,st[j].post_code); strcpy(st[j].post_code,st[j+1].post_code); strcpy(st[j+1].post_code,post_code); strcpy(e_mail,st[j].e_mail); strcpy(st[j].e_mail,st[j+1].e_mail); strcpy(st[j+1].e_mail,e_mail); } } } for(int k=0;k<35;k++){ int x=0; if(strcmp(st[k].no,“0”)) { print(k); x=1; } if(x==1) { cout< cout<<“-------”< } } 黑龙江工程学院 } //格式化 void inter::format(){ for(int i=0;i<35;i++){ strcpy(st[i].address,“0”); strcpy(st[i].e_mail,“0”); strcpy(st[i].name,“0”); strcpy(st[i].no,“0”); strcpy(st[i].post_code,“0”); strcpy(st[i].tel_no,“0”);} } 第四章 程序调试与测试 运行程序,首页显示如下: 按1选择通讯录编辑,编辑通讯录,显示(1)添加,(2)删除,(3)修改,运行后结果如下: 黑龙江工程学院 第一次使用,按1添加联系人,填入相关信息,运行图如下: 返回首页,按2可以查找联系人,可以根据姓名查找和学号查找,本次运用学号查找,运行如下: 返回首页,按4可以进行排序,可以根据姓名和学号排序,按姓名排序需要自己编辑的姓氏排序规则才能使用,本次使用学号排序,运行如下: 将资料写入文件功能是将编辑好的通讯录写入文本文件,文本文件的名字可以自己输入。将文件读入程序,是将文本文件中的信息读入程序,进行添加,修改,删除,排序等功能。 第五章 结果分析 总体上可以满足一般的应用需求,但是还有一定的不足,程序运行流畅,没有未知错误。 第六章 设计创新及心得 黑龙江工程学院 程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C++语言又是最常见,功能最强大的一种高级语言,因此做好C++语言课程设计是十分必要的。 通过几天的课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次真真的做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针„„通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 我做的是班级通讯录的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做课程设计,所以在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。 开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己进步的证明。 在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前! package cn.pab.manager; import java.util.List;import java.util.Scanner; import cn.pab.dao.PersonDao;import cn.pab.dao.TypeDao;import cn.pab.dao.UserDao;import cn.pab.dao.impl.PersonDaoImpl;import cn.pab.dao.impl.TypeDaoImpl;import cn.pab.dao.impl.UserDaoImpl;import cn.pab.entity.Person;import cn.pab.entity.Type;/** * 业务类 */ public class PABmanager { /** * 系统启动 */ public static void main(String[] args){ Scanner input = new Scanner(System.in); UserDao userDao = new UserDaoImpl(); TypeDao typeDao = new TypeDaoImpl(); PersonDao personDao = new PersonDaoImpl(); System.out.println(“***********欢迎使用个人通讯录管理系统**********”); System.out.print(“n请选择操作(1.系统登录 2.密码修改 3.取消):”); String in = input.next(); if(“1”.equals(in)){ boolean islogin = userDao.login(); if(islogin){ System.out.println(“***********成功登录个人通讯录管理系统**********”); //System.out.print(“n请选择操作(1.类别管理 2.联系人管理 3.退出系统):”); }else{ System.out.println(“用户名或密码错误,不能登录!”); System.exit(-1); } }else if(“2”.equals(in)){ boolean modiFlag = userDao.modify(); if(modiFlag){ System.out.println(“密码修改成功!”);}else{ System.out.println(“密码修改失败!”);} System.exit(-1);}else{ System.out.println(“您已经退出系统!”);System.exit(-1);} while(true){ System.out.print(“n请选择操作(1.类别管理 2.联系人管理 3.退出系统):”);String in2 = input.next();if(“1”.equals(in2)){ while(true){ System.out.print(“n请继续选择操作(1.新建类别 2.查询类别 3.删除类别 4.返回):”); String num = input.next(); if(“1”.equals(num)){ System.out.print(“请输入类别的名称:”);String lbmc = input.next(); System.out.print(“请输入类别的说明:”);String lbsm = input.next();System.out.print(“请输入类别的备注:”);String lbbz = input.next(); Type type = new Type(lbmc,lbsm,lbbz); typeDao.createType(type);}else if(“2”.equals(num)){ List System.out.println(“tt类别信息列表”); System.out.println(“类别名称tt类别说明tt类别备注”); for(int i = 0;i < types.size();i++){ Type type =types.get(i); System.out.print(type.getLbmc()+“t”); System.out.print(type.getLbsm()+ “tt”); System.out.println(type.getLbbz()); } }else if(“3”.equals(num)){ System.out.print(“请输入类别的名称:”); String lbmc = input.next(); Type type = new Type(lbmc,null,null); typeDao.deleteType(type);}else if(“4”.equals(num)){ break;}else{ System.out.println(“您输入不合法,请重新选择!”); } } }else if(“2”.equals(in2)){ while(true){ System.out.print(“n请继续选择操作(1.新建联系人 2.查询联系人 3.更新联系人 4.删除联系人 5.返回):”); String num = input.next(); if(“1”.equals(num)){ System.out.print(“请输入联系人的类别名称:”);String lb = input.next(); System.out.print(“请输入联系人的姓名:”);String xm = input.next(); System.out.print(“请输入联系人的电话:”);String dh = input.next(); System.out.print(“请输入联系人的手机号:”);String sjh = input.next(); System.out.print(“请输入联系人的工作单位:”);String gzdw = input.next(); System.out.print(“请输入联系人的住址:”); String zz = input.next(); System.out.print(“请输入联系人的邮政编码:”); String yzbm = input.next(); Person person = new Person(lb,xm,dh,sjh,gzdw,zz,yzbm); personDao.createPerson(person); }else if(“2”.equals(num)){ System.out.print(“请输入联系人的姓名:”); String name = input.next(); Person p = personDao.queryPerson(name); System.out.println(“tt查询到的联系人信息”); System.out.println(“类别t姓名t电话tt手机号tt工作单位t住址t邮政编码”); System.out.print(p.getLb()+ “t”); System.out.print(p.getXm()+ “t”); System.out.print(p.getDh()+ “t”); System.out.print(p.getSjh()+ “t”); System.out.print(p.getGzdw()+ “t”); System.out.print(p.getZz()+ “t”); System.out.println(p.getYzbm()); } } } }else if(“3”.equals(num)){ System.out.print(“请输入需更新的联系人编号:”); int id = input.nextInt(); System.out.print(“请输入需更新的联系人信息选项:”); String item = input.next(); System.out.print(“请输入联系人信息选项的值:”); String val = input.next(); personDao.updatePerson(id,item, val); }else if(“4”.equals(num)){ System.out.print(“请输入要删除联系人的姓名:”); String name = input.next(); personDao.deletePerson(name); }else if(“5”.equals(num)){ break; }else{ System.out.println(“您输入不合法,请重新选择!”); } } }else if(“3”.equals(in2)){ System.out.println(“您已经退出系统!”);System.exit(-1);}else{ System.out.println(“您输入不合法,请重新选择!”);} #include string name;};class Student:public Person { public: Student(string n,int num,string ss):Person(n),number(num),address(add),str1(ss){} virtual void show(); void input_stu(); void display_stu(); void display_qu(); ~Student(){} protected: string str1; int number; string address;};void Student::show(){ cout<<“向老师提出的问题是:”;cin>>str1;} void Student::display_qu(){ cout< void Student::input_stu(){ cin>>Student::name;cin>>Student::number;cin>>Student::address;} void Student::display_stu(){ add,string cout<<“姓名:”< Teacher(string n,string sub,string sdf):Person(n),subject(sub),str2(sdf){} virtual void show(); void input_t(); void display_t(); void display_an(); ~Teacher(){} protected: string subject; string str2;};void Teacher::display_an(){ cout< void Teacher::show(){ cout<<“我的回答是:”;cin>>str2;} void Teacher::input_t(){ cin>>Teacher::name;cin>>Teacher::subject;} void Teacher::display_t(){ cout<<“姓名:”< Admin(string n,int tel,string ssfs):Person(n),telphone(tel),str3(ssfs){} virtual void show(); void input_ad(); void display_ad(); void display_gg(); ~Admin(){} protected: int telphone; string str3;};void Admin::display_gg(){ cout<<“公告:”;cout< void Admin::show(){ cout<<“公告是:”;cin>>str3;} void Admin::input_ad(){ cin>>Admin::name;cin>>Admin::telphone;} void Admin::display_ad(){ cout<<“姓名是:”< int main(){ int z,h,m;z=0;h=0;m=0; Student stu(“guochun”,20150311,“qlu”,“sdss”); Teacher tea(“cuiyu”,“math”,“dsdf”); Admin ad(“steve jobs”,178641,“sdfs”); while(1) { int x; cout<<“*******************”< cout<<“1.学生”< cout<<“2.教师”< cout<<“3.管理员”< cout<<“*******************”< cout<<“选择你的身份”< cin>>x; if(x<=0||x>3) cout<<“输入错误!”< else { switch(x) { case 1: cout<<“请选择你要干什么”< case 1:stu.display_stu();break; case 2:stu.input_stu(); } cout<<“修改后的个人信息为:”< { stu.Student::show(); z=1;} break; } break; case 2: cout<<“请选择你要干什么”< cout<<“学生有问题提问”< ad.display_gg();} cout<<“___________________”< cout<<“发生错误!”;else { switch(q) { case 1:tea.display_t();break; case 2:tea.input_t(); cout<<“修改后的个人信息为:”< tea.display_t();break; case 3: { if(z==1) { cout<<“学生的问题是:”; stu.display_qu(); tea.Teacher::show(); h=1; } } break; } } break; case 3: cout<<“请选择你要干什么”< cout<<“___________________”< cout<<“1.显示个人信息”< cout<<“发生错误!”; else { switch(l) { case 1:ad.display_ad();break; case 2:ad.input_ad(); cout<<“修改后的个人信息为:”< ad.display_ad();break; case 3: { ad.Admin::show(); m=1; } break; } } break; } } } return 0;} C++课程设计——个人通讯录管理系统 系统功能的基本要求: (1)查看功能:选择此功能时,列出下列三类选择。A 办公类;B 个人类; C 商务类; 当选中某类时,显示出此类所有数据中 的姓名和电话号码)(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办 公类; B 个人类; C 商务类; 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上显示出此人的电话号码。 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。程序代码: #include string name,tel,sort; public: void readal(string n,string t,string s){ name=n;tel=t;sort=s; } string getn(){ return name; } string gett(){ return tel;} string gets(){ return sort; } void display(){ cout<<“姓名:”< ”<<“电话: <<”类别:“< ”< } void show(){ cout<<“电话:”< } void setn(){ cout<<“姓名:”;cin>>name; } void sett(){ cout<<“电话:”;cin>>tel; } void sets(){ cout<<“类别:”;cin>>sort; } void setw(){ } setn();sett();sets();}; class Person{ private: int size;base person[15];public: Person(){ } size=0; //存入数据到文件中 增加 void write(){ fstream out(“C: xlbase.txt”,ios::out);for(int i=0;i void increase(){ string q,p,r;person[size].setw();size++;if(person[size].getn()==person[size+1].getn())cout<<“数据录入重复!”< } //修改 void alter(){ if(person[i].getn().find(s,0)!=string::npos){ person[i].display();string s;int x;cout<<“输入要修改的姓名:”;cin>>s;for(int i=0;i cout<<“********选择其中的一个*********”< cout<<“**********2.电话*****************”< cout<<“**********3.类别*****************”< cin>>x; switch(x){ } case 1: person[i].setn();cout<<“修改结果:”< break;case 3: person[i].sets();cout<<“修改结果:”< break; } } //删除 void deleted(){ char x;string s;cout<<“输入要删除的姓名:”;cin>>s;for(int i=0;i if(person[i].getn().find(s,0)!=string::npos){person[i].display();cout<<“是否删除(y/n)?”;cin>>x;if(x=='y'){ for(int t=i;t<=size;t++)person[t]=person[t+1];size--; } break;else continue; } } //选择 查找 void select(){ string s;cout<<“********选择3个类中的一个*********”< cout<<“**********2.个人*****************”< cout<<“**********3.商务*****************”< cout<<“请输入要查找的关键字:”< cin>>s; for(int i=0;i if(person[i].gets().find(s,0)!=string::npos) { person[i].display(); } } //拨号 void dail(){ string s;cout<<“所有联系人:”< } cout<<“输入要拨号的姓名:”< for(int i=0;i if(person[i].getn().find(s,0)!=string::npos) person[i].show(); } void read(){ };string n,t,s;size=0;fstream in(“C: xlbase.txt”,ios::in);in>>n;while(!in.eof()){//判定是否遇到的文件结束符 } in.close();for(int i=0;i in>>t>>s;//读取数据 person[size].readal(n,t,s);size++;in>>n;int main(){ cout<<“***************************************”< while(1){ cout<<“0.写入数据”< cout<<“1.增加新联系人”< cout<<“2.修改联系人信息”< cout<<“3.删除联系人”< cout<<“4.查看联系人”< cout<<“5.拨号功能”< cout<<“6.读取数据”< case 1: k1.increase();break;case 2: k1.alter();break; case 3: k1.deleted();break;case 4: k1.select();break;case 5: k1.dail();break;case 6: k1.read();break;case 7: break;cout< else cout<<“选择错误,请再次选择!”< } return 0;执行操作: 1.增加联系人第三篇:个人通讯录管理系统,java源代码
第四篇:c++课程设计:教务管理系统源代码
第五篇:C++课设——个人通讯录管理系统