通讯录管理系统的设计与实现c++源代码

时间:2019-05-14 03:46:38下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《通讯录管理系统的设计与实现c++源代码》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《通讯录管理系统的设计与实现c++源代码》。

第一篇:通讯录管理系统的设计与实现c++源代码

通讯录管理系统的设计与实现源代码 #include #include #include #include using namespace std;struct Student { string num;//学号 string name;//姓名 int age;char tel;char addr;char emal;Student *next;};long iCount=0;Student *head=NULL;Student *pEnd=NULL;void LoadRecords(char *path)//从文本里面读取记录 { fstream infile(path,ios::in);if(!infile){} else { infile>>iCount;int t=iCount;if(iCount!=0){ for(;iCount>0;iCount--){ Student *p=new Student;infile>>p->num>>p->name>>p->Maths;if(head==NULL){ head=p;pEnd=p;pEnd->next=NULL;} else { pEnd->next=p;pEnd=pEnd->next;pEnd->next=NULL;

} } } 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<<“| ”<num<<“| ”<name <<“| ”<age<<“| ”<tel <<“| ”<addr<<“| ”<emal<<“ |n”;h=h->next;} cout<<“-----------n”;cout<<“n********************************************************************************nn”;} void Print_All(Student *h)//输出全部 {

if(h==NULL){cout<<“n****************************************n”;cout<<“没有学生记录!n”;cout<<“n****************************************n”;return;} cout<<“n********************************************************************************n”;cout<<“所有学生:nn”;cout<<“-----------n”;cout<<“| ”<number=1;h->number++} { cout<<“-----------n”;cout<<“| ”<num<<“| ”<name <<“| ”<age<<“| ”<tel <<“| ”<addr<<“| ”<emal<<“ |n”;h=h->next;} cout<<“-----------n”;cout<<“n********************************************************************************nn”;}

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<<“| ”<number=i)

{ cout<<“-----------n”;cout<<“| ”<num<<“| ”<name <<“| ”<age<<“| ”<tel <<“| ”<addr<<“| ”<emal<<“ |n”;} h=h->next;} cout<<“-----------n”;cout<<“n********************************************************************************nn”;} void Add(Student *s){ if(pEnd==NULL){head=s;pEnd=s;s->next=NULL;} else{pEnd->next=s;pEnd=s;pEnd->next=NULL;} cout<<“n====n”;cout<name<<“ 的资料添加完毕!n”;cout<<“====n”;iCount++;} void main(){ LoadRecords(“c: est.txt”);int n;cout<<“n********************************************************************************n”;cout<<“[1] 增加一个学生n” <<“[2] 显示所有的学生以及他们的成绩n” <<“[3] 显示数组中学号为I的学生信息n” <<“[4] 存盘并退出n”;cout<<“********************************************************************************nn”;cout<<“请选择操作项:[1-5] ”;cin>>n;while(1){ switch(n){ case 1: { Student *p=new Student;

cout<<“n********************************************************************************nn”;cout<<“请输入内容:”<>p->num>>p->name>>p->age>>p->tel>>p->addr>>p->emal;Add(p);break;} case 2: Print(head);break;case 3: Print_search(head);break;case 4: { fstream outfile(“c: est.txt”,ios::out);if(!outfile){} else { outfile<num<<“ ”<name<<“ ”<Maths<<“ ”;head=head->next;} } outfile.close();cout<<“n====n”;cout<<“再见”<=1&&n<=5){

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 #include #include struct student //结构体 { char no[13];char name[20];char address[100];char tel_no[12];char post_code[7];char e_mail[40];};class inter { private: student st[35];public: void add(char no[13],char name[20],char address[100],char tel_no[12],char post_code[7],char e_mail[40]);void del(char name[20]);void find1(char no[13]);void find2(char name[20]);void list1();void list2();int correct(char name[20]);void read();void write();

黑龙江工程学院

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)根据姓名查找”<>select3;switch(select3){ case '1':char name4[20];

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)按学号排序:”<>select4;switch(select4){ case '1':a.list1();

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)修改姓名:”<>select;switch(select){ case '1':cout<<“ 输入要修改的姓名:”;

黑龙江工程学院

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++语言的一次实践作业,自己进步的证明。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前!

第三篇:个人通讯录管理系统,java源代码

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 types = typeDao.queryType();

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(“您输入不合法,请重新选择!”);}

第四篇:c++课程设计:教务管理系统源代码

#include #include using namespace std;class Person { public: Person(string n):name(n){} virtual void show(){} ~Person(){} protected:

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<<“请选择你要干什么”<>y;if(y<=0||y>3)cout<<“发生错误!”;else { switch(y){

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<<“___________________”<>q;if(q<=0||q>3)

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.显示个人信息”<>l;if(l<=0||l>3)

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++课设——个人通讯录管理系统

C++课程设计——个人通讯录管理系统

系统功能的基本要求:

(1)查看功能:选择此功能时,列出下列三类选择。A 办公类;B 个人类; C 商务类;

当选中某类时,显示出此类所有数据中 的姓名和电话号码)(2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办

公类; B 个人类; C 商务类;

当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。

(3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上显示出此人的电话号码。

(4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改。

(5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。程序代码: #include #include #include using namespace std;class base { private:

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} //string库内函数,结构为a.find(b,c), //即在字符串a中下标为c的位置开始寻找是否有字符串b的存<

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;i15)cout<<“空间已满!”<

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<<“输入要拨号的姓名:”<>s;

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.读取数据”<>m;if(m>=0&&m<=7){ switch(m){ case 0: k1.write();break;

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.增加联系人

下载通讯录管理系统的设计与实现c++源代码word格式文档
下载通讯录管理系统的设计与实现c++源代码.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C++课程设计 教职工信息管理系统源代码

    教职工信息管理系统源码 #include #include #include #include #define maxsize 100 fstream iofile; //文件指针 class Time //时间类 { public: int year; int......

    C++大作业_职工信息管理系统源代码

    #include #include #include using namespace std; const N=5000; // 定义系统可录入的职工最大数值string Ename[N]; long Enum[N]; char Esex[N]; int Eage[N];......

    航空售票系统+C++课程设计源代码

    #include #include #define M 5//每种飞机票的总数目 #define N 3//飞机票的总数目 class Plane {private: char name[40];//终点站名int number;//航班号int Number;//......

    c语言实现机票管理系统源代码

    /*1、用户和管理员及航班信息请以英文字母或数字输入*/ /*2、管理员账户为:boss,密码为:123。保存在txt文件中,需要修改请于程序中修改*/ /*3、部分文件读写为二进制读写,所以打......

    通讯录管理系统大全

    课 程 设 计 任 务 书 题目 C语言课程设计 系(部) 专业班级学生姓名学号 06 月信息科学与电气工程学院计算机科学与技术 计职141 王雪 140819139 21 日至07 月04 日共 2......

    通讯录管理系统

    摘 要 为了人们对他人信息的记忆方便而设计,开发的一套“通讯录管理系统“软件。 通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制......

    通讯管理系统源代码

    题目:用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 (一)功能要求 (1)查看功能:选择此功能时,列出下列三类选择。 A 办公类 B 个人类 C 商务类 ,当选中某类时......

    图书管理系统源代码

    环植学院深入开展创先争优活动实施方案为贯彻落实中共中央、海南省委、省委教育工委及学校党委“关于在党的基层组织和党员中深入开展创先争优活动”的决定,根据相关文件精神......