版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 報告目錄</b></p><p> 一、課程設(shè)計目的 ………………………………………………………………3</p><p> 二、實習(xí)內(nèi)容及要求 ……………………………………………………………3 </p><p> 三、需求分析 ……………………………………………………………………3</p>
2、<p> 四、總體分析 ……………………………………………………………………3</p><p> 五、詳細設(shè)計 ……………………………………………………………………4</p><p> 5.0 頭文件及結(jié)構(gòu)體 ……………………………………………………………4</p><p> 5.1 主函數(shù)……………………………………………………………………
3、…5</p><p> 5.2 菜單模塊……………………………………………………………………5</p><p> 5.3 添加模塊……………………………………………………………………6</p><p> 5.4 修改模塊……………………………………………………………………10 </p><p> 5.5 瀏覽模塊 ……………
4、……………………………………………………14 </p><p> 5.6 查詢模塊 ………………………………………………………………… 15</p><p> 5.6.1 按學(xué)號查詢 ……………………………………………………………15</p><p> 5.6.2 按名字查詢 ……………………………………………………………16</p><
5、p> 5.6.3 按班級查詢 ……………………………………………………………17</p><p> 5.7 統(tǒng)計模塊 …………………………………………………………………18</p><p> 5.7.1 男生信息………………………………………………………………19</p><p> 5.7.2 女生信息……………………………………………………………
6、…21</p><p> 5.7.3 全體學(xué)生信息 …………………………………………………………23 </p><p> 5.8 刪除模塊 …………………………………………………………………23</p><p> 六、上機操作 ……………………………………………………………………26 </p><p> 6.1 系統(tǒng)說明
7、 …………………………………………………………………26</p><p> 6.2 系統(tǒng)測試 …………………………………………………………………26 </p><p> 七、總結(jié) ……………………………………………………………………32</p><p> 八、源代碼 …………………………………………………………………32</p><
8、p><b> 一、課程設(shè)計目的</b></p><p> 通過實踐,學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語言程序,加深對C語言基礎(chǔ)知識的理解和掌握,進一步鞏固C語言編程實踐能力,鍛煉思維邏輯和解決綜合性實際問題的能力。</p><p><b> 二、實習(xí)內(nèi)容及要求</b></p><p> 1、用C語
9、言編寫一個學(xué)生證管理系統(tǒng),該系統(tǒng)具有以下功能:</p><p> (1)錄入某位學(xué)生的學(xué)生證信息;</p><p> ?。?)給定學(xué)號,顯示某位學(xué)生的學(xué)生證信息;</p><p> ?。?)給定某個班級的班號,顯示該班所有學(xué)生的學(xué)生證信息;</p><p> ?。?)給定某位學(xué)生的學(xué)號,修改該學(xué)生的學(xué)生證信息;</p><
10、;p> ?。?)給定某位學(xué)生的學(xué)號,刪除該學(xué)生的學(xué)生證信息;</p><p> ?。?)提供一些統(tǒng)計各類信息的功能;</p><p> (7)提供瀏覽所有學(xué)生的學(xué)生證信息的功能。</p><p><b> 2、輸入要求</b></p><p> 應(yīng)用程序運行后,在屏幕上顯示一個菜單;用戶可以根據(jù)要求,選定相應(yīng)
11、的操作項目;進入某個操作后,根據(jù)應(yīng)用程序的提示,從鍵盤輸入相應(yīng)的信息。</p><p><b> 3、輸出要求</b></p><p> ?。?)應(yīng)用程序運行后,要在屏幕上顯示一個菜單;</p><p> ?。?)要求用戶輸入數(shù)據(jù)時,給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式</p><p><b>
12、 及結(jié)束方式等。</b></p><p><b> 三、需求分析</b></p><p> 根據(jù)題目要求,學(xué)生信息要從文本文件中存取,所以本程序應(yīng)該提供讀寫文件,顯示、</p><p> 統(tǒng)計、查詢、修改記錄,保存文件等操作,此外,還應(yīng)該提供鍵盤式選擇菜單實現(xiàn)功能。</p><p><b>
13、 四、總體設(shè)計</b></p><p> 根據(jù)需求分析,可以把這個系統(tǒng)的設(shè)計分為添加、修改、查詢、瀏覽、統(tǒng)計、刪除六大</p><p> 模塊,其中查詢模塊可以分為三個子模塊,統(tǒng)計模塊可以分為三個子模塊,子模塊下面還有子</p><p> 函數(shù);系統(tǒng)功能模塊圖如下所示:</p><p><b> 五、詳細設(shè)計&
14、lt;/b></p><p> 5.0 頭文件及結(jié)構(gòu)體</p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> #define N 100&
15、lt;/p><p> struct Class //班級</p><p><b> {</b></p><p> char Cname[20]; //班名</p><p> char Cno[20];//班號</p><p><b>
16、; };</b></p><p> struct Student //學(xué)生</p><p><b> {</b></p><p> char Sname[20]; //姓名</p><p> char Sex[10];//性別</p>
17、<p> char Sno[20];//學(xué)號</p><p> int Age;//年齡</p><p> struct Class CInfo; //嵌套結(jié)構(gòu)體,表示班級信息</p><p> }StuInfo[N]; //結(jié)構(gòu)體數(shù)組,用作
18、讀取和存放臨時數(shù)據(jù)</p><p><b> 5.1 主函數(shù)</b></p><p> void main()</p><p><b> {</b></p><p> menu(); //菜單</p><p> getchar()
19、;</p><p><b> }</b></p><p><b> 5.2 菜單</b></p><p> void menu() </p><p><b> {</b></p><p> int chose;</p&
20、gt;<p> int right;</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n\t\t\t\t學(xué)生證管理系統(tǒng)\n");</p><p> printf("·
21、183;····································
22、··");</p><p> printf(" 菜單:\t1-添加\t2-修改\t3-瀏覽全部\t4-查詢\t5-統(tǒng)計\t6-刪除\t7-退出\n");</p><p> printf("···········
23、83;····························");</p><p> printf("請輸入數(shù)字
24、選擇:");</p><p> scanf("%d",&chose);</p><p> if(chose<1||chose>8)</p><p><b> {</b></p><p><b> right=1;</b></p>
25、<p> printf("輸入錯誤,請重新輸入!\n");</p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p>
26、 switch(chose)</p><p><b> {</b></p><p> case 1:add(); break; //添加模塊</p><p> case 2:modify(); break; //修改模塊</p><p> case 3:bro
27、wse(); break; //瀏覽模塊</p><p> case 4:quiry(); break; //查詢模塊</p><p> case 5:stastic(); break; //統(tǒng)計模塊</p><p> case 6:Delete(); break;
28、 //刪除模塊</p><p> case 7:exit(0); //退出</p><p><b> } </b></p><p><b> }</b></p><p><b> 5.3 添加模塊</b></
29、p><p> void add() </p><p><b> {</b></p><p> int num; //表示記錄數(shù)</p><p><b> int i;</b></p><p> int age;
30、 //臨時變量,用于驗證輸入的性別是否滿足條件</p><p> char sno[20]; //臨時變量,用于驗證輸入的學(xué)號是否滿足條件</p><p> char sex[20]; //臨時變量,用于驗證輸入的性別是否滿足條件</p><p> char cno[20]; //臨時變量,用于驗證輸入的班號是否滿足條件</p><
31、p> int right;</p><p><b> FILE*fp;</b></p><p> if((fp=fopen("StuInfo.txt","r+"))==NULL) //以讀寫方式打開</p><p><b> {</b></p>&l
32、t;p> if((fp=fopen("StuInfo.txt","w"))==NULL) //文件不存在就創(chuàng)建文件</p><p><b> {</b></p><p> printf("\n文件不存在且創(chuàng)建失敗,返回!\n");</p><p><b> m
33、enu();</b></p><p><b> }</b></p><p> printf("\n請按照提示輸入學(xué)生信息:\n\n");</p><p> printf("姓名:");</p><p> scanf("%s",&Stu
34、Info[0].Sname);</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n性別(男或女):");</p><p> scanf("%s",sex);</p><
35、;p> if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b> { </b></p><p> printf("輸入錯誤,請輸入男或女!\n");</p><p><b> ri
36、ght=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[0].Sex,sex);&l
37、t;/p><p><b> do</b></p><p><b> {</b></p><p> printf("\n學(xué)號(11位):");</p><p> scanf("%s",sno);</p><p> if(strlen
38、(sno)!=11)</p><p><b> { </b></p><p> printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p&g
39、t;<b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[0].Sno,sno);</p><p><b> do</b></p><p><b
40、> {</b></p><p> printf("\n年齡:");</p><p> scanf("%d",&age);</p><p> if(age<=0||age>100)</p><p><b> { </b></p
41、><p> printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=
42、0;</p><p> }while(right==1);</p><p> StuInfo[0].Age=age;</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n班號(6位):&quo
43、t;);</p><p> scanf("%s",cno);</p><p> if(strlen(cno)!=6)</p><p><b> { </b></p><p> printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p&g
44、t;<b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo
45、[0].CInfo.Cno,cno);</p><p> printf("\n班名:");</p><p> scanf("%s",&StuInfo[0].CInfo.Cname); </p><p> fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",Stu
46、Info[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[0].Age,StuInfo[0].CInfo.Cno,StuInfo[0].CInfo.Cname);</p><p> fclose(fp);</p><p> printf("\n保存成功!\n");</p><p> printf
47、("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> menu();</b></p><p> } //以上的輸入是以寫的方式輸入,下面是以讀寫的方式輸入數(shù)據(jù)</p><
48、;p> for(i=0;!feof(fp);i++) </p><p><b> { </b></p><p> fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i]
49、.Age,&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b> }</b></p><p> num=i; //記錄數(shù)</p><p> if(num==N)</p><p><b> {</b><
50、/p><p> printf("\n保存記錄數(shù)超出結(jié)構(gòu)體數(shù)組數(shù)的大小,請先修改N的值!\n");</p><p> printf("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p>&l
51、t;b> menu();</b></p><p><b> }</b></p><p> printf("\n請按照提示輸入學(xué)生信息:\n\n");</p><p> printf("姓名:");</p><p> scanf("%s"
52、;,&StuInfo[num].Sname);</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n性別(男或女):");</p><p> scanf("%s",sex);<
53、;/p><p> if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b> { </b></p><p> printf("輸入錯誤,請輸入男或女!\n");</p><p>&
54、lt;b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[nu
55、m].Sex,sex);</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n學(xué)號(11位):");</p><p> scanf("%s",sno);</p><p&
56、gt; if(strlen(sno)!=11)</p><p><b> { </b></p><p> printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n");</p><p><b> right=1;</b></p><p> getchar();</
57、p><p><b> }</b></p><p> else right=0;</p><p> for(i=0;i<num;i++)</p><p><b> {</b></p><p> if(strcmp(sno,StuInfo[i].Sno)==0) &l
58、t;/p><p><b> {</b></p><p> printf("該學(xué)號已經(jīng)存在,請重新輸入!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }<
59、;/b></p><p><b> }</b></p><p> }while(right==1);</p><p> strcpy(StuInfo[num].Sno,sno);</p><p><b> do</b></p><p><b> {&
60、lt;/b></p><p> printf("\n年齡:");</p><p> scanf("%d",&age);</p><p> if(age<=0||age>100)</p><p><b> { </b></p>&l
61、t;p> printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p
62、><p> }while(right==1);</p><p> StuInfo[num].Age=age;</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n班號(6位):");&l
63、t;/p><p> scanf("%s",cno);</p><p> if(strlen(cno)!=6)</p><p><b> { </b></p><p> printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p><
64、b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[num].
65、CInfo.Cno,cno);</p><p> printf("\n班名:");</p><p> scanf("%s",&StuInfo[num].CInfo.Cname);</p><p> //把該記錄寫到文件末尾 </p><p> fprintf(fp,"\n%s\
66、t%s\t%s\t%d\t%s\t%s",StuInfo[num].Sname,StuInfo[num].Sex,StuInfo[num].Sno,StuInfo[num].Age,StuInfo[num].CInfo.Cno,StuInfo[num].CInfo.Cname);</p><p> fclose(fp);</p><p> printf("\n保存成
67、功!\n");</p><p> printf("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> menu();</b></p><p><b>
68、 }</b></p><p><b> 5.4 修改模塊</b></p><p> void modify()</p><p><b> {</b></p><p><b> int num;</b></p><p><b
69、> int i;</b></p><p> int right;</p><p><b> int age;</b></p><p> char sex[20];</p><p> char cno[20];</p><p> char sno[20];</p&
70、gt;<p> int found=-1;</p><p> char StuNO[20];</p><p> FILE*fpr,*fpw;</p><p> if((fpr=fopen("StuInfo.txt","r"))==NULL)</p><p><b> {
71、</b></p><p> printf("文件打不開!\n");</p><p><b> menu();</b></p><p><b> }</b></p><p> for(i=0;!feof(fpr);i++) /&l
72、t;/p><p><b> { </b></p><p> fscanf(fpr,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuInfo[i].CInfo.Cno,&St
73、uInfo[i].CInfo.Cname);</p><p><b> }</b></p><p><b> num=i;</b></p><p> fclose(fpr);</p><p> printf("\n請輸入學(xué)號選擇要修改的記錄:");</p>
74、<p> scanf("%s",StuNO);</p><p> for(i=0;i<num;i++)</p><p><b> {</b></p><p> if(strcmp(StuNO,StuInfo[i].Sno)==0)</p><p><b> {<
75、;/b></p><p><b> found=i;</b></p><p> printf("\n你要修改的學(xué)生信息為:\n\n");</p><p> printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); </p><p&
76、gt; printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p><p> printf("\n請按照提示輸入學(xué)生的新信息:\n");&l
77、t;/p><p> printf("姓名:");</p><p> scanf("%s",&StuInfo[found].Sname);</p><p><b> do</b></p><p><b> {</b></p><p
78、> printf("\n性別(男或女):");</p><p> scanf("%s",sex);</p><p> if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b> { &
79、lt;/b></p><p> printf("輸入錯誤,請輸入男或女!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else
80、 right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[found].Sex,sex);</p><p><b> do</b></p><p><b> {</b></p><p> printf(
81、"\n學(xué)號(11位):");</p><p> scanf("%s",sno);</p><p> if(strlen(sno)!=11)</p><p><b> { </b></p><p> printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n"
82、;);</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> for(i=0;i<num;i++)</p>
83、<p><b> {</b></p><p> if((i!=found)&&(strcmp(sno,StuInfo[i].Sno)==0))</p><p><b> {</b></p><p> printf("該學(xué)號已經(jīng)存在,請重新輸入!\n");</p&
84、gt;<p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p><b> }</b></p><p> }while(right==1);</p><p&
85、gt; strcpy(StuInfo[found].Sno,sno);</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n年齡:");</p><p> scanf("%d",&
86、;age);</p><p> if(age<=0||age>100)</p><p><b> { </b></p><p> printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b> right=1;</b><
87、/p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> StuInfo[found].Age=age;</p><p><b
88、> do</b></p><p><b> {</b></p><p> printf("\n班號(6位):");</p><p> scanf("%s",cno);</p><p> if(strlen(cno)!=6)</p><
89、p><b> { </b></p><p> printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b><
90、;/p><p> else right=0;</p><p> }while(right==1);</p><p> strcpy(StuInfo[found].CInfo.Cno,cno);</p><p> printf("\n班名:");</p><p> scanf("%s&
91、quot;,&StuInfo[found].CInfo.Cname);</p><p> if((fpw=fopen("StuInfo.txt","w"))==NULL)</p><p><b> {</b></p><p> printf("文件打不開,保存失??!\n"
92、);</p><p><b> menu();</b></p><p><b> }</b></p><p> for(i=0;i<num;i++) //保存文件</p><p><b> { </b></p>
93、<p> fprintf(fpw,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p><p><b> }</b></p&g
94、t;<p> fclose(fpw);</p><p> printf("\n修改成功!\n");</p><p> printf("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p>
95、<p><b> menu();</b></p><p><b> } </b></p><p><b> }</b></p><p> if(found<0)</p><p><b> {</b></p><
96、;p> printf("\n沒有找到該學(xué)號的記錄:\n");</p><p> printf("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> menu();</b>
97、;</p><p><b> }</b></p><p><b> } </b></p><p><b> 5.5 瀏覽模塊 </b></p><p> void browse()</p><p><b> {</b>
98、</p><p><b> int num;</b></p><p><b> int i;</b></p><p> FILE*fp; </p><p> if((fp=fopen("StuInfo.txt","
99、r"))==NULL) </p><p><b> {</b></p><p> printf("文件打不開!\n");</p><p><b> menu();</b></p><p><b> }</b></p>&l
100、t;p> for(i=0;!feof(fp);i++) </p><p><b> { </b></p><p> fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[
101、i].Age,&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b> }</b></p><p> fclose(fp); </p><p><b> num=i;</b></
102、p><p> printf("\n已添加%d個學(xué)生信息\n\n",num);</p><p> printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); </p><p> for(i=0;i<num;i++) </p><
103、;p><b> { </b></p><p> printf("%s\t%s\t%s\t%d\t%s%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p>&l
104、t;p><b> }</b></p><p> printf("\n請按enter鍵返回主菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> menu();</b></p>&l
105、t;p><b> }</b></p><p><b> 5.6 查詢模塊</b></p><p> void quiry() </p><p><b> {</b></p><p> int chose;</p><p>
106、 int right; </p><p><b> do</b></p><p><b> {</b></p><p> printf("\n1-按學(xué)號查詢\t2-按姓名</p><p> 查詢\t3-某班學(xué)生信息\t4-返回\n"); </p><
107、p> printf("\n請輸入數(shù)字選擇:");</p><p> scanf("%d",&chose);</p><p> if(chose<1||chose>4)</p><p><b> {</b></p><p><b> ri
108、ght=1;</b></p><p> getchar();</p><p><b> }</b></p><p> else right=0;</p><p> }while(right==1);</p><p> switch(chose)</p><
109、p><b> {</b></p><p> case 1:bySno();break;</p><p> case 2:bySname();break;</p><p> case 3:byCno();break;</p><p> case 4:menu();</p><p>
110、<b> } </b></p><p><b> }</b></p><p> 5.6.1 根據(jù)學(xué)號查找某學(xué)生的學(xué)生證信息:</p><p> void bySno() </p><p><b> {</b></p><p>
111、int found=-1;</p><p><b> int num;</b></p><p><b> int i;</b></p><p> char no[20];</p><p><b> FILE*fp;</b></p><p> i
112、f((fp=fopen("StuInfo.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("文件打不開!\n");</p><p><b> menu();</b></p><p&
113、gt;<b> }</b></p><p> for(i=0;!feof(fp);i++) </p><p><b> {</b></p><p> fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</
114、p><p> &StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,</p><p> &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b> }</b></p><p>
115、<b> num=i;</b></p><p> fclose(fp);</p><p> printf("\n請輸入學(xué)生學(xué)號:");</p><p> scanf("%s",no);</p><p> for(i=0;i<num;i++)</p>&
116、lt;p><b> {</b></p><p> if(strcmp(no,StuInfo[i].Sno)==0)</p><p><b> {</b></p><p><b> found=i;</b></p><p> printf("\n該學(xué)生的
117、信息為:\n\n");</p><p> printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].A
118、ge,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname);</p><p><b> }</b></p><p><b> }</b></p><p> if(found<0)</p><p> printf("\n沒有找
119、到該班號的記錄!\n");</p><p> printf("\n請按enter鍵返回上級菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> quiry();</b></p><p>&l
120、t;b> }</b></p><p> 5.6.2 根據(jù)姓名查找某學(xué)生的學(xué)生證信息:</p><p> void bySname() </p><p><b> {</b></p><p> int found=-1;</p><p><b>
121、 int num;</b></p><p><b> int i;</b></p><p> char name[20];</p><p><b> FILE*fp;</b></p><p> if((fp=fopen("StuInfo.txt","
122、r"))==NULL)</p><p><b> {</b></p><p> printf("文件打不開!\n");</p><p><b> menu();</b></p><p><b> }</b></p><p
123、> for(i=0;!feof(fp);i++) </p><p><b> {</b></p><p> fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</p><p> &StuInfo[i].Sex,&
124、;StuInfo[i].Sno,&StuInfo[i].Age,</p><p> &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b> }</b></p><p><b> num=i;</b></p><
125、;p> fclose(fp);</p><p> printf("\n請輸入學(xué)生姓名:");</p><p> scanf("%s",name);</p><p> for(i=0;i<num;i++)</p><p><b> {</b></p>
126、<p> if(strcmp(name,StuInfo[i].Sname)==0)</p><p><b> {</b></p><p><b> found=i;</b></p><p> printf("\n該學(xué)生的信息為:\n\n");</p><p>
127、; printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname)
128、;</p><p><b> }</b></p><p><b> }</b></p><p> if(found<0)</p><p> printf("\n沒有找到該班號的記錄!\n");</p><p> printf("\
129、n請按enter鍵返回上級菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> quiry();</b></p><p><b> } </b></p><p> 5.6.3 根據(jù)班號查
130、詢某個班級所有學(xué)生的</p><p><b> 學(xué)生證信息:</b></p><p> void byCno() </p><p><b> {</b></p><p> int found=-1;</p><p><b> int num;
131、</b></p><p><b> int i;</b></p><p> char ClaNO[20];</p><p><b> FILE*fp;</b></p><p> if((fp=fopen("StuInfo.txt","r")
132、)==NULL)</p><p><b> {</b></p><p> printf("文件打不開!\n");</p><p><b> menu();</b></p><p><b> }</b></p><p> fo
133、r(i=0;!feof(fp);i++) </p><p><b> {</b></p><p> fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</p><p> &StuInfo[i].Sex,&StuInfo[i].Sno,
134、&StuInfo[i].Age,</p><p> &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b> }</b></p><p><b> num=i;</b></p><p> fclose(f
135、p);</p><p> printf("\n請輸入班號:");</p><p> scanf("%s",ClaNO);</p><p> printf("\n該班級的學(xué)生信息為:\n\n");</p><p> printf("姓名 性別 學(xué)號
136、 年齡 班號 班名\n"); </p><p> for(i=0;i<num;i++)</p><p><b> { </b></p><p> if(strcmp(ClaNO,StuInfo[i].CInfo.Cno)==0)</p><p><b> {&l
137、t;/b></p><p> found=i; printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname);<
138、/p><p><b> }</b></p><p><b> }</b></p><p> if(found<0) //found小于0,說明不存在班號的學(xué)生記錄</p><p> printf("\n沒有找到該班號的
139、記錄!\n");</p><p> printf("\n請按enter鍵返回上級菜單!\n");</p><p> getchar();</p><p> getchar();</p><p><b> quiry();</b></p><p><b&g
140、t; }</b></p><p><b> 5.7 統(tǒng)計模塊</b></p><p> 該模塊實現(xiàn)了基本的統(tǒng)計功能,包括</p><p> 分別統(tǒng)計男女生的人數(shù)、平均年齡,以及</p><p> 全體學(xué)生的人數(shù)和基本年齡;</p><p> void stastic()
141、 </p><p><b> {</b></p><p> int chose;</p><p> int right; </p><p><b> do</b></p><p><b> {</b></p>
142、<p> printf("\n1-全體男生\t2-全體女生</p><p> \t3-全體學(xué)生\t4-返回\n"); </p><p> printf("\n請輸入數(shù)字選擇:");</p><p> scanf("%d",&chose);</p><p&g
143、t; if(chose<1||chose>4)</p><p><b> {</b></p><p><b> right=1;</b></p><p> getchar();</p><p><b> }</b></p><p>
144、 else right=0;</p><p> }while(right==1);</p><p> switch(chose)</p><p><b> {</b></p><p><b> case 1:</b></p><p> Male();
145、 //男生的統(tǒng)計信息</p><p> printf("\n請按enter鍵返回上級菜單!\n");</p><p> getchar(); getchar();</p><p> stastic();</p><p><b> break;</b></p><p>
146、<b> case 2:</b></p><p> Female(); //女生的統(tǒng)計信息</p><p> printf("\n請按enter鍵返回上級菜單!\n");</p><p> getchar();getchar(); </p><p> stastic();<
147、;/p><p><b> break;</b></p><p><b> case 3:</b></p><p> StuMsg(); //全體學(xué)生的統(tǒng)計信息</p><p> printf("\n請按enter鍵返回上級菜單!\n");</p>&l
148、t;p> getchar();getchar();</p><p> stastic();</p><p><b> break;</b></p><p> case 4:menu();</p><p><b> } </b></p><p><b&
149、gt; }</b></p><p> 5.7.1 統(tǒng)計男生信息子模塊</p><p> void Male()</p><p><b> {</b></p><p> int num; //人數(shù)</p><p> float mg; //平均年齡<
150、;/p><p> num=MaleNum();</p><p> mg=MaleMG();</p><p> printf("\n男生總?cè)藬?shù)為:%d\n平均年</p><p> 齡為:%f\n",num,mg);</p><p><b> }</b></p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計--學(xué)生證管理報告
- c語言學(xué)生證管理系統(tǒng)課程設(shè)計報告
- c語言程序課程設(shè)計---學(xué)生證查找問題
- 【doc】計算機專業(yè)c語言課程設(shè)計 學(xué)生證管理程序
- c語言程序課設(shè) 學(xué)生證管理系統(tǒng)
- c語言學(xué)生管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生宿舍管理系統(tǒng)
- c語言課程設(shè)計--- 學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計--學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計——學(xué)生信息管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生信息管理系統(tǒng)
- 學(xué)生信息管理系統(tǒng)-c語言課程設(shè)計
評論
0/150
提交評論