个人约会管理系统课程设计报告.docx

上传人:b****5 文档编号:6893964 上传时间:2023-01-12 格式:DOCX 页数:20 大小:281.45KB
下载 相关 举报
个人约会管理系统课程设计报告.docx_第1页
第1页 / 共20页
个人约会管理系统课程设计报告.docx_第2页
第2页 / 共20页
个人约会管理系统课程设计报告.docx_第3页
第3页 / 共20页
个人约会管理系统课程设计报告.docx_第4页
第4页 / 共20页
个人约会管理系统课程设计报告.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

个人约会管理系统课程设计报告.docx

《个人约会管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《个人约会管理系统课程设计报告.docx(20页珍藏版)》请在冰豆网上搜索。

个人约会管理系统课程设计报告.docx

个人约会管理系统课程设计报告

C++课程设计报告

 

课程设计题目:

C++个人约会管理系统

 

学生姓名吴亚亮

专业软件工程

班级081103

学号08110322

指导教师李祥汪雪元

2009年12月15日

目录

一、C++语言发展状况………………3

二、课程设计名称………………….4

三、课程设计的意义……………….4

四、课程设计题目与内容………….5

五、课程设计目的………………….5

六、课程设计的过程(个人约会管理系统)……………………………….6

1、个人约会管理系统UML图形表示………………6

2、详细设计模块………………………………….7

3、源程序清单及其实现说明………………………8

4、功能实现和结果显示………………………….16

5、调试、测试与运行错误处理……………………19

七、课程设计总结与收获…………20

八、参考文献………………………21

一、C++语言发展状况

语言的发展是一个逐步递进的过程,C++是直接从C语言发展过来的,而C语言是从B语言发展过来的,B语言是BCPL的一个解释性后代,BCPL是BasicCPL。

其中最有趣的是CPL中C的由来,由于当时这个语言是剑桥大学和伦敦大学合作开发的,在伦敦的人员加入之前,C表示剑桥,伦敦人员加入之后,C表示Combined组合。

还有一种非正式的说法,C表示Christopher,因为Christopher是CPL背后的主要动力。

最初导致C++诞生的原因是在Bjarne博士等人试图去分析UNIX的内核的时候,这项工作开始于1979年4月,当时由于没有合适的工具能够有效的分析由于内核分布而造成的网络流量,以及怎样将内核模块化。

同年10月,Bjarne博士完成了一个可以运行的预处理程序,称之为Cpre,它为C加上了类似Simula的类机制。

在这个过程中,Bjarne博士开始思考是不是要开发一种新的语言,当时贝尔实验室对这个想法很感兴趣,就让Bjarne博士等人组成一个开发小组,专门进行研究。

当时C++即是Cwithclass,这是把它当作一种C语言的有效扩充。

由于当时C语言在编程界居于老大的地位,要想发展一种新的语言,最强大的竞争对手就是C语言,所以当时有两个问题最受关注:

C++要在运行时间、代码紧凑性和数据紧凑性方面能够与C语言相媲美,但是还要尽量避免在语言应用领域的限制。

在这种情况下,很自然C++从C语言继承过来,但是我们的Bjarne博士更具有先见之明,他为了避免受到C语言的局限性,参考了很多的语言,例如:

从Simula继承了类的概念,从Algol68继承了运算符重载、引用以及在任何地方声明变量的能力,从BCPL获得了//注释,从Ada得到了模板、名字空间,从Ada、Clu和ML取来了异常。

二、课程设计名称

《2008级面向对象程序设计——C++个人约会管理系统》

 

三、课程设计的意义

面向对象程序(C++)语言设计是一门既要结合理论学习,又要结合动手编程的科目。

理论的学习是不断广面的书籍资料的查阅,然而动手编程则在结合理论的基础上对语言代码的编写与实现,再加上各种功能要求和结构思想的联系。

再次,在专业科课程设计中,强调科学的学习方法,在进行设计之前,先要明确主题,然后查阅大量的资料,寻找课程设计的主题思想,同时也要不断更新知识总结的广度和思维发展的过程。

