版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 軟件設(shè)計(jì)報(bào)告</b></p><p> 題 目: 學(xué)生學(xué)籍管理系統(tǒng) </p><p><b> 課程設(shè)計(jì)目的</b></p><p> 1..通過本次課程設(shè)計(jì),強(qiáng)化上級(jí)動(dòng)手能力,在理論和實(shí)踐的基礎(chǔ)上進(jìn)一步
2、鞏固 《C語言程序設(shè)計(jì)》課程的學(xué)習(xí)內(nèi)容,掌握工程軟件設(shè)計(jì)的基本方法。</p><p> 2.熟悉C語言的基本內(nèi)容從而掌握C語言的基本知識(shí)以及了解C程序的基本編寫及運(yùn)行;</p><p> 3.了解程序的分模塊編寫并對(duì)程序的每個(gè)模塊進(jìn)行詳細(xì)的設(shè)計(jì)并且能理解一般C語言編寫的程序。</p><p> 4..熟悉C程序設(shè)計(jì)的開發(fā)環(huán)境及C程序的調(diào)試過程。</p&g
3、t;<p><b> 二、課程設(shè)計(jì)內(nèi)容</b></p><p> 用所學(xué)過的C語言知識(shí)(文件,結(jié)構(gòu)體,函數(shù),數(shù)組等)編寫一個(gè)學(xué)身份學(xué)籍管理系統(tǒng)。使其有以下功能。</p><p> 1.通過鍵盤輸入某些學(xué)生的學(xué)生學(xué)籍管理信息。(包含學(xué)生學(xué)號(hào)、姓名、性別、年齡、出生年月、住址、班級(jí)、專業(yè)、院系等信息)。</p><p> 2.
4、輸入給定學(xué)號(hào),顯示出某位學(xué)生的學(xué)生學(xué)籍管理信息。</p><p> 3.顯示出全部學(xué)生的學(xué)生學(xué)籍管理信息。</p><p> 4.可將某學(xué)生信息添加到文件內(nèi)。</p><p> 5.給定某位學(xué)生的學(xué)號(hào),修改該學(xué)生信息。</p><p> 6.給定某位學(xué)生的學(xué)號(hào),刪除該學(xué)生信息。</p><p> 7.給定某個(gè)
5、班級(jí)號(hào),統(tǒng)計(jì)該班級(jí)的總?cè)藬?shù)。</p><p> 8.按照學(xué)生的學(xué)號(hào)升序?qū)W(xué)生信息進(jìn)行排序。</p><p> 9.用文件的方式將錄入的數(shù)據(jù)進(jìn)行存儲(chǔ),并從其中讀取數(shù)據(jù)。</p><p><b> 三、需求分析</b></p><p> 1.通過結(jié)構(gòu)體struct STUDENTS來保存學(xué)生的學(xué)號(hào)、姓名、性別、年齡、
6、出生年月、住址、班級(jí)、專業(yè)、院系等相關(guān)信息。并通過input()函數(shù)來輸入初始信息。</p><p> 2.學(xué)生信息的添加:在原有學(xué)生信息的基礎(chǔ)上可以添加新的學(xué)生信息,并將添加信息保存到原文件中.通過append函數(shù)來實(shí)現(xiàn)學(xué)生信息的添加功能。</p><p> 3.學(xué)生信息的修改:輸入要修改學(xué)生的學(xué)號(hào),然后利用switch語句選擇修改的那一項(xiàng),修改完畢后重新保存到原定文件中。修改成功后
7、返回菜單。</p><p> 利用modify函數(shù)來實(shí)現(xiàn)。</p><p> 4.學(xué)生信息刪除:輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),通過del函數(shù)來實(shí)現(xiàn)。刪除成功后,在保存到原文件中去。</p><p> 5. 學(xué)生信息的查詢:輸入一個(gè)學(xué)生學(xué)號(hào), 在文件中查找此學(xué)生, 若找到與該學(xué)號(hào)相等則輸出此學(xué)生的全部信息; 若找不到則輸出無此學(xué)生信息。</p><p
8、> 利用inquire函數(shù)來實(shí)現(xiàn)。</p><p> 6.輸入一個(gè)班的班級(jí)號(hào),通過count函數(shù)來統(tǒng)計(jì)此班的總?cè)藬?shù)。</p><p> 7.按學(xué)號(hào)的升序排序?qū)W生信息:對(duì)學(xué)號(hào)用泡沫法進(jìn)行學(xué)號(hào)升序排序,然后將排好序的信息保存到文件中。</p><p> 8.退出系統(tǒng):在完成想要執(zhí)行的各項(xiàng)操作后,調(diào)用switch()函數(shù)在主菜單下輸入數(shù)字0就退出整個(gè)系統(tǒng)。&
9、lt;/p><p><b> 四、概要設(shè)計(jì)</b></p><p><b> 系統(tǒng)結(jié)構(gòu)圖: </b></p><p><b> 2.功能模塊說明:</b></p><p> A.輸入模塊:調(diào)用input( )函數(shù)將學(xué)生信息依次輸入到結(jié)構(gòu)體數(shù)組中,結(jié)束后將保存在制定文件中,在
10、其他模塊的函數(shù)中可以隨時(shí)進(jìn)行調(diào)用,結(jié)束后可以將修改后的學(xué)生信息再一次保存。</p><p> B.添加模塊:如果要添加新生信息可以調(diào)用append函數(shù)將新生信息插入到原有信息的末尾,在保存到文件中。</p><p> C.修改模塊:修改可以通過輸入要修改的學(xué)生的學(xué)號(hào),對(duì)學(xué)生的個(gè)人信息利用switch選擇要修改的內(nèi)容.修改完畢后,保存到所設(shè)定的文件中去。</p><p
11、> D.刪除模塊:刪除可以通過輸入要?jiǎng)h除的學(xué)生學(xué)號(hào),對(duì)學(xué)生的所有個(gè)人信息進(jìn)行刪除.刪除完畢之后保存到文件中去。</p><p> E.查詢模塊:選擇輸入要查詢學(xué)生的學(xué)號(hào),并將查詢的信息顯示在屏幕上。</p><p> F.統(tǒng)計(jì)模塊:輸入要統(tǒng)計(jì)人數(shù)的班級(jí)號(hào),然后輸出此班的總?cè)藬?shù)。</p><p> G.排序模塊:按學(xué)生學(xué)號(hào)用冒泡法升序排出學(xué)生的信息。&l
12、t;/p><p> H.打印模塊:輸出當(dāng)前文件中所有的學(xué)生信息。</p><p> 五、詳細(xì)設(shè)計(jì)及運(yùn)行結(jié)果</p><p><b> 流程圖:</b></p><p> 通過switch case函數(shù)完成主函數(shù)于各模塊之間的調(diào)用:</p><p> 六、調(diào)試情況,設(shè)計(jì)技巧及體會(huì):</p
13、><p> 1. 設(shè)計(jì)過程中的體會(huì):在剛開始還沒有大體思路,覺得設(shè)計(jì)不簡(jiǎn)單。但當(dāng)總體構(gòu)思完成后,對(duì)各個(gè)功能的實(shí)現(xiàn)可以用小程序即模塊形式進(jìn)行實(shí)現(xiàn),比如輸入數(shù)據(jù),輸出數(shù)據(jù),修改數(shù)據(jù),刪除數(shù)據(jù)等.在一個(gè)個(gè)小程序中調(diào)試,最后各個(gè)模塊的功能完成比較好后,在將所有的模塊都放進(jìn)main()主函數(shù)中進(jìn)行調(diào)試,這樣可以避免由整體構(gòu)思調(diào)試引起的調(diào)試障礙.但還是沒有得到完美的效果,有的模塊還是有問題。而且程序上看沒什么問題?。坷蠋熞矌土?/p>
14、不少的忙吧。在此寫過老師的幫助。</p><p> 2.在調(diào)試過程中,F(xiàn)5,F10,F11,有了更深的認(rèn)識(shí),并且可以更靈活的運(yùn)用。</p><p> 在編寫程序的過程中,有些邏輯不是很清楚,但大部分程序模塊還是寫出來了。</p><p> 那些不清楚的就是文件方面的知識(shí),以后要好好研究下文件了。總體來說,</p><p> 這次課程設(shè)
15、計(jì)對(duì)C語言方面的知識(shí)又重新復(fù)習(xí)了一遍,感覺還行。</p><p> 3.還有就是原先有想過用密碼,構(gòu)思是想實(shí)現(xiàn)一個(gè)帳號(hào)密碼配對(duì)使用的方法,但是由于文件的使用不熟練,最后還是以失敗告終。同時(shí)程序只能在當(dāng)前登錄過程中輸入進(jìn)入系統(tǒng),有較大的局限性。</p><p><b> 七、參考文獻(xiàn)</b></p><p> 《C語言程序設(shè)計(jì)》 譚浩強(qiáng)
16、 清華大學(xué)出版社 1999年12月</p><p> C語言程序設(shè)計(jì)(第二版)王曙燕 /主編</p><p><b> 八、附錄:源代碼:</b></p><p> #include"stdio.h"</p><p> #include"string.h"</p&g
17、t;<p> #include"stdlib.h" /*頭文件*/</p><p> #define MAX 100</p><p> typedef struct </p><p> { int year;</p>&
18、lt;p> int month;</p><p><b> int day;</b></p><p><b> }DATE;</b></p><p> typedef struct </p><p> { int num; /*學(xué)號(hào)*/</
19、p><p> char name[20]; /*姓名*/ /*定義結(jié)構(gòu)體*/</p><p> char sex[6]; /*性別*/</p><p> int age; /*年齡*/</p><p>
20、DATE birthday; /*出生年月*/</p><p> char address[30]; /*住址*/</p><p> char classes[10]; /*班級(jí)*/</p><p> char zhuanye[50]; /*專業(yè)*/</p><p
21、> char yuanxi[50]; /*院系*/</p><p> }STUDENTS;</p><p><b> /*讀取信息*/</b></p><p> int read_file(STUDENTS students[]) </p>&l
22、t;p> { FILE *fp;</p><p><b> int i=0;</b></p><p> if((fp=fopen("stu.txt","rt"))==NULL)</p><p> { printf("\n\n*****庫(kù)存文件不存在!請(qǐng)創(chuàng)建");
23、 /*創(chuàng)建文件*/</p><p><b> return 0;</b></p><p><b> }</b></p><p> while((fread(&students[i],sizeof(STUDENTS),1,fp))==1) /*成功創(chuàng)建*/&
24、lt;/p><p><b> {</b></p><p><b> i++;</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> return i;</b><
25、/p><p><b> }</b></p><p> void save_file(STUDENTS students[],int sum) /*保存信息*/</p><p> { FILE *fp;</p><p><b> int i;</b></p>
26、<p> if((fp=fopen("stu.txt","wb"))==NULL)</p><p> { printf("讀文件錯(cuò)誤!\n");</p><p><b> return;</b></p><p><b> }</b></
27、p><p> for(i=0;i<sum;i++)</p><p> if(fwrite(&students[i],sizeof(STUDENTS),1,fp)!=1) </p><p> printf("寫文件錯(cuò)誤!\n"); /*學(xué)生信息保存到文件中*/ fclose(
28、fp);</p><p><b> }</b></p><p><b> /*輸入模塊*/</b></p><p> int input(STUDENTS students[])</p><p> { int i=0,t;
29、 /*定義要輸入學(xué)生的個(gè)數(shù)*/ </p><p> system("cls");</p><p> printf("\n\n 錄入學(xué)生個(gè)數(shù)(最多%d個(gè))",MAX);</p><p> scanf("%d",&t);</p><p> print
30、f(" ------------------------\n");</p><p><b> do</b></p><p> {printf("\n 第%d個(gè)學(xué)生信息",i+1); /*輸入學(xué)生的基本信息*/</p><p> scanf("%d
31、",&students[i].num);</p><p> if(students[i].num==0) break;</p><p> printf("\n 學(xué)生姓名:");</p><p> scanf("%s",students[i].name);</p><p
32、> printf("\n 學(xué)生性別:");</p><p> scanf("%s",students[i].sex);</p><p> printf("\n 學(xué)生年齡:");</p><p> scanf("%d",&students[i]
33、.age);</p><p> printf("\n 學(xué)生出生年月日:");</p><p> scanf("%d %d %d",&students[i].birthday.year,&students[i].birthday.month,</p><p> &students[i].
34、birthday.day);</p><p> printf("\n 學(xué)生住址:");</p><p> scanf("%s",students[i].address);</p><p> printf("\n 學(xué)生班級(jí):");</p><p> sc
35、anf("%s",students[i].classes);</p><p> printf("\n 學(xué)生專業(yè):");</p><p> scanf("%s",students[i].zhuanye);</p><p> printf("\n 學(xué)生院系:")
36、;</p><p> scanf("%s",students[i].yuanxi);</p><p><b> i++;</b></p><p> }while(i<t);</p><p> save_file(students,t);
37、 /*保存輸入的學(xué)生信息*/</p><p> printf("\n %d個(gè)學(xué)生信息輸入完畢! \n",t);</p><p><b> getch();</b></p><p> return t; /*返回輸入學(xué)生的個(gè)數(shù)值*/</
38、p><p><b> }</b></p><p><b> /*輸出模塊*/</b></p><p> void output(STUDENTS students[],int sum)</p><p><b> { </b></p><p><
39、;b> int i;</b></p><p> system("cls");</p><p> printf("num name sex age year-month-day address classes zhuanye yuanxi\n");</p><p> printf(&quo
40、t; \n");</p><p> for(i=0;i<sum;i++) /*輸出學(xué)生的信息*/ </p><p> {printf("%5d %5s %5s %5d %5d %5
41、d %5d %5s %5s %5s %5s\n",</p><p> students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,</p><p> students[i].birthday.month,students[i].birthday.d
42、ay,students[i].address,</p><p> students[i].classes,students[i].zhuanye,students[i].yuanxi);</p><p> printf(" \n");</p><p><b>
43、; }</b></p><p><b> getch();</b></p><p> save_file(students,sum);</p><p><b> }</b></p><p> /*添加信息模塊*/</p><p> int append
44、(STUDENTS students[],int sum)</p><p><b> { </b></p><p> int i=sum,flag=0; /*從已經(jīng)輸入的學(xué)生尾部添加*/</p><p> char choice;</p><p> sum=rea
45、d_file(students); </p><p> system("cls");</p><p> printf("\n\n 添加學(xué)生信息 \n");</p><p><b> do</b></p><p><b> { </b>
46、</p><p> if(i<MAX) /*已經(jīng)輸入的學(xué)生個(gè)數(shù)和要添加的學(xué)生個(gè)數(shù)之和要小于定義的學(xué)生個(gè)數(shù)最大值*/</p><p><b> {</b></p><p> printf("\n 新學(xué)生學(xué)號(hào):");</p><p> scanf("
47、%d",&students[i].num);</p><p> printf("\n 學(xué)生姓名:");</p><p> scanf("%s",students[i].name);</p><p> printf("\n 學(xué)生性別:");
48、 /*輸入添加學(xué)生的基本信息*/</p><p> scanf("%s",students[i].sex);</p><p> printf("\n 學(xué)生年齡:");</p><p> scanf("%d",&students[i].age);</p><p&g
49、t; printf("\n 學(xué)生出生年月日:");</p><p> scanf("%d%d%d",&students[i].birthday.year,&students[i].birthday.month,&students[i].birthday.day);</p><p> printf("
50、\n 學(xué)生住址:");</p><p> scanf("%s",students[i].address);</p><p> printf("\n 學(xué)生班級(jí):");</p><p> scanf("%s",students[i].classes);</p>
51、<p> printf("\n 學(xué)生專業(yè):");</p><p> scanf("%s",students[i].zhuanye);</p><p> printf("\n 學(xué)生院系:");</p><p> scanf("%s",stude
52、nts[i].yuanxi);</p><p> i++; </p><p><b> }</b></p><p> printf("\n 繼續(xù)添加嗎?(Y/N)");</p><p> choice=getch();</p><p> if(
53、choice=='Y'||choice=='y')</p><p> { flag=1;</p><p> printf("\n 繼續(xù)!\n"); /*是否要繼續(xù)添加*/</p><p><b> }</b></p>
54、<p> else flag=0;</p><p> }while(flag==1);;</p><p> printf("\n 按任意鍵返回主菜單!");</p><p><b> getch();</b></p><p> save_file(stud
55、ents,i); /*保存添加的學(xué)生信息到原文件*/</p><p> return i; /*返回文件中學(xué)生個(gè)數(shù)值*/</p><p><b> }</b></p><p> /*修改信息模塊*/</p><p> void modify(ST
56、UDENTS students[],int sum)</p><p> { //FILE *fp;</p><p> int i,choice,flag,modify_num;</p><p> sum=read_file(students); /*讀文件*/</p><p><
57、;b> do</b></p><p><b> {</b></p><p> system("cls");</p><p> printf("\n 輸入要修改的學(xué)生學(xué)號(hào):");</p><p> scanf("%d&quo
58、t;,&modify_num); /*輸入要修改的學(xué)生學(xué)號(hào)*/</p><p> for(i=0;i<sum;i++)</p><p> if(students[i].num==modify_num)</p><p> { printf("\n 學(xué)生信息 \n
59、");</p><p> printf("num name sex age year-month-day address classes zhuanye yuanxi\n");</p><p> printf(" \n");</p>
60、;<p> printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,students[i].bir
61、thday.day,students[i].address,students[i].classes,students[i].zhuanye,students[i].yuanxi);</p><p> printf("\n 要修改哪一項(xiàng)?\n");</p><p> printf("\n 1.學(xué)生學(xué)
62、號(hào) \n");</p><p> printf("\n 2.學(xué)生姓名 \n");</p><p> printf("\n 3.學(xué)生性別 \n");</p><p> printf("\n 4.學(xué)生年齡 \n&qu
63、ot;);</p><p> printf("\n 5.學(xué)生出生年月日 \n");</p><p> printf("\n 6.學(xué)生住址 \n");</p><p> printf("\n 7.學(xué)生班級(jí) \n")
64、;</p><p> printf("\n 8.學(xué)生專業(yè) \n");</p><p> printf("\n 9.學(xué)生院系 \n");</p><p> printf("\n 請(qǐng)選擇(1-9):");</p
65、><p> scanf("%d",&choice);</p><p> switch(choice)</p><p><b> { </b></p><p> case 1:printf("\n 輸入修改后的學(xué)號(hào):");</p><
66、p> scanf("%d",&students[i].num); break;</p><p> case 2:printf("\n 輸入修改后的姓名:");</p><p> scanf("%s",students[i].name); break;</p><p>
67、 case 3:printf("\n 輸入修改后的性別:");</p><p> scanf("%s",students[i].sex); break; /*選擇要修改學(xué)生的項(xiàng)目*/</p><p> case 4:printf("\n 輸入修改后的年齡:");</p>
68、<p> scanf("%d",&students[i].age); break;</p><p> case 5:printf("\n 輸入修改后的出生年月:");</p><p> scanf ("%d %d %d",&students[i].birthday.year,&am
69、p;students[i].birthday.month,</p><p> &students[i].birthday.day); break;</p><p> case 6:printf("\n 輸入修改后的住址:");</p><p> scanf("%s",students[i].ad
70、dress); break;</p><p> case 7:printf("\n 輸入修改后的班級(jí):");</p><p> scanf("%s",students[i].classes); break;</p><p> case 8:printf("\n 輸入修改后
71、的專業(yè):");</p><p> scanf("%s",students[i].zhuanye); break;</p><p> case 9:printf("\n 輸入修改后的院系:");</p><p> scanf("%s",students[i].yuanxi)
72、; break;</p><p><b> }</b></p><p> printf("\n 學(xué)生信息表 \n");</p><p> printf("num name sex age year-month-day address classes zhuanye
73、 yuanxi\n");</p><p> printf(" \n");</p><p> printf("%5d %5s %5s %5d %5d %5d %5d %5s %5s %5s %5s\n",</p><p&g
74、t; students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,</p><p> students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p> student
75、s[i].classes,students[i].zhuanye,students[i].yuanxi); /*輸出修改后的學(xué)生信息*/ break;</p><p><b> }</b></p><p> if(i==sum)</p><p> { printf("\n 該學(xué)生不存在!");&
76、lt;/p><p><b> getch();</b></p><p><b> }</b></p><p> printf("\n\n 繼續(xù)修改嗎?(Y/N)");</p><p> choice=getch();</p><p&g
77、t; if(choice=='Y'||choice=='y')</p><p> { flag=1;</p><p> printf("\n 繼續(xù)!\n");</p><p> } /*是否要繼續(xù)修改*/
78、 </p><p> else flag=0;</p><p> }while(flag==1);</p><p> printf("\n按任意鍵返回主菜
79、單!");</p><p><b> getch();</b></p><p> save_file(students,sum); /*保存修改后的信息*/ </p><p> } </p
80、><p> /*刪除信息模塊*/</p><p> int del(STUDENTS students[],int sum)</p><p><b> { </b></p><p> int i,del_num;</p><p> printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)"
81、;);</p><p> scanf("%d",&del_num); /*輸入要?jiǎng)h除的學(xué)生學(xué)號(hào)*/ </p><p> fo
82、r(i=0;i<sum;i++)</p><p> { if(del_num==students[i].num)</p><p> {for(;i<sum-1;i++)</p><p> students[i].num=students[i+1].num;</p><p> printf("刪除成功"
83、);</p><p><b> }</b></p><p><b> }</b></p><p> getch(); </p><p> save_file(
84、students,sum-1); /*保存刪除后的學(xué)生信息到原文件*/ </p><p> return (sum-1);</p><p><b> }<
85、/b></p><p> /*查詢信息模塊*/</p><p> void inquire(STUDENTS students[],int sum)</p><p> { FILE *fp;</p><p> int i,choice,flag,inquire_num;</p><p> sum=re
86、ad_file(students); /*讀文件*/ </p><p> printf("%d\n",sum);</p><p><b> do</b></p><p> { system("cl
87、s");</p><p> printf("\n輸入要查詢的學(xué)生學(xué)號(hào):");</p><p> scanf("%d",&inquire_num); /*輸入要查詢的學(xué)生學(xué)號(hào)*/ for(i=0;i<sum;i++)<
88、;/p><p> if(students[i].num==inquire_num)</p><p> { printf("\n 此學(xué)生信息為: \n");</p><p> printf("num name sex age year-month-day address classes z
89、huanye yuanxi\n");</p><p> printf(" \n");</p><p> printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",</p><p
90、> students[i].num,students[i].name,students[i].sex,students[i].age,students[i].birthday.year,students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p> students[i].classes,students
91、[i].zhuanye,students[i].yuanxi); /*輸出要查詢的學(xué)生信息*/</p><p><b> break;</b></p><p><b> }</b></p><p> if(i==sum)</p><p> { printf("\n 無此
92、學(xué)生信息 \n");</p><p><b> getch();</b></p><p><b> }</b></p><p> printf("\n\n 是否繼續(xù)?(Y/N)");</p><p> choice=getch();</p&
93、gt;<p> if(choice=='Y'||choice=='y')</p><p> { flag=1;</p><p> printf("\n 繼續(xù)!\n");</p><p> } /*是否要繼續(xù)*/
94、 </p><p> else flag=0;</p><p> }while(flag==1);</p><p> printf("\n 按任意鍵返回主菜單!");</p><p><b> getch();</
95、b></p><p><b> }</b></p><p> /*統(tǒng)計(jì)信息模塊*/</p><p> void count(STUDENTS students[],int sum)</p><p><b> { </b></p><p> int i,
96、count=0;</p><p> char s[10];</p><p> printf("請(qǐng)輸入要統(tǒng)計(jì)的班級(jí)的學(xué)生的班級(jí)號(hào)!"); </p><p> scanf("%s",s); /*按輸入的班級(jí)號(hào)統(tǒng)計(jì)此班的總學(xué)生人數(shù)*/</p><p>
97、; for(i=0;i<sum;i++)</p><p> if(strcmp(s,students[i].classes)==0)</p><p><b> count++;</b></p><p> printf("%s班的總?cè)藬?shù)為%d人",s,count);</p><p><
98、;b> getch();</b></p><p> save_file(students,sum);</p><p><b> } </b></p><p> /*排行信息模塊*/</p><p> void sort(STUDENTS students[],int sum)</p&
99、gt;<p><b> { </b></p><p> int i,j,t;</p><p> system("cls");</p><p> printf("\n 學(xué)生信息排行\(zhòng)n");</p><p> printf("
100、\n 按學(xué)號(hào)排行\(zhòng)n");</p><p> printf(" \n");</p><p> for(i=0;i<sum-1;i++) /*按學(xué)號(hào)用冒泡法升序排列學(xué)生信息*/</p><p> for(j=i+1;j<sum;j++)
101、</p><p> { if(students[i].num>students[j].num)</p><p> {t=students[i].num;</p><p> students[i].num=students[j].num;</p><p> students[j].num=t;</p><p&
102、gt;<b> }</b></p><p><b> }</b></p><p> printf(" \n");</p><p> printf("num name sex age year-month-day address cla
103、sses zhuanye yuanxi\n");</p><p> for(i=0;i<sum;i++)</p><p> printf("%5d %5s %5s %5d %d%d%d %5s %5s %5s %5s\n",</p><p> students[i].num,students[i].nam
104、e,students[i].sex,students[i].age,students[i].birthday.year, students[i].birthday.month,students[i].birthday.day,students[i].address,</p><p> students[i].classes,students[i].zhuanye,students[i].yuanxi); /*
105、輸出排序后的學(xué)生信息*/</p><p><b> getch();</b></p><p> save_file(students,sum); /*保存排序后的學(xué)生信息到文件中*/</p><p><b> }</b></p><p> Void main()
106、 /*主函數(shù)*/ </p><p><b> {</b></p><p> STUDENTS students[MAX];</p><p> int choice,sum;</p><p> sum=read_file(students
107、);</p><p><b> if(!sum)</b></p><p> { printf("并錄入基本庫(kù)存信息!\n"); </p><p><b> getch();</b></p><p> sum=input(students
108、); /*錄入學(xué)生信息*/ </p><p><b> }</b></p><p><b> do</b></p><p> { system("cls");</p>
109、<p> printf("\n\n\n 學(xué)生學(xué)籍管理系統(tǒng) \n\n");</p><p> printf(" 1.添加學(xué)生信息\n\n");</p><p> printf(" 2.修改學(xué)生信息\n\n");</p&g
110、t;<p> printf(" 3.刪除學(xué)生信息\n\n");</p><p> printf(" 4.查詢學(xué)生信息\n\n");</p><p> printf(" 5.統(tǒng)計(jì)學(xué)生信息\n\n");</p><p&
111、gt; printf(" 6.學(xué)生排行信息\n\n");</p><p> printf(" 7.打印學(xué)生庫(kù)存信息\n\n");</p><p> printf(" 0.退出系統(tǒng)\n\n");</p><p> print
112、f(" 請(qǐng)選擇(0-7):");</p><p> scanf("%d",&choice);</p><p> switch(choice) /*用switch選擇要調(diào)用的各模塊函數(shù)并執(zhí)行*/</p><p> { case 1: sum=append
113、(students,sum);break;</p><p> case 2: modify(students,sum);break;</p><p> case 3: sum=del(students,sum);break;</p><p> case 4: inquire(students,sum); break;</p><p>
114、 case 5: count(students,sum); break;</p><p> case 6:sort(students,sum); break;</p><p> case 7:output(students,sum); break;</p><p> case 0: break; /*執(zhí)行完各模
115、塊后按0退出系統(tǒng)*/</p><p><b> }</b></p><p> }while(choice!=0);</p><p> save_file(students,sum); /*保存執(zhí)行完各模塊后的學(xué)生信息*/</p><p><b> }</b></p&
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)
- 學(xué)生學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)10
- java課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)論文
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)1
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)9
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)4
- 學(xué)生學(xué)籍管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)---學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理系統(tǒng)c課程設(shè)計(jì)報(bào)告
- 學(xué)籍管理系統(tǒng) 課程設(shè)計(jì)
- 課程設(shè)計(jì)---學(xué)籍管理系統(tǒng)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--- 學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍管理信息系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)學(xué)生學(xué)籍成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告--學(xué)生學(xué)籍管理系統(tǒng)
- 學(xué)生學(xué)籍信息管理系統(tǒng)oracle課程設(shè)計(jì)
- 學(xué)生學(xué)籍管理系統(tǒng)-軟件工程課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
評(píng)論
0/150
提交評(píng)論