C語言課程設(shè)計(jì)---學(xué)生證管理程序_第1頁(yè)
C語言課程設(shè)計(jì)---學(xué)生證管理程序_第2頁(yè)
C語言課程設(shè)計(jì)---學(xué)生證管理程序_第3頁(yè)
C語言課程設(shè)計(jì)---學(xué)生證管理程序_第4頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、報(bào)告題目:學(xué)生證管理程序題目要求【功能要求】該程序應(yīng)該具有下列功能:(1) 錄入某位學(xué)生的學(xué)生證信息。學(xué)生證應(yīng)該包含的信息參見自己的學(xué)生證。(2) 給定學(xué)號(hào),顯示某位學(xué)生的學(xué)生證信息。(3) 給定某個(gè)班級(jí)的班號(hào),顯示該班所有學(xué)生的學(xué)生證信息。(4) 給定某位學(xué)生的學(xué)號(hào),修改該學(xué)生的學(xué)生證信息。(5) 給定某位學(xué)生的學(xué)號(hào),刪除該學(xué)生的學(xué)生證信息。(6) 提供一些統(tǒng)計(jì)各類信息的功能?!据斎胍蟆繎?yīng)用程序運(yùn)行后,在屏幕上顯示一個(gè)菜單。用戶可以根據(jù)需求,選定相應(yīng)的操作項(xiàng)目。進(jìn)入某個(gè)操作項(xiàng)目后,根據(jù)應(yīng)用程序的提示信息,從鍵盤輸入相應(yīng)信息?!据敵鲆蟆浚?1)應(yīng)用程序運(yùn)行后,要在屏幕上顯示一個(gè)菜單。( 2

2、)要求用戶輸入數(shù)據(jù)時(shí),要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。二、需求分析學(xué)生證信息采用文件存儲(chǔ),因而要提供文件的輸入/ 輸出操作;要根據(jù)給定的學(xué)號(hào)或班號(hào)進(jìn)行相應(yīng)的操作,要提供查找操作;顯示信息要提供顯示操作;修改和刪除要提供文件的修改和刪除操作;實(shí)現(xiàn)一些統(tǒng)計(jì)各類信息的功能要提供統(tǒng)計(jì)操作;另外, 還要提供鍵盤式選擇菜單以實(shí)現(xiàn)功能選擇。三、總體設(shè)計(jì)整個(gè)管理程序被設(shè)計(jì)為數(shù)據(jù)輸入模塊、 數(shù)據(jù)查找模塊、 數(shù)據(jù)修改模塊、 數(shù)據(jù)刪除模塊和數(shù)據(jù)統(tǒng)計(jì)模塊。如圖所示:學(xué)生證管理系統(tǒng)增加查找修改刪除統(tǒng)計(jì)四、詳細(xì)設(shè)計(jì)1.主函數(shù)主函數(shù)一般設(shè)計(jì)得比較簡(jiǎn)潔,只提供輸入、 處理和輸出部分的函數(shù)調(diào)用

3、。其中各功能模塊用菜單方式選擇?!玖鞒虉D】開始顯示一系列功能選項(xiàng)N輸入 n,判斷n是否是 16Y根據(jù) n 的值調(diào)用各功能模塊函數(shù)結(jié)束【程序】int main()int n;Re_file();/ 讀學(xué)生證信息文件n=1;while(n)system(cls);printf(nn);printf(tt* Welcome to Studentcard System *); printf(nnn);printf(ttt主菜單n);printf(ttt n);printf(ttt1.錄入學(xué)生證信息n);printf(ttt2.查找學(xué)生證信息n);printf(ttt3.修改學(xué)生證信息n);printf

4、(ttt4.刪除學(xué)生證信息 n);printf(ttt5.執(zhí)行統(tǒng)計(jì)功能n);printf(ttt6.退出n);printf(ttt n);printf(tttn);printf(nnttt請(qǐng)輸入您所需相應(yīng)操作前的數(shù)字:);scanf(%d,&n);printf(nn);2switch(n) case 1:Append();Display1();break;case 2:Query();break;case 3:Modify();Display2();break;case 4:Delete();Display3();break;case 5:Stat();break;case 6:exit(0)

5、;printf(nnnttt請(qǐng)按任意鍵繼續(xù)!);getch();Wr_file();/ 寫文件return 0;2.各功能模塊設(shè)計(jì)(1)數(shù)據(jù)讀入模塊【數(shù)據(jù)結(jié)構(gòu)】struct StudentCard/ 學(xué)生證結(jié)構(gòu)體char name10;int sex;char stuNo10;/ 學(xué)號(hào)int classNo;/ 班號(hào)StuCardN;注意: StuCardN 中的 N 為學(xué)生人數(shù),程序中采用宏定義的方式,可以隨時(shí)在源程序宏定義中修改。本程序中宏定義為:#define N 10 。【程序】/*數(shù)據(jù)讀入模塊*/void Re_file()int i;FILE *fp;fp=fopen(file1.

