C 面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)_第1頁(yè)
C 面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)_第2頁(yè)
C 面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)_第3頁(yè)
C 面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)_第4頁(yè)
C 面向?qū)ο蟪绦蛟O(shè)計(jì)大作業(yè)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

學(xué)號(hào):

《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》

大作業(yè)

題目

學(xué)院

專業(yè)信息工程

班級(jí)

姓名王繼文

指導(dǎo)教師

2015年11月15日

目錄

一大作業(yè)的目的.................................................................1

二大作業(yè)的內(nèi)容.................................................................1

三大作業(yè)的要求與數(shù)據(jù)..........................................................2

四大作業(yè)應(yīng)完成的工作..........................................................2

五總體設(shè)計(jì)(包含幾大功能模塊)...............................................2

六詳細(xì)設(shè)計(jì)(各功能模塊的具體實(shí)現(xiàn)算法一一流程圖).............................3

七調(diào)試分析(包含各模塊的測(cè)試用例,及測(cè)試結(jié)果)................................5

八總結(jié)........................................................................19

九參考資料.....................................................................19

一大作業(yè)的目的

《面向?qū)ο蟪绦蛟O(shè)計(jì)》是一門實(shí)踐性很強(qiáng)的課程,通過(guò)大作業(yè)不僅可以

全方位檢驗(yàn)學(xué)生知識(shí)掌握程度和綜合能力,而且還可以進(jìn)一步加深、鞏固所

學(xué)課程的基本理論知識(shí),理論聯(lián)系實(shí)際,進(jìn)一步培養(yǎng)自己綜合分析問(wèn)題和解

決問(wèn)題的能力。更好地掌握運(yùn)用C++語(yǔ)言獨(dú)立地編寫、調(diào)試應(yīng)用程序和進(jìn)行

其它相關(guān)設(shè)計(jì)的技能。

二大作業(yè)的內(nèi)容

(1)初始化輸入:N-參賽院系總數(shù),M-男子競(jìng)賽項(xiàng)目數(shù),W一女子競(jìng)賽項(xiàng)目數(shù);

(2)各項(xiàng)目名次取法有如下幾種:

取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得

分1;

(3)由程序提醒用戶填寫比賽結(jié)果,輸入各項(xiàng)目獲獎(jiǎng)運(yùn)動(dòng)員的信息.

(4)所有信息記錄完畢后,用戶可以查詢各個(gè)院系或個(gè)人的比賽成績(jī),生成團(tuán)

體總分報(bào)表,查看參賽院系信息、獲獎(jiǎng)運(yùn)動(dòng)員、比賽項(xiàng)目信息等。

三大作業(yè)的要求與數(shù)據(jù)

1、用C++語(yǔ)言實(shí)現(xiàn)系統(tǒng);

2、由程序提醒用戶填寫比賽結(jié)果,輸入各項(xiàng)目獲獎(jiǎng)運(yùn)動(dòng)員的信息。所有信息

記錄完畢后,用戶可以查詢各個(gè)院系或個(gè)人的比賽成績(jī),生成團(tuán)體總分報(bào)表,查

看參賽院系信息、獲獎(jiǎng)運(yùn)動(dòng)員、比賽項(xiàng)目信息等。

3、各項(xiàng)目名次取法有如下幾種:

取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第

5名得分lo

四大作業(yè)應(yīng)完成的工作

(1)編寫算法;

(2)算法測(cè)試,并有具體的測(cè)試結(jié)果和結(jié)果分析;

(3)撰寫大作業(yè)報(bào)告。內(nèi)容包括:

1)封面扉頁(yè)

2)設(shè)計(jì)任務(wù)書

3)目錄

4)總體設(shè)計(jì)方案(包括流程圖)

5)使用說(shuō)明及運(yùn)行實(shí)例(包括界面)

6)成員設(shè)計(jì)內(nèi)容簡(jiǎn)介

7)項(xiàng)目源程序代碼(注意注釋的使用)

8)指導(dǎo)教師評(píng)語(yǔ)

五總體設(shè)計(jì)(包含幾大功能模塊)

本文研究開發(fā)的運(yùn)動(dòng)會(huì)管理系統(tǒng)用于支持用于查詢各個(gè)學(xué)校在運(yùn)動(dòng)會(huì)中的成績(jī)。有幾種

目標(biāo):

1.支持輸入各個(gè)項(xiàng)目的基本信息;

2.可以按比賽項(xiàng)目編號(hào)或名稱查詢、刪除、修改信息。

3.可以按運(yùn)動(dòng)員編號(hào)或姓名查詢、刪除、修改信息

4.數(shù)據(jù)輸入信息并能隨時(shí)查詢

六詳細(xì)設(shè)計(jì)(各功能模塊的具體實(shí)現(xiàn)算法一一流程

圖)

