C語言實現的歌唱比賽評分系統設計方案_第1頁
C語言實現的歌唱比賽評分系統設計方案_第2頁
C語言實現的歌唱比賽評分系統設計方案_第3頁
C語言實現的歌唱比賽評分系統設計方案_第4頁
C語言實現的歌唱比賽評分系統設計方案_第5頁
已閱讀5頁,還剩82頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《軟件設計實踐》

匯報

學院:中北大學信息商務學院

專業:__________通信工程專業______________

題目:_________歌唱比賽評分系統___________

王澤

學生姓名:________郭世杰___________

賀鑫

完畢時間:________完23年1月18FI_____________

指導教師:魯旭濤姚愛琴李沅

目錄

課程設計任務書............................3

1需求分析......................................5

1.1題目分析..................................5

1.2系統分析..................................5

2設計概要......................................6

3程序設計及模塊分工明細........................7

3.1人員模塊分工..............................7

3.2人員模塊分工明細..........................7

4測試成果.....................................47

4.1調試與測試...............................47

4.2測試成果截圖.............................48

設計總結.......................................55

致謝..........................................56

參照文獻.......................................57

附錄...........................................58

課程設計任務書

1設計目的

C語言是通信工程專業一門重要H勺專業技術課程,它是一門實踐性很強的課程。

軟件設計實踐課程是為配合c語言課程,對學生進行全面綜合訓練、與課堂教學、作業練

習題、上機試驗相輔時必不可少H勺一種教學環節。

運用所學的C語言知識及其編程措施:構造程序設計、數組、指針、構造體、文獻操作等

內容,通過布置具有一定難度的實際程序設計題目,規定學生獨立完畢所布置題目。在分析設

計過程中,規定學生養成良好的編程習慣,學會分析處理簡樸的實際問題,學會C語言的實際

調試技巧和措施,規定學生在教師的指導下逐漸完畢應用程序的設計

2設計內容和規定

有十個選手參與歌唱比賽,十個裁判對每個選手H勺演唱進行打分,去掉一種最高分,去掉

一種最低分,剩余分數的平均值作為每位選手最終的成績。

規定:

(1)采用構造體定義每個選手的參賽編號,姓名以及十個裁判打出的分數;

(2)從鍵盤輸入每個選手的有關信息:參賽編號,姓名和十個得分;

(3)計算每位選手的最終得分,并按分數由高到低排序;

(4)行詢功能:輸入參賽選手的編號或姓名,便可輸出該選手的得分以及排名;

以上功能采用菜單操作方式,即從鍵盤輸入1到3這三個數,分別完畢以上(2)到(4)

W'J功能。

3設計工作任務及工作量的規定

?每個組員完畢自己的模塊設計。

?完畢一份設計闡明書。

?有對日勺口勺運行成果及成果分析

1需求分析

1.1題目分析

軟件設計實踐課程是為配合C語言課程,對學生進行全面綜合訓練、與課堂教學、

作業練習題、上機式驗相輔的必不可少的I一種教學環節。

運用所學的JC語言知識及其編程措施:構造程序設計、數組、指針、構造體、文獻

操作等內容,通過布置具有一定難度打勺實際程序設計題目,規定學生獨立完畢所布置題

目。在分析設計過程中,規定學生養成良好的編程習慣,學會分析處理簡樸口勺實際問

題,學會C語言打勺實際調試技巧和措施來處理實際問題。

1.2系統分析

歌唱比賽評分系統包括:

?菜單:系統以菜單方式工作,界面友好,易于操作。

?錄入:在每個輸入前均有詳細分類和提醒,簡樸明了,根據提醒輸入參賽選手號

數,姓名,各個評委打提成績。

?查詢:顧客輸入查詢條件,系統規則地在界面顯示查詢成果,不光可以輸入號數,

查詢到該選手唁息,每位評委打分;還可以選擇排名查詢,顯示日勺數據全面。

