版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号:
《C++面向对象程序设计》
大作业
题目
学院
专业信息工程
班级
姓名王继文
指导教师
2015年11月15日
目录
一大作业的目的.................................................................1
二大作业的内容.................................................................1
三大作业的要求与数据..........................................................2
四大作业应完成的工作..........................................................2
五总体设计(包含几大功能模块)...............................................2
六详细设计(各功能模块的具体实现算法一一流程图).............................3
七调试分析(包含各模块的测试用例,及测试结果)................................5
八总结........................................................................19
九参考资料.....................................................................19
一大作业的目的
《面向对象程序设计》是一门实践性很强的课程,通过大作业不仅可以
全方位检验学生知识掌握程度和综合能力,而且还可以进一步加深、巩固所
学课程的基本理论知识,理论联系实际,进一步培养自己综合分析问题和解
决问题的能力。更好地掌握运用C++语言独立地编写、调试应用程序和进行
其它相关设计的技能。
二大作业的内容
(1)初始化输入:N-参赛院系总数,M-男子竞赛项目数,W一女子竞赛项目数;
(2)各项目名次取法有如下几种:
取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得
分1;
(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息.
(4)所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团
体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
三大作业的要求与数据
1、用C++语言实现系统;
2、由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。所有信息
记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查
看参赛院系信息、获奖运动员、比赛项目信息等。
3、各项目名次取法有如下几种:
取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第
5名得分lo
四大作业应完成的工作
(1)编写算法;
(2)算法测试,并有具体的测试结果和结果分析;
(3)撰写大作业报告。内容包括:
1)封面扉页
2)设计任务书
3)目录
4)总体设计方案(包括流程图)
5)使用说明及运行实例(包括界面)
6)成员设计内容简介
7)项目源程序代码(注意注释的使用)
8)指导教师评语
五总体设计(包含几大功能模块)
本文研究开发的运动会管理系统用于支持用于查询各个学校在运动会中的成绩。有几种
目标:
1.支持输入各个项目的基本信息;
2.可以按比赛项目编号或名称查询、删除、修改信息。
3.可以按运动员编号或姓名查询、删除、修改信息
4.数据输入信息并能随时查询
六详细设计(各功能模块的具体实现算法一一流程
图)
-------\
开始
信
息
录
入
结束
6o1各函数的功能和实现
1。本实验中,对不同的对象采取不同的存储结构,对比赛项目采取链式结构,
而对于参赛运动员采取一个结构就可以了。本程序中主要用到线性表的一些基本
操作,将比赛项目信息,运动员信息,赛事信息都构造成线性表。具体功能通过
主函数分别调用各函数实现。
2O参考本实验的功能要求,本程序分为七个模块:主函数、信息录入函数、
信息修改函数、信息删除函数、信息查询函数,信息输出函数.
3o信息录入函数有包括比赛项目信息录入函数(包括比赛编号、名称等),
运动员信息录入函数(运动员的编号、姓名、性别、年龄、工作单位或省份)、
比赛赛事信息录入函数(某运动员参加某比赛项目,成绩、名次)。
4o信息修改函数包括比赛项目、运动员信息、赛事信息修改。
5.信息查询函数包括根据比赛项目、运动员编号进行查修
6.信息输出函数包括比赛项目、运动员信息、赛事信息输出等。
7o退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释
放动态创建的内存空间,再退出此程序。
如图6.1
图6o1
七调试分析(包含各模块的测试用例,及测试结果)
7.1主函数
#include<iostream>
#include(fstream>
#include(string)
usingnamespacestd;
voidfun1()
{cout〈<"******************************"((endl;
cout〈Vendl;
coutw”******学校运动会管理系统******”〈vendl;
cout<<"・一数据录入请按:1”((endl;
cout〈〈”--------数据修改请按:2--------H«endl;
cout<〈”-------数据删除请按:3----------”〈〈endl;
cout<〈”-----数据查询请按:4------”<〈endl;
cout〈V”-------数据显示请按:5-----u«endl;
cout«H——退出系统请按:6-----0<〈endl;
cout«endl;
cout〈v"*******************************,,<〈endl;
cout<<endl;
cout〈V'*****请输入一个数据,并按回车键!*****”<(endl;
)
classMatch
public:
Match"next;//为创建链表做准备
intnumber;〃比赛项目编号
charcall[10];//比赛项目名称
chartime[10];〃比赛时间
charplace[20];//比赛地点
friendvoidinput1();
};
■,,C:\USERS\JIWEN\DESKTOP\C++\sportsmeeting\Debug\sportsm...□X
学
校上
喝^
赤
据录
入
清
据
修改S
清:
据
删除
我
请
据
查询
左
据
显示1#■
清
出
系统
«:於
清
***兴兴清输入一个数据,并按回车腱?xwxx*
7o2输入相关信息
voidinput1()
{ofstreamfout("e:\\比赛项目.dat”,ios::app);
charch;
Matcha;
do
{cout〈<”请分别输入比赛项目编号、名称、比赛时间、比赛地点."vvendl;
cin»a.number»a.call>>a.place))a。time;
aonext=NULL;
foutowrite((char)&a,sizeo('(Match));
coutvv”是否继续输入,如果继续键入Y|y”<(endl;
cin))ch;
}while(ch=,y,|Ich=-Y,);
foutoclose();
)
Match*headl;
voidcreat()
{headl=NULL;
Match*p,*q=head1;
ifstreamfin(,,e:\\比赛项目.dal”,ios::in);
if(!fin)
{cout〈V”文件打开失败!”V<endl;exit(0);
)
p=newMatch;
fineread((char*)p,sizeof(Match));
while(!finoeof())
{if(headl==NULL)headl=p;
else
q->next=p;
q二p;
p=newMatch;
finoread((char*)p,sizeof(Match));
}
fin.close();
CA*C:\DocuaentsandSettings\Ad>ini.strator\桌面\Debug\运动会管理系统.exex
会
运动
管
统
校
『i
数
入
雷1
一-n
数2
改
删-
数3-
需
查-
数4
示
品
数
统
系
退
xxxxxxxx**x*,*-x
*****请输入一个数据,并按回车键,*****
1
请前人要输入的信息,
比赛项目信意输入请赛]
运劫员信息喻人请赛2
比赛赛事信意输入请接:3
1
请分别输入比赛项目编号、名称、比赛时间、比赛地点.
00110。米八点田径场
是否继续输入,如果继续键入Y;y
金给rta立半,
*C:\Docu>entsand58t1:1118$\4(1>:££51/010「\桌面”€1)118\运动会管理系统.6*6BSX
情分别输入比赛项目编号、名称、比赛时间、比赛地点.
002200米九点田径场
程否继续输入,如果继续键入Y;y
露分别输入比赛项目编号、名称、比赛时间,比赛地点.
003800米十点田径场
,否继续输入,如果继续键入Y;y
,分别输入比赛项目编号、名称、比赛时间、比赛地点.
004就远H~一点田隹场
曙否继续输入,如果缠续键入Y;y
n
XXXXXXXXMXXXXXXXXXXXXXXXXXXMXX
统
校运动
会管
理P
“一-
一
数
录
入1
二1
数
修2
改
数
删
二C:3
嗡
数
查4
示
二
数
品5
一一
统
退
系6
一
一
*
-M-
」
半
7.3信息修改
intchange1()〃对比赛项目相关信息修改
{
coutvv”您正在进行修改比赛项目有关事项操作!"〈〈endl;
creat();
Match*pl;
pl=headl;
cout<〈”请输入要修改比赛项目的编号:"〈〈endl;
intnumberl;//要修改的比赛项目编号
intsign=O;〃设置的标记变量
cin〉>numberl;
while(pl!=NULL)
{if(pl->number==numberl){sign=l;break;}
pl=pl-)next;
)
if(sign==O)
cout<〈”没有找到要修改的记录!"〈<endl;
else
(
cout<〈”请选择要修改比赛项目的那些信息"〈<endl;
cout(<"------------修改比赛项目的编号——1"<<endl;
cout<<"------------修改比赛项目的名称-------2"〈〈endl;
cout<<"---------修改比赛时间-----3"<<endl;
cout<v"-------修改比赛地点-----4"Gendl;
cout<〈”请输入对应信息的编号“<〈endl;
inta;
intnu;//新的整形数据
charinfo[20];〃新的字符数组
cin>>a;
switch(a)
{
case1:cout〈v”请输入新的比赛编号:"vvendl;
cin〉>nu;
pl->number=nu;
cout〈v”比赛项目编号修改成功!”(<endl;
break;
case2:cout〈<”请输入新的比赛项目名称:“〈〈endl;
cin)>info;
strcpy(pl—〉call,info);
coutvv”比赛项目名称修改成功!”〈vendl;
break;
case3:coutw”请输入新的比赛时间:(endl;
cin»infb;
strcpy(pl—>time,info);
cout<<”比赛项目时间修改成功Fvvendl;
break;
case4:cout〈〈”请输入新的比赛地点:”v(endl;
cin〉〉info;
strcpy(pl-)place,info);
cout〈<”比赛项目地点修改成功!"«endl;
break;
}
ofstreamfout("e:\\比赛项目。dat9,,ios::out);
pl=headl;
while(pl!=NULL)
{
foutowrite((char)p1,sizeof(Match));
pl=pl->next;
}
fout.close();
)
return0;
)
MC:\Docu>entsandSettings\Ad>:inis"trator\桌面\Debug\运动会管理系统.exe,[X
»***情榆入一个数据,并按回车键?*****
2
修
信
请入
改的
.要
M:
爰
请
修
比暑
项目
改1
心
如
<.息
运
改
请
^信2
贝
修
赛
改
卷
信
比
修
请
事
赛
息3
i
您
为
操
在进
修
改比赛
翼
作
正
项目
£S项
入
项
改比
目的
石
要
赛
请
输-
3
B0
择
请
选
修改
比赛
的
些信
息
誉
项目
一
编
改比赛
目
项
修
眩
二i
二
名
改比赛
目
项
修
的
一
改比赛
间
二3
强
修
二
一
改比赛
点4
请
的
对
号
应信息
编
输入
2
地
亶
®
比
赛
MM
F普整动会管理系统
7.4信息删除
intdelete1()〃对比赛项目相关信
息进行删除
{creat();
Match*pl,*p2;
p2=pl=headl;
cout<〈"请选择要删除比赛项目的那些信息、”<(endl;
cout<〈"一一一一删除比赛项目的编号———1"〈〈endl;
cout〈〈”一一----删除比赛项目的名称-------2”
((endl;
cout〈<”请输入对应信息的编号”<〈endl;
intn;
cin>)n;
intnum,flag=O;
charcal[10];
switch(n)
(case1:cin〉〉num;
while(pl!=NULL)
{if(pl—>number==num){flag=l;break;)
p2=pl;
pl=pl—〉next;
)
if(flag==O)
cout〈<"没有找到要删除的记录!”<<endl;
else
p2->next=pl-〉next;
case2:cin»cal;
while(pl!=NULL)
{if(!strcmp(p1->call,cal)){flag=l;break;)
p2=pl;
pl=pl―>next;
}
if(flag==0)
cout<〈”没有找到要删除的记录!“〈<endl;
else
p2—〉next=pl—>next;
)
ofstreamfout("e:\\比赛项目。dat”,ios::out);
pl=headl;
while(pl!=NULL)
(
font.write((char*)pl,sizeof(Match));
pl=pl—>next;
)
fout.close();
return0;
}
MC:\Docu>entsandSettings\Ad>:inis"trator\桌面\Debug\运动会管理系统.exe,[
学校运
动会
***i段***W
数
请
番入1
一
一
一
wi一
数
请2
删改
一
一
一
一
数
请
3一
一
一
一
查甯
数
请
一
一
4一
一
品示
一
一
一
数
请5
一
一
系统
退
请6
一
一
一
*****请输入一个数据,并按回车键?*****
3
请
除的
信氤
删
>要
1A删-
安
代
比毒
请
项目1
除
心
赊
、
息
击
运
请
^信2
贝
赛
除
删
信
比
自
请击
事
赛3
心
工
择删
比
的
些信
息
选
电赛
请
要
项目n
编
赛
项
目
的
二二
二
比
二1
瑞
名
赛
项
目
的2
一
信
人
输
对
息
的
编
号
请
⑷03
*M*H
7。5信息查询
voidprint1()
{
creat();
Match*pl=headl;
cout〈<”请分别输出比赛项目编号、名称、比赛时间、
比赛地点。”〈<endl;
while(pl!=NULL)
{cout〈〈pl—>number〈〈'\t'〈〈pl-〉call〈〈'\t'〈〈pl—〉
time<C\t,«pl->place<(endl;
pl=pl—>next;
}
}
voidfindl()
{creat();
Match*pl;
p1=head1;
intsign=0;〃设置的标记变量
cout<〈"请选择要查询比赛项目的哪些信息"<<endl;
COUt«"-——―-按比赛项目的编号查询-------1"<
(endl;
cout«"——-——按比赛项目的名称查询一一2"
((endl;
cout〈<”------——按比赛时间查询一一-3”«endl;
cout«v------------按比赛地点查询------4“〈〈endl;
cout〈<"请输入对应信息的编号"<<endl;
inta;
intnu;//查询整形数据条件
charinfo[20];//查询字符型数据条件
cin»a;
switch(a)
casel:cout<〈"请输入要查询的比赛编号:"«endl;
cin>)nu;
while(pl!=NULL)
{if(pl—〉number==nu){signal;break;}
pl=pl—>next;
)
if(sign==O)
cout<〈”没有找到要查询的记录!”没endl;
else
cout〈〈pl—〉number«,\t,«pl->call〈〈'\t'
〈〈pl—>time<C\f(<pl—〉place(<endl;
break;
case2:cout〈<"请输入要查询的比赛项目名称:”
((endl;
cin>〉info;
while(pl!=NULL)
{if(pl—>call==info){signal;break;}
pl=pl-〉next;
)
if(sign==0)
cout〈〈"没有找到要查询的记录!"<(endl;
else
cout«p1->number〈<'\t'<〈pl->call〈('\t'
(<pl—>time(<'\f<〈pl-〉place((endl;break;
case3:cout<〈”请输入要查询的比赛时间:"<<endl;
cin»info;
while(pl!=NULL)
{if(!strcmp(p1—>time,info))
(signal;break;}
pl=pl-〉next;
)
if(sign==O)
cout〈〈"没有找到要查询的记录!”《endl;
else
cout«pl—>number<C\f(<pl-)call〈〈'\t'<
<pl->time«,\t'(<pl->place〈〈endl;break;
case4:cout〈<”请输入要查询的比赛地点:"<<endl;
cin〉〉info;
while(pl!=NULL)
{if(!strcmp(pl—>place,info))
(signal;break;}
pl=pl—〉next;
}
if(sign==0)
cout<〈”没有找到要查询的记录!"〈〈endl;
else
cout<〈pl-〉number«'\t,(<pl-)call(<,\t,
〈〈pl-〉time(<'\t'(<pl-)place<(endl;
break;
)
)
classAthlete
(
public:
Athlete*next;
intnumber;〃运动员的编号
charname[10];//运动员的姓名
charpart[20];//运动员所属工作单位或省份
charsex[20];〃运动员性别
intage;〃运动员年龄
friendvoidinput2();
}
|c'"C:'DocumentsandSettings\Ad>:inis~trator\桌面\Debug\运动会管理系统.exex
二魅舞雅之二
H****请输入一个数据,并按回车键?*****
入
息
清暂
的信
>K要
M
查
信
心
请
比毒
目
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设基础施工专业练习测试题附答案
- 城市宣传片制作投标方案(技术方案)
- 考点03 分式(精讲)(原卷版)
- 服务人员合同管理制度
- 高中物理-平衡应用:动态平衡课件-沪科版必修1
- 2022秋三年级语文上册第八单元25掌声生字教学课件掌声新人教版
- 公开课教案教学设计课件苏教初中语文九上《论美》课件
- 药物制剂设备与车间工艺设计实践性教学建设的探索
- 高中语文《守财奴》课件-人教版第四册
- 云南省昆明市2025届高三上学期摸底测试 数学试题(含解析)
- 无痛分娩的临床应用课件
- 2022年成都经开国投集团有限公司招聘笔试题库及答案解析
- 少儿美术课件- 儿童装饰画 9岁以上 《一叶知秋》
- 配电柜(箱)检查记录表
- 小学生-奖状-模板-样张-413
- 新概念英语第一册全册重点句型(英文+中文)
- 高中生物人教版高中必修3稳态与环境第5章生态系统及其稳定性教学设计:恢复生态学及其应用
- 盐碱地综合治理项目可行性分析报告
- 针灸的基本操作课件
- 【小升初】人教版2022-2023学年四川省德阳市数学升学分班考模拟试卷(卷一)含解析
- 发明专利请求书模版
评论
0/150
提交评论