C 面向对象程序设计大作业_第1页
C 面向对象程序设计大作业_第2页
C 面向对象程序设计大作业_第3页
C 面向对象程序设计大作业_第4页
C 面向对象程序设计大作业_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学号:

《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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论