?修改:在己經有數據的基礎上實現對每位選手口勺信息,以及評分口勺修改。

?排名:運用冒泡程序對數組進行排序,刪除?種最高與最低然后進行講剩余的值平

均,得出選手最終得分,再根據分數高卜.排名。

?儲存:對于已經輸入的數據,己文檔的信息儲存到電腦硬盤中,實現永久儲存。

系統的程序設計環境:

本系統使用VisualC++作為程序開發工具。VisualC++是基于對象的迅速應用程序

開發工具,是當今最強大、最靈活的應用程序開發工具之一,具有良好的可視化應用程

序開發環境和強大的可擴展數據庫功能。運用VisualC++提供的可視化組件庫進行編

程,可以迅速、高效地開發出基fWindows環境的各類應用程序。VisualC++語言口勺特

點是面向對象設計的程序語言,VisualC++的J基礎編程語言是具有面向對象特性的語

言,具有代碼穩定、可讀性好、編譯速度快等長處,并將面向對象的概念移植到了C語

言中,使這種基礎語言有了新的發展空間。與其他編程軟件相比,尤其是在數據庫和網

絡應用方面,VisualC++具有簡便易用、靈活高效日勺特點。

開發軟件一般要通過修改源代碼、編譯、測試、再修改、再編譯、再測試等操作,

這些操作形成了一種開發循環,因此迅速的編譯器可以大大地減少開發周期。Visual

C++正是建立在這種高效編譯器的基礎之上,是針時Windows口勺最快的高級語言代碼編

譯器,因此生成日勺代碼十分精練高效,使VisualC++程序的運行速度更快。這也是使用

VisualC++作為程序設計開發語言日勺重要原因。

2設計概要

總體設計目冊):使用者可以運用本系統進行對選手信息以及評委評分的各項運算操作,如

根據需求添加選信息,刪除選手信息,對選手得分進行排名等。最終清晰完整的成果于屏幕

中。以便了評分操作,不僅節省時間,并且提高精確性,可以到達事半功倍口勺效果。

總體設計方略:本系統采用時是自頂向卜、層次化的模塊構造。對高層模塊,采用以事務

為中心的設計方略,把一種大的I模塊逐漸分解成較小的相對簡樸的模塊。對低層模塊,采用以

變換為中心的設計方略。為了提高每個模塊的內聚性、減少模塊間的耦合性,將每個模塊設計

成具有單一功能的模塊(即功能內聚),使模塊間H勺聯絡完全是通過主模塊的控制和調用來實

現(即非直接耦合)。

結合上述分析該系統應包括如下模塊:選手信息瀏覽,選手信息錄入,選手信息保留,選

手成績查詢,選手信息修改,選手信息刪除。

選手數據:編號、姓名、成績、平均成績。

圖1.總體構造圖

3程序設計及模塊分工明細

3.1人員模塊分工

王澤:瀏覽選手數據browse0;查詢選手成績search();查詢選手信息print()。

郭世杰:菜單函數menu_select();修改函數update。;保留函數save。。

賀鑫:參賽選手宅息錄入creal();成績排序rank。;刪除函數del();

公共模塊:colorC>quit()>welcome()?

3.2人員模塊分工明細

?瀏覽選手數據browse。

分析:實際為鏈表的遍歷,將頭節點時指針予以臨時節點pl,用while語句實現鏈

表日勺遍歷。

圖2.瀏覽選手數據模塊

/*----------------------browse函數-------------------------------*/

voidbrowseO

