C++课程设计同学录设计报告.docx

上传人:b****9 文档编号:29159588 上传时间:2023-07-20 格式:DOCX 页数:13 大小:42.85KB
下载 相关 举报
C++课程设计同学录设计报告.docx_第1页
第1页 / 共13页
C++课程设计同学录设计报告.docx_第2页
第2页 / 共13页
C++课程设计同学录设计报告.docx_第3页
第3页 / 共13页
C++课程设计同学录设计报告.docx_第4页
第4页 / 共13页
C++课程设计同学录设计报告.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C++课程设计同学录设计报告.docx

《C++课程设计同学录设计报告.docx》由会员分享,可在线阅读,更多相关《C++课程设计同学录设计报告.docx(13页珍藏版)》请在冰豆网上搜索。

C++课程设计同学录设计报告.docx

C++课程设计同学录设计报告

面向对象程序设计

课程设计报告

同学录管理系统

杨敬周

计算101

题目

班级

姓名

学号

2011年7月1日

 

同学录管理系统详细设计说明书

1.项目设计背景:

2.项目设计目的:

通过设计一个《同学录管理系统》,进一步熟悉C++中类的概念、基本知识和技能,类的封装、继承的实现方式。

掌握面向对象程序设计的基本思路和方法,并利用所学的基本知识和技能解决简单的面向对象的程序设计问题。

了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与VisualC++环境的使用:

逐步熟悉程序设计的方法,并养成良好的编程习惯。

3.项目需求分析

以本班的同学的具体数据为背景,设计一个本班同学同学录,要求如下:

(1)录入信息,必须包括:

姓名,性别,电话,家庭地址,邮编,E-mail等基本信息;

(2)修改信息,包括插入一条或多条信息,修改或者删除某人的信息;

(3)查询信息,可以按姓名,家庭住址,性别等多种方式查询;

(4)显示所有信息;

4.概要设计

同学录管理系统

 

数据结构及各模块分析:

1.设计类,对象及基本数据类型:

创建一个Classmates类,它有五个私有数据成员:

stringname;姓名

stringaddress;地址

stringnumber;电话号码

stringpost;邮编

stringemailE-mail

stringqq;QQ号码

包含七个公有成员函数:

功能如下:

chardiaplay();首页

voidadd_person();添加同学

voiddel_person();删除同学

voidshow_all();显示所有同学

voidalter();修改信息

voidinquiry();查询同学

voidsave_new();保存新增加的同学

在主函数main()之中,

.Classmatesobj;创建名为obj的对象

结构体:

structstudent

Classmatesobject;object对象作为结构体student的一个成员

student*prior;定义一个指向前驱的结构体指针

student*next;定义一个指向后继的结构体指针

};

该结构体是在alter()修改函数中用来处理相关信息的修改.

字符串变量:

str,record;

字符变量:

choose;

布尔型变量:

flag;

数据保存方式以及格式:

该同学录管理系统将把输入的人员信息保存为pClassmates.txt文本文件,在文件读取时系统将会把该文件中相关信息读出,并在屏幕上显示出相关信息.

2.实现各模块功能的相应程序:

1.界面:

display()

{

system("cls");

cout<

cout<<"\t\t------------------------------

…..……

fflush(stdin);

returnchoose;

}

添加同学:

add_person()

{

cout<

…….……

.save_new()

{

ofstreamoutData("pClassmates.txt",ios:

:

app);

if(!

outData)

……

outData.close();

}

cout<

!

!

"<

system("pause");

}

删除同学信息

del_person()

{

ofstreamoutData("temp.txt",ios:

:

out);

……

cout<

!

!

"<

}

system("pause");

}

显示所有同学信息:

show_all()

{

ifstreaminData("pClassmates.txt",ios:

:

in);

……

cout<<"所有同学信息已经全部显示出来!

!

!

"<

}

system("pause");

}

修改同学信息

alter()

{

ifstreaminData("pClassmates.txt",ios:

:

in);

……

cout<

!

!

"<

system("pause");

}

}

查询同学信息

select()

{

ifstreaminData("pClassmates.txt",ios:

:

in);

……

}

system("pause");

}

 

5.详细设计

详细功能如下:

A,添加:

