C語(yǔ)言程序設(shè)計(jì)實(shí)習(xí)報(bào)告---學(xué)生信息管理系統(tǒng)_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)實(shí)習(xí)報(bào)告---學(xué)生信息管理系統(tǒng)_第2頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C 語(yǔ)言課程設(shè)計(jì) 題 目:學(xué)生信息管理系統(tǒng) 設(shè)計(jì)者:梁天江 專(zhuān) 業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化 班級(jí)學(xué)號(hào):072084-31 所屬院系:機(jī)電學(xué)院 指導(dǎo)教師:吳湘寧 2010 年 7月 17日 1. 題目和要求: 1.1 問(wèn)題提出與要求: 學(xué)生成績(jī)管理系統(tǒng) 要求 設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),對(duì)在校某班學(xué)生幾門(mén)課程的考試成績(jī)進(jìn)行統(tǒng)一管 理。每個(gè)學(xué)生記錄包括學(xué)號(hào)、姓名、年齡、數(shù)學(xué)、英語(yǔ)、物理成績(jī),默認(rèn)以學(xué)號(hào)為 序存放。 (1) 一個(gè)文件按以班為單位存儲(chǔ)學(xué)生記錄 (2)將允許的操作分為六種 A:插入一個(gè)新的學(xué)生記錄(錄入學(xué)生信息) B:修改學(xué)生記錄 C:刪除一個(gè)學(xué)生記錄 D:登記成績(jī) E:修改成績(jī) F:瀏覽

2、全班成績(jī) (3) 計(jì)算學(xué)生的總成績(jī) (4) 輸出全班成績(jī)表 1.2 需求分析. 根據(jù)題目要求,由于學(xué)生信息是存放在文件中,所以應(yīng)提供文件的輸入,輸出等 操作;在程序中需要瀏覽學(xué)生的信息,應(yīng)提供顯示,查找,排序等操作;另外還應(yīng)提供 鍵盤(pán)式選擇菜單實(shí)現(xiàn)功能選擇. 2. 功能實(shí)現(xiàn)設(shè)計(jì): 2.1 總體設(shè)計(jì): 分析系統(tǒng):根據(jù)題目的需求分析,可將這個(gè)系統(tǒng)設(shè)計(jì)為六大模塊(見(jiàn)下圖) :插 入學(xué)生信息,修改,刪除,登記,瀏覽,統(tǒng)計(jì)。 1、主函數(shù) 主函數(shù)設(shè)計(jì)得比較簡(jiǎn)潔,只提供輸入、功能處理和輸出部分的函數(shù)調(diào)用。其中各功 能模塊用菜單方式選擇;其流程圖如下: 根據(jù) n的值調(diào)用各功能模塊 學(xué)生信息管理系統(tǒng) 2.2 詳

3、細(xì)設(shè)計(jì): 程序printf( 輸入你要操作的序號(hào):); void mai n() int a; do prin tf(ttttn); printf(tttt 學(xué)生成績(jī)管理系統(tǒng)n); prin tf(n); printf(ttt - nn); prin tf(t 1. 插入新的學(xué)生記錄n); prin tf(t 2. 修改學(xué)生記錄n); prin tf(t 3. 刪除學(xué)生記錄n); prin tf(t 4. 顯示學(xué)生成績(jī)和總分n); prin tf(t 5. 瀏覽全班成績(jī)n); prin tf(t 6. 退出 nn); prin tf(n 如要繼續(xù),請(qǐng)輸入學(xué)生信息(y/n):); sea nf(

4、%d, &a); switch(a) case 1:pri ntf(n);i nput();break; case 2:pri ntf(n );cha nge();break; case 3:pri ntf(n);del();break; case 4:pri ntf(n);allgrade();break; case 5:pri ntf(n );paixu();break; case 6:pri ntf(n);exit(0);break; default:pri ntf(nThe choice is betwee n 1 to 6. n); while(a!=0); 2、各功能模塊設(shè)