-------\

開始

結(jié)束

6o1各函數(shù)的功能和實(shí)現(xiàn)

1。本實(shí)驗(yàn)中,對(duì)不同的對(duì)象采取不同的存儲(chǔ)結(jié)構(gòu),對(duì)比賽項(xiàng)目采取鏈?zhǔn)浇Y(jié)構(gòu),

而對(duì)于參賽運(yùn)動(dòng)員采取一個(gè)結(jié)構(gòu)就可以了。本程序中主要用到線性表的一些基本

操作,將比賽項(xiàng)目信息,運(yùn)動(dòng)員信息,賽事信息都構(gòu)造成線性表。具體功能通過(guò)

主函數(shù)分別調(diào)用各函數(shù)實(shí)現(xiàn)。

2O參考本實(shí)驗(yàn)的功能要求,本程序分為七個(gè)模塊:主函數(shù)、信息錄入函數(shù)、

信息修改函數(shù)、信息刪除函數(shù)、信息查詢函數(shù),信息輸出函數(shù).

3o信息錄入函數(shù)有包括比賽項(xiàng)目信息錄入函數(shù)(包括比賽編號(hào)、名稱等),

運(yùn)動(dòng)員信息錄入函數(shù)(運(yùn)動(dòng)員的編號(hào)、姓名、性別、年齡、工作單位或省份)、

比賽賽事信息錄入函數(shù)(某運(yùn)動(dòng)員參加某比賽項(xiàng)目,成績(jī)、名次)。

4o信息修改函數(shù)包括比賽項(xiàng)目、運(yùn)動(dòng)員信息、賽事信息修改。

5.信息查詢函數(shù)包括根據(jù)比賽項(xiàng)目、運(yùn)動(dòng)員編號(hào)進(jìn)行查修

6.信息輸出函數(shù)包括比賽項(xiàng)目、運(yùn)動(dòng)員信息、賽事信息輸出等。

7o退出系統(tǒng):可用一個(gè)函數(shù)exit()來(lái)實(shí)現(xiàn),首先將信息保存到文件中,釋

放動(dòng)態(tài)創(chuàng)建的內(nèi)存空間,再退出此程序。

如圖6.1

圖6o1

七調(diào)試分析(包含各模塊的測(cè)試用例,及測(cè)試結(jié)果)

7.1主函數(shù)

#include<iostream>

#include(fstream>

#include(string)

usingnamespacestd;

voidfun1()

