最新c++课程设计学生通讯录资料Word格式.docx

上传人:b****5 文档编号:18682401 上传时间:2022-12-31 格式:DOCX 页数:29 大小:264.51KB
下载 相关 举报
最新c++课程设计学生通讯录资料Word格式.docx_第1页
第1页 / 共29页
最新c++课程设计学生通讯录资料Word格式.docx_第2页
第2页 / 共29页
最新c++课程设计学生通讯录资料Word格式.docx_第3页
第3页 / 共29页
最新c++课程设计学生通讯录资料Word格式.docx_第4页
第4页 / 共29页
最新c++课程设计学生通讯录资料Word格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

最新c++课程设计学生通讯录资料Word格式.docx

《最新c++课程设计学生通讯录资料Word格式.docx》由会员分享,可在线阅读,更多相关《最新c++课程设计学生通讯录资料Word格式.docx(29页珍藏版)》请在冰豆网上搜索。

最新c++课程设计学生通讯录资料Word格式.docx

2.3.2使用方法…………………………………………………5

2.3.3软件优点…………………………………………………5

2.3.4使用对象及服务…………………………………………5

2.4程序测试及分析……………………………………………………5

2.4.1程序测试…………………………………………………5

2.4.2程序分……………………………………………………6

2.5设计总结……………………………………………………………6

3.附录…………………………………………………………………………7

3.1主要函数……………………………………………………………7

3.2数据对象……………………………………………………………7

4.主要参考资料………………………………………………………………7

一、课程设计目的与任务

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,通过接近实际项目的训练,锻炼的分析解决实际问题的能力。

在设计中,利用学到的编程知识,逐步学习面向对象程序设计中,类的设计,程序的编写,以及调试排错、测试等内容。

从实践中掌握程序设计的方法,提高学生面向应用的实践编程的能力。

二、课程设计内容

1设计题目的主要内容

(1)目的与要求

设计一个学生通讯录程序,具有增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。

这些功能通过函数实现,通过菜单选择调用函数来实现相应的功能。

数据成员包括学号、姓名、年龄、联系方式。

(2)具体功能

学生通讯录要求设计实现的功能包括增加数据、修改数据、删除数据、保存数据、查询数据以及简单预览功能。

增加数据:

添加新记录。

修改数据:

通过学号检索出数据,通过菜单选择修改姓名、修改年龄、修改联系方式。

删除数据:

通过学号检索出数据,删除该学号学生的相关信息。

保存数据:

将添加的数据保存到文件,以便下次使用。

查询数据:

菜单选择通过学号、通过姓名、通过联系方式查询数据详细信息

简单预览功能:

预览所有学生的简单信息,比如学生的学号、姓名。

退出:

通过菜单选择结束程序。

(3)模块划分

学生通讯录要求的设计实现主要通过七个主模块。

模块一:

增加人员函数Add();

增加通讯录基本信息。

模块二:

删除人员函数Delete();

删除指定的学生的基本信息。

模块三:

修改人员函数Modify();

修改指定的通讯录基本信息。

模块四:

查询人员信息函数Query();

查询指定的学生的详细信息。

模块五:

数据存盘,载入函数Save()以及Load();

储存与载入基本信息。

模块六:

预览数据voidLook();

预览比较简略的信息。

模块七:

删除通讯录voidDesTory();

删除已载入的所有的信息。

2设计思想与程序构架

(1)程序基本架构

NY

(2)核心子架构

添加新记录函数

Y

NN

Y

N

设计思路:

增加记录函数的实现首先输入学号,判断该学号是否存在,如果存在,询问是否修改,调用修改信息函数实现;

如果不存在,则继续输入学生的其他相关信息;

然后,询问是否继续添加新记录,如果“是”调用此函数;

如果“否”则返回主菜单。

修改记录

NY

设计思路:

首先根据学号检索出学生信息并输出到显示屏显示出来,然后建立一个子菜单选择要修改的内容(比如年龄),输入新内容。

询问是否修改该学号学生的其他信息,如果“是”则返回子菜单选择修改该学号学生的其他内容(比如姓名);