5、計(jì) (1 )插入模塊 void in put() int j; char ch20; printf(n 輸入學(xué)生信息:n); do prin tf(n 學(xué)號(hào):); sca nf(%s,stuk. nu m); printf(n 姓名:); sca nf(%s,stuk. name); prin tf(n 年齡:); sca nf(%d, &stuk.age); for(j=0;j3;j+) prin tf(n 成績(jī) %d: ,j+1); sca nf(%d,& stuk.gradej); prin tf(n 如要繼續(xù),請(qǐng)輸入學(xué)生信息(y/n):); k+; sea nf(%s,

6、ch); while(strcmp(ch,y)=O|strcmp(ch, Y )=0); outputgrade(); void outputgrade() int i; printf( 學(xué)生信息是:n); for(i=0;ik;i+) pri ntf(t%s t%s t%d t%d t%d,stui. nu m,stui. name,stui.age,stui.grade0,stui.grade1, stui.grade2); prin tf(n);t%d prin tf(n 輸入你要修改的學(xué)生學(xué)號(hào):); (2) 修改模塊 丨返回主菜 void cha nge() int i,j; char

7、 a20,ch10;prin tf(n); sea nf(%s,a); for(i=0;ik;i+) if(strcmp(stui. nu m,a)=0) printf(n 你確定要修改學(xué)號(hào)嗎(y/n):); sea nf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch, Y)=0) sea nf(%s,stui. num); prin tf(n 你確定要修改學(xué)生姓名嗎(y/n):); sca nf(%s,ch); if(strcmp(ch,y)=0|strcmp(ch, Y)=0) sca nf(%s,stui. name); prin tf(n 你確定要修改學(xué)生成績(jī)

8、嗎(y/n):); sca nf(%s,ch); prin tf(n pr in tf(nn if(strcmp(ch,y)=O|strcmp(ch, Y)=0) for(j=0;j3;j+) printf(grade%d : ,j+1); scanf(%d,&stui.gradej); printf(n); outputgrade(); (3) 刪除模塊 N void del() int i,j; char c20; printf(n 輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào) :n); printf(num :); sca nf(%s, &c); for(i=0;i3;i+) if(strcm

9、p(c,stui. num)=0) break; for(j=i;j=2;j+) stuj=stuj+1; printf(ttt 你已經(jīng)刪除 %s 的信息n,c); k-; outputgrade(); (4) 顯示模塊(顯示學(xué)生成績(jī)總分) void allgrade() int i; float sum=0; for(i=0;ik;i+) prin tf(t%d t%d t%dn,stui.grade0,stui.grade1,stui.grade2); sum二sum+stui.grade0+stui.grade1+stui.grade2 ; printf( 總成績(jī)是 f,sum); (5

10、) 瀏覽模塊(瀏覽全班學(xué)生成績(jī)并按學(xué)號(hào)排序) void paixu() struct stude nt temp; int i,j; for(i=0;ik-1;i+) for(j二i+1;jk;j+) if(stui. num stuj. num) temp=stui; stui=stuj; stuj=temp; outputgrade(); 2. 上機(jī)操作 1、數(shù)據(jù)源 全班學(xué)生信息文件 student.txt 格式:每行儲(chǔ)存一個(gè)學(xué)生信息, 姓名、年齡、數(shù)學(xué)成績(jī)、英語(yǔ)成績(jī)、物理成績(jī)。例如: 01 zhao 18 90 80 85 2、編譯、鏈接和運(yùn)行(略) 3、 結(jié)果 (1) 主菜單函數(shù) 效果

11、如下圖所示: (2) 插入模塊 在主界面出現(xiàn)后輸入 1回車(chē),即可插一個(gè)學(xué)生信息,包括學(xué)號(hào)、姓名、年齡、數(shù)學(xué)、 英語(yǔ)、物理成績(jī)。如下圖所示: (3) 修改模塊 (4) 刪除模塊 (5) 顯示模塊(顯示全班學(xué)生成績(jī)和總分) 內(nèi)容包括學(xué)生學(xué) (6) 瀏覽模塊 4. 下面附上此次 C語(yǔ)言課程設(shè)計(jì)的源程序 #in clude #i ncludevstri ng.h #in clude #in clude struct stude nt char num10; char n ame12; int age; int grade3; stu20; int k=0; void in put(); void ou

12、tputgrade(); void cha nge(); void del(); void allgrade(); void paixu(); void mai n() int a; do prin tf(ttttn); printf(tttt 學(xué)生成績(jī)管理系統(tǒng)n); prin tf(n); printf(ttt - nn); printf(t 1. 插入新的學(xué)生記錄n); printf(t 2. 修改學(xué)生記錄n); printf(t 3. 刪除學(xué)生記錄n); printf(t 4. 顯示學(xué)生成績(jī)和總分n); printf(t 5. 瀏覽全班成績(jī)n); printf(t 6. 退出 nn);

13、prin tf( 輸入你要操作的序號(hào):); sea nf(%d, &a); switch(a)case 1:pri ntf(n);i nput();break; case 2:pri ntf(n );cha nge();break; case 3:pri ntf(n);del();break; case 4:pri ntf(n);allgrade();break; case 5:pri ntf(n );paixu();break; case 6:pri ntf(n);exit(0);break; default:pri ntf(nThe choice is betwee n 1 to

14、6. n); while(a!=0); void in put() int j; char ch20; printf(n 輸入學(xué)生信息:n); do sea nf(%s,stuk. nu m); printf(n 姓名:); sea nf(%s,stuk. name); prin tf(n 年齡:); sea nf(%d, &stuk.age); for(j=0;j3;j+) prin tf(n 成績(jī) %d: ,j+1); sca nf(%d,& stuk.gradej); k+; prin tf(n 如要繼續(xù),請(qǐng)輸入學(xué)生信息 (y/n):); sca nf(%s,ch); w

15、hile(strcmp(ch,y)=O|strcmp(ch, Y)=0); outputgrade(); void outputgrade() int i; for(i=0;ik;i+) prin tf(t%s t%s t%d t%d t%d,stui. nu m,stui. name,stui.age,stui.grade0,stui.grade1, stui.grade2); prin tf(n); void cha nge() int i,j; char a20,ch10; prin tf(n 輸入你要修改的學(xué)生學(xué)號(hào):); sca nf(%s,a); for(i=0;ik;i+) if(

16、strcmp(stui. nu m,a)=0)prin tf( 學(xué)生信息是:n); t%d sea nf(%s,ch); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) pri ntf(n num:); sea nf(%s,stui. num); prin tf(n 你確定要修改學(xué)生姓名嗎(y/n):); sca nf(%s,ch); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) pri ntf(n name); sca nf(%s,stui. name); prin tf(n 你確定要修改學(xué)生成績(jī)嗎(y/n):); sca nf(%s,ch)