{cout〈<"******************************"((endl;

cout〈Vendl;

coutw”******學(xué)校運(yùn)動(dòng)會(huì)管理系統(tǒng)******”〈vendl;

cout<<"?一數(shù)據(jù)錄入請(qǐng)按:1”((endl;

cout〈〈”--------數(shù)據(jù)修改請(qǐng)按:2--------H?endl;

cout<〈”-------數(shù)據(jù)刪除請(qǐng)按:3----------”〈〈endl;

cout<〈”-----數(shù)據(jù)查詢請(qǐng)按:4------”<〈endl;

cout〈V”-------數(shù)據(jù)顯示請(qǐng)按:5-----u?endl;

cout?H——退出系統(tǒng)請(qǐng)按:6-----0<〈endl;

cout?endl;

cout〈v"*******************************,,<〈endl;

cout<<endl;

cout〈V'*****請(qǐng)輸入一個(gè)數(shù)據(jù),并按回車鍵!*****”<(endl;

)

classMatch

public:

Match"next;//為創(chuàng)建鏈表做準(zhǔn)備

intnumber;〃比賽項(xiàng)目編號(hào)

charcall[10];//比賽項(xiàng)目名稱

chartime[10];〃比賽時(shí)間

charplace[20];//比賽地點(diǎn)

friendvoidinput1();

};

■,,C:\USERS\JIWEN\DESKTOP\C++\sportsmeeting\Debug\sportsm...□X

學(xué)

校上

喝^

據(jù)錄

據(jù)

修改S

清:

據(jù)

刪除

請(qǐng)

據(jù)

查詢

據(jù)

顯示1#■

系統(tǒng)

?:於

***興興清輸入一個(gè)數(shù)據(jù),并按回車腱?xwxx*

7o2輸入相關(guān)信息

voidinput1()

{ofstreamfout("e:\\比賽項(xiàng)目.dat”,ios::app);

charch;

Matcha;

do

{cout〈<”請(qǐng)分別輸入比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間、比賽地點(diǎn)."vvendl;

cin?a.number?a.call>>a.place))a。time;

aonext=NULL;

foutowrite((char)&a,sizeo('(Match));

coutvv”是否繼續(xù)輸入,如果繼續(xù)鍵入Y|y”<(endl;

cin))ch;

}while(ch=,y,|Ich=-Y,);

foutoclose();

)

Match*headl;

voidcreat()

{headl=NULL;

Match*p,*q=head1;

ifstreamfin(,,e:\\比賽項(xiàng)目.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\運(yùn)動(dòng)會(huì)管理系統(tǒng).exex

會(huì)

運(yùn)動(dòng)

統(tǒng)

『i

數(shù)

雷1

一-n

數(shù)2

刪-

數(shù)3-

查-

數(shù)4

數(shù)

統(tǒng)

退

xxxxxxxx**x*,*-x

*****請(qǐng)輸入一個(gè)數(shù)據(jù),并按回車鍵,*****

1

請(qǐng)前人要輸入的信息,

比賽項(xiàng)目信意輸入請(qǐng)賽]

運(yùn)劫員信息喻人請(qǐng)賽2

比賽賽事信意輸入請(qǐng)接:3

1

請(qǐng)分別輸入比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間、比賽地點(diǎn).

00110。米八點(diǎn)田徑場(chǎng)

是否繼續(xù)輸入,如果繼續(xù)鍵入Y;y

金給rta立半,

*C:\Docu>entsand58t1:1118$\4(1>:££51/010「\桌面”€1)118\運(yùn)動(dòng)會(huì)管理系統(tǒng).6*6BSX

情分別輸入比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間、比賽地點(diǎn).

002200米九點(diǎn)田徑場(chǎng)

程否繼續(xù)輸入,如果繼續(xù)鍵入Y;y

露分別輸入比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間,比賽地點(diǎn).

003800米十點(diǎn)田徑場(chǎng)

,否繼續(xù)輸入,如果繼續(xù)鍵入Y;y

,分別輸入比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間、比賽地點(diǎn).

004就遠(yuǎn)H~一點(diǎn)田隹場(chǎng)

曙否繼續(xù)輸入,如果纏續(xù)鍵入Y;y

n

XXXXXXXXMXXXXXXXXXXXXXXXXXXMXX

統(tǒng)

校運(yùn)動(dòng)

會(huì)管

理P

“一-

數(shù)

入1

二1

數(shù)

修2

數(shù)

二C:3

數(shù)

查4

數(shù)

品5

一一

統(tǒng)

退

系6

*

-M-

7.3信息修改

intchange1()〃對(duì)比賽項(xiàng)目相關(guān)信息修改

{

coutvv”您正在進(jìn)行修改比賽項(xiàng)目有關(guān)事項(xiàng)操作!"〈〈endl;

creat();

Match*pl;

pl=headl;

cout<〈”請(qǐng)輸入要修改比賽項(xiàng)目的編號(hào):"〈〈endl;

intnumberl;//要修改的比賽項(xiàng)目編號(hào)

intsign=O;〃設(shè)置的標(biāo)記變量

cin〉>numberl;

while(pl!=NULL)

{if(pl->number==numberl){sign=l;break;}

pl=pl-)next;

)

if(sign==O)

cout<〈”沒有找到要修改的記錄!"〈<endl;

else

(

cout<〈”請(qǐng)選擇要修改比賽項(xiàng)目的那些信息"〈<endl;

cout(<"------------修改比賽項(xiàng)目的編號(hào)——1"<<endl;

cout<<"------------修改比賽項(xiàng)目的名稱-------2"〈〈endl;

cout<<"---------修改比賽時(shí)間-----3"<<endl;

cout<v"-------修改比賽地點(diǎn)-----4"Gendl;

cout<〈”請(qǐng)輸入對(duì)應(yīng)信息的編號(hào)“<〈endl;

inta;

intnu;//新的整形數(shù)據(jù)

charinfo[20];〃新的字符數(shù)組

cin>>a;

switch(a)

{

case1:cout〈v”請(qǐng)輸入新的比賽編號(hào):"vvendl;

cin〉>nu;

pl->number=nu;

cout〈v”比賽項(xiàng)目編號(hào)修改成功!”(<endl;

break;

case2:cout〈<”請(qǐng)輸入新的比賽項(xiàng)目名稱:“〈〈endl;

cin)>info;

strcpy(pl—〉call,info);

coutvv”比賽項(xiàng)目名稱修改成功!”〈vendl;

break;

case3:coutw”請(qǐng)輸入新的比賽時(shí)間:(endl;

cin?infb;

strcpy(pl—>time,info);

cout<<”比賽項(xiàng)目時(shí)間修改成功Fvvendl;

break;

case4:cout〈〈”請(qǐng)輸入新的比賽地點(diǎn):”v(endl;

cin〉〉info;

strcpy(pl-)place,info);

cout〈<”比賽項(xiàng)目地點(diǎn)修改成功!"?endl;

break;

}

ofstreamfout("e:\\比賽項(xiàng)目。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\運(yùn)動(dòng)會(huì)管理系統(tǒng).exe,[X

?***情榆入一個(gè)數(shù)據(jù),并按回車鍵?*****

2

請(qǐng)入

改的

.要

M:

請(qǐng)

比暑

項(xiàng)目

改1

<.息

運(yùn)

請(qǐng)

^信2

請(qǐng)

息3

i

在進(jìn)

改比賽

項(xiàng)目

£S項(xiàng)

項(xiàng)

改比

目的

請(qǐng)

輸-

3

B0

請(qǐng)

修改

比賽

些信

譽(yù)

項(xiàng)目

改比賽

項(xiàng)

二i

改比賽

項(xiàng)

改比賽

二3

強(qiáng)

改比賽

點(diǎn)4

請(qǐng)

對(duì)

號(hào)

應(yīng)信息

輸入

2

?

MM

F普整動(dòng)會(huì)管理系統(tǒng)

7.4信息刪除

intdelete1()〃對(duì)比賽項(xiàng)目相關(guān)信

息進(jìn)行刪除

{creat();

Match*pl,*p2;

p2=pl=headl;

cout<〈"請(qǐng)選擇要?jiǎng)h除比賽項(xiàng)目的那些信息、”<(endl;

cout<〈"一一一一刪除比賽項(xiàng)目的編號(hào)———1"〈〈endl;

cout〈〈”一一----刪除比賽項(xiàng)目的名稱-------2”

((endl;

cout〈<”請(qǐng)輸入對(duì)應(yīng)信息的編號(hào)”<〈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〈<"沒有找到要?jiǎng)h除的記錄!”<<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<〈”沒有找到要?jiǎng)h除的記錄!“〈<endl;

else

p2—〉next=pl—>next;

)

ofstreamfout("e:\\比賽項(xiàng)目。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\運(yùn)動(dòng)會(huì)管理系統(tǒng).exe,[

學(xué)校運(yùn)

動(dòng)會(huì)

***i段***W

數(shù)

請(qǐng)

番入1

wi一

數(shù)

請(qǐng)2

刪改

數(shù)

請(qǐng)

3一

查甯

數(shù)

請(qǐng)

4一

品示

數(shù)

請(qǐng)5

系統(tǒng)

退

請(qǐng)6

*****請(qǐng)輸入一個(gè)數(shù)據(jù),并按回車鍵?*****

3

請(qǐng)

除的

信氤

>要

1A刪-

比毒

請(qǐng)

項(xiàng)目1

、

運(yùn)

請(qǐng)

^信2

請(qǐng)擊

賽3

擇刪

些信

電賽

請(qǐng)

項(xiàng)目n

項(xiàng)

二二

二1

項(xiàng)

的2

對(duì)

號(hào)

請(qǐng)

⑷03

*M*H

7。5信息查詢

voidprint1()

{

creat();

Match*pl=headl;

cout〈<”請(qǐng)分別輸出比賽項(xiàng)目編號(hào)、名稱、比賽時(shí)間、

比賽地點(diǎn)?!薄?lt;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;〃設(shè)置的標(biāo)記變量

cout<〈"請(qǐng)選擇要查詢比賽項(xiàng)目的哪些信息"<<endl;

COUt?"-——―-按比賽項(xiàng)目的編號(hào)查詢-------1"<

(endl;

cout?"——-——按比賽項(xiàng)目的名稱查詢一一2"

((endl;

cout〈<”------——按比賽時(shí)間查詢一一-3”?endl;

cout?v------------按比賽地點(diǎn)查詢------4“〈〈endl;

cout〈<"請(qǐng)輸入對(duì)應(yīng)信息的編號(hào)"<<endl;

inta;

intnu;//查詢整形數(shù)據(jù)條件

charinfo[20];//查詢字符型數(shù)據(jù)條件

cin?a;

switch(a)

casel:cout<〈"請(qǐng)輸入要查詢的比賽編號(hào):"?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〈<"請(qǐng)輸入要查詢的比賽項(xiàng)目名稱:”

((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<〈”請(qǐng)輸入要查詢的比賽時(shí)間:"<<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〈<”請(qǐng)輸入要查詢的比賽地點(diǎn):"<<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;〃運(yùn)動(dòng)員的編號(hào)

charname[10];//運(yùn)動(dòng)員的姓名

charpart[20];//運(yùn)動(dòng)員所屬工作單位或省份

charsex[20];〃運(yùn)動(dòng)員性別

intage;〃運(yùn)動(dòng)員年齡

friendvoidinput2();

}

|c'"C:'DocumentsandSettings\Ad>:inis~trator\桌面\Debug\運(yùn)動(dòng)會(huì)管理系統(tǒng).exex

二魅舞雅之二

H****請(qǐng)輸入一個(gè)數(shù)據(jù),并按回車鍵?*****

清暫

的信

>K要

M

請(qǐng)

比毒

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論