如果“否”则询问是否修改其他学号学生信息,选择“是”修改其他学号学生信息,选择“否”返回主菜单。

查询详细记录

第一步,建立一个查询子菜单,第二步,建立查询方式,包括按学号、按姓名、按联系方式。

第三步,将检索出的信息输出到显示屏。

第四步,询问是否继续查找,如果“是”返回子菜单;

如果“否”返回主菜单。

(3)主程序设计基本思路

1、根据题目要求分析要使用的数据成员以及要实现的具体功能,将程序分为几个模块。

2、对每一个模块具体分析,考虑要添加的变量,要使用到的函数以及具体的实现功能的方法。

3、考虑各个函数的互相调用的方法及实现的功能。

从全局出发,对每个函数细致修改,使其不冲突,实现多个函数相互调用。

4、对界面进行层次化分析,主要是主菜单与子菜单的转换,使其转换方便,整个程序无退出失败现象。

5、对程序进行优化,在关键点进行设置,比如完成某项任务提示“操作成功”操作不当提示该如何操作;

退出、删除提示“是否继续”等。

6、操作界面优化,对在显示器显示的数据进行修改,比如操作界面排版、输出数据格式、系统提示格式等。

3软件使用说明书

(1)主要功能

通过本软件可建立通讯录,实现添加、修改、预览、删除、保存通讯信息等功能。

是您生活中的好帮手。

(2)使用方法

增加通讯录选择“1”键;

保存通讯录数据设置选择“5”键;

删除通讯录选择“2”键;

预览通讯录选择“6”键;

修改通讯录选择“3”键;

清除通讯录选择“7”键;

查询详细通讯录选择“4”键;

退出请选择“0”键

(3)软件优点

简约、方便、实用、可重复安装使用。

(4)使用对象及服务

使用对象:

适合联系对象较多的人群

软件服务:

自购买之日三月内免费安装、免费调试。

4程序测试及分析

1、程序测试

(1)运行程序,进入主界面

(2)选择功能“4”,进入查询功能,显示子菜单

(3)选择功能“6”,预览简略信息,查询详细信息选择“y”

(4)选择功能“5”,保存信息,保存完成后返回主菜单。

(5)选择功能“7”删除所有信息,删除后返回主菜单。

2、程序分析

(1)、系统中包含了输入、输出、保存、删除、查询、修改等多种功能,

系统操作灵活性较强,功能比较全面;

(2)、由于该系统对数据采用文本保存方式,所以安全性不可靠。

(3)、采用链表结构操作,不能支持超大量的数据,否则运行缓慢。

5设计总结

通过本次实验,让我对c++有了更系统的认识。

编写过程中,更加清楚了结构化、模块化的益处。

系统分析和设计的部分花了比较多的时间,遇到到许多难点,

但经过思考和参考资料都顺利解决了。

对整个程序而言,怎样把自己的分析转化为实际的程序代码,是我编写这个程序最困难之处。

这次C++课程设计,提升了我分析问题的能力,对编写程序也有了一个较深刻的认识,更明白了一个道理:

好的程序不是写出来的,而是改出来的。

相信这次实验,将对我以后的学习起到指导作用。

三、附录

(1)主要函数

voidFind(charName[20]);

//按姓名查找

voidFind(stringID);

//按编号查找

voidAdd();

//添加信息

voidDelete();

//按id删除人员

voidModify(stringID);

//修改信息

voidQuery();

//查询信息

voidTJ();

//删除文件信息

voidSave();

//保存数据

voidLoad();

//读入数据

voidLook();

//预览

voidOutput(Person*p)//输出数据

(2)数据对象

成员名

数据类型

长度

字段含义

No

string

学号

Name

char

20

姓名

Age

年龄

Tel

联系方式

四、主要参考资料

[1]谭浩强.c++面向对象程序设计[M].第一版.北京:

清华大学出版社,2006.

[2]游洪跃,伍良富,王景熙.C++面向对象程序设计实验和课程设计教程[M].第一版.北京:

清华大学出版社,2009.

源代码

#include<

iostream>

fstream>

string>

conio.h>

usingnamespacestd;

stringID;

classPerson

