版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、清U詢嚏*普程序設(shè)計報告(2014/2015學年第2學期)題目:運動會積分系統(tǒng)業(yè)組長學號姓名組員學號姓名指導(dǎo)教師指導(dǎo)單位日期成員分工組長(_)組員(_)組員()評分細則評分項良好中等差遵守機房規(guī)章制度上機時的表現(xiàn)學習態(tài)度程序準備情況程序設(shè)計能力團隊合作精神課題功能實現(xiàn)情況算法設(shè)計合理性用戶界面設(shè)計報告書寫認真程度內(nèi)容詳實程度文字表達熟練程度回答問題準確度簡短評語教師簽名:年月日評分等級查柯丞賈世恩備注評分等級共五種:優(yōu)秀、良好、中等、及格、/、及格運動會積分系統(tǒng)一、課題內(nèi)容和要求學生運動會成績數(shù)據(jù)庫系統(tǒng)記錄某校運動會上全部運動項目,各系獲得的分數(shù)及排名的情況,包括50、100、200,400,
2、1500米,跳高,跳遠,標槍,鉛球鐵餅等。請設(shè)計一個積分系統(tǒng),方便學校對比賽成績進行統(tǒng)計管理。二、需求分析運動會積分系統(tǒng)的功能框架圖如圖1所示。運動會積分系統(tǒng)錄入模塊統(tǒng)計總分按項目編號查詢按院系編號排序L>按男團體總分排序L>r、按女團體總分排序>按院系總分<>按院系編號查詢院系某個項目情況圖1功能框架圖管理員:1)以管理員身份登錄,預(yù)先設(shè)定參加運動會的系院數(shù)目,男子項目數(shù)女子項目數(shù),(每項目取前三名,分別為10,5,2分)2)管理員憑密碼進入錄入成績狀態(tài),填寫比賽結(jié)果,輸入各項目獲獎運動員的信息,但錄入完成后不得修改成績??梢园锤飨翟壕幪栞敵隹偡?;按總分排序;按
3、男團體總分排序;按系院編號查詢;按項目編號查詢;按女團體總分排序。3)審核各院系提交的復(fù)核申請,予以批準后修改成績。普通用戶:1)普通用戶可以查詢各個比賽成績,生成團體總分報表,查看參賽院系的成績和各比賽項目最終名次等。2)允許提交復(fù)核申請,提請管理員修改成績。三、概要設(shè)計1主要結(jié)構(gòu)體typedefstructnode1intschool;/*院系編號*/intrecord;/*項目成績*/structnodel*next;/*鏈域*/Schools;typedefstructintitem;/*項目編號*/Schools*firstschool;/*鏈域指向鏈表中第一個結(jié)點*/ITEM;ty
4、pedefstructintz;/*項目總數(shù)*/ITEMaMAX;ALLitems;typedefstructnode2intitem;/*該院系獲獎的項目*/intrecord;/*項目成績*/structnode2*next;/*鏈域*/Items;typedefstructintschool;/*院系編號*/intscore;/*院系總分*/intboys;/*男團體總分*/intgirls;/*女團體總分*/Items*firstitem;/*鏈域指向鏈表中第一個獲獎項目的結(jié)點*/SCHNode;typedefstructintn;/*院系總數(shù)*/SCHNodebMAX;ALLNode
5、;ALLitems*g1;ALLNode*g2;2主要函數(shù)流程圖輸入密碼普通用戶界面結(jié)束圖2登錄函數(shù)I結(jié)束,圖3主函數(shù)流程四、源程序代碼#include<stdio.h>#include<stdlib.h>#include<string.h>#include<io.h>/#include<conio.h>/*屏幕操作函數(shù)*/#defineMAX50/#defineNULL0structusercharuser_Name6;charuser_Pass6;stu1="admin","admin"初始
6、化用戶名和對應(yīng)密碼voidprint_Passwd(void)(inti=0;/當前賬號標記intflagl=0;登錄成功標記intflag=0;/密碼正確標記charp6;/臨時用戶名chars6;/臨時密碼charnum=0;/密碼次數(shù)chartemp;/登錄后改密碼printf("請輸入登錄名:n");scanf("%s",p);if(strcmp(stui.user_Name,p)=0)(flag=1;if(1=flag)(printf("請輸入密碼:n");scanf("%s",s);else(print
7、f("沒有此用戶:n");exit(0);)while(strcmp(stui.user_Pass,s)!=0)(printf("密碼錯誤!n");printf("請重新輸入密碼:n");scanf("%s",s);)printf("登錄成功!n");printf("注你是管理員!n");)typedefstructnode1intschool;/*院系編號*/intrecord;/*項目成績*/structnode1*next;/*鏈域*/Schools;typedefst
8、ructintitem;/*項目編號*/Schools*firstschool;/*鏈域指向鏈表中第一個結(jié)點*/ITEM;typedefstructintz;/*項目總數(shù)*/ITEMaMAX;ALLitems;typedefstructnode2intitem;/*該院系獲獎的項目*/intrecord;/*項目成績*/structnode2*next;/*鏈域*/Items;typedefstructintschool;/*院系編號*/intscore;/*院系總分*/intboys;/*男團體總分*/*/intgirls;/*女團體總分*/Items*firstitem;/*鏈域指向鏈表中
9、第一個獲獎項目的結(jié)點SCHNode;typedefstructintn;/*院系總數(shù)*/SCHNodebMAX;ALLNode;ALLitems*g1;ALLNode*g2;voidfunct1(ALLitems*g1,ALLNode*g2)(Schools*p1;Items*p2;inti=1,j,k,m,w,h,x;p1=(Schools*)malloc(sizeof(Schools);p2=(Items*)malloc(sizeof(Items);if(!p1|!p2)exit(1);printf("n*輸入各個項目信息*nn");printf("輸入男子項
10、目總數(shù)m:");scanf("%d",&m);if(m<0|m>20)(printf("輸入有誤用是20以內(nèi)的整數(shù),請重新輸入:");scanf("%d",&m);printf("輸入女子項目總數(shù)w:");scanf("%d",&w);if(w<0|w>20)(printf("輸入有誤又是20以內(nèi)的整數(shù),請重新輸入:");scanf("%d",&w);printf("輸入?yún)⒓舆\動會
11、的院系總數(shù)n:");scanf("%d",&g2->n);if(g2->n<0|g2->n>20)(printf("輸入有誤是20以內(nèi)的整數(shù),請重新輸入:");scanf("%d",&g2->n);g1->z=m+w;printf("則項目編號為男子1-%d,女子d-%d",m,m+1,g1->z);printf("nn*記錄運動會成績*");printf("nn(輸入0標志Z束)n");printf(
12、"t項目1:50米、項目2:100米、項目3:200米、項目4:400米、項目5:1500米、n");printf("t項目6:跳高、項目7:跳遠、項目8:標槍、項目9:鉛球、項目10:鐵餅n");for(k=1;k<=g1->z;k+)(g1->ak.item=k;g1->ak.firstschool=NULL;)for(k=1;k<=g2->n;k+)g2->bk.school=k;g2->bk.firstitem=0;g2->bk.score=0;g2->bk.boys=0;g2->
13、bk.girls=0;)g2->b0.score=0;g2->b0.boys=0;g2->b0.girls=0;while(i!=0)printf("n項目:");scanf("%d",&i);if(i!=0)printf("請輸入前三名:n");h=3;doprintf("第dg:院系(院系編號為數(shù)字,h);scanf("%d",&x);pl=(Schools*)malloc(sizeof(Schools);p1->school=x;p2=(Items*)mall
14、oc(sizeof(Items);p2->item=i;if(h=3)p2->record=p1->record=2;if(h=2)p2->record=p1->record=5;if(h=1)p2->record=p1->record=10;p1->next=g1->ai.firstschool;g1->ai.firstschool=p1;p2->next=g2->bx.firstitem;g2->bx.firstitem=p2;g2->bx.score=g2->bx.score+p2->reco
15、rd;/*累計總>分*/if(i<=m)g2->bx.boys=g2->bx.boys+p2->record;/*累計男團體總分*/elseg2->bx.girls=g2->bx.girls+p2->record;/*累計女團體總分*/h-;|while(x!=0&&h!=0);)voidsave()(FILE*fp1,*fp2;fp1=(FILE*)malloc(sizeof(FILE);fp2=(FILE*)malloc(sizeof(FILE);if(fp1=fopen("sports1","w
16、b")=NULL)(printf("cannotopenfile.n");return;)if(fwrite(g1,sizeof(ALLitems),1,fp1)!=1)printf("filewriteerror.n");fclose(fp1);if(fp2=fopen("sports2","wb")=NULL)(printf("cannotopenfile.n");return;)if(fwrite(g2,sizeof(ALLNode),1,fp2)!=1)printf("
17、;filewriteerror.n");fclose(fp2);voidfunct2(ALLNode*g2)/*輸出各院系總分*/intk;printf("nn*輸出各院系總分*n");printf("院系編號t總分n");for(k=1;k<=g2->n;k+)printf("%dttt%dn",k,g2->bk.score);printf("n");system("pause");printf("按任意鍵返回主菜單");getchar();)/
18、*按院系編號排序輸出*/voidfunct3(ALLNode*g2)intk;Items*p2;p2=(Items*)malloc(sizeof(Items);printf("nn*按院系編號排序輸出*n");printf("院系編號ttt獲獎情況n");scanf("%d",&k);for(k=1;k<=g2->n;k+)(printf("ttt%dt",k);p2=g2->bk.firstitem;while(p2!=NULL)(printf("tt項目%d:得分"
19、,p2->item,p2->record);p2=p2->next;printf("n");printf("n");system("pause");printf("按任意鍵返回主菜單.");getchar();*/voidfunct4(ALLNode*g2)/*按院系總分排序輸出(inti,j,k;Items*p2;);printf("nn*按院系總分排序輸出*n"printf("院系編號tt總分n");scanf("%d",&k
20、);/printf("輸入要查詢的項目編號:");for(i=2;i<=g2->n;i+)(printf("%dt",k);p2=g2->bk.firstitem;while(p2!=NULL)(printf("%dtt%dn",g2->bk.school,g2->bk.score);p2=p2->next;printf("n");g2->b0.score=g2->bi.score;g2->b0.boys=g2->bi.boys;g2->b0.gir
21、ls=g2->bi.girls;g2->b0.school=g2->bi.school;j=i-1;while(g2->b0.score<g2->bj.score&&j>0)(g2->bj+1.score=g2->bj.score;g2->bj+1.boys=g2->bj.boys;g2->bj+1.girls=g2->bj.girls;g2->bj+1.school=g2->bj.school;j-;)g2->bj+1.score=g2->b0.score;g2->bj
22、+1.boys=g2->b0.boys;g2->bj+1.girls=g2->b0.girls;g2->bj+1.school=g2->b0.school;)for(k=1;k<=g2->n;k+)printf("%dtt%dn",g2->bk.school,g2->bk.score);system("pause");printf("按任意鍵返回主菜單.");getchar();)*/voidfunct5(ALLNode*g2)/*按男團體總分排序輸出inti,j,k;Items*
23、p2;p2=(Items*)malloc(sizeof(Items););printf("nn*按男團體總分排序輸出*n"printf("院系編號皿男團體總分n");scanf("%d",&k);/printf("輸入要查詢的院系編號:");for(i=2;i<=g2->n;i+)(printf("%dt",k);p2=g2->bk.firstitem;while(p2!=NULL)(printf("%dtt%dn",g2->bk.school
24、,g2->bk.boys);p2=p2->next;printf("n");g2->b0.score=g2->bi.score;g2->b0.boys=g2->bi.boys;g2->b0.girls=g2->bi.girls;g2->b0.school=g2->bi.school;j=i-1;while(g2->b0.boys<g2->bj.boys&&j>0)(g2->bj+1.score=g2->bj.score;g2->bj+1.boys=g2-&g
25、t;bj.boys;g2->bj+1.girls=g2->bj.girls;g2->bj+1.school=g2->bj.school;j-;)g2->bj+1.score=g2->b0.score;g2->bj+1.boys=g2->b0.boys;g2->bj+1.girls=g2->b0.girls;g2->bj+1.school=g2->b0.school;)for(k=1;k<=g2->n;k+)printf("%dtt%dn",g2->bk.school,g2->bk
26、.boys);system("pause");/暫停等待printf("按任意鍵返回主菜單.");getchar();)*/voidfunct6(ALLNode*g2)/*按女團體總分排序輸出inti,j,k;Items*p2;p2=(Items*)malloc(sizeof(Items););printf("nn*按女團體總分排序輸出*n"printf("院系編號皿女團體總分n");scanf("%d",&k);/printf("輸入要查詢的項目編號:");for(
27、i=2;i<=g2->n;i+)(printf("%dt",k);p2=g2->bk.firstitem;while(p2!=NULL)(printf("%dtt%dn",g2->bk.school,g2->bk.girls);p2=p2->next;printf("n");g2->b0.score=g2->bi.score;g2->b0.boys=g2->bi.boys;g2->b0.girls=g2->bi.girls;g2->b0.school=g2-
28、>bi.school;j=i-1;while(g2->b0.girls<g2->bj.girls&&j>0)(g2->bj+1.score=g2->bj.score;g2->bj+1.boys=g2->bj.boys;g2->bj+1.girls=g2->bj.girls;g2->bj+1.school=g2->bj.school;j-;)g2->bj+1.score=g2->b0.score;g2->bj+1.boys=g2->b0.boys;g2->bj+1.girl
29、s=g2->b0.girls;g2->bj+1.school=g2->b0.school;)for(k=1;k<=g2->n;k+)printf("%dtt%dn",g2->bk.school,g2->bk.girls);system("pause");printf("按任意鍵返回主菜單.");getchar();)/*按院系編號查詢院系某個項目情況*/voidfunct7(ALLNode*g2)(inti,j;Items*p2;printf("n*按院系編號查詢院系某個項目情況*n
30、");printf("輸入要查詢的院系編號:");scanf("%d",&i);printf("t項目1:50米、項目2:100米、項目3:200米、項目4:400米、項目5:1500米、n");printf("t項目6:跳高、項目7:跳遠、項目8:標槍、項目9:鉛球、項目10:鐵餅n");printf("輸入要查詢的項目編號:");scanf("%d",&j);p2=g2->bi.firstitem;while(p2!=NULL)if(p2-
31、>item=j)printf("院系編號:dt項目%d:得分n",i,p2->item,p2->record);p2=p2->next;printf("n");system("pause");printf("按任意鍵返回主菜單");getchar();voidfunct8(ALLitems*g1)/*按項目編號查詢?nèi)〉妹蔚脑合?/(inti;Schools*p1;printf("n*按項目編號查詢?nèi)〉妹蔚脑合?n");printf("輸入要查詢的項目編號:&
32、quot;);scanf("%d",&i);printf("項目編號ttt取得名次的院系n");printf("%dt",i);p1=g1->ai.firstschool;while(p1!=NULL)(printf("學校d:得分",p1->school,p1->record);p1=p1->next;printf("nn");system("pause");printf("按任意鍵返回主菜單");getchar();vo
33、idmain()(inttemp;printf("管理員請按1,普通用戶請按2n");scanf("%d",&temp);if(1=temp)(intt;voidprint_Passwd(void);while(1)(print_Passwd();break;g2=(ALLNode*)malloc(sizeof(ALLNode);g1=(ALLitems*)malloc(sizeof(ALLitems);if(!g2|!g1)exit(1);/textc010r(WHITE);/textbackground(BLUE);clrscr();syst
34、em("cls"););printf("tt*n"printf("tt運動會分數(shù)統(tǒng)計系統(tǒng)n");printf("tt*1.輸入各個項目成績并存儲義件*tn");printf("tt*2.統(tǒng)計各院系總分*tn");printf("tt*3.按院系編號排序輸出*tn");printf("tt*4.按院系總分排序輸出*tn");printf("tt*5.按男團體總分排序輸出*tn");printf("tt*6.按女團體總分排序輸出*
35、tn");printf("tt*7.按院系編號查詢院系某個項目情況*tn");printf("tt*8.按項目編號查詢?nèi)〉妹蔚脑合?n"):Jprintf("tt*0.退出*n"):J);printf("tt*n"printf("tt*n");printf("ttn");printf("ttn");printf("ttn");printf("tt請選擇(0-8):");loop1:scanf("
36、%d",&t);system("cls");switch(t)(case1:funct1(g1,g2);save();break;case2:funct2(g2);break;case3:funct3(g2);break;case4:funct4(g2);break;case5:funct5(g2);break;case6:funct6(g2);break;case7:funct7(g2);break;case8:funct8(g1);break;case0:exit(0);default:printf("輸入有誤,請重新選擇:");g
37、otoloop1;/clrscr();system("cls");elseintu;g2=(ALLNode*)malloc(sizeof(ALLNode);g1=(ALLitems*)malloc(sizeof(ALLitems);if(!g2|!g1)exit(1);/textcolor(WHITE);/textbackground(BLUE);/clrscr();system("cls");for(;);printf("tt運動會分數(shù)統(tǒng)計系統(tǒng)n");printf("tt*n"printf("tt*1,
38、統(tǒng)計各院系總分*tn");printf("tt*2.按院系編號排序輸出*tn");printf("tt*3,按院系總分排序輸出*tn");printf("tt*4.按院系編號查詢學校某個項目情況*tn");printf("tt*5.按項目編號查詢?nèi)〉妹蔚脑合?n"):Jprintf("tt*0.退出*n"):J);printf("tt*n"printf("tt*n");n");n");printf("ttprint
39、f("ttprintf("ttn");printf("tt請選擇(0-5):");loop2:scanf("%d",&u);system("cls");switch(u)case1:funct2(g2);break;case2:funct3(g2);break;case3:funct4(g2);break;case4:funct7(g2);break;case5:funct8(g1);break;case0:exit(0);default:printf("輸入有誤,請重新選擇:"
40、;);gotoloop2;/clrscr();system("cls");五、測試數(shù)據(jù)及其結(jié)果分析ISSC:jVindowssystem32eimdl號理員請按i,普通用戶請我士褊入登錄名:fidmin帶輸入密碼:admin圖一登錄界面B2C:Wlndow5&y5-tHm32cmd.exe運動會分數(shù)統(tǒng)計系統(tǒng)成分況»尊.日院時項的*出出委*攀點總總號號“系團*入甚量女需出*.一卷趣ft充次零請詵擇1圖二管理員界面*頂?shù)?寸*«短六詢;t哀丁總注香*-分巖系具S4H*學院雪需X新kaiMQEXLr計*A安安安一直,MX444m-1'TLX-.
41、4;CS345X.MM三二二二X-M請選掙叼一寫,二圖三普通用戶界面MXXXX*粕II八者,廣J面目,言.息NXKMHK建界子邛i目總.數(shù)即則項目編年為行鵬舞3瞿盛累最"*己錄運動=成績*鋅:19:S1I閾項49目目懶項r北標-R:=耳3B曾目志項項標:0VF2遠輸1M跣<:27耳目項項XM光5-£16目目用頂?shù)?。?髓;圖四輸入信息SBC:WindowsVys-tem32cmd.exe按男團體總分排序輸出*XKKMHMi男團體總分囂喜詢的院系編號二工編號芝raf.5nt-i>16目日項項系院3:8:項院的目cits詢詢頂項詢:2查查rr查號號要米五董曼即#&l
42、t;x-系輸:!=0翦院27安目目r頂頂圖五男團體總分排序C.:V/indW5systetm32cmd.exe嘉患目情況*靖。米r項目*400米F項目5:15馳米、標槍r項目?:鉛漆功目士鐵餅?zāi)烤幪?項目。得S分青按任苴鍵維續(xù)-圖六查詢院系某個項目結(jié)果分析(1)進入管理員界面需要正確輸入密碼,普通用戶不需要輸入密碼,但管理員界面的功能更多(2)輸入信息時項目和院系編號必須輸入數(shù)字且不能超過預(yù)先設(shè)定的項目總數(shù)和院系總數(shù)(3)總分排序和團體總分排序要先輸入項目編號,進行查詢和排序時也需要輸入正確的院系編號和項目編號六、調(diào)試過程中的問題(1)運行時出現(xiàn)runtimecheckfailure#2或runtimecheckfailure#3說明有變量越界或有變量沒有初始化,需要擴大變量范圍或給變量賦值(2)調(diào)試時出現(xiàn)亂碼或程序終止則很有可能輸入了錯誤的數(shù)據(jù)類型,需要重啟程序并正確輸入數(shù)據(jù)類型(3)選擇普通用戶后無法顯示菜單界面只有光標但輸入數(shù)字可以選擇功能,問題是system("cls&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年春七年級語文下冊 第三單元 12 賣油翁說課稿 新人教版
- 12古詩三首《己亥雜詩》說課稿-2024-2025學年語文五年級上冊統(tǒng)編版
- 15 分享真快樂(說課稿)2023-2024學年統(tǒng)編版道德與法治 一年級下冊001
- 2025裝修工程泥工承包合同
- 7讓弦發(fā)出高低不同的聲音 說課稿-2024-2025學年科學四年級上冊教科版
- 2024-2025學年高中歷史 專題四 王安石變法 一 積貧積弱的北宋教學說課稿 人民版選修1
- 14 請幫我一下吧 第一課時 說課稿-2023-2024學年道德與法治一年級下冊統(tǒng)編版
- 6我們神圣的國土 第1課時(說課稿)-部編版道德與法治五年級上冊
- 2023八年級英語下冊 Module 1 Feelings and impressions Unit 2 I feel nervous when I speak Chinese第三課時說課稿 (新版)外研版
- 2024-2025學年新教材高中語文 第二單元 6.2 文氏外孫入村收麥說課稿(3)部編版必修上冊
- 《架空輸電線路導(dǎo)線舞動風偏故障告警系統(tǒng)技術(shù)導(dǎo)則》
- 2024年計算機二級WPS考試題庫
- 廣東省廣州黃埔區(qū)2023-2024學年八年級上學期期末數(shù)學試卷(含答案)
- 法理學課件馬工程
- 《無菌檢查培訓(xùn)》課件
- 2024-2030年中國香菇行業(yè)銷售狀況及供需前景預(yù)測報告
- 高中英語必背3500單詞表(完整版)
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 禁止送禮的協(xié)議書
- 2024年版《輸變電工程標準工藝應(yīng)用圖冊》
- 2024年高考數(shù)學試卷(北京)(空白卷)
評論
0/150
提交評論