




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第29頁第1頁課程設計(論文)任務書信息工程學院通信工程專業(yè)15-1班一、課程設計(論文)題目:學生成績管理二、課程設計(論文)工作自2016年6月27日起至2016年7月1日止三、課程設計(論文)地點:8棟601四、課程設計(論文)內(nèi)容要求:1.本課程設計的目的(1)進一步鞏固和加深對“C程序設計”課程基本知識的理解和掌握,了解C語言在項目開發(fā)中的應用。(2)學習程序設計開發(fā)的一般方法,了解和掌握項目開發(fā)過程及方式,培養(yǎng)正確的設計思想和分析問題、解決問題的能力,特別是項目設計能力。(3)通過對標準化、規(guī)范化文檔的掌握并查閱有關(guān)技術(shù)資料等,培養(yǎng)項目設計開發(fā)能力,同時提倡團隊合作精神。2.課程設計的任務及要求1)基本要求:對系統(tǒng)功能進行需求分析;使用VisualC++編譯器進行程序編譯;(3)提出系統(tǒng)的設計方案;(4)編寫源程序代碼并進行調(diào)試。2)創(chuàng)新要求在基本要求達到后,可進行創(chuàng)新設計。3)課程設計報告撰寫及裝訂要求課程設計報告的撰寫要求表述簡明,圖表準確。報告按如下內(nèi)容和順序用A4紙進行打印并裝訂成冊。(1)封面采用統(tǒng)一的課程設計封面,并按要求填寫好封面要求的個人信息和選題。(2)設計任務書(3)評閱書(4)目錄(5)正文(6)主要參考文獻4)課程設計評分標準:每人按指定題目進行設計,嚴禁抄襲,各選題2人/組。要求每人自己動手編寫程序,采取同一組同時檢查程序及運行結(jié)果,檢查時同組成員每人陳述自己的分工,同一選題不同組如發(fā)現(xiàn)代碼完全一樣,則雙方都作不及格處理。(1)達到課程設計的目的與要求,程序的可讀性較好,并調(diào)試正確,60分;(2)能正確回答設計的中老師所提問題,可增加10分;(3)課程設計報告書寫規(guī)范整齊,可增加10分;(4)心得體會認真總結(jié),可增加10分;(5)程序有創(chuàng)新性,可增加10分;成績評定實行優(yōu)秀、良好、中等、及格和不及格五個等級。不及格者需重做。5)課程設計進度安排(1)準備階段(3學時):選擇設計題目、了解設計目的要求、查閱相關(guān)資料。(2)程序模塊設計分析階段(4學時):程序總體設計、詳細設計。(3)代碼編寫調(diào)試階段(10學時):程序模塊代碼編寫、調(diào)試、測試。(4)撰寫論文階段(3學時):總結(jié)課程設計任務和設計內(nèi)容,撰寫課程設計論文。6)課程設計題目具體要求:學生成績管理系統(tǒng)要求從鍵盤輸入某班級30個學生的學號、姓名、三門課(語文、數(shù)學、英語)的成績,分別實現(xiàn)1.統(tǒng)計平均分和總分2.按總分大小排出名次3.打印成績在班平均分之上的學生成績和信息4.輸入任意學號查找該學生的成績和名次。要求:各個功能要求分別用獨立的函數(shù)來實現(xiàn),在主函數(shù)中通過菜單選擇來實現(xiàn)各個功能。且要求使用結(jié)構(gòu)體數(shù)組來存儲和處理30個學生信息,定義的結(jié)構(gòu)體主要包括:學號、姓名、三門課成績、總分、平均分、名次等成員??梢杂袆?chuàng)新內(nèi)容。學生簽名:2016年6月24日
課程設計(論文)評閱意見序號項目等級優(yōu)秀良好中等及格不及格1課程設計態(tài)度評價2出勤情況評價3任務難度評價4工作量飽滿評價5設計中創(chuàng)新性評價6論文書寫規(guī)范化評價綜合評定等級評閱人職稱副教授2016年7月2日
目錄一、功能介紹………5二、摘要……………6三、程序設計………8四、運行的圖文分析………………21五、使用說明………24六、課程設計心得…………………29七、參考文獻………30
一、功能介紹菜單是應用程序非常重要的組成部分,通過菜單,應用程序可以實現(xiàn)不同的功能,通過本系統(tǒng)的設計,可以實現(xiàn)應用程序的菜單。進入系統(tǒng)之前,用戶敲回車鍵開始輸入學生信息(姓名和各科成績,之后進入菜單,可選擇1-5實現(xiàn)五種不同功能。用戶根據(jù)需要輸入1-5,若輸入其他字符,則顯示按鍵錯誤,請重新選擇。實現(xiàn)完各功能之后用戶可輸入BB返回返單,若輸入錯誤需要重新輸入。選擇功能1后,程序自動輸各科的平均分以及總分平均分,還有各學生的學號、姓名、各科成績、總成績。選擇功能2后,程序自動給各學生排名,并輸出各學生的名次和相關(guān)信息。選擇功能3后,程序自動打印出分數(shù)高于平均分的學生的信息。選擇功能4后,輸入學號可查詢現(xiàn)骨干學生的信息,系統(tǒng)會自動計算該學生的成績績點,并判斷該學生是否拿得到學位證。若輸入無關(guān)學號則會提醒未查到該學生請重新輸入學號。選擇功能5后,程序運行結(jié)束,輸出圖形,按任意鍵關(guān)閉程序。
二、摘要步驟:1.打開應用程序,彈出“歡迎使用”界面。2.輸入每位學生的相關(guān)信息。3.進入菜單欄,可選擇各項功能。4.對輸入信息進行判斷,若正確則執(zhí)行相關(guān)功能,錯誤就需要重新選擇。5.實現(xiàn)功能后可以返回菜單欄。6.繼續(xù)判斷輸入信息,然后執(zhí)行下一個功能。7.可輸入相關(guān)信息進行選擇相應功能使程序結(jié)束運行。8.程序運行結(jié)束時會出現(xiàn)一個心形的圖案,并顯示出“感謝使用,再見!”流程圖
三、程序設計源代碼#include<stdio.h>#include<string.h>#include<math.h>structstudent/*創(chuàng)建結(jié)構(gòu)體1*/{intnum;charname[99];floatChinese;floatEnglish;floatMath;}st[30];structstudent2/*創(chuàng)建結(jié)構(gòu)體2*/{intnum;charname[99];floatChinese;floatEnglish;floatMath;}st2[30];main(){inta,i,j,b,d,e,m,n,o,z;charc[99],f; floatAVE,aveC,aveE,aveM,sum[30],sum2[30],sumC=0,sumE=0,sumM=0,jC[30],jE[30],jM[30],avej[30],w,x,y,k,p;printf("*****************\n");printf("*******************\n");printf("*******\n");printf("*******\n");printf("**************\n");printf("****************\n");printf("*******歡迎使用\n");printf("*******\n");printf("*******\n");printf("********************學生成績管理系統(tǒng)\n");printf("*******\n");printf("*******\n");printf("**********************按回車鍵開始輸入學生信息\n");printf("*******\n");printf("*******\n");printf("********************\n");printf("***********************************\n");/*以上代碼均用于圖形設計*/getchar();printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("請輸入學生姓名,成績\n");/*循環(huán)語句輸入學生信息*/for(i=15001;i<=15030;i++){printf("學號%d\n",i);st[i-15001].num=i;st2[i-15001].num=i;printf("請輸入姓名");gets(st[i-15001].name);strcpy(st2[i-15001].name,st[i-15001].name);printf("請輸入語文成績");scanf("%f",&st[i-15001].Chinese);st2[i-15001].Chinese=st[i-15001].Chinese;printf("請輸入英語成績");scanf("%f",&st[i-15001].English);st2[i-15001].English=st[i-15001].English;printf("請輸入數(shù)學成績");scanf("%f",&st[i-15001].Math);st2[i-15001].Math=st[i-15001].Math;sumC+=st[i-15001].Chinese;/*計算總分、平均分、成績績點*/sumE+=st[i-15001].English;sumM+=st[i-15001].Math;sum[i-15001]=st[i-15001].Chinese+st[i-15001].English+st[i-15001].Math;sum2[i-15001]=st2[i-15001].Chinese+st2[i-15001].English+st2[i-15001].Math;if(st[i-15001].Chinese<60)jC[i-15001]=0;elsejC[i-15001]=(st[i-15001].Chinese-60)/10;if(st[i-15001].English<60)jE[i-15001]=0;elsejE[i-15001]=(st[i-15001].English-60)/10;if(st[i-15001].Math<60)jM[i-15001]=0;elsejM[i-15001]=(st[i-15001].Math-60)/10;avej[i-15001]=(jC[i-15001]+jE[i-15001]+jM[i-15001])/3;getchar();}aveC=sumC/30;aveE=sumE/30;aveM=sumM/30;AVE=aveC+aveE+aveM;lable2:printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");printf("請輸入序號選擇功能(請輸入1~5之間的數(shù)字并按回車鍵確認)\n1.統(tǒng)計平均分和總分\n2.排序\n3.打印\n4.查找(可查成績績點)\n5.退出\n請輸入序號:");/*輸出菜單欄*/scanf("%d",&a);switch(a){case1:/*模塊1實現(xiàn)輸出總分平均分等功能*/ {printf("語文平均分=%f\n",aveC);printf("英語平均分=%f\n",aveE);printf("數(shù)學平均分=%f\n",aveM);printf("總分平均分=%f\n",AVE);for(j=0;j<30;j++){ printf("姓名:");puts(st[j].name);printf("學號%d語文%f英語%f數(shù)學%f總分%f\n",st[j].num,st[j].Chinese,st[j].English,st[j].Math,sum[j]);}};printf("輸入BB返回選擇界面(按回車鍵確認)");lable3:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto語句實現(xiàn)返回功能*/else{ printf("");gotolable3;/*goto語句實現(xiàn)返回功能*/};break;case2:/*模塊二實現(xiàn)排序功能*/{ for(m=0;m<30;m++){ o=m; for(n=m+1;n<30;n++) { if(sum2[o]<sum2[n]) o=n; } if(o!=m) { p=sum2[m]; sum2[m]=sum2[o]; sum2[o]=p; y=st2[m].Chinese; st2[m].Chinese=st2[o].Chinese; st2[o].Chinese=y; x=st2[m].English; st2[m].English=st2[o].English; st2[o].English=x; w=st2[m].Math; st2[m].Math=st2[o].Math; st2[o].Math=w; z=st2[m].num; st2[m].num=st2[o].num; st2[o].num=z; strcpy(c,st2[m].name); strcpy(st2[m].name,st2[o].name); strcpy(st2[o].name,c); }}for(m=0;m<30;m++){ printf("姓名:");puts(st2[m].name);printf("名次%d學號%d語文%f英語%f數(shù)學%f總分%f\n",m+1,st2[m].num,st2[m].Chinese,st2[m].English,st2[m].Math,sum2[m]);}};printf("輸入BB返回選擇界面");lable4:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto語句實現(xiàn)返回功能*/else{ printf("");gotolable4;/*goto語句實現(xiàn)返回功能*/};break;case3:/*模塊3實現(xiàn)打印功能*/ { printf("總分大于平均分的有\(zhòng)n"); for(b=0;b<30;b++) if(sum[b]>=AVE) { printf("姓名:");puts(st[b].name);printf("學號%d總分%f\n",st[b].num,sum[b]);}; printf("語文大于平均分的有\(zhòng)n"); for(b=0;b<30;b++) if(st[b].Chinese>aveC) { printf("姓名:");puts(st[b].name);printf("學號%d語文%f\n",st[b].num,st[b].Chinese);}; printf("英語大于平均分的有\(zhòng)n"); for(b=0;b<30;b++) if(st[b].English>aveE) { printf("姓名:");puts(st[b].name);printf("學號%d英語%f\n",st[b].num,st[b].English);}; printf("數(shù)學大于平均分的有\(zhòng)n"); for(b=0;b<30;b++) if(st[b].Math>aveM) { printf("姓名:");puts(st[b].name);printf("學號%d數(shù)學%f\n",st[b].num,st[b].Math);}; }; printf("輸入BB返回選擇界面");lable5:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto語句實現(xiàn)返回功能*/else{ printf("");gotolable5;/*goto語句實現(xiàn)返回功能*/}; break;case4:/*模塊4實現(xiàn)查詢功能*/ { printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); printf("請輸入要查詢的學號");lable6: scanf("%d",&d); if(d>15030||d<15001) { printf("未查詢到該學號,請檢查是否輸入正確\n"); printf("請重新輸入學號"); gotolable6;/*goto語句實現(xiàn)返回功能*/ } for(e=15001;e<=15030;e++) { if(d==e) { printf("姓名:");puts(st[e-15001].name); printf("學號%d語文%f英語%f數(shù)學%f總分%f\n",st[e-15001].num,st[e-15001].Chinese,st[e-15001].English,st[e-15001].Math,sum[e-15001]);printf("該學生成績績點為語文%f英語%f數(shù)學%f平均%f\n",jC[e-15001],jE[e-15001],jM[e-15001],avej[e-15001]); if(avej[e-15001]>=2.2)/*判斷是否能拿到學位證*/ printf("該學生可以拿到學位證\n"); elseprintf("該學生不能拿到學位證\n"); } } };printf("輸入BB返回選擇界面");lable7:scanf("%c",&f);getchar();if(f=='B')gotolable2;/*goto語句實現(xiàn)返回功能*/else{ printf("");gotolable7;/*goto語句實現(xiàn)返回功能*/}; break;case5:/*模塊5實現(xiàn)退出功能(不含goto語句)*/{printf("\n\n\n\n");doubleX,Y;intH=3;for(Y=-4;Y<=0;Y+=0.3){for(X=-4;X<=4;X+=0.2)if(fabs(sqrt(X*X+Y*Y)-H*sin(2*atan(Y/X)))<=1||fabs(sqrt(X*X+Y*Y)-H*sin(2*atan(-Y/X)))<=1)printf("*");elseprintf("");printf("\n");}for(Y=-1;Y<=0;Y+=0.2){for(X=-4;X<=4;X+=0.2)if(fabs(Y)-0.65*X*X>=0.2)printf("*");elseprintf("");printf("\n");}printf("感謝使用,再見!\n");return0;}/*以上代碼輸出圖形*/ break;default:/*模塊6輸入錯誤重新輸入*/ gotolable2;/*goto語句實現(xiàn)返回功能*/ break;}}本實驗由管宇和盧俊共同完成。管宇負責設計框架和構(gòu)思,模塊2、4、5的設計。盧俊負責模塊1和模塊3的設計。功能調(diào)試兩人一起完成。四、運行的圖文分析打開程序后按照預期輸出了封面執(zhí)行功能1(正常運行)執(zhí)行功能2(正常運行)執(zhí)行功能3(正常運行)執(zhí)行功能4(正常運行)執(zhí)行功能5(正常運行)本次實驗程序正常運行。
五、使用說明打開程序后首先輸出圖片按回車鍵后依次輸入學生信息輸完學生信息進入菜單欄選擇功能輸入1實現(xiàn)功能1可輸入BB執(zhí)行返回功能輸入后回到菜單欄輸入2實現(xiàn)功能2,學生成績從大到小排序返回后輸入3實現(xiàn)功能3返回后輸入4實現(xiàn)功能4輸入錯誤學號則提示輸入正確學號則輸出該學生信息返回后輸入5實現(xiàn)功能5若輸入1-5之外的數(shù)不會執(zhí)行功能,需要重新輸入。
六、課程設計心得大一剛開始接觸這個C語言的時候,我內(nèi)心是崩潰的后來慢慢發(fā)現(xiàn)有點意思哈,老師也講得津津有味,我們聽著也很有興致?,F(xiàn)在有關(guān)C語言的基礎差不多都會吧,什么頭文件#include<stdio.h>,scanf(“%...”,&...),還有我們平時說的等號“=”,在C語言中就是賦值的意思啦,而C語言中的等號則是“==”,還有就是一些基礎的,比如分號哪些時候不該加,但大多數(shù)情況都要記得加上那個分號。還有switch語句后面忘記加break語句而不能循環(huán)語句。還有定義形參的時候應該在函數(shù)體外面,而局部變量應該在函數(shù)體內(nèi)定義??傊?,這些困難都不算困難,如果你抽一點玩的時間出來看一下書,有時候可以在課堂上打盹,但是無論學什么東西都要經(jīng)過
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度演唱會票務代理合同
- 二零二五年度科技創(chuàng)新私人廠房租賃服務協(xié)議
- 婚禮跟拍合同-2025年度獨家婚禮影像記錄
- 二零二五年度勞動合同解除通知及離職手續(xù)辦理流程優(yōu)化范本
- 2025年度珠寶企業(yè)數(shù)字化轉(zhuǎn)型戰(zhàn)略合作合同
- 2025年度綠茶茶園承包合作種植與加工合同
- 二零二五年度家庭月嫂服務及培訓合同
- 二零二五年度合伙購車積分兌換協(xié)議
- 《物流系統(tǒng)分析》課件 項目二任務二 認識物流需求分析
- 2025年重慶考貨運上崗證試答題
- 2022年高考(全國甲卷)語文仿真模擬卷【含答案】
- 腸瘺治療PPT醫(yī)學課件(PPT 25頁)
- 員工轉(zhuǎn)正評價表
- 道路交通事故責任認定行政復議申請書范例
- 鄭州大學圖書館平立剖面效果圖
- 高效液相含量測定計算公式
- 公安機關(guān)通用告知書模板
- 《小學數(shù)學課程與教學》教學大綱
- 《手機攝影》全套課件(完整版)
- 礦井無計劃停電停風安全技術(shù)措施
- 標前合作合同協(xié)議書范本
評論
0/150
提交評論