系统将提示用户输入新添加人员信息,输入到文件中,人员信息数据包括姓名,电话号码,QQ号,邮箱,邮编,地址.

B,删除:

首先由用户输入要删除的人员的姓名或者电话号码,然后调用删除函数,删除该人员的所有相关资料.

C,显示所有人员信息:

该功能将显示已经保存的所有人员的姓名,电话,QQ号,邮编及地址.

D,修改:

首先由用户输入要修改的人员姓名或者电话号码,然后系统用修改函数查找,显示该名同学的资料,然后系统提示用户输入需要修改的人员的相关信息.并用双向链表来实现修改功能

E,查询:

可由用户输入要查找的人员姓名或电话号码,然后系统用查找函数查找,接着系统使用相关文件命令输出所查找的人员的全部信息.

F,退出系统

关闭同学录管理系统.

菜单用于选择各项功能:

其中包括:

.a:

添加新同学;

.b:

删除同学;

.c:

显示所有人员信息;

.d:

修改人员信息;

.e:

查询同学;

.f:

关闭同学录.

采用面向对象的程序设计方法,a,b,c,d,e,这五项菜单都调用一个函数来实现.

voidClassmates:

:

alter()

{

ifstreaminData("pClassmates.txt",ios:

:

in);

//打开文件pClassmates.txt,进行读操作

if(!

inData)//判断文件打开是否成功

{

cout<

!

!

"<

//如果打开失败,输出“对不起不能打开文件!

!

!

system("pause");//屏幕暂停

return;

}

stringsign;//定义字符串变量sign

cout<

的姓名或电话号码:

";

cin>>sign;//输入变量sign

fflush(stdin);//清空缓冲区

record*H=newrecord;

//新建结构体指针变量H,并为其分配空间

record*p=H;//使p指针指向指针H

record*q=H;//使q指针也指向指针H

boolflag=true;//定义布尔型变量flag.

while(inData>>p->object.name>>p->object.number>>

p->object.qq>>p->object.post>>p->object.address)

//读取文件中一个人的信息

{

p->next=newrecord;//建立双向链表

p=p->next;

p->prior=q;

q->next=p;

q=p;

}

p->next=NULL;//使p的next成员指向NULL.

inData.close();//关闭pClassmates.txt文件

p=H;//使指针变量P指向结构指针H的头节点

while(p)//当p不为空时

{

if((p->object.name==sign)||(p->object.number==sign))

//判断输入是否为空.

{

if(flag)

{

cout<

"<

cout<

:

left)<

<object.name<<""<

<object.number<<""<

<object.qq<<""<

<object.post<<""<

<object.address<

//输出要修改的人的信息

flag=false;

}

cout<

"<

cout<<"姓名:

";

cin>>p->object.name;

fflush(stdin);

cout<<"电话号:

";

cin>>p->object.number;

fflush(stdin);

cout<<"QQ:

";

cin>>p->object.qq;

fflush(stdin);

cout<<"邮编:

";

cin>>p->object.post;

fflush(stdin);

cout<<"地址:

";

cin>>p->object.address;

fflush(stdin);

break;

//根据提示进行修改

}

p=p->next;//使结构体指针p指向该指针的末尾

}

if(flag)

{

cout<

!

!

";

cout<

system("pause");

return;

}

else

{

ofstreamout("pClassmates.txt",ios:

:

out);

//打开文件pClassmates.txt,进行写操作

if(!

out)//判断文件打开是否成功打开

{

cout<

!

!

不能打开文件!

!

!

!

"<

system("pause");

return;

}

p=H;//使结构体指针p指向被修改的人的记录的首地址.

while(p)//如果p不为空,则执行以下语句

{

out<

:

left)<object.name

<<""<object.number

<<""<object.qq

<<""<object.post

<<""<object.address<

将修改后的信息保存到原来位置

p=p->next;//使用p指针指向其本身的末尾

}

out.close();//关闭pClassmates.txt文件

cout<

!

!

"<

system("pause");//屏幕暂停

}

}

6.设计总结

参考文献:

《C++程序开发深入浅出》

参考网站:

Google,XX,csdn等等

在开发当中,遇到问题是正常的,关键是怎样解决问题。

不要因为问题难解决就放弃了,如果那样,你就很难完成一件事情了!

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 笔试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1