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