(

SONGER_MESSAGE*pl;

if(head==NULL&&tail==NULL)

printf("\n目前信息記錄為空\n〃);

)

else

printf("\n你要瀏覽日勺選手信息如下\n〃);

printf('--------1--------\n〃);

printfC編號|姓名\n〃);

pl=head;

while(pl!=NULL)

printf('--------1--------\n〃);

printf("%-9d%-6s\n/?,pl->num,pl->name);

pl=pl->next;

}

printf('--------1--------\n〃);

)

}

?查詢選手成績search()

分析:提供詳細成績查詢,排名查詢的函數調用。其中各功能均采用菜單項選擇擇FJ勺方式。

圖3.查詢選手成績

search函數*/

voidsearch()

(

intc;

printf("\n請選擇查詢內容:\n〃);

printfCl.選手詳細成績查詢2.選手排名查詢\n請輸入您的選擇:〃);

scanf(〃%d〃,&c);

switch(c)

case1:

system("cis");

print();

break;

case2:

system(〃cls〃);

rank();

break;

}

)

?查詢選手信息print。

分析:實際為輸出鏈表中的某個某個節點,輸出某個選手的編號與姓名較為好實現,諭出10

位評委成績則用時for語句來實現。

(-TART

輸入要查找的選手編號

NULL&&lail==-------------------------------------------------

目前記錄為空輸出表頭

WHILE(pl!=NULL)

4El£j^>num==seekuiuw)—

輸出編號姓名指向鏈表的下一種

FOR(i=0;i<N;i++)

輸出每個評委的分數

平均分

Return

-^HUieaU=NULL&&check__________________________________________________

選手成績不存在

Enter

END

圖4.杳詢選手信息模塊

---print函數

voidprint()

SONGER_MESSAGE*pl=(SONGERMESSAGE*)malloc(LEN);

intcheck=0,i;

longseoknum;

printf("\n請輸入要查找H勺選手編號:〃);

scanf(“/d”,&seeknum);

if(head==NULL&&tail=NULL)

(

printf("\n對不起,目前記錄為空!\n");

)

else

(

pl=head;

printff\n----------你要找H勺選手口勺成績如下---------\n");〃在這里找到了要查找

口勺選手成績

printfC——I——I——I一一I一一I——I——I——I一一I——I——I——I——

|----------1--------'n");

printfC編號I姓名|成績I1|2|3|4|5|6|7|8|9|10

平均成績\n〃);

printf('------1-------1------1----1-----1----1-

—|---------\吟;

while(pl!=NULL)

(

if(pl->num==secknum)

(

printf(*淅7d%-6s”,pl->num,pl->name);

printff〃);

for(i=0;i<N;i++)

(

printf(z,%.Ifz,,pl->grades[i]);

I

printf("%-6.21f\nw,pl->ave);

chcck=l;

getchar();

return;

)

else

pl=pl->next;

1

)

)

if(head!=NULL&&check==0)

(

printfC\n對不起,你查看的J選手成績不存在!\n");

)

gctchar();

?菜單函數menu_select()

分析:菜單主函數規定設計比較簡潔,只提供設輸入,處理和輸出部分的函數調用。其中各功

能模塊用菜單方式選擇。

定義變量charsflOOkintc:

WHILE(1)

運用atoiO函數將所接受II勺字符串轉換成數值,提供應if語句判斷

____________________________________________

<111c------------------------------------------

輸入有誤Break

SWITCH(c)

1234567default

信息瀏覽信息錄入信息保留成績查詢信息修改信息刪除退出系統Break

BreakBreakBreakBreakBreakBreakReturn

Break

Code

圖5菜單模塊

/*-----------------menu_select函數--------------------------*/

voidmenu_select0

chars[100];

intc;

gots(s);〃不管顧客輸入吊J是數字鍵或是字母鍵使用gets都能將輸入作為字

符串接受

while(l)〃限定顧客輸入的數值必須在1-7之間才有效,否則規定重新輸入

(

c=atoi(s);〃運用atoi()函數將所接受的字符串轉換成數值,提供應if語句

判斷

if(c<1||c>7)

(

printf(“您的輸入有誤,請重新輸入:〃);

gets(s);

)

elsebreak;

)

switch(c)

(

case1:

system("cls");〃清屏

browse();〃選手信息瀏覽

break;

case2:

system("cis");

creat();〃選手信息錄入

break;

case3:

systcm("cls");

save();〃選手信息保留

break;

case4:

system("cls");

search();〃選手成績查詢

break;

case5:

systcm("cls");

update();〃選手信息修改

break;

case6:

system("cls");

del();〃選手信息刪除

break;

case7:

system(/zclsw);

quit();〃退出系統

return;

break;

default:

break;

)

gctchar();

system("cis");

menu();

menuselect();

?修改函數update()

分析;實現選手信息的修改,關鍵內容為鏈表日勺遍歷。找出要修改H勺選手,修改其

/*-------------------------update函數----------------------------*/

voidupdate()

SONGER_MESSAGE*pl;//=(SONGERMESSAGE*)malloc(LEN);

intcheck=0;〃用來進行判斷,與否找到了要修改口勺信息

longupdatenum;

printfC\n請輸入要修改日勺選手編號:");

scanf&updatcnum);〃查找到要修改H勺選手

if(head==NULL&&tail==NULL)

(

printf("\n--------目前信息記錄為空--------\n");

)

else

(

pl=hcad;

while(pl!=NULL)

if(pl->num==updatenum)

(

printf(*\n-----------你要修改的選手信息如F----------\n");

printf(*--------1--------\n");

printff編號|姓名\n〃);

printf("---\n〃);

printf("%-9d%-6s\nw,pl->num,pl->namo);

printff---------1---------\n");

printff\n------------請重新寫入此選手信息:---------\n");

check=l;//從新寫入修改項目

printf(〃\n修改選手編號為:〃);

scanf(飛d”,&pl->num);

printf(〃\n修改選手姓名為:〃);

scanfpl->namc);

return;

)

else

(

pl=pl>next;

)

}

)

if(head!=NULL&&check==0)

(

printfC\n對不起,你要修改的選手信息不存在!\n");

)

getchar();

)

?保留函數save。

分析:保留文獻H勺流程。使用fopen()函數打開txt文獻,“w”參數代表打開只寫文

獻,再運用fprintf。函數寫入選手內容,最終用fclose()函數關閉文獻。

(START)

打開一種文獻,并寫入格式數據

WHILE(pl!=NULL)

向文獻寫入“編號”,“姓名”

關閉文獻

(END)

圖7.保留模塊

voidsave。〃將數據保留到文獻

{

FILE*fp;

SONGER_MESSAGE*pl;//=(SONGERMESSAGE*)malloc(I^N);

pl-head;

fp=fopen(”參賽選手名單.txt","[v");

fprintf(fp.\n〃):

fprintf(fp/編號|姓名\n〃);

while(pl!=NULL)

(

fprintf(fp,*--------1--------;

fprintf(fp,/z%-9d%-6s\n,z,pl->num,pl->name);

pl=pl->next;

)

fprintf(fp,"--------1--------\n〃);

fclose(fp);

printfC\n\t文獻已將保留到、〃參賽選手名單.txt\");

}

?參賽選手信息錄入creat()

分析:錄入信息體現為創立鏈表節點并給節點的元素賦值,然后對評委口勺分數進行排序(鏈表

的排序),排序選擇冒泡排序法,最終去掉一種最高分去掉一種最低分。

圖7.參賽選手信息錄入模塊

/*—----creat函數

voidcreat()

inti,j;

floatt;

charc=,y';

while(c=='y'11c=='Y')

(

SONGER_MESSAGE*pl=(SONGER_MESSAGE*)malloc(LEN);

printf("\n請輸入要錄入的選手信息:\n");

printf(〃\n選手編號:”);

scanf&pl->num);

printf(〃\n選手姓名:〃);

scanfpl->name);

printf("\n請輸入10位評委點評成績:");

pl->ave=0;

for(i=0;i<N;i++)

(

scanf(線f”,&(pl-〉grades[i]));//runtimeerror

pl->ave+=pl->grades[i];

for(i=0;i〈N-1;i++)〃冒泡排序法讓那個成績從小到大排

列,然后選出最大值是最終一種,最小值是第一種

for(j=0;j++)

if(pl->gradesJJ>pl->grades[j+lj)

(

t=pl->grades[j];

pl->gradesLj]=pl->gradesJ+l];

pl->gradesLj+lj=t;

}

pl->ave=(pl->ave-(pl->grades[0]+pl->grades[9]))/8;〃去掉一種最高分,去第一種這

一低分,得出最線的平均分

pl->next=NULL;

if(pl==NULL)

(

printfC\n內存分派失敗\n〃);

n=n-l;

)

if(head==NULL&&tail==NULL)〃目前沒有結點,創立第一種結點

hcad=pl;

head->next=NL'LL;

tail=head;

printf(",\n-----選手信息錄入成功------\n");

}

else〃假如目前尚有節點則插入到尾部

(

tail->next=pl;

tail=pl;

tail->next=NL-LL;

printf(z,\n-----選手信息錄入成功------\n");

)

printf(〃與否繼續(Y/N):");

getchar();

scanf&c);

}

)

?成績排序rank。

分析:用冒泡排序的措施對平均成績(鏈表)進行排序。

&TART

圖8.成績排序模塊

/*rank函數

voidrank()

SONGER_MESSAGE*pl,*p2,*endpt,*p;//*endpl/*控制循環比較*/*p/*臨時指針變量*/

n=0;

pl-head;

if(head==NULL&&tail=NULL)

(

printf(*\n-----------目前信息記錄為空--------\n");

)

else

(

pl=(SONGERMESSAGE*)malloc(LEN);

pl->next=head;/*注意理解:我們增長一種節點,放在第一種節點口勺前面,重

要是為了便于比較。由于第一種節點沒有前驅,我們不能互換地址。*/

head=pl;/*讓head指向pl節點,排序完畢后,我們再把pl節點釋放

掉*/

for(endpt=NULL;endpt!=head;endpt=p)/*結合第6點理解*/

(

for(p二pl二head;pl->next->next!=endpt;pl=pl->next)

(

if(pl->next->ave<pl->next->next->ave)/*假如前面口勺節點鍵值比背面

節點的鍵值小,則互換*/

p2=pl->next->next;//1>排序后q節點指向p節點,在調

整指向之前,我們要保留原pH勺指向節點地址,即:p2=pl->next->next

pl->next->next=p2->next;〃2、順著這一步一步往下推,排序后

pl->ncxt->next要指於J是p2->next,因此pl->next->next=p2->next

p2->next=pl->next;〃3、p2->next原是q發出來H勺指

向,排序后qH勺指向要變為指向p的1,而本來pl->next是指向p口勺,因此p2->next=pl->next

pl->next=p2;〃4、pl->next原是指向pH勺,排序

后圖16中pl->next要指向q,本來pl->next->next(即p2)是指向q的,因此pl->next=p2

P=pl->next->next;〃5、至此,完畢了相鄰兩節點口勺次序

互換

}

)

pl=head;/*把pl『勺信息去掉*/

head=head->next;/*讓head指向排序后的第一種節點*/

free(pl);/*釋放pl*/

printfT\n----------選手成績排名信息如下---------\n〃);

printf("--------1--------1--------1---------\n");

printfT編號I姓名I平均成績I名次\n〃);

pl=head;

while(pl!=NULL)

printf("---------1---------1---------1---------\n");

printf("%-9d%-9s%-9.1lf%-5d\n,z,pl->num,pl->name,pl->ave,n+1);

n++;

pl=pl->next;

)

printf("---------1---------1---------1---------\n");

)

getchar();

)

?刪除函數del()

分析:節點H勺刪除較為繁瑣。

第一種狀況:數據在鏈表頭部,并且只有一種結點。

第二種狀況:數據在鏈表頭部,頭結點。

第三種狀況:數據在鏈表中間,中間節點。

第四種狀況:數據在鏈表尾部,尾部節點。

START

輸出要刪除的選手信息

head&&IL、nE--MULE)""""

刪除唯一口勺節

點刪除頭節點

中間節點刪除

成功刪除尾節點

getchar();

Return

END

圖9.刪除模塊

/*------del函數*/

voiddel()

SONGERJIESSAGE*node;//=(SONGERJIESSAGE*)malloc(LEN);

SONGERJIESSAGE*pl;

intcheck=0;〃用來進行判斷,與否找到了要刪除的信息

longdel_num;

printf(〃\n請輸入要刪除H勺選手的編號:〃);

scanf(“/d”,&del_num);

if(head==NULL&&tail==Nl)LL)

{

printf("\n目前信息記錄為空,刪除失敗!\n〃);

)

else

(

node=hcad;

pl=head;

while(node!=NULL)

if(node->num==delnum)

printff\n-要刪除的選手信息\n〃)

printff--------1--------\n");

printff編號|姓名\n");

printfC--------1--------\n");

printf(z/%-9d%-6s\nw,node->num,noth->name);〃在這里找到了要刪除艮I

選手信息

printff--------1--------\n");

chcck=l;〃找到要刪除的信息,賦為真

if(node==head&&head->next==NULL)〃是頭結點,并且只有

一種結點

(

hcad=NULL;

tail=head;

free(node);

printf(",\n--------刪除信息成功--------\n");〃刪除唯一的T節點

)

elseif(nede==head&&head->next!=NULL)//刪除頭節點

(

node二head:

head-head->next;

free(node);

printfC\n--------刪除信息成功--------\n〃);〃頭節點刪除成功

n=n-l;

}

elseif(ncdc->next!=NULL)//刪除中間節點

(

pl->ncxt=nodo->noxt;

free(node);

printfC\n--------刪除信息成功--------;〃中間節點刪除成功

n=n-l;

)

elseif(ncde->next==NULL)〃刪除尾節點

(

pl->next=NULL;

tail=pl;

free(node);

printfC\n刪除信息成功\n");〃尾節點刪除成功

n=n-l;

)

getcharO;

return;

else

pl=nodc;

node=node->ncxt;

)

}

)

if(head!=NULL&&check==0)

(

printfC\n對不起,你要刪除的選手信息不存在!\n");

)

gctchar();

}

?公共模塊

?顏色控制函數color。

分析:為了使程序看起來更美觀,因此引入wind5Vsapi末控制顏色函數,用來變化字體顏色。

/*---------------------------color函數------------------------------*/

voidcolor(constunsignedshortcolorl)

/*僅限變化0-15H勺顏色;假如在0-15那么實現他H勺顏色由于假如超過15背面

日勺變化的是文本背景色。,/

if(colorl>=0&&colorl<=15)

SetConsoleTextAttribute(GetStdllandle(STD_OUTPUT_HANDLE),colorl);

/*假如不在0T5日勺范圍顏色,那么改為默認的顏色白色;*/

else

SetConsoleTextAttribute(GetStdllandle(STD_OUTPUTJIANDLE),7);

/*顏色對應值:

0:黑色8;灰色

1二藍色9二淡藍色

2二綠色10;淡綠色Oxa

3二湖藍色11;淡淺綠色Oxb

4:紅色12二淡紅色Oxc

5二紫色13二淡紫色Oxd

6:黃色14二淡黃色Oxe

7=白色15=亮白色Oxf

*/

)

?退出函數quit。

分析:用來退出程序

/*----------------------quit函數------------------------------*/

voidquit()

(

printf(/z\n\n\t==========^感謝您使用歌唱比賽評分系統?==========\n\n/z);

}

?目錄函數menu。

分析;為程序入口提供顯示,因篇幅有限,因此顯示有錯亂。

/*--------------------------------------menu函數---------------------------

---------------*/

voidmenu()

(

system(z,modeconcols=100lines=30/z);

color(11):

printf(,z\t.;rl55551r

\n〃);

printf(〃、1★+★☆歌唱比賽評分系統:rlhhhhhhhhhhlr:

printf(〃\t:ISSSSSSSSSr

\n〃);

printf(z,\t.sSSS55SSl.

\n〃);

printf選手信息瀏覽hS5555SSiiSh.

\n〃);

printf(〃\trS555SSh,.sSSSl

\n〃);

printf(z/\trh55SS5i;5S555S,

\n〃);

printf(z,\t2.選手信息錄入ShSS5r,lSS5555Si

\n〃);

printf("\thhSS5r..sSS555555S;

\n〃);

printf("\t,hS555555SSS5r..r5ss555555s5.

\n〃);

printf(z/\t3.選手信息保

留:SS555SSS1;,sSSS5555555SS;

printf(〃\t

iSSSShi.;1SSS55555555SS;\n〃);

printf(z,\t,sr,,r5ss55555555SSS1,

si.\n〃);

printf(〃\t4.選手成績查詢

i533SSSSSSSSSSS5s,.lSS5i\n");

printf("\t.:islh5555hlsi,.r5S

55SSh;\n〃);

printf(〃\t..,;s5SS5

5555SS1,\n〃);

printf(z,\t5.選手信息修

改.sS3SSSs.\n");

printf("\t,r5SS5

5555555ss5i\n〃);

printf("\t;hS

SS5555555SSh:\n〃);

printfC\t6.選手信息刪

除:sSSS5555555SSl,

\n〃);

printf(zz\t

,r5SS5555555SSr.\n〃);

printf("\t

.ihSSS55555SS5;\n〃);

printf(/z\t7.退出系

統:1SSS55555SS

s\n〃);

printf(〃\t

,r5ss5555s5\n〃);

printf("\t

:shhhhh:\n〃);

color(15);

}

?歡迎模塊welcome()

分析:一種系統需要一種美觀歡迎界面,由于DOS窗口有限,因此用點陣字寫出“welcome”

并且在右下角增長目前時間顯示。時間用的time.h庫來實現。

/*-------------------------------welcome函數------------------------------*/

intwelcome0

system(z,modeconcols=65lincs=25");

printf(〃\n\n\n\n〃);

color(14);printf(z,#n#######n#########

#######\n〃);

color(14);printf(z,n###nn蝴##

#\n〃);

color(ll);printf(z,##n##n####

#\n〃);

color(11);printf("itnnnnnnnitaantun

附###\n〃);

color(11);printf(z,n###n#####n

#\n〃);

color(13);printf(z,##########n

#\n");

color(13);printfC#############¥##########

#######\n〃);

color(lO);printf("\n\n\n\n\n制作:電子信息工程系通信工程1班42王澤

38郭世杰49賀鑫\n〃);color(15);

time_tit;

it=time(NULL);

ptr=localtime(&it);

printfC\n\t\t\t目前系統時間:%4d年$02d月%02d

日%d:%d\n”,ptr->tm_year+1900,ptr->tm_mon+l,ptr->tm_mday,ptr->tm_hour,ptr->

ptr->tm_sec);

printf(z,\n\n按任意健進入主菜單\n〃);

getchO;

system("cis");

menu();

menuselect();

return0;

)

?主函數main。

分析;提供程序入口。

/*---------------------------------------------------------main函數

-----------------------*/

intmain()

(

welcome();

return0;

)

?庫函數

ttinclude<stdio.h>

^include<stdlib.h>

#include<conio.h>

ttinclude<string.h>

■include<malloc.h>

#include<Windows.h>

#include<timc.h>

#defineLENsizeof(S0NGERJ1ESSAGE)

ttdefineN10

?構造體

structtm*ptr;//用于welcome()顯示時間的構造體

typedefstructsonger〃定義選手信息鏈表構造

tr

longnum;〃選手編號

charname[20];

溫馨提示

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

評論

0/150

提交評論