最后通过,大量的练习编写与更改,发现无数的运行错误,从而进行不断的修改完善,最终综合地将自己课题要求的功能一步一步地实现出来。

四、课程设计题目与内容

课程设计题目:

C++个人约会管理系统

课程设计内容与要求:

i)具有不同约会类的层次结构

ii)具有不同性质朋友的类层次结构

iii)应用类的继承和派生机制来实现

iv)具有约会的保存与查询功能

五、课程设计目的

本课程设计旨在实验中训练我们的基本编程能力,了解关于C++(面向对象语言)管理信息系统的开发思想、开发流程及功能实现,熟悉C++的各种各样的基本操作和代码实现。

本管理系统程序中涉及了基类定义、基类继承与派生、函数构造与析构、循环函数、I/O流输入/输出函数、指针函数等各方面的C++编程设计理论的知识。

通过课程设计大量的实验训练,使我们能对C++的功能实现操作有一个更深刻更进一步的了解,掌握C++语言程序对各类信息管理的原理、思想和具体的实现方式,为将来进一步开发出高质量的多方向的信息管理系统打下坚实的基础。

 

六、课程设计的过程(个人约会管理系统)

1、个人约会管理系统UML图形表示

 

date

#no:

string

#name:

char[10]

#address:

char[33]

#time:

char[10]

+date()

+~date()

+input():

void

+output():

void

+getno():

string

Genfriend

–age:

int

–sex:

char[5]

+Genfriend()

+input():

void

+output():

void

impfriend

–Prof:

char[10]

–interest:

char[10]

+impfriend()

+input():

void

+output():

void

B_Gfriend

–hobby:

char[6]

–workplace:

char[10]

+B_Gfriend()

+input():

void

+output():

void

 

内部结构属性及相互关系说明

date为约会基类,其中包括有四个保护成员no、name、address、time,公有成员包括构造函数、析构函数、input、output、get。

由date通过公有派生出三个朋友约会类分别为:

Genfriend(普通朋友类)impfriend(重要朋友类)B_Gfriend(女/男朋友类)……

2、详细设计模块

<1>约会类的定义模块

私有成员定义,包括有:

No、name[10]、address[33]、time[10]……公有成员定义,包括input(输入)、output(输出)、getno()……

<2>约会类的继承与派生模块

公有(public)派生出Genfriend(普通朋友约会类)、impfriend(重要朋友约会类)、B_Gfriend(女/男朋友约会类)。

其中包括有,Genfriend:

私有成员int age,charsex[5] 公有成员 input,output。

Impfriend:

私有成员 charprof[10],charinterest[10] 公有成员 input,output。

B_Gfriend:

私有成员 charhobby[6],charworkplace[10] 公有成员 input,output。

等等。

   <3>主函数定义与功能模块

三个派生类的对象声明Genfriend、impfriend、B_Gfriend和部分应用需要的具体控制变量i=0,j=0,k=0,l,m,n,x等。

个人约会系统登录界面具体设计部分与登录控制的循环函数。

再使用switch()判断语句分别进行对各类约会信息更新、各类约会信息详细查询……。

各类朋友约会类的具体信息读取与保存模块,分别利用I/O流格式,比如fstreamfile1("datee1.txt",ios:

:

in);fstreamf1("datee1.txt",ios:

:

out);等等

3、源程序清单及其实现说明

源程序代码清单:

(利用到多文件格式)

基类定义及其继承派生

#include

#include

usingnamespacestd;

classdate//约会类定义

{

protected:

stringno;

charname[10];

charaddress[33];

chartime[10];

public:

voidinput()

{

cout<<"约会编号__"<

cin>>no;

cout<<"约会人姓名__"<

cin>>name;

cout<<"约会地址是__"<

cin>>address;

cout<<"约会时间为__(时间格式如2009-12-25)"<

cin>>time;

}

voidoutput()

{

cout<<"约会编号__"<

cout<<"约会的人名__"<

cout<<"约会的地址是__"<

cout<<"约会时间在__"<

}

stringgetno(){returnno;}

};

classGenfriend:

publicdate//公有派生普通朋友约会类

{

private:

intage;

charsex[5];

public:

voidinput()

{

date:

:

input();

cout<<"该好友的年龄是__";

cin>>age;

cout<<"该好友的性别为__";

cin>>sex;

}

voidoutput()

{

date:

:

output();

cout<<"年龄__"<

cout<<"性别__"<

}

};

 

classimpfriend:

publicdate//公有派生重要朋友约会类

{

private:

charprof[10];

charinterest[10];

public:

voidinput()

{

date:

:

input();

cout<<"这个重要朋友的工作类型是__";

cin>>prof;

cout<<"他(她)的生活兴趣__";

cin>>interest;

}

voidoutput()

{

date:

:

output();

cout<<"工作类型__"<

cout<<"兴趣__"<

}

};

 

classB_Gfriend:

publicdate//公有派生女(男)朋友约会类

{

private:

charhobby[6];

charworkplace[10];

public:

voidinput()

{

date:

:

input();

cout<<"你女(男)朋友的爱好是___";

cin>>hobby;

cout<<"工作单位__";

cin>>workplace;

}

voidoutput()

{

date:

:

output();

cout<<"爱好__"<

cout<<"工作单位__"<

}

};

主函数及文件读取、保存

#include

#include

#include"约会类定义.h"

#include

#include

usingnamespacestd;

 

voidmain()

{

Genfriendc[20],cs;

impfriendimp[20],imps;

B_Gfriendr[20],rs;

inti=0,j=0,k=0,l,m,n,x;//i,j,k分别对应三个派生类的人数

stringnum;

cout<<"欢迎使用个人约会管理系统____"<

cout<

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<

cout<<"~~~~"<

cout<<"~~>>更新<<~~"<

cout<<"~~~~"<

cout<<"~~>>查询<<~~"<

cout<<"~~~~"<

cout<<"~~>>退出<<~~"<

cout<<"~~~~"<

cout<<"~~~~"<

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<

cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<

 

while(l)

{

if(i==0&&j==0&&k==0)

{

cout<

cout<<"首次登陆请你更新系统信息>>>>>>"<

cout<

cout<<"更新->1,退出系统->0"<

cout<<"(注释:

写入信息,请键入1退出系统,请键入0)"<

cin>>l;

}

else

{

cout<<"更新->1查询->2退出->0"<

cin>>l;

}

system("cls");

switch(l)

{

case1:

//各类朋友约会类信息更新

{

cout<<"\n普通朋友信息更新->1\n重要朋友信息更新->2\n女(男)朋友信息更新->3\n返回->0"<

cin>>m;

switch(m)

{

case1:

cout<<"输入一个普通朋友的数据:

"<

c[i].input();

i++;

break;

case2:

cout<<"输入一个重要朋友的数据:

"<

imp[j].input();

j++;

break;

case3:

cout<<"输入一个女(男)朋友的数据:

"<

r[k].input();

k++;

break;

case0:

break;

default:

cout<<"代号输入有误"<

cout<

break;

}

break;

}

case2:

//各类朋友约会类信息查询

{

cout<<"\n普通朋友信息查询->1\n重要朋友信息查询->2\n女(男)朋友信息查询->3\n返回->0"<

cin>>n;

switch(n)

{

case1:

{

cout<<"请输入普通朋友的编号__";

cin>>num;

for(x=0;x

{

if(num==c[x].getno())

{

cout<<"显示编号为__"<

c[x].output();

cout<

}

else

{

cout<<"\n______没有这个编号的数据!

\n"<

}

}

break;

}

case2:

{

cout<<"请输入重要朋友的编号__";

cin>>num;

for(x=0;x

{

if(num==imp[x].getno())

{

cout<<"显示编号为__"<

imp[x].output();

cout<

}

else

{

cout<<"\n______没有这个编号的数据!

\n"<

}

}

break;

}

case3:

{

cout<<"请输入你女(男)朋友的编号__";

cin>>num;

for(x=0;x

{

if(num==r[x].getno())

{

cout<<"显示编号为__"<

r[x].output();

cout<

}

else

{

cout<<"\n______没有这个编号的数据!

\n"<

}

}

break;

}

case0:

break;

default:

cout<<"代号输入有误"<

cout<

break;

}

break;

}

case0:

break;

default:

cout<<"代号输入有误"<

cout<

break;

}

}

 

//各类文件信息读取

fstreamfile1("datee1.txt",ios:

:

in);//普通朋友信息读出

while

(1)

{

file1.read((char*)&cs,sizeof(cs));

if(!

file1)break;

c[i]=cs;

i++;

}

file1.close();

fstreamfile2("datee2.txt",ios:

:

in);//重要朋友信息从读出

while

(1)

{

file2.read((char*)&imps,sizeof(imps));

if(!

file2)break;

imp[j]=imps;

j++;

}

file2.close();

fstreamfile3("datee3.txt",ios:

:

in);//女(男)朋友信息从读出

while

(1)

{

file3.read((char*)&rs,sizeof(rs));

if(!

file3)break;

r[k]=rs;

k++;

}

file3.close();

 

//各类文件信息的保存

fstreamf1("datee1.txt",ios:

:

out);//普通朋友信息保存

for(x=0;x

f1.write((char*)&c[x],sizeof(c[x]));

f1.close();

fstreamf2("datee2.txt",ios:

:

out);//重要朋友信息保存

for(x=0;x

f2.write((char*)&imp[x],sizeof(imp[x]));

f2.close();

fstreamf3("datee3.txt",ios:

:

out);//女(男)朋友信息保存

for(x=0;x

f3.write((char*)&r[x],sizeof(r[x]));

f3.close();

//退出管理系统的界面设置

cout<

cout<<"谢谢你的使用与支持....................."<

cout<

cout<<">>>>>>>>>>>>>>你已经成功退出个人约会系统<<<<<<<<<<<<<<<"<

}

 

4、功能实现和结果显示

个人约会管理系统的登录界面

约会管理系统普通朋友类数据的输入

约会管理系统重要朋友类数据的输入

 

约会管理系统重要朋友类数据的输入

 

重要朋友约会类的信息查询显示

女/男朋友约会类的信息查询显示

 

个人约会管理系统的退出界面

 

5、调试、测试与运行错误处理

(1)调试过程

在利用MicrosoftVisualC++6.0软件进行个人约会管理系统程序编写过程中,按照各部分的程序与结合老师的理论指导,我依次分多步调试,根据每个模块的函数结构连接进行局部调试,再对未定义完全的问题、错误、非法部分进行大量的修改代码和结构分析。

(2)测试过程

管理系统程序测试中,主要会发现一些函数运用错误、基类和派生类定义的不完整、循环功能函数变量使用不当与函数功能不对口等问题。

测试后,再详细查看代码、理解系统要求的功能,不断寻找错误之处和完善功能结构,再通过查阅大量的有关书籍资料,寻找更好的功能函数,再对代码进行改进。

如此多次反复调试、测试与改进。

七、课程设计总结与收获

我在设计这个个人约会管理系统程序时采用了模块多文件的设计方法,使用循环函数控制呈现操作界面,使用不同的函数来实现各项目的需求功能。

花了大约一周的时间,其中大部分时间用于构思程序功能、输入程序、调试和写实验报告。

遇到的主要困难是:

开始时由于构思不完善,导致程序很乱,搞清楚具体类定义、继承派生、各种类的实现和文件操作函数结构等函数关系后,程序代码编写就变得简洁明朗了。

通过这次课程设计,更大地增加了我学习软件技术的兴趣,虽然还不明确软件技术包含更深的具体内容,但从《C++语言程序设计》这门课程的学习与实践中,再次更好的发现程序设计的乐趣,在学习C++编程的过程中也学到了许多计算机应用基础知识,对计算机的软件

展开阅读全文
相关搜索

当前位置:首页 > 法律文书 > 调解书

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

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