網(wǎng)站建設(shè)財(cái)務(wù)上怎么處理寧波seo推廣推薦
運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)任務(wù)書 |
學(xué)生姓名:xxx? ? ? ? ? 專業(yè)班級:軟件工程 指導(dǎo)教師:? ? ? ? ? ? 工作單位: |
題? 目: 運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)?????????????????????????????????? 基礎(chǔ)要求: 要求具有C語言的理論基礎(chǔ),能夠完成課程設(shè)計(jì)的獨(dú)立設(shè)計(jì)和編碼 實(shí)踐可以寫具有良好的(C語言等)方面的的代碼書寫能力,數(shù)據(jù)結(jié)構(gòu)的專業(yè)知識,能夠完成編碼以及測試工作 主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求) (1)任務(wù)內(nèi)容 運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì) (2)完成要求 對系統(tǒng)進(jìn)行功能模塊分析、控制模塊分析;系統(tǒng)設(shè)計(jì)要能完成題目所要求的功能;編程簡練,可用,盡可能的使系統(tǒng)的功能更加完善和全面;說明書、流程圖要清楚;提高學(xué)生的論文寫作能力;特別要求自己獨(dú)立完成;在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如改善算法性能、友好的人機(jī)界面。 (3)撰寫課程設(shè)計(jì)報(bào)告 報(bào)告格式按附件要求打印與寫課程設(shè)計(jì)報(bào)告;論文包括目錄、正文、小結(jié)、參考文獻(xiàn)、附錄等;課程設(shè)計(jì)論文裝訂按學(xué)校的統(tǒng)一要求完成。 |
時(shí)間安排: 內(nèi)容??????????????? ??天數(shù)???????????? 地點(diǎn) 構(gòu)思及收集資料????????? 1????????????? 機(jī)房 編碼與調(diào)試????????????? 3????????????? 機(jī)房 撰寫論文??????????????? 1????????????? 圖書館、機(jī)房 |
指導(dǎo)教師簽名:?? ? ? ? ? ? ? ? ? ? 2023年??? 3月?? 23 日 |
完整資源一鍵獲取私信我
?
- 問題分析和任務(wù)定義
【問題描述】
參加運(yùn)動會的n個(gè)學(xué)校編號為1~k。比賽分成n個(gè)男子項(xiàng)目和m個(gè)女子項(xiàng)目,項(xiàng)目編號分別為1~n和n+1~n+m。由于各項(xiàng)目參加人數(shù)差別較大,有些項(xiàng)目取前五名,得分順序?yàn)?/strong>7,5,3,2,1;有些項(xiàng)目只取前三名,得分順序?yàn)?/strong>5,3,2。寫一個(gè)統(tǒng)計(jì)程序產(chǎn)生各種成績單和得分報(bào)表。
【基本要求】
-
- 可以輸入各個(gè)項(xiàng)目的前三名或前五名的成績;
- 能統(tǒng)計(jì)各學(xué)??偡?#xff0c;
- 可以按學(xué)校編號或名稱、學(xué)??偡帧⒛信畧F(tuán)體總分排序輸出;
- 可以按學(xué)校編號查詢學(xué)校某個(gè)項(xiàng)目的情況;可以按項(xiàng)目編號查詢?nèi)〉们叭蚯拔迕膶W(xué)校。
- 數(shù)據(jù)存入文件并能隨時(shí)查詢
- 輸入數(shù)據(jù)形式和范圍:可以輸入學(xué)校的名稱,運(yùn)動項(xiàng)目的名稱
輸出形式:有中文提示,各學(xué)校分?jǐn)?shù)為整型。
界面要求:有合理的提示,每個(gè)功能可以設(shè)立菜單,根據(jù)提示,可以完成相關(guān)的功能要求。
存儲結(jié)構(gòu):學(xué)生根據(jù)系統(tǒng)功能要求自己設(shè)計(jì),但要求運(yùn)動會的相關(guān)數(shù)據(jù)要存儲在數(shù)據(jù)文件中。
- 數(shù)據(jù)結(jié)構(gòu)的選擇和概要設(shè)計(jì)
本課設(shè)要求輸入信息,?統(tǒng)計(jì)分?jǐn)?shù),執(zhí)行排序與查找功能,?在要求中沒有在建立數(shù)據(jù)之后進(jìn)行插入和刪除操作,而在排序和查找過程中有許多的隨機(jī)讀取數(shù)據(jù)操作,因此使用順序結(jié)構(gòu)而不用鏈表。由于各個(gè)要求屬性具有一定的聯(lián)系,在定義數(shù)據(jù)時(shí)使用結(jié)構(gòu)體和結(jié)構(gòu)體數(shù)組來存儲信息數(shù)據(jù)。
- 詳細(xì)設(shè)計(jì)和編碼
int main()
{
??? MESSAGE SG = {0}, *message = &SG;
??? int i, j, k, select, choice, now, next;
??? if (read(message,fp))
??? {
??????? printf("請按任意鍵進(jìn)行下一步\n");
??????? getch();
??? }
??? do
??? {
??????? system("cls");
??????? select = xianshi();
??????? if (select == 1)
??????????? record(message->xuexiao, message->xiangmu, message->b, message);
??????? else if (message->b[0])
??????? {
??????????? if (select >= 2 && select <= 4)
??????????? {
??????????????? fp = fopen(wenjian, "a+");
??????????????? paixu(message, select - 2,fp);
??????????????? fclose(fp);
??????????? }
???????????????
??????????? else if (select == 5)
??????????? {
??????????????? fp = fopen(wenjian, "a+");
??????????????? for (k = 0; k < message->b[0]; k++) //輸出學(xué)校名稱選項(xiàng) 每五個(gè)一行
??????????????????? printf("%d:%-13s%c", k + 1, message->xuexiao[k], (k + 1) % H ? ' ' : '\n');
??????????????? printf("\n輸入學(xué)校前的編號[1,%d]:", message->b[0]);
??????????????? choice = gainint(&choice, 1, message->b[0]) - 1;
??????????????? next = 0;
??????????????? while (next < message->b[1])
??????????????? {
??????????????????? now = next;
??????????????????? if ((next + H) < (message->b[1]))
??????????????????????? next = next + H;
??????????????????? else
??????????????????????? next = message->b[1];
??????????????????? for (i = now; i < next; i++)
??????????????????? {
????????? ??????????????fprintf(fp,"(%s-%d)%-8s ", sex[message->sex[i]], message->junction[i], message->xiangmu[i]);
??????????????????????? printf("(%s-%d)%-8s ", sex[message->sex[i]], message->junction[i], message->xiangmu[i]);
??????????????????? } //輸出項(xiàng)目信息
?? ?????????????????fprintf(fp,"\n");
??????????????????? printf("\n");
??????????????????? for (j = 0; j < 3; j++)
??????????????????? {
??????????????????????? fprintf(fp,"%-s:? ", fenlei[j]);
??????????????????????? printf("%-s:? ", fenlei[j]);
??????????????????????? for (k = now; k < next; k++)
??????????????????????? {
??????????????????????????? if (j == message->sex[k] || j == 2)
??????????????????????????? {
??????????????????????????????? fprintf(fp,"%02d分??? \t", (message->spot + choice)->gram[j][k]);
??????????????????????????????? printf("%02d分??? \t", (message->spot + choice)->gram[j][k]);
??????????????????????????? }
??????????????????????????? else
??????????????????????????? {
??????????????????????????????? fprintf(fp,"******? \t");
??????????????????????????????? printf("******? \t");
??????????????????????????? }
??????????????????????? }
??????????????????????? fprintf(fp,"\n");
??????????????????????? printf("\n");
??????????????????? }
??????????????????? fprintf(fp,"\n");
? ??????????????????printf("\n");
??????????????? }
??????????????? fclose(fp);
??????????? }
??????????? else if (select == 6)
??????????? {
??????????????? fp = fopen(wenjian, "a+");
??????????????? for (i = 0; i < message->b[1]; i++)
??????????????? {
??????????????????? printf("\t\t第%d個(gè)比賽項(xiàng)目: %-13s<%s子> 只錄入前%d名\n", i + 1, message->xiangmu[i], sex[message->sex[i]], message->junction[i]);
??????????????????? fprintf(fp,"\t\t第%d個(gè)比賽項(xiàng)目: %-13s<%s子> 只錄入前%d名\n", i + 1, message->xiangmu[i], sex[message->sex[i]], message->junction[i]);
??????????????????? for (j = 0; j < message->junction[i]; j++)
??????????????????? {
??????????????????????? fprintf(fp,"\t第%d名:%-13s%02d分", j + 1, message->xuexiao[message->count[i][j]], junction[(message->junction[i]) / 4][j]);
??????????????????????? printf("\t第%d名:%-13s%02d分", j + 1, message->xuexiao[message->count[i][j]], junction[(message->junction[i]) / 4][j]);
??????????????????? }
??????????????????? printf("\n\n");
??????????????????? fprintf(fp,"\n\n");
??????????????? }
??????????????? fclose(fp);
??????????? }
??????????? else if (select == 9)
??????????? {
??????????????? printf("確認(rèn)清空請按1 否則請按0:");
??????????????? if (gainint(&choice, 0, 1))
??????????????????? for (k = 0; k < NUMP; k++) //對申請出來的結(jié)構(gòu)體中的所有項(xiàng)目初始化
??????????????????????? for (i = 0; i < 3; i++)
??????????????????????? {
??????????????????????????? (message->spot + k)->sum[i] = 0; // sum[]初始化
??????????????????????????? for (j = 0; j < NUMP; j++)
??????????????????????????????? (message->spot +
{
??? int B, C;
??? do
??? {
??????? A[max] = B = C = 0;
??????? while ((A[B++] = getchar()) != '\n' && B < max)
??????????? ;
??????? if (A[B - 1] != '\n')
??????????? while (getchar() != '\n' && ++C)
??????????????? ;//如果輸入的最后一個(gè)字符不是回車,那么將剩余長度計(jì)到C
??????? else
??????????? A[--B] = 0;//否則把錄進(jìn)數(shù)組的回車刪掉,即為成功輸入字符。
??????? if (C || B && B < min)
??????????? printf("錄入的字符串長度為%d字節(jié)\n只錄入(%d--%d)個(gè)字符!\n", B + C, min, max);
??? } while (C || B < min);
??? return B;//返回錄入成功字符數(shù)量
}
int jianyan(char b[], int T) //檢驗(yàn)b[]是否符合實(shí)際
{
??? int d = 0, i, LEN = -1, F;
??? while (b[++LEN])
??????? ;
??? for (i = 0; i < LEN; i++)
??????? if (b[i] > 0) //漢字ascll編碼每一個(gè)字節(jié)為負(fù)數(shù)
??????????? return printf("輸入中含有非中文字符!");
??? for (i = 0; key[i][0]; i++)
??? {
??????? F = bijiao(b, key[i]); //匹配中文標(biāo)點(diǎn)符號
??????? if (F && F % 2)
??????????? return printf("輸入中含有非漢字中文字符!");
??? }
??? if (T == 1) //檢驗(yàn)學(xué)校的名稱
??? {
??????? for (i = 0; school[i][0]; i++)
??????? {
??????????? F = bijiao(b, school[i]);
??????????? if (F && F % 2)
??????????????? d++;
??????? }
??????? if (!d)
??????????? return printf("查無此校~學(xué)校名稱輸入可能存在錯(cuò)誤!");
??? }
??? if (T == 2) //檢驗(yàn)比賽的名稱
??? {
??????? for (i = 0; program[i][0]; i++)
??????? {
??????????? F = bijiao(b, program[i]);
??????????? if (F && F % 2)
??????????????? d++;
??????? }
??????? if (!d)
??????????? return printf("沒有發(fā)現(xiàn)相關(guān)比賽~項(xiàng)目名稱輸入可能存在錯(cuò)誤!");
??? }
??? return 0;
}
??????? for (i = 0; program[i][0]; i++)
??????? {
??????????? F = bijiao(b, program[i]);
??????????? if (F )
??????????????? d++;
??????? }
k)->gram[i][j] = 0; //項(xiàng)目初始化
??????????????????????????? message->b[i] = 0;
??????????????????????? }
??????????????? /*if (write(message,fp))
??????????????????? return 0;*/
??????????????? read(message,fp);
??????????? }
??????????? else if(select==7)
??????????? {
??????????????? system(wenjian);
??????????? }
??????? }
??????? printf("\n請按任意鍵繼續(xù)…\n");
??????? getch();
??? } while (select != 8);
}
上機(jī)調(diào)試過程
1.按男子總分排名
2.按學(xué)??偡峙琶?/p>
3.按比賽項(xiàng)目排名
- 測試結(jié)果及其分析
測試取學(xué)校數(shù)為5,男子項(xiàng)目數(shù)2,女子項(xiàng)目數(shù)0
編號 | 學(xué)校名稱 | 名次 |
1 | 經(jīng)濟(jì)學(xué)院 | 1 |
3 | 理工學(xué)院 | 2 |
2 | 醫(yī)藥學(xué)院 | 3 |
- 用戶使用說明
?system("mode con cols=130 lines=30"); //控制臺 寬度130 高度30
??? printf("\t\t\t\t運(yùn)動會分?jǐn)?shù)統(tǒng)計(jì)\n");
??? printf("* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *\n");
??? printf("\t*??? 功???? 能??? 表???????????????? 積?? 分?? 規(guī)?? 則\n");
??? printf("\t* 1.添加學(xué)校及項(xiàng)目????????????????? *取前三名(1,2,3)\n");
??? printf("\t* 2.按男子團(tuán)體總分排序輸出?????????? *積分分別為--5,3,2\n");
??? printf("\t* 3.按女子團(tuán)體總分排序輸出???????? \n");
??? printf("\t* 4.按學(xué)??偡峙判蜉敵?????????????? *取前五名(1,2,3,4,5)\n");
??? printf("\t* 5.按編號或名稱查詢學(xué)校情況???????? *積分分別為--7,5,3,2,1\n");
??? printf("\t* 6.顯示比賽項(xiàng)目各學(xué)校名次情況?????? \n");
??? printf("\t* 7.讀取文件??????????????????? \n");
??? printf("\t* 8.保存信息并退出?????????????????? \n");
??? printf("\t* 9.清空并恢復(fù)初始化界面???????????? \n");
??? printf("\n");
??? printf("\t*注意:一個(gè)漢字占兩個(gè)字符!!!\n");
??? printf("\t*注意:功能1可分多次選擇!!!\n");
??? printf("\t*注意:錄入項(xiàng)目時(shí)默認(rèn)先男后女!!!\n");
??? printf("\t*注意:初次使用請先使用功能1錄入數(shù)據(jù)!!!\n");
??? printf("* * * * * * * * * * * * * * * * * * * * * * * * * *\n\t");
??? printf("請輸入您的選擇(1-9):");
七丶參考文獻(xiàn)
[1]嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu)C語言版[M].清華大學(xué)出版社,2007.
[2]逯鵬,張贊.數(shù)據(jù)結(jié)構(gòu)課程教學(xué)方法的研究和實(shí)踐[J].教育教學(xué)論壇,2015(18):121-123.
[3]賈丹,周軍.基于創(chuàng)新應(yīng)用型人才培養(yǎng)模式的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)改革[J].遼寧工業(yè)大學(xué)學(xué)報(bào):社會科學(xué)版,2015(2):132-134.
[4]郭艷燕,童向榮,孫雪姣,等.程序設(shè)計(jì)基礎(chǔ)與數(shù)據(jù)結(jié)構(gòu)兩門課程的'教學(xué)銜接[J].計(jì)算機(jī)教育,2014(10):47-50.
[5]高賢強(qiáng),化希耀,陳立平.引入計(jì)算思維的《數(shù)據(jù)結(jié)構(gòu)》教學(xué)改革研究[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2015(7):16-19.
[6]嚴(yán)太山,郭觀七,李文彬.課堂設(shè)問的技巧及其在《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)中的應(yīng)用[J].湖南理工學(xué)院學(xué)報(bào):自然科學(xué)版,2015(1):81-83.
[7]南淑萍.電子商務(wù)專業(yè)數(shù)據(jù)結(jié)構(gòu)教學(xué)方法探討[J].湖北科技學(xué)院學(xué)報(bào),2014(10):13-14.
[8]諶林,鄭泓楠.分布式數(shù)據(jù)庫查詢處理和優(yōu)化算法[J].中外企業(yè)家,2020(15):145.
[9]方木云,趙長鮮,張祝夢.兩種非勻質(zhì)Excel表轉(zhuǎn)換成關(guān)系數(shù)據(jù)庫表的方法[J].軟件工程,2020,23(05):31 -34.
[10]熊光華.計(jì)算機(jī)數(shù)據(jù)庫系統(tǒng)在企業(yè)管理中的應(yīng)用[J].計(jì)算機(jī)產(chǎn)品與流通,2020(05):14.