6、txt,r);i=0;while(fscanf(fp,%s %d %s %d,StuC,&StuCardi.sex,StuCardi.stuNo,&StuCardi .classNo)!=EOF)i+;fclose(fp);3( 2)增加模塊【需求分析】該模塊的功能是增加新的學(xué)生的學(xué)生證信息, 用戶從鍵盤出入并逐條寫到原來的輸入文件中?!境绦颉?*增加模塊 */void Append() int Q; system(cls); printf(nnn);printf(ttt*n);printf(ttt*錄入學(xué)生證信息*n);printf(ttt*n);printf(nnn);p

7、rintf(ttt請(qǐng)輸入相關(guān)信息:nn);printf(ttttt姓名: );scanf(%s,StuC);printf(nttttt性別: );scanf(%d,&StuCard10.sex);printf(nttttt學(xué)號(hào): );scanf(%s,StuCard10.stuNo);printf(nttttt班號(hào): );scanf(%d,&StuCard10.classNo);printf(nn);Q=N+1;system(cls);printf(nnn);printf(ttt添加成功! );( 3)查詢模塊【需求分析】該模塊的功能是根據(jù)輸入的學(xué)號(hào)查找對(duì)應(yīng)的記錄。4【流程

8、圖】開始N輸入學(xué)號(hào), 判斷該學(xué)號(hào)是否與文件內(nèi)某一學(xué)號(hào)相同Y輸出屬于該學(xué)號(hào)的學(xué)生證信息結(jié)束【程序】/*查詢模塊 */void Query()int i,k,d,j20=-1,t=0,Q=N;char m20;system(cls);printf(nnn);printf(ttt*n);printf(ttt*查找學(xué)生證信息*n);printf(ttt*n);printf(nnn);printf(ttt功能選擇n);printf(ttt n);printf(ttt n);printf(ttt1.學(xué)號(hào) n);printf(ttt n);printf(ttt n);printf(ttt2.班號(hào) n);pr

9、intf(ttt n);printf(ttt n);printf(ttt n);printf(tttn);printf(nnttt請(qǐng)輸入您所需相應(yīng)操作前的數(shù)字:);scanf(%d,&k);5printf(nn);if(k=1)printf(ttt請(qǐng)輸入學(xué)號(hào):);scanf(%s,m);printf(n);for(i=0;iN;i+)if(strcmp(m,StuCardi.stuNo)=0)jt=i;t=t+1;else if(k=2)printf(ttt請(qǐng)輸入班號(hào):);scanf(%d,&d);printf(n);for(i=0;iN;i+)if(d=StuCardi.classNo)jt

10、=i;t+;if(j0=-1&t=0)printf(nttt對(duì)不起,沒有找到!);if(j0!=-1&t!=0)system(cls);printf(nnn);printf(t查找結(jié)果如下:n);printf(ttt*n);printf(ttt姓名性別學(xué)號(hào)班號(hào) n);for(i=0;it;i+)printf(ttt%-11s%-10d%-10s%-10dn,StuC,StuCardji.sex,StuCardji.stu No,StuCardji.classNo);printf(ttt*n);6(4)修改模塊【需求分析】該模塊的功能是根據(jù)某個(gè)班級(jí)的班號(hào)找到要修改的記錄, 并

11、提示用戶修改該記錄的哪部分信息(是姓名、性別、學(xué)號(hào)還是班號(hào)) ,然后根據(jù)用戶的選擇修改相應(yīng)信息?!境绦颉?*修改模塊 */void Modify()int i,k;char n20;system(cls);printf(nnn);printf(ttt*n);printf(ttt*修改學(xué)生證信息*n);printf(ttt*n);printf(nnttt請(qǐng)輸入需要修改信息的學(xué)生的學(xué)號(hào):);scanf(%s,n);for(i=0;i=1&k=4)if(k=1)printf(ttt請(qǐng)輸入新的姓名:);scanf(%s,StuC);if(k=2)printf(ttt請(qǐng)輸入新的性別:)

