面向对象程序设计
课程设计报告
设计名称通讯录管理系统
学院信息科学与工程学院
专业计算机科学与技术
班级
学号
学生姓名
设计起止时间:2013年9月2日至2013年9月6日
一、目的及意义 3
二、系统设计 (3)
1.系统功能模块设计 (3)
2.类的分析与设计 (4)
3.系统详细设计 (4)
(1)增加联系人信息 (4)
(2)显示新增联系人 (5)
(3)删除联系人 (6)
(4)修改信息 (7)
(5)统计人数 (9)
(6)查找联系人(专业、姓名) (10)
(7)显示所有联系人 (12)
三、系统调试分析、存在问题与不足 (13)
四、总结与体会 (13)
五、附录 (13)
一、目的及意义
本课程设计的选题为通讯录管理系统,该系统的功能主要有:(1)录入成员信息。基本信息:姓名、现就读大学名称及班级名、专业、家庭住址、家庭联系电话、邮编、本人联系电话等。
(2)删除一个成员信息。
(3)修改成员信息并保存。
(4)能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。
(5)能够按专业对成员信息进行检索并将检索结果显示在屏幕上。
(6)显示所有成员信息。
(7)利用菜单的形式进行管理。
(8)能够加载文件中存放的信息,显示所有联系人。
(9)能够统计人数。
主要用到的c++知识包括:类的使用,类的继承,函数重载,指针的使用等等。
二、系统设计
1.系统功能模块设计
2.类的分析与设计
该系统设计两个类,其中有person类,以及继承persona类的student 类。系统能够实现录入成员信息(add()),删除成员信息(deleteperson()),修改成员信息(modify ()),能够按姓名(findname())对成员信息进行检索并将检索结果显示在屏幕上,还可以统计(count())联系人数目,能够按专业(findmajor())对成员信息进行检索并将检索结果显示在屏幕上,显示所有成员(showall())信息。最终能够将整理后的信息保存到文件(person.txt)中,并且可以显示所有文件中储存的联系人信息。
3.系统详细设计
(1)增加联系人信息
详细代码如下:
//输入新联系人信息
void student::add()
{
char name1[20];
char chengwei1[20];
char phone1[20];
char youbian1[20];
char zhuzhi1[20];
char u1[20];char major1[20];char banji1[20];
cout<<"输入联系人姓名:"< cin>>name1; cout<<"输入联系人称谓:"< cin>>chengwei1; cout<<"输入联系人电话:"< cin>>phone1; cout<<"输入联系人邮编:"< cin>>youbian1; cout<<"输入联系人住址:"< cin>>zhuzhi1; cout<<"输入联系人学校:"< cin>>u1; cout<<"输入联系人专业:"< cin>>major1; cout<<"输入联系人班级:"< cin>>banji1; insert(name1,chengwei1,phone1,youbian1,zhuzhi1,u1,major1,ba nji1); } (2)显示新增联系人 详细代码: //显示新增联系人信息 void student::show() { person *ahead=myfirst; while(ahead!=NULL) { cout<<"================================================="< cout<<" 姓名:"< 谓:"< cout<<" 电话:"< cout<<" 住址:"< cout<<" 专业:"< cout<<"================================================="< ahead=ahead->getnext(); } } (3)删除联系人 详细代码: //删除联系人信息 bool student::deleteperson( ) { char tmpname[20]; person *ahead=myfirst; person *follow=ahead; cout<<"请输入要删除联系人姓名:"; cin>>tmpname; if(ahead==NULL) { cout<<"无联系人可以删除"; return false; } else if(strcmp(ahead->getname(),tmpname)==0) { myfirst=myfirst->getnext(); delete ahead; cout<<"该联系人已删除!"< return true;} else { ahead=ahead->getnext(); while(ahead!=NULL) { if(strcmp(ahead->getname(),tmpname)==0) { follow->setnext(ahead->getnext()); cout<<"该联系人已删除!"< delete ahead; return true; } follow=ahead; ahead=ahead->getnext(); } cout<<"要删除的联系人不存在,无法删除!"< } } (4)修改信息 详细代码: