个人约会管理系统课程设计报告Word文档下载推荐.docx
《个人约会管理系统课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《个人约会管理系统课程设计报告Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
理论的学习是不断广面的书籍资料的查阅,然而动手编程则在结合理论的基础上对语言代码的编写与实现,再加上各种功能要求和结构思想的联系。
再次,在专业科课程设计中,强调科学的学习方法,在进行设计之前,先要明确主题,然后查阅大量的资料,寻找课程设计的主题思想,同时也要不断更新知识总结的广度和思维发展的过程。
最后通过,大量的练习编写与更改,发现无数的运行错误,从而进行不断的修改完善,最终综合地将自己课题要求的功能一步一步地实现出来。
四、课程设计题目与内容
课程设计题目:
C++个人约会管理系统
课程设计内容与要求:
i)具有不同约会类的层次结构
ii)具有不同性质朋友的类层次结构
iii)应用类的继承和派生机制来实现
iv)具有约会的保存与查询功能
五、课程设计目的
本课程设计旨在实验中训练我们的基本编程能力,了解关于C++(面向对象语言)管理信息系统的开发思想、开发流程及功能实现,熟悉C++的各种各样的基本操作和代码实现。
本管理系统程序中涉及了基类定义、基类继承与派生、函数构造与析构、循环函数、I/O流输入/输出函数、指针函数等各方面的C++编程设计理论的知识。
通过课程设计大量的实验训练,使我们能对C++的功能实现操作有一个更深刻更进一步的了解,掌握C++语言程序对各类信息管理的原理、思想和具体的实现方式,为将来进一步开发出高质量的多方向的信息管理系统打下坚实的基础。
六、课程设计的过程(个人约会管理系统)
1、个人约会管理系统UML图形表示
date
#no:
string
#name:
char[10]
#address:
char[33]
#time:
+date()
+~date()
+input():
void
+output():
+getno():
string
Genfriend
–age:
int
–sex:
char[5]
+Genfriend()
+input():
void
impfriend
–Prof:
–interest:
+impfriend()
B_Gfriend
–hobby:
char[6]
–workplace:
+B_Gfriend()
内部结构属性及相互关系说明
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("
out);
等等
3、源程序清单及其实现说明
源程序代码清单:
(利用到多文件格式)
<
i>
基类定义及其继承派生
#include<
iostream>
string>
usingnamespacestd;
classdate//约会类定义
{
protected:
stringno;
charname[10];
charaddress[33];
chartime[10];
public:
voidinput()
{
cout<
"
约会编号__"
endl;
cin>
>
no;
约会人姓名__"
name;
约会地址是__"
address;
约会时间为__(时间格式如2009-12-25)"
time;
}
voidoutput()
约会编号__"
no<
约会的人名__"
name<
约会的地址是__"
address<
cout<
约会时间在__"
time<
stringgetno(){returnno;
}
};
classGenfriend:
publicdate//公有派生普通朋友约会类
private:
intage;
charsex[5];
date:
input();
该好友的年龄是__"
;
age;
该好友的性别为__"
sex;
date:
output();
年龄__"
age<
性别__"
sex<
classimpfriend:
publicdate//公有派生重要朋友约会类
charprof[10];
charinterest[10];
这个重要朋友的工作类型是__"
prof;
他(她)的生活兴趣__"
interest;
工作类型__"
prof<
兴趣__"
interest<
classB_Gfriend:
publicdate//公有派生女(男)朋友约会类
charhobby[6];
charworkplace[10];
voidinput()
你女(男)朋友的爱好是___"
hobby;
工作单位__"
workplace;
爱好__"
hobby<
workplace<
ii>
主函数及文件读取、保存
iomanip>
#include"
约会类定义.h"
fstream>
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<
endl<
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
~~~~"
~~>
更新<
~~"
~~>
查询<
退出<
while(l)
if(i==0&
&
j==0&
k==0)
{
cout<
首次登陆请你更新系统信息>
cout<
更新->
1,退出系统->
0"
(注释:
写入信息,请键入1退出系统,请键入0)"
cin>
l;
}
else
{
更新->
1查询->
2退出->
0"
}
system("
cls"
);
switch(l)
case1:
//各类朋友约会类信息更新
\n普通朋友信息更新->
1\n重要朋友信息更新->
2\n女(男)朋友信息更新->
3\n返回->
m;
switch(m)
{
case1:
cout<
输入一个普通朋友的数据:
c[i].input();
i++;
break;
case2:
输入一个重要朋友的数据:
imp[j].input();
j++;
case3:
输入一个女(男)朋友的数据:
r[k].input();
k++;
case0:
break;
default:
cout<
代号输入有误"
break;
}
break;
case2:
//各类朋友约会类信息查询
\n普通朋友信息查询->
1\n重要朋友信息查询->
2\n女(男)朋友信息查询->
3\n返回->
cin>
n;
switch(n)
{
case1:
{
请输入普通朋友的编号__"
cin>
num;
for(x=0;
x<
i;
x++)
{
if(num==c[x].getno())
{
cout<
显示编号为__"
num<
普通朋友的数据__"
c[x].output();
}
else
\n______没有这个编号的数据!
!
\n"
}
break;
}
case2:
请输入重要朋友的编号__"
j;
if(num==imp[x].getno())
重要朋友的数据__"
imp[x].output();
else
case3:
请输入你女(男)朋友的编号__"
k;
if(num==r[x].getno())
朋友的数据__"
r[x].output();
}
}
}
//各类文件信息读取
fstreamfile1("
//普通朋友信息读出
while
(1)
{
file1.read((char*)&
cs,sizeof(cs));
if(!
file1)break;
c[i]=cs;
i++;
file1.close();
fstreamfile2("
datee2.txt"
//重要朋友信息从读出
file2.read((char*)&
imps,sizeof(imps));
file2)break;
imp[j]=imps;
j++;
file2.close();
fstreamfile3("
datee3.txt"
//女(男)朋友信息从读出
file3.read((char*)&
rs,sizeof(rs));
file3)break;
r[k]=rs;
k++;
file3.close();
//各类文件信息的保存
//普通朋友信息保存
for(x=0;
x++)
f1.write((char*)&
c[x],sizeof(c[x]));
f1.close();
fstreamf2("
//重要朋友信息保存
f2.write((char*)&
imp[x],sizeof(imp[x]));
f2.close();
fstreamf3("
//女(男)朋友信息保存
f3.write((char*)&
r[x],sizeof(r[x]));
f3.close();
//退出管理系统的界面设置
cout<
谢谢你的使用与支持....................."
你已经成功退出个人约会系统<
4、功能实现和结果显示
a>
个人约会管理系统的登录界面
b>
约会管理系统普通朋友类数据的输入
c>
约会管理系统重要朋友类数据的输入
d>
e>
重要朋友约会类的信息查询显示
f>
女/男朋友约会类的信息查询显示
g>
个人约会管理系统的退出界面
5、调试、测试与运行错误处理
(1)调试过程
在利用MicrosoftVisualC++6.0软件进行个人约会管理系统程序编写过程中,按照各部分的程序与结合老师的理论指导,我依次分多步调试,根据每个模块的函数结构连接进行局部调试,再对未定义完全的问题、错误、非法部分进行大量的修改代码和结构分析。
(2)测试过程
管理系统程序测试中,主要会发现一些函数运用错误、基类和派生类定义的不完整、循环功能函数变量使用不当与函数功能不对口等问题。
测试后,再详细查看代码、理解系统要求的功能,不断寻找错误之处和完善功能结构,再通过查阅大量的有关书籍资料,寻找更好的功能函数,再对代码进行改进。
如此多次反复调试、测试与改进。
七、课程设计总结与收获
我在设计这个个人约会管理系统程序时采用了模块多文件的设计方法,使用循环函数控制呈现操作界面,使用不同的函数来实现各项目的需求功能。
花了大约一周的时间,其中大部分时间用于构思程序功能、输入程序、调试和写实验报告。
遇到的主要困难是:
开始时由于构思不完善,导致程序很乱,搞清楚具体类定义、继承派生、各种类的实现和文件操作函数结构等函数关系后,程序代码编写就变得简洁明朗了。
通过这次课程设计,更大地增加了我学习软件技术的兴趣,虽然还不明确软件技术包含更深的具体内容,但从《C++语言程序设计》这门课程的学习与实践中,再次更好的发现程序设计的乐趣,在学习C++编程的过程中也学到了许多计算机应用基础知识,对计算机的软件