12、;scanf(%d,&StuCardi.sex);if(k=3)printf(ttt請(qǐng)輸入新的學(xué)號(hào):);scanf(%s,StuCardi.stuNo);if(k=4)printf(ttt請(qǐng)輸入新的班號(hào):);scanf(%d,&StuCardi.classNo);system(cls);printf(nn);printf(nnttt修改成功! );else printf(nnttt對(duì)不起,沒有該選項(xiàng)!);( 5)刪除模塊【需求分析】用戶輸入要?jiǎng)h除學(xué)生證信息的某位學(xué)生的學(xué)號(hào), 根據(jù)學(xué)號(hào)查找學(xué)生證信息并刪除。 刪除一般的做法是將數(shù)據(jù)從文件中刪除,刪除位置后面的記錄往前移動(dòng)。【程序】/*刪除模塊 *

13、/void Delete()int i,j=-1,Q,t=0;char n20;8system(cls);printf(nnn);printf(ttt*n);printf(ttt*刪除學(xué)生證信息*n);printf(ttt*n);printf(nnttt請(qǐng)輸入需要?jiǎng)h除的學(xué)生的學(xué)號(hào):);scanf(%s,n);printf(nnn);for(i=0;iN;i+)if(strcmp(n,StuCardi.stuNo)=0)j=i;if(j!=-1)Q=N-1;for(i=j;i=Q&j!=-1;i+)StuCardi=StuCardi+1;system(cls);printf(nn);printf

14、(ttt刪除成功! );else if(j=-1)printf(nttt對(duì)不起,沒有找到!);( 6)統(tǒng)計(jì)模塊【需求分析】該模塊的功能是根據(jù)用戶需求統(tǒng)計(jì)菜單所顯示信息?!玖鞒虉D】統(tǒng)計(jì)讀入文件信息計(jì)算班級(jí)總?cè)藬?shù)計(jì)算班級(jí)男女人數(shù)計(jì)算所有男女人數(shù)【程序】void Stat()int i,n,m,k=0,boy=0,girl=0,Q=N;system(cls);printf(nnn);printf(ttt*n);printf(ttt*統(tǒng)計(jì)學(xué)生證信息*n);printf(ttt*nnn);9printf(ttt功能選擇n);printf(ttt n);printf(ttt n);printf(ttt1.

15、班級(jí)總?cè)藬?shù) n);printf(ttt n);printf(ttt2.年級(jí)男女人數(shù)n);printf(ttt n);printf(ttt3.班級(jí)男女人數(shù)n);printf(ttt n);printf(ttt n);printf(tttn);printf(nnttt請(qǐng)輸入統(tǒng)計(jì)選項(xiàng):);scanf(%d,&n);printf(nn);if(n=1)printf(ttt請(qǐng)輸入您需要統(tǒng)計(jì)的班號(hào):);scanf(%d,&m);system(cls);printf(nnn);printf(ttt*n);printf(ttt姓名性別學(xué)號(hào)班號(hào) n);for(i=0;iQ;i+)if(m=StuCardi.cl

16、assNo)printf(ttt%-11s%-10d%-10s%-10dn,StuC,StuCardi.sex,StuCardi.stuNo,St uCardi.classNo);k+;printf(ttt*n);if(k!=0)printf(nnttt該班共有 %d 人。 ,k);else printf(nttt對(duì)不起,沒有找到!);if(n=2)for(i=0;iQ;i+)if(StuCardi.sex=0)boy=boy+1;if(StuCardi.sex=1)girl=girl+1;printf(ttt該年級(jí)男生共有%d 人,女生共有%d 人。 ,boy,girl);

17、10if(n=3)printf(ttt請(qǐng)輸入您需要統(tǒng)計(jì)的班號(hào):);scanf(%d,&m);for(i=0;iQ;i+)if(m=StuCardi.classNo)if(StuCardi.sex=0)boy=boy+1;if(StuCardi.sex=1)girl=girl+1;system(cls);printf(nnn);printf(ttt*n);printf(ttt姓名性別學(xué)號(hào)班號(hào) n);for(i=0;iQ;i+)if(m=StuCardi.classNo)printf(ttt%-11s%-10d%-10s%-10dn,StuC,StuCardi.sex,StuCa

18、rdi.stuNo,St uCardi.classNo);k+;printf(ttt*n);if(boy=0&girl=0)printf(nttt對(duì)不起,沒有找到!);else printf(nnttt該班男生共有%d 人,女生共有 %d 人。 ,boy,girl);(7) 瀏覽模塊【需求分析】該模塊的功能是顯示所有學(xué)生的學(xué)生證信息。因?yàn)槿藬?shù)有不同變化,所以將該模塊分為三個(gè)部分:錄入后的瀏覽模塊、修改后的瀏覽模塊和刪除后的瀏覽模塊?!境绦颉?*錄入后的瀏覽模塊*/void Display1()int i,Q=N+1;11printf(nn);printf(ttt*n);printf(ttt姓名

19、性別學(xué)號(hào)班號(hào) n);for(i=0;iQ;i+)printf(ttt %-10s%-10d%-13s%-10dn,StuC,StuCardi.sex,StuCardi.stuNo, StuCardi.classNo);printf(ttt*n);/*修改后的瀏覽模塊*/void Display2()int i;printf(nn);printf(ttt*n);printf(ttt姓名性別學(xué)號(hào)班號(hào) n);for(i=0;iN;i+)printf(ttt %-10s%-10d%-13s%-10dn,StuC,StuCardi.sex,StuCardi.stuNo

20、, StuCardi.classNo);printf(ttt*n);/*刪除后的瀏覽模塊*/void Display3()int i,Q=N-1;printf(nn);printf(ttt*n);printf(ttt姓名性別學(xué)號(hào)班號(hào) n);for(i=0;iQ;i+)printf(ttt %-10s%-10d%-13s%-10dn,StuC,StuCardi.sex,StuCardi.stuNo, StuCardi.classNo);printf(ttt*n);五、上機(jī)操作1.數(shù)據(jù)源學(xué)生的學(xué)生證信息文件 file1.txt 的格式:每行存儲(chǔ)一個(gè)學(xué)生的學(xué)生證信息,其中包括姓名、

