版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> ——學(xué)生成績(jī)管理程序</p><p> 題目要求 ··················· 2</
2、p><p> 設(shè)計(jì)目的 ··················· 2</p><p> 總體設(shè)計(jì) ·······
3、············ 3</p><p> 詳細(xì)設(shè)計(jì) ··················
4、3; 3</p><p> 調(diào)試與測(cè)試 ················· 12</p><p> 源程序 ·······
5、;············ 14</p><p> 總結(jié) ··················
6、· 30</p><p><b> 學(xué)生成績(jī)管理程序</b></p><p><b> 題目要求 </b></p><p><b> 問(wèn)題描述:</b></p><p> 對(duì)在校學(xué)生幾門(mén)課程的考試成績(jī)進(jìn)行統(tǒng)一管理.每個(gè)學(xué)生記錄包括學(xué)號(hào),姓名,年齡,數(shù)學(xué),英語(yǔ)
7、,物理成績(jī),默認(rèn)以學(xué)號(hào)為序存放.</p><p><b> 要求:</b></p><p> (1)一個(gè)文件按以班為單位存儲(chǔ)學(xué)生記錄.</p><p> (2)將允許的操作分為四種,以A,B ,C,D,E,F為標(biāo)志:</p><p> A:插入一個(gè)學(xué)生記錄;</p><p><b&g
8、t; B:修改學(xué)生記錄;</b></p><p> C:刪除一個(gè)學(xué)生記錄;</p><p> D:查找一個(gè)學(xué)生記錄;</p><p><b> E:瀏覽學(xué)生成績(jī):</b></p><p><b> F:退出</b></p><p><b>
9、計(jì)算學(xué)生的總成績(jī).</b></p><p> 按學(xué)號(hào)排序輸出全班學(xué)生成績(jī)表</p><p><b> .</b></p><p><b> 設(shè)計(jì)目的</b></p><p> 根據(jù)題目要求,由于學(xué)生信息是存放在文件中,所以應(yīng)提供文件的輸入,輸出等操作;在程序中需要瀏覽學(xué)生的信息,
10、應(yīng)提供顯示,查找,排序等操作;另外還應(yīng)提供鍵盤(pán)式選擇菜單實(shí)現(xiàn)功能選擇.</p><p><b> 總體設(shè)計(jì)</b></p><p> 根據(jù)上面的需求分析,可以將這個(gè)系統(tǒng)分為以下模塊:輸入模塊,修改模塊,刪除模塊,查找模塊,顯示模塊.</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p>
11、<b> 主函數(shù):</b></p><p> 主函數(shù)一般設(shè)計(jì)得比較簡(jiǎn)單,只提供輸入,處理和輸出部分的函數(shù)調(diào)用,其中各功能模塊用菜單方式選擇.</p><p><b> 流程圖:</b></p><p><b> N</b></p><p><b> Y<
12、;/b></p><p><b> [程序]:</b></p><p> //#include "head.h" </p><p> int menu_select() </p><p><b> { </b></p><p><b&g
13、t; char c; </b></p><p> printf("\n\n"); </p><p> printf(" | 1. 增加學(xué)生記錄 5.統(tǒng)計(jì)信息 |\n"); </p><p> printf(" | 2. 查詢(xún)學(xué)生記錄 6.打開(kāi)文件 |\n"); <
14、;/p><p> printf(" | 3. 修改學(xué)生記錄 7.保存文件 |\n"); </p><p> printf(" | 4. 學(xué)生紀(jì)錄排序 8.顯示記錄 |\n"); </p><p> printf(" | 0. 退出系統(tǒng) |\n"); </p><p&
15、gt; printf("\n\n"); </p><p> printf("請(qǐng)選擇(0-8):"); </p><p> c=getchar(); </p><p> getchar(); </p><p> return (c-'0'); </p><p&
16、gt;<b> } </b></p><p><b> 輸入模塊:</b></p><p><b> [分析]:</b></p><p> 單獨(dú)看各數(shù)據(jù)信息,學(xué)號(hào),姓名是字符型,可以采用字符型數(shù)組;分?jǐn)?shù)為整數(shù),采用整數(shù);數(shù)據(jù)信息存放在文件中,一條記錄對(duì)應(yīng)一個(gè)學(xué)生,既符合習(xí)慣又方便信息管理.&l
17、t;/p><p> 如果要存放若干學(xué)生信息就用結(jié)構(gòu)體數(shù)組:</p><p> void addrecord(student stud[]) </p><p><b> { </b></p><p> int i=0,j,num; </p><p> char str[5]; </p&g
18、t;<p> if(numstus!=0) </p><p><b> { </b></p><p> printf("已有記錄存在是否覆蓋?(y/n)\n"); </p><p> gets(str); </p><p> if(str[0]=='Y'||st
19、r[0]=='y') </p><p><b> i=0; </b></p><p> else i=numstus; </p><p><b> } </b></p><p> printf("請(qǐng)輸入增加的學(xué)生信息條目數(shù):"); </p>
20、<p> scanf("%d",&num); </p><p><b> if(i==0) </b></p><p> numstus=num; </p><p> else numstus+=num; </p><p> if(numstus>lens) </
21、p><p><b> { </b></p><p> lens+=50; </p><p> pointer=(student *)realloc(pointer,lens*LEN); </p><p><b> } </b></p><p> printf("
22、;請(qǐng)輸入學(xué)生信息:\n"); </p><p> for(;i<numstus;i++) </p><p><b> { </b></p><p> getchar(); </p><p> printf("請(qǐng)輸入學(xué)號(hào):"); </p><p> ge
23、ts(pointer[i].number); </p><p> printf("請(qǐng)輸入姓名:"); </p><p> gets(pointer[i].name); </p><p> printf("請(qǐng)輸入性別(男/女 1/0):"); </p><p> gets(pointer[i].s
24、ex); </p><p> if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女"); </p><p> else strcpy(pointer[i].sex,"男"); </p><p> printf("請(qǐng)輸入各科成績(jī):(按“語(yǔ)文,數(shù)學(xué),
25、英語(yǔ),歷史,政治”的順序):"); </p><p> stud[i].score=0; </p><p> for(j=0;j<numsubs;j++) </p><p><b> { </b></p><p> scanf("%f",&stud[i].subject
26、[j]); /*計(jì)算總分*/ </p><p> stud[i].score+=stud[i].subject[j]; </p><p><b> } </b></p><p> stud[i].average=stud[i].score/numsubs; /*計(jì)算平均分*/ </p><p><b>
27、 } </b></p><p> count(stud); /*附名次*/ </p><p> display(stud,0,numstus-1); </p><p> getchar(); </p><p><b> }</b></p><p> int numstus;
28、</p><p> int lens; </p><p> student *pointer; </p><p> void main() </p><p><b> { </b></p><p><b> int i=1; </b></p><
29、p> char str[2]; </p><p> lens=100; </p><p> pointer=(student *)malloc(lens*LEN); /*分配內(nèi)存*/ </p><p> numstus=0; </p><p> welcome(); /*歡迎界面*/ </p><p>
30、 while(i>0) </p><p><b> { </b></p><p> i=menu_select(); /*控制菜單*/ </p><p> switch(i) </p><p><b> { </b></p><p> case 1:addr
31、ecord(pointer);break; /*增加學(xué)生信息*/ </p><p> case 2:findrecord(pointer);break; /*查詢(xún)學(xué)生信息*/ </p><p> case 3:amendrecord(pointer);break; /*修改學(xué)生信息*/ </p><p> case 4:sort(pointer);break;
32、 /*學(xué)生信息排序*/ </p><p> case 5:statistic(pointer);break; /*統(tǒng)計(jì)信息*/ </p><p> case 6:openfile(pointer);break; /*打開(kāi)文件*/ </p><p> case 7:writetotext(pointer);break; /*保存文件*/ </p>
33、<p> case 8:display(pointer,0,numstus-1);break; /*顯示記錄*/ </p><p><b> case 0: </b></p><p> if(numstus!=0) printf("是否保存當(dāng)前記錄?(y/n)"); </p><p> gets(str);
34、 </p><p> if(str[0]=='y'||str[0]=='Y') </p><p> writetotext(pointer); </p><p> i=-1;break; /*退出系統(tǒng)*/ </p><p> default:printf("請(qǐng)輸入數(shù)字0~8:\n")
35、;i=1; /*輸入錯(cuò)誤*/ </p><p><b> } </b></p><p><b> } </b></p><p> printf("\t\t歡迎再次使用本系統(tǒng)。\n\n"); </p><p> display1(); </p><p&g
36、t;<b> }</b></p><p><b> 修改模塊:</b></p><p> [分析]:用戶輸入要修改學(xué)生的學(xué)號(hào),根據(jù)學(xué)生的學(xué)號(hào)等信息查找學(xué)生記錄,并提示用戶修改該記錄的哪部分信息.根據(jù)用戶選擇修改相應(yīng)的信息.</p><p><b> [流程圖]:</b></p>
37、<p> Y N</p><p><b> Y</b></p><p><b> N</b></p><p><b> [程序]:</b></p><p> void xiugai() <
38、/p><p><b> { </b></p><p> if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL) /*檢查是否出錯(cuò)*/</p><p><b&g
39、t; { </b></p><p> printf("Cannot open this file.\n"); </p><p><b> exit(0); </b></p><p><b> } </b></p><p> printf("\nPL
40、ease shuru xiugai xuehao:"); </p><p> scanf("%d",&i); getchar(); </p><p> while((fread(&data,sizeof(data),1,fp))==1) </p><p><b> { </b></p&g
41、t;<p> j=atoi(data.xuehao); </p><p><b> if(j==i) </b></p><p><b> { </b></p><p> printf("xuehao:%s\nmingzi:%s\nnianling:%s\n",data.xuehao
42、,data.mingzi,data.nianling); </p><p> printf("Please shuru mingzi:"); </p><p> gets(data.mingzi); </p><p> printf("Please shuru shuxue score:"); </p>&
43、lt;p> gets(temp);data.score[0]=atof(temp); </p><p> printf("Please input yingyu score:"); </p><p> gets(temp);data.score[1]=atof(temp); </p><p> printf("Please
44、 input wuli score:"); </p><p> gets(temp);data.score[2]=atof(temp); </p><p> data.score[3]=data.score[0]+data.score[1]+data.score[2];</p><p> } fwrite(&data,sizeof(data)
45、,1,fp1); </p><p><b> } </b></p><p> fseek(fp,0L,0); /*將位置指針移到離頭文件0個(gè)字節(jié)處*/</p><p> fseek(fp1,0L,0); </p><p> while((fread(&data,sizeof(data),1,fp1))==
46、1) </p><p><b> { </b></p><p> fwrite(&data,sizeof(data),1,fp); </p><p><b> } </b></p><p> fclose(fp); </p><p> fclose(fp1)
47、; </p><p><b> }</b></p><p><b> 刪除模塊:</b></p><p><b> [分析]:</b></p><p> 該模塊的功能是,用戶輸入要?jiǎng)h除的學(xué)生的學(xué)號(hào),根據(jù)學(xué)生學(xué)號(hào)查找記錄并刪除.</p><p>&
48、lt;b> [流程圖]:</b></p><p> Y N</p><p><b> Y</b></p><p><b> N</b></p><p><b> [程序]:</b><
49、;/p><p> void deleterecord(student stu[],int i) /*刪除信息*/ </p><p><b> { </b></p><p><b> int j; </b></p><p> while(i>=0) </p><p>
50、<b> { </b></p><p> for(j=i;j<numstus;j++) </p><p> stu[j]=stu[j+1]; </p><p> numstus--; </p><p> printf("刪除成功!\n"); </p><p>&
51、lt;b> } </b></p><p><b> } </b></p><p> void count(student stud[]) </p><p><b> { </b></p><p><b> int i,j; </b></p>
52、;<p> for(i=0;i<numstus;i++) </p><p><b> { </b></p><p> stud[i].index=1; </p><p> for(j=0;j<numstus;j++) </p><p> if(stud[j].score>stud
53、[i].score) </p><p> stud[i].index++; </p><p><b> } </b></p><p><b> }</b></p><p><b> 查找模塊:</b></p><p><b> [需求
54、分析]:</b></p><p> 該模塊的功能是根據(jù)輸入的學(xué)生的姓名查找對(duì)應(yīng)的記錄,找到以后,顯示相應(yīng)的學(xué)生信息.</p><p><b> [流程圖]:</b></p><p> Y N</p><p><b>
55、 N</b></p><p><b> Y</b></p><p><b> [程序]:</b></p><p> //#include "head.h" </p><p> int findrecord(student stud[]) /*查找信息*/ &l
56、t;/p><p><b> { </b></p><p> char str[2]; </p><p> int i,num; </p><p> if(numstus==0) </p><p><b> { </b></p><p> pri
57、ntf("沒(méi)有可被查找的記錄\n"); </p><p> return -1; </p><p><b> } </b></p><p><b> else </b></p><p><b> { </b></p><p>
58、 printf("以何種方式查找?\n1.學(xué)號(hào)\t2.姓名\t3.名次\n"); </p><p> gets(str); </p><p> if(str[0]=='1') /*按學(xué)號(hào)查找*/ </p><p><b> { </b></p><p> printf(&qu
59、ot;請(qǐng)輸入學(xué)號(hào):"); </p><p> gets(str); </p><p> for(i=0;i<=numstus;i++) </p><p> if(strcmp(str,stud[i].number)==0) </p><p><b> { </b></p><p
60、> display(stud,i,i); </p><p><b> break; </b></p><p><b> } </b></p><p> else continue; </p><p><b> } </b></p><p>
61、; else if(str[0]=='2') /*按姓名查找*/ </p><p><b> { </b></p><p> printf("請(qǐng)輸入姓名:"); </p><p> gets(str); </p><p> for(i=0;i<=numstus;i++)
62、 </p><p> if(strcmp(str,stud[i].name)==0) </p><p><b> { </b></p><p> display(stud,i,i); </p><p><b> break; </b></p><p><b>
63、; } </b></p><p> else continue; </p><p><b> } </b></p><p> else if(str[0]=='3') /*按名次查找*/ </p><p><b> { </b></p><p
64、> printf("請(qǐng)輸入名次:"); </p><p> scanf("%d",&num); </p><p> getchar(); </p><p> for(i=0;i<=numstus;i++) </p><p> if(num==stud[i].index) &
65、lt;/p><p><b> { </b></p><p> display(stud,i,i); </p><p><b> break; </b></p><p><b> } </b></p><p> else continue; <
66、/p><p><b> } </b></p><p> if(i>numstus) </p><p><b> { </b></p><p> printf("沒(méi)有查找所要的信息。\n"); </p><p> return -1; </
67、p><p><b> } </b></p><p> return i; </p><p><b> } </b></p><p><b> } </b></p><p><b> 顯示模塊:</b></p>&
68、lt;p><b> [需求分析]:</b></p><p> 該模塊的功能是顯示所有學(xué)生記錄信息.</p><p><b> [程序]:</b></p><p> void welcome() </p><p><b> { </b></p>&l
69、t;p> printf("\t*************************************************************\n"); </p><p> printf("\t\t\t\t**學(xué)生成績(jī)管理系統(tǒng)**\n\t\t\t\t 傾情奉獻(xiàn) 歡迎使用!\n"); </p><p> printf("
70、\t*************************************************************\n"); </p><p><b> } </b></p><p> void showtable() </p><p><b> { </b></p><p&
71、gt; printf("---------------------------------------------------------------------------------------\n"); </p><p> printf("學(xué)號(hào)\t姓名\t性別\t語(yǔ)文\t數(shù)學(xué)\t英語(yǔ)\t歷史\t政治\t總分\t平均分\t名次\n"); </p>&l
72、t;p> printf("---------------------------------------------------------------------------------------\n"); </p><p><b> } </b></p><p> void display(student stud[],int n
73、1,int n2) </p><p><b> { </b></p><p><b> int i; </b></p><p> showtable(); /*顯示表頭*/ </p><p> for(i=n1;i<=n2;i++) </p><p> pri
74、ntf("%s\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].
75、score,stud[i].average,stud[i].index); </p><p> /*通過(guò)循環(huán)輸出數(shù)據(jù)*/ </p><p><b> } </b></p><p> void display1() </p><p><b> { </b></p><p&g
76、t; printf("\t\t本系統(tǒng)由計(jì)科二班制作\n\n"); </p><p> printf("\t\t制作人員列表: \n\n"); </p><p> printf("\t\t殷增鋒\t\t\t邵超\n"); </p><p> printf("\n\n"); <
77、/p><p> getchar(); </p><p><b> } </b></p><p><b> 調(diào)試與測(cè)試</b></p><p> 在這次課程設(shè)計(jì)中,程序編寫(xiě)過(guò)程中遇到了很多的問(wèn)題,各種函數(shù)的運(yùn)用也讓人頭疼,在上機(jī)編譯運(yùn)行過(guò)程中出現(xiàn)了很多的錯(cuò)誤,例如:各種數(shù)據(jù)類(lèi)型的定義,函數(shù)的調(diào)用等
78、等。但最終還是在老師同學(xué)的幫助下進(jìn)行了各種代碼的編寫(xiě)與修改,最終程序成功的運(yùn)行。</p><p> 下面是各個(gè)模塊的界面圖</p><p> (1) 主菜單函數(shù):</p><p> (2): 輸入模塊:</p><p> (3): 顯示模塊:</p><p> (4): 刪除模塊:</p>&l
79、t;p> (5): 查找模塊:</p><p> (6): 修改模塊:</p><p><b> 程序源</b></p><p> #ifndef H_STUDENT_HH </p><p> #define H_STUDENT_HH </p><p> #include &qu
80、ot;stdio.h" </p><p> #include "string.h" </p><p> #include "malloc.h" </p><p> #define LEN sizeof(struct message_student) /*一個(gè)結(jié)構(gòu)體數(shù)組元素的長(zhǎng)度*/ </p>&l
81、t;p> #define numsubs 5 /*學(xué)科數(shù)目*/ </p><p> typedef struct message_student /*結(jié)構(gòu)體定義*/ </p><p><b> { </b></p><p> char number[6]; </p><p> char name[20];
82、 </p><p> char sex[4]; </p><p> float subject[numsubs]; </p><p> float score; </p><p> float average; </p><p> int index; </p><p> }stud
83、ent; </p><p> extern int numstus; /*學(xué)生數(shù)目*/ </p><p> extern student *pointer; /*指向結(jié)構(gòu)體數(shù)組*/ </p><p> extern int lens; </p><p> int menu_select(); /*函數(shù)聲明*/ </p>
84、<p> int openfile(student stu[]); </p><p> int findrecord(student stud[]); </p><p> int writetotext(student stud[]); </p><p> void welcome(); </p><p> void di
85、splay1(); </p><p> void showtable(); </p><p> void sort(student stu[]); </p><p> void deleterecord(student stu[],int i); </p><p> void addrecord(student stud[]); &l
86、t;/p><p> void display(student stud[],int n1,int n2); </p><p> void amendrecord(student stud[]); </p><p> void count(student stud[]); </p><p> void sortnum(student stu
87、d[]); </p><p> void sortnum2(student stud[]); </p><p> void sortname(student stud[]); </p><p> void sortname2(student stud[]); </p><p> void sortcount(student stud[
88、]); </p><p> void sortcount2(student stud[]); </p><p> void statistic(student stud[]); </p><p> void display1(); </p><p><b> #endif </b></p><
89、p> //#include "head.h" </p><p> int menu_select() </p><p><b> { </b></p><p><b> char c; </b></p><p> printf("\n\n");
90、 </p><p> printf(" | 1. 增加學(xué)生記錄 5.統(tǒng)計(jì)信息 |\n"); </p><p> printf(" | 2. 查詢(xún)學(xué)生記錄 6.打開(kāi)文件 |\n"); </p><p> printf(" | 3. 修改學(xué)生記錄 7.保存文件 |\n");
91、</p><p> printf(" | 4. 學(xué)生紀(jì)錄排序 8.顯示記錄 |\n"); </p><p> printf(" | 0. 退出系統(tǒng) |\n"); </p><p> printf("\n\n"); </p><p> printf("請(qǐng)選擇
92、(0-8):"); </p><p> c=getchar(); </p><p> getchar(); </p><p> return (c-'0'); </p><p><b> } </b></p><p> //#include "head
93、.h" </p><p> int findrecord(student stud[]) /*查找信息*/ </p><p><b> { </b></p><p> char str[2]; </p><p> int i,num; </p><p> if(numstus=
94、=0) </p><p><b> { </b></p><p> printf("沒(méi)有可被查找的記錄\n"); </p><p> return -1; </p><p><b> } </b></p><p><b> else &
95、lt;/b></p><p><b> { </b></p><p> printf("以何種方式查找?\n1.學(xué)號(hào)\t2.姓名\t3.名次\n"); </p><p> gets(str); </p><p> if(str[0]=='1') /*按學(xué)號(hào)查找*/ <
96、;/p><p><b> { </b></p><p> printf("請(qǐng)輸入學(xué)號(hào):"); </p><p> gets(str); </p><p> for(i=0;i<=numstus;i++) </p><p> if(strcmp(str,stud[i]
97、.number)==0) </p><p><b> { </b></p><p> display(stud,i,i); </p><p><b> break; </b></p><p><b> } </b></p><p> else
98、continue; </p><p><b> } </b></p><p> else if(str[0]=='2') /*按姓名查找*/ </p><p><b> { </b></p><p> printf("請(qǐng)輸入姓名:"); </p>
99、;<p> gets(str); </p><p> for(i=0;i<=numstus;i++) </p><p> if(strcmp(str,stud[i].name)==0) </p><p><b> { </b></p><p> display(stud,i,i); <
100、/p><p><b> break; </b></p><p><b> } </b></p><p> else continue; </p><p><b> } </b></p><p> else if(str[0]=='3'
101、;) /*按名次查找*/ </p><p><b> { </b></p><p> printf("請(qǐng)輸入名次:"); </p><p> scanf("%d",&num); </p><p> getchar(); </p><p>
102、for(i=0;i<=numstus;i++) </p><p> if(num==stud[i].index) </p><p><b> { </b></p><p> display(stud,i,i); </p><p><b> break; </b></p>
103、<p><b> } </b></p><p> else continue; </p><p><b> } </b></p><p> if(i>numstus) </p><p><b> { </b></p><p>
104、 printf("沒(méi)有查找所要的信息。\n"); </p><p> return -1; </p><p><b> } </b></p><p> return i; </p><p><b> } </b></p><p><b>
105、 } </b></p><p> //#include"head.h" </p><p> int openfile(student stu[]) </p><p><b> { </b></p><p> int i=0,j; </p><p> FI
106、LE *fp; </p><p> char filename[20],str[2]; </p><p> if(numstus!=0) </p><p><b> { </b></p><p> printf("已經(jīng)有記錄存在,是否保存?(y/n)"); </p><p&
107、gt; gets(str); </p><p> if(str[0]=='y'||str[0]=='Y') </p><p> writetotext(stu); </p><p><b> } </b></p><p> printf("請(qǐng)輸入文件名:");
108、 </p><p> gets(filename); </p><p> numstus=0; </p><p> if((fp=fopen(filename,"rb+"))==NULL) </p><p><b> { </b></p><p> printf(&q
109、uot;無(wú)法打開(kāi)該文件\n"); </p><p> return(-1); </p><p><b> } </b></p><p> fscanf(fp,"%d",&numstus); </p><p> fgetc(fp); </p><p>
110、 while(i<numstus) </p><p><b> { </b></p><p> fscanf(fp,"%s",stu[i].number); </p><p> fscanf(fp,"%s",stu[i].name); </p><p> fscanf
111、(fp,"%s",stu[i].sex); </p><p> for(j=0;j<numsubs;j++) </p><p> fscanf(fp,"%f",&stu[i].subject[j]); </p><p> fscanf(fp,"%f",&stu[i].score)
112、; </p><p> fscanf(fp,"%f",&stu[i].average); </p><p> fscanf(fp,"%d",&stu[i].index); </p><p><b> i++; </b></p><p><b> }
113、 </b></p><p> fclose(fp); </p><p> printf("文件讀取成功\n"); </p><p> printf("是否顯示紀(jì)錄?(y/n)"); </p><p> gets(str); </p><p> if(str[
114、0]=='y'||str[0]=='Y') </p><p> display(stu,0,numstus-1); </p><p> return(0); </p><p><b> } </b></p><p> //#include "head.h" &l
115、t;/p><p> void sort(student stud[]) </p><p><b> { </b></p><p> int i,j=0; </p><p> char str[5]; </p><p> student *p; </p><p><
116、;b> p=stud; </b></p><p> if(numstus==0) </p><p><b> { </b></p><p> printf("沒(méi)有可供查詢(xún)的記錄!"); </p><p><b> } </b></p>&
117、lt;p><b> while(1) </b></p><p><b> { </b></p><p> for(i=0;;i++) </p><p><b> { </b></p><p> printf(" 請(qǐng)輸入查詢(xún)方式:"); <
118、;/p><p> printf("(直接輸入回車(chē)則結(jié)束查詢(xún)操作)\n"); </p><p> printf("1.按照學(xué)號(hào)\t"); </p><p> printf("2.按照姓名\t"); </p><p> printf("3.按照名次\n"); &l
119、t;/p><p> gets(str); </p><p> if(strlen(str)==0) break; </p><p> if(str[0]=='1') </p><p><b> { </b></p><p> printf("請(qǐng)輸入排序次序:\n&q
120、uot;); </p><p> printf("1.升序排列\(zhòng)t"); </p><p> printf("2.降序排列\(zhòng)n"); </p><p> gets(str); </p><p> if(str[0]=='1') </p><p> sor
121、tnum2(p); </p><p><b> else </b></p><p> sortnum(p); </p><p> display(stud,0,numstus-1); </p><p><b> } </b></p><p> else if(str
122、[0]=='2') </p><p><b> { </b></p><p> printf("請(qǐng)輸入排序次序:\n"); </p><p> printf("1.升序排列\(zhòng)t"); </p><p> printf("2.降序排列\(zhòng)n"
123、); </p><p> gets(str); </p><p> if(str[0]=='1') </p><p> sortname2(p); </p><p><b> else </b></p><p> sortname(p); </p><
124、p> display(stud,0,numstus-1); </p><p><b> } </b></p><p> else if(str[0]=='3') </p><p><b> { </b></p><p> printf("請(qǐng)輸入排序次序:\n
125、"); </p><p> printf("1.升序排列\(zhòng)t"); </p><p> printf("2.降序排列\(zhòng)n"); </p><p> gets(str); </p><p> if(str[0]=='1') </p><p> s
126、ortcount2(p); </p><p><b> else </b></p><p> sortcount(p); </p><p> display(stud,0,numstus-1); </p><p><b> } </b></p><p> else
127、printf("請(qǐng)輸入1~3"); </p><p> printf("是否退出排序?(y/n)"); </p><p> gets(str); </p><p> if(str[0]=='y'||str[0]=='Y') break; </p><p><b
128、> } </b></p><p><b> return; </b></p><p><b> } </b></p><p><b> } </b></p><p> void sortnum(student stud[]) </p>
129、<p><b> { </b></p><p><b> int i,j; </b></p><p> student temp; </p><p> student *p; </p><p><b> p=stud; </b></p><
130、;p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++) </p><p><b> { </b></p><p> if(strcmp(stud[j+1].number,stud[j].number)>0) </p><p
131、><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=*(p+j+1); </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p><b> } &
132、lt;/b></p><p><b> } </b></p><p> void sortnum2(student stud[]) </p><p><b> { </b></p><p><b> int i,j; </b></p><p&g
133、t; student temp; </p><p> student *p; </p><p><b> p=stud; </b></p><p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++) </p><
134、;p><b> { </b></p><p> if(strcmp(stud[j].number,stud[j+1].number)>0) </p><p><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=*(p+j+1);
135、 </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> void sortname(student stud
136、[]) </p><p><b> { </b></p><p><b> int i,j; </b></p><p> student temp; </p><p> student *p; </p><p><b> p=stud; </b>
137、;</p><p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++) </p><p><b> { </b></p><p> if(strcmp(stud[j+1].name,stud[j].name)>0) </
138、p><p><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=*(p+j+1); </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p>&l
139、t;b> } </b></p><p><b> } </b></p><p> void sortname2(student stud[]) </p><p><b> { </b></p><p><b> int i,j; </b></p
140、><p> student temp; </p><p> student *p; </p><p><b> p=stud; </b></p><p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++) &l
141、t;/p><p><b> { </b></p><p> if(strcmp(stud[j].name,stud[j+1].name)>0) </p><p><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=
142、*(p+j+1); </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> void sortcount(st
143、udent stud[]) </p><p><b> { </b></p><p><b> int i,j; </b></p><p> student temp; </p><p> student *p; </p><p><b> p=stud;
144、 </b></p><p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++) </p><p><b> { </b></p><p> if(stud[j+1].index>stud[j].index) <
145、;/p><p><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=*(p+j+1); </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p>
146、<b> } </b></p><p><b> } </b></p><p> void sortcount2(student stud[]) </p><p><b> { </b></p><p><b> int i,j; </b><
147、;/p><p> student temp; </p><p> student *p; </p><p><b> p=stud; </b></p><p> for(i=0;i<numstus;i++) </p><p> for(j=0;j<numstus-i-1;j++)
148、 </p><p><b> { </b></p><p> if(stud[j].index>stud[j+1].index) </p><p><b> { </b></p><p> temp=*(p+j); </p><p> *(p+j)=*(p+j
149、+1); </p><p> *(p+j+1)=temp; </p><p><b> } </b></p><p><b> } </b></p><p><b> } </b></p><p> //#include"head.h
150、" </p><p> void statistic(student stud[]) /*新增功能,輸出統(tǒng)計(jì)信息*/ </p><p><b> { </b></p><p> int i,j=0,k=0; </p><p> char c1,str[2]; </p><p>
151、 float average[numsubs],sum=0; </p><p> if(numstus==0) </p><p> printf("沒(méi)有可被查找的記錄\n"); </p><p><b> else </b></p><p><b> { </b><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)--c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)-學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)———學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)_學(xué)生成績(jī)管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)--學(xué)生成績(jī)管理
- c語(yǔ)言課程設(shè)計(jì)--- 學(xué)生成績(jī)管理
評(píng)論
0/150
提交評(píng)論