![C語言課程設(shè)計5_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/debfdc89-822b-4688-b6f9-45a01bb6d194/debfdc89-822b-4688-b6f9-45a01bb6d1941.gif)
![C語言課程設(shè)計5_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/debfdc89-822b-4688-b6f9-45a01bb6d194/debfdc89-822b-4688-b6f9-45a01bb6d1942.gif)
![C語言課程設(shè)計5_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/debfdc89-822b-4688-b6f9-45a01bb6d194/debfdc89-822b-4688-b6f9-45a01bb6d1943.gif)
![C語言課程設(shè)計5_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/debfdc89-822b-4688-b6f9-45a01bb6d194/debfdc89-822b-4688-b6f9-45a01bb6d1944.gif)
![C語言課程設(shè)計5_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-10/28/debfdc89-822b-4688-b6f9-45a01bb6d194/debfdc89-822b-4688-b6f9-45a01bb6d1945.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設(shè)計報告目錄第一章 程序設(shè)計目的及要求3 §11設(shè)計目的3§12 設(shè)計要求3第二章 課程設(shè)計任務(wù)內(nèi)容3§21 設(shè)計內(nèi)容3第三章 程序設(shè)計說明3-7§31 方案設(shè)計3-4§32 模塊說明4-73-2-1 輸入模塊53-2-2 查詢模塊53-2-3 刪除模塊63-2-4 排序模塊73-2-5 統(tǒng)計模塊7第四章 調(diào)試情況及運行結(jié)果8§42 在設(shè)計中的感受8§41 對自己的設(shè)計提出評價8參考文獻附錄第一章 課程設(shè)計目的及要求§11設(shè)計目的1. 熟悉c語言的編譯連接和運行過程。2. 掌握c語言的數(shù)據(jù)類型,熟悉整型、實型、
2、字符型變量的定義方式及如何給它們賦值。3. 掌握if語句及switch語句的運用方法及嵌套應(yīng)用方法。4. 掌握實現(xiàn)循環(huán)結(jié)構(gòu)的三種語句while、 do-while.、for 的使用。5. 掌握函數(shù)的定義方法和調(diào)用方法。6. 能夠采用模塊化思想調(diào)試程序。§12 設(shè)計要求1. 該程序可用于對學(xué)生的成績信息的存儲、更新、查詢、輸出等操作,以實現(xiàn)對學(xué)生成績的管理。2. 其中更新功能包括:添加信息、刪除信息、修改信息、可根據(jù)需要添加一個或多個學(xué)生信息,也可對個別學(xué)生信息進行適當(dāng)?shù)膭h除或修改。以便隨時更新學(xué)生信息。3. 程序中設(shè)計的查詢功能可根據(jù)需要從若干數(shù)據(jù)中查詢某個學(xué)生信息,并且可根據(jù)兩種不
3、同的方法查詢:按學(xué)號查詢和按姓名查詢。以滿足不同的需要。第二章 課程設(shè)計任務(wù)內(nèi)容§21 設(shè)計內(nèi)容1. 編寫程序并進行調(diào)試運行。2. 輸入學(xué)生資料,并保存于文件。每個學(xué)生包含信息如:學(xué)號、姓名、班級、成績信息等。3. 對已存入的學(xué)生信息進行更新操作,包括添加一個學(xué)生信息、刪除某個學(xué)生信息和修改某個學(xué)生信息。4. 通過輸入姓名、學(xué)號的方式查詢學(xué)生信息。5最后輸出學(xué)生信息,供需要時打印第三章 程序設(shè)計說明§31 方案設(shè)計對系統(tǒng)進行分析,給出結(jié)構(gòu)圖 分析:系統(tǒng)要求實現(xiàn)許多的功能,因此遵循結(jié)構(gòu)化程序設(shè)計思想來進行本系統(tǒng)的設(shè)計自頂向下、逐步細化,將系統(tǒng)設(shè)計任務(wù)分解出許多子功能模塊進行設(shè)
4、計 結(jié)構(gòu)圖如下:學(xué)生成績管理系統(tǒng) 退出系統(tǒng)排序模塊查詢模塊更新模塊輸出模塊輸入模塊按平均分排序按英語排序按c語言排序按數(shù)學(xué)排序按總分排序按學(xué)號查尋按姓名查詢 退出系統(tǒng)刪除學(xué)生信息修改學(xué)生信息添加學(xué)生信息 退出系統(tǒng)§32 模塊說明1-2-2 輸入模塊錄入需要管理的學(xué)生信息并將信息保存于文件中,以方便日后進行打印、讀取、更新等操作。流程圖示:輸入學(xué)生信息判斷i<num開始3-2-3 查詢模塊輸入要按學(xué)號還是姓名查詢,如果輸入的是2則按學(xué)號查找,如果輸入的是1則按姓名查找,如果輸入0則退出,輸入要查找的姓名或者學(xué)號然后開始查找,如果找到時此記錄則輸出,否則輸出無此學(xué)生記錄輸入choi
5、ce的值判斷choice的值(switch語句)choice=1,按姓名查詢利用for語句查找與輸入姓名相同的學(xué)生并輸出其信息,若未找到輸出學(xué)生不存在choice=2,按學(xué)號查詢利用for語句查找與輸入學(xué)號相同的學(xué)生并輸出其信息,若未找到輸出學(xué)生不存在choice=0break開始3-2-4刪除模塊輸入要按學(xué)號還是姓名刪除,如果輸入的是sum則再輸入要刪除學(xué)生記錄的學(xué)號,根據(jù)輸入的學(xué)號查找并刪除,如有此記錄則刪除,無此記錄則輸出無此學(xué)生記錄。如果輸入的是name則再輸入要刪除學(xué)生記錄的姓名,然后根據(jù)輸入的姓名查找并刪除,如有此記錄則刪除,無此記錄則輸出無此學(xué)生記錄 輸入choice的值判斷ch
6、oice 值按學(xué)號刪除按姓名刪除開始choice=numchoice=name輸入學(xué)號是否有輸入學(xué)號的記錄刪除該記錄輸出無此記錄輸入姓名是否有輸入姓名的記錄刪除該記錄輸出無此記錄有無有無3-2-5排序模塊輸入要按數(shù)學(xué)、英語、c語言、平均分還是總分排序,如果輸入1則按數(shù)學(xué)排序,如果輸入2則按英語排序,如果輸入的是3則按c語言進行排序,如果輸入的是4則按平均分進行排序,如果輸入的是5則按總分進行排序,如果輸入的是0則返回主菜單。然后根據(jù)輸入的關(guān)鍵字排序,根據(jù)關(guān)鍵字排序。輸入choice的值判斷choice 值按總分排序按英語排序按c語言排序按平均分排序開始按數(shù)學(xué)排序choice=3choice=2
7、choice=1choice=4choice=5breakchoice=0 3-2-6統(tǒng)計模塊先輸入要求的科目,如果輸入的是1則求數(shù)學(xué)的及格率,如果輸入的是2則求英語的及格率,如果輸入的是3則求c語言的及格率,如果輸入的是0則返回主菜單,然后求數(shù)學(xué),英語或c語言的及格率 輸入choice的值判斷choice 值求數(shù)學(xué)的及格率求英語的及格率開始求c語言的及格率choice=1choice=3choice=2第四章 調(diào)試情況及運行結(jié)果§41 對自己的設(shè)計提出評價此次實踐課編寫的是一個應(yīng)用程序,相對于以前我們見到的程序,它要大得多,運行的結(jié)果也沒有預(yù)想中的好,數(shù)據(jù)的輸出格式不太規(guī)范,而且各
8、模塊也出現(xiàn)了一些小問題,在同學(xué)們的幫助下,我很有耐心的一次又一次的進行修改,最后運行的結(jié)果基本上達到了預(yù)期的目的??芍吘故堑谝淮为毩⑼瓿蛇@樣的大程序,結(jié)果還不是太理想。由于時間很短,在選題報告中設(shè)想到的好多功能都沒有實現(xiàn)。已有的那些功能雖已能基本上滿足用戶的需要,但如果還有更多的功能程序就會更加完美。如:再錄入數(shù)據(jù)時,沒有設(shè)計數(shù)據(jù)輸入出錯的提示,如果成績輸?shù)氖秦撝党绦蛞怖^續(xù)執(zhí)行,這就給運用上帶來一些不便;沒有設(shè)計按各科成績排序的功能。§42 在設(shè)計中的感受本次c 語言的實習(xí)課讓我對c 語言的學(xué)習(xí)又有了更深入的了解,也讓我更深刻地領(lǐng)悟到了“實踐出真理”這個道理,在上機實踐過程中學(xué)到的
9、知識遠遠超過了在課堂上十幾周學(xué)到的,學(xué)校組織的這次實習(xí)讓我們這些實踐知識匱乏的大學(xué)生增添了許多社會經(jīng)驗,為我們將來走上工作崗位其了不小的鋪墊作用。本次實習(xí)中遇到了很多以前沒有遇到過的問題,也曾想過要放棄,但看到那些同學(xué)都在那認真的寫程序,給了我繼續(xù)的信心。在同學(xué)的幫助下,我順利的結(jié)束了本次實習(xí),讓我知道原來憑借自己努力取得的成功會讓自己這么欣慰,也讓我知道了友誼和團結(jié)的重要性。參考文獻c語言程序設(shè)計(第四版) 譚浩強 清華大學(xué)出版社 2010年7月附錄定義結(jié)構(gòu)體#include<stdio.h>#include<string.h>struct studentchar n
10、um10;char name10;char clas5;int math;int english;int c;int aver;int total;stud50;int sum;/*錄入信息*/void input_message()int i=0;printf("* 輸入學(xué)生個數(shù): *n");scanf("%d",&sum);printf("t* 錄入學(xué)生信息(最多%d個) *n",sum);printf("*n");doprintf(" 第%d個學(xué)生",i+1);printf(&qu
11、ot;n 學(xué)號:");scanf("%s",studi.num);printf("n 姓名:");scanf("%s",);printf("n 班級:");scanf("%s",studi.clas);printf("n 數(shù)學(xué):");scanf("%d",&studi.math);printf("n 英語:");scanf("%d",&studi.english);pri
12、ntf("n c語言:");scanf("%d",&studi.c); studi.total=studi.math+studi.english+studi.c;studi.aver=studi.total/3;i+;printf("n");while(i<sum);return 0;/*查詢學(xué)生信息*/inquire_message()char x10,s10;struct student *p1,*p2;p1=stud;printf("請選擇按學(xué)號(num),按姓名(name)查詢:n");sca
13、nf("%s",x);if(strcmp(x,"num")=0) printf("請輸入要查找的學(xué)號:n"); scanf("%s",s); while(strcmp(s,p1->num)!=0)p2=p1; p1=p1->next; if(p1!=null) printf("學(xué)號 姓名 班級 數(shù)學(xué) 英語 c語言 平均分 總分n"); printf("%st%st%st%dt%dt%dt%dt%d",p1->num,p1->name,p1->cl
14、as,p1->math,p1->english,p1->c,p1->aver,p1->total); else printf("n *對*不*起*該*學(xué)*生*不*存*在* ");/*添加學(xué)生信息*/insert_message() char choice;int i=sum; printf("t* 添加一個學(xué)生信息 *n"); printf("*-*-*-*-*-*-*-*-*-*n"); do printf("n 學(xué)號:"); scanf("%s",studi.n
15、um); printf("n 姓名:"); scanf("%s",); printf("n 班級:"); scanf("%s",studi.clas); printf("n 數(shù)學(xué):"); scanf("%d",&studi.math); printf("n 英語:"); scanf("%d",&studi.english); printf("n c語言:"); scanf(&quo
16、t;%d",&studi.c); studi.total=studi.math+studi.english+studi.c; studi.aver=studi.total/3; sum+;i+; printf("n 要繼續(xù)嗎?(y/n)"); getchar(); scanf("%c",&choice); while (choice='y'|choice='y'); return;/*修改學(xué)生信息*/revise_message() int i=0; char choice; char revis
17、e_name10; do printf("n 輸入要修改的學(xué)生的姓名:"); scanf("%s",revise_name); for (i=0;i<sum;i+) if(strcmp(,revise_name)=0&&!=0) printf("n 您要修改哪一項?n"); printf("n 1、數(shù)學(xué)n"); printf("n 2、英語n"); printf("n 3、c語言n"); printf("
18、n 請選擇(1-3):"); scanf("%d",&choice); switch(choice) case 1: printf("n 輸入修改后的數(shù)學(xué)成績:"); scanf("%d", &studi.math); break; case 2: printf("n 輸入修改后的英語成績:"); scanf("%d", &studi.english);break; case 3: printf("n 輸入修改后的c語言成績:"); scan
19、f("%d", &studi.c);break; break; if (i=sum) printf("n 該學(xué)生不存在!"); printf("n 要繼續(xù)修改嗎?(y/n)"); getchar(); scanf("%c",&choice); while(choice='y'|choice='y'); return; /*刪除學(xué)生信息*/ void del_message()待添加的隱藏文字內(nèi)容3 int choice; do printf("nn *刪除學(xué)
20、生信息* nn"); printf(" 1、按學(xué)生姓名刪除n"); printf(" 2、按學(xué)生學(xué)號刪除n"); printf(" 0、返回主菜單 n"); printf(" 請選擇(0-2): n"); scanf("%d",&choice); switch(choice) case 1: del_name(); break; case 2: del_num(); break; case 0: break; while(choice!=0); del_name() /按姓名刪
21、除 int i,j; char del_name10; char choice; do printf("n 輸入要刪除的學(xué)生姓名:"); scanf("%s",del_name); for(i=0;i<sum;i+) if(strcmp(,del_name)=0 && !=0) for(j=i;j<sum;j+) studj=studj+1;sum+; printf("n 刪除成功!"); break; if(i=sum) printf("n 該學(xué)生不存在&
22、quot;); printf("nn 要繼續(xù)修改嗎?(y/n)"); getchar(); scanf("%c",&choice); while(choice='y'|choice='y');/*成績信息排序*/order_message() int choice; do rintf("nn *成績名次信息* nn"); printf(" 1、按總分排名次n"); printf(" 2、按平均分排名次n"); printf(" 3、按數(shù)學(xué)排名次n
23、"); printf(" 4、按英語排名次n"); printf(" 5、按c語言排名次n"); printf(" 0、返回主菜單 n"); printf(" 請選擇(0-5): n"); scanf("%d",&choice); switch(choice) case 1: order_total(); break; case 2: order_average(); break; case 3: order_math(); break; case 4: order_engli
24、sh(); break; case 5: order_c(); break; case 0: break; while(choice!=0); order_total() /按總分排名 struct student *p,*q50; int i,j,t; printf("nn 總分成績名次 n"); printf("*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*n"); printf("學(xué)號 姓名 班級 數(shù)學(xué) 英語 c語言 平均分 總分n"); p=stud;
25、 for(i=0;i<sum;i+) qi=p+; for(i=0;i<sum;i+) t=i; for(j=i+1;j<sum;j+) if(qt->total<qj->total) t=j; if(t!=i) p=qi;qi=qt;qt=p; for(i=0;i<sum;i+) printf("%st%st%st",qi->num,qi->name,qi->clas); printf("%dt%dt%dt%dt%dn",qi->math, qi->english,qi->c
26、,qi->aver,qi->total); /*成績統(tǒng)計*/tongji_message()int choice; do printf("nn *成績及格率* nn"); printf(" 1、數(shù)學(xué)的及格率n"); printf(" 2、英語的及格率n"); printf(" 3、c語言的及格率n"); printf(" 0、返回主菜單 n"); printf(" 請選擇(0-3): n"); scanf("%d",&choice); switch(choice) case 1: tongji_math(); break; case 2: tongji_english(); break; case 3: tongji_c(); break; case 0: break; while(choice!=0);tongji_math() /求數(shù)學(xué)的及格率int i,n=0,s;for(i=0;i<sum;i+)if(studi.math>=60)n+;s=n/sum*100;printf("輸出數(shù)學(xué)的及格率:%2.2f%n"
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公路建筑材料質(zhì)檢合同范例
- 北京出租合同范例
- 財產(chǎn)抵押擔(dān)保借款合同范本
- 冷庫安裝合同范例
- 公廁維修施工合同范本
- 公司工程裝修合同范例
- 個人廣告采購合同范本
- 全屋定制套餐合同范例
- 2025年度工傷事故責(zé)任認定與賠償金支付協(xié)議書
- 包子配送合同范本
- 《消防機器人相關(guān)技術(shù)研究》
- 2024年考研政治真題及答案
- 【直播薪資考核】短視頻直播電商部門崗位職責(zé)及績效考核指標(biāo)管理實施辦法-市場營銷策劃-直播公司團隊管理
- 項目設(shè)計報告范文高中
- 《千年古村上甘棠》課件
- 部編版小學(xué)語文二年級下冊電子課文《小馬過河》
- 《醫(yī)療機構(gòu)工作人員廉潔從業(yè)九項準(zhǔn)則》專題解讀
- 愛車講堂 課件
- 成立商會的可行性報告5則范文
- 市場監(jiān)督管理局反電信網(wǎng)絡(luò)詐騙工作總結(jié)
- 2024-2030年中國免疫細胞存儲行業(yè)發(fā)展模式及投資戰(zhàn)略分析報告
評論
0/150
提交評論