{

protected:

stringNo;

//学号

stringAge;

charName[20];

//姓名

charSex[10];

//性别

stringTel;

//联系方式

Person*next;

public:

Person(stringID,char*Name,char*Sex,stringAge,stringTel)

{

strcpy(this->

Name,Name);

Sex,Sex);

this->

Tel=Tel;

No=ID;

Age=Age;

}

friendclassManage;

};

classManage

private:

Person*person;

Manage()

person=0;

Load();

~Manage()

Person*p;

p=person;

while(p)

p=p->

next;

deleteperson;

person=p;

voidFind(charName[20]);

//按姓名查找

voidFind(stringID);

//按编号查找

voidAdd();

voidDelete();

//按id删除人员

voidModify(stringID);

//修改信息

voidQuery();

voidTJ();

voidSave();

voidLoad();

voidLook();

voidDesTory();

voidOutput(Person*p)

cout<

<

"

\t\t学号:

"

p->

No<

endl;

\t\t姓名:

Name<

\t\t性别:

Sex<

\t\t年龄:

Age<

\t\t联系电话:

Tel<

voidManage:

:

Add()//添加信息

{

system("

cls"

);

Person*p,*p2;

//新结点指针

stringNo,Age,Tel;

charName[20],Sex[10];

charc;

\n*===新增学生通讯录===*\n"

;

//输入学生信息

输入学号:

\t"

cin>

>

No;

Person*p1;

p1=person;

while(p1)

if(p1->

No==No)

{break;

}

else

{

p1=p1->

}

if(p1!

=NULL)

该学号已存在,是否修改该学生信息(Y/N)"

c;

if(toupper(c)=='

Y'

{cout<

该学生信息为:

Find(No);

Modify(No);

return;

输入姓名:

Name;

输入性别:

Sex;

输入年龄:

Age;

输入联系方式:

Tel;

p=newPerson(No,Name,Sex,Age,Tel);

p->

next=0;

//学生结点加入链表

if(person)//若已经存在结点

{p2=person;

while(p2->

next)//查找尾结点

p2=p2->

p2->

next=p;

//连接

else//若不存在结点(表空)

***===添加成功===***\n"

_________________________________________"

……是否继续添加……(Y/N)"

Add();

}

Delete()//按id删除人员

\n*……删除信息……*\n"

___________________________________________"

输入要删除的同学ID:

//查找要删除的结点

Person*p1,*p2;

if(p1->

break;

p2=p1;

}//删除结点

=NULL)//若找到结点,则删除

所要删除的学生的信息如下:

\n"

Output(p1);

_______________________________________"

确定是否删除(Y/N):

if(toupper(c)!

='

pause"

if(p1==person)//若要删除的结点是第一个结点

person=p1->

deletep1;

else//若要删除的结点是后续结点

{

next=p1->

\t\t***删除成功***\n"

________________________________________"

是否继续删除(Y/N)"

{Delete();

else//未找到结点

未找到该同学!

按任意键返回\n"

getch();

Modify(stringID)//修改信息

{Person*p1;

{if(p1->

No==ID)

=NULL)//若找到结点

所要修改的学生的信息如下:

__________________________________________"

do

1.修改姓名"

2.修改性别"

3.修改年龄"

4.修改联系方式"

0.退出修改"

请选择(0-4)要修改的信息\n"

if(c!

0'

请输入新的信息:

switch(c)

case'

1'

p1->

2'

3'

4'

default:

}while(c!

\t***修改成功***\n"

是否继续修改(Y/N):

请输入要修改人员的ID:

ID;

Modify(ID);

未找到该学生!

}

Save()//数据写入到文件

ofstreamfPerson("

Person.txt"

ios:

out);

\n保存数据,是否继续?

[Y/N]:

Person*p=person;

fPerson<

fPerson.close();

\n保存成功...\n"

Load()//数据读入

{ifstreamfPerson;

fPerson.open("

person.txt"

in);

fPerson>

No>

Name>

Sex>

Age>

while(fPerson.good())

p=newPerson(No,Name

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

当前位置:首页 > 医药卫生 > 基础医学

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

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