21、性別、學(xué)號(hào)和班號(hào)。例如: ZHANG02012100121WANG02012101122122.編譯、鏈接和運(yùn)行3.結(jié)果下面是各個(gè)模塊的界面效果:( 1)主函數(shù)頁(yè)面(即主界面)如圖1.1圖 1.1(2)錄入模塊在主界面中輸入“1”,然后按 Enter 鍵,選擇錄入功能,系統(tǒng)提示讓用戶輸入需要錄入新學(xué)生證的姓名、性別、學(xué)號(hào)和班號(hào)。例如依次輸入“su”“ 0”“2012111 ”“ 000”如圖 2.113圖 2.1按 Eneter 鍵,將顯示錄入后的所有學(xué)生證信息。如圖2.2圖 2.2(3)查找模塊在主界面中輸入“ 2”,然后按 Enter 鍵,進(jìn)入查詢功能,系統(tǒng)提示讓用戶輸入需要進(jìn)行的操作。如

22、圖 3.114圖 3.1輸入“ 1”,按 Enter 鍵,將提示用戶輸入學(xué)號(hào),如圖3.2。圖 3.2輸入某一學(xué)號(hào),按Enter 鍵,若查找成功將顯示如圖3.3 所示信息。圖 3.315輸入某一選項(xiàng),按Enter,若查找不成功將顯示如圖3.4 所示信息。圖 3.4輸入“ 2”,按 Enter 鍵,將提示用戶輸入學(xué)號(hào),如圖3.5。圖 3.516輸入某一班號(hào),按Enter 鍵,若查找成功將顯示如圖3.6 所示信息。圖 3.6輸入某一選項(xiàng),按Enter,若查找不成功將顯示如圖3.7 所示信息。圖 3.7(4)修改模塊17在主界面中輸入“ 3”,然后按 Enter 鍵,選擇修改功能,系統(tǒng)提示讓用戶輸入需

23、要修改學(xué)生證信息的學(xué)生學(xué)號(hào)。如圖 4.1圖 4.1輸入某一學(xué)號(hào)后, 例如“2012100 ”,顯示該學(xué)生原來的學(xué)生證信息并需要用戶選擇修改內(nèi)容。如圖 4.2圖 4.218輸入修改選項(xiàng),例如:輸入“ 1 ”,按 Enter 鍵,輸入“ NEW”后按 Enter 鍵,顯示修改后的所有學(xué)生證信息,可見學(xué)號(hào)為 2012100 的學(xué)生 ZHANG的姓名已被修改為 NEW。如圖 4.3圖 4.3(5)刪除模塊在主界面中輸入“ 4”,然后按 Enter 鍵,選擇刪除功能,系統(tǒng)提示讓用戶輸入需要?jiǎng)h除學(xué)生證信息的學(xué)生學(xué)號(hào)。如圖 5.119圖 5.1輸入某一學(xué)號(hào), 例如“ 2012100”,按 Enter 鍵,顯示如圖 5.2 所示信息, 可見學(xué)號(hào)為 2012100 學(xué)生信息已被刪除。圖 5.2(6)統(tǒng)計(jì)模塊在主界面中輸入“ 5”,然后按 Enter 鍵,選擇統(tǒng)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論