17、; prin tf(n); if(strcmp(ch,y)=O|strcmp(ch, Y )=0) for(j=0;j3;j+) prin tf(n 你確定要修改學(xué)號(hào)嗎(y/n) :) ; prin tf(grade%d : ,j+1); sca nf(%d,& stui.gradej); prin tf(n); outputgrade(); void del() int i,j; char c20; printf(n 輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào) :n); printf(num :); sca nf(%s, &c); for(i=0;i3;i+) if(strcmp(c,stui.

18、 num)=0) break; for(j=i;j=2;j+) stuj=stuj+1; printf(ttt 你已經(jīng)刪除 %s 的信息n,c); k-; outputgrade(); void allgrade() int i; float sum=0; for(i=0;ik;i+) prin tf(t%d t%dn,stui.grade0,stui.grade1,stui.grade2); sum二sum+stui.grade0+stui.grade1+stui.grade2 ; printf( 總成績(jī)是 f,sum); void paixu() struct stude nt temp; int i,j; for(i=0;ik-1;i+) for(j=i+1;jk;j+)t%d if(stui. num stuj. num) temp=stui; stui=stuj; stuj=temp; outputgrade(); 5.實(shí)習(xí)心得: 通過(guò) 7次的 C語(yǔ)言課程設(shè)計(jì)上機(jī)實(shí)習(xí),我學(xué)到了很多東西。幵始上機(jī)實(shí)習(xí)時(shí), 面對(duì)著繁瑣的程序結(jié)構(gòu),我無(wú)從下手,一頭霧水的我看到了 C 語(yǔ)言課程設(shè)計(jì)與學(xué) 習(xí)指導(dǎo)中的第五章,“舉一反三”部分。看完后,我“依葫蘆畫(huà)瓢”地在 VISUALC+ 上寫(xiě)了簡(jiǎn)單的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論