




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include #include #include #include #define LEN sizeof(struct message_student) /*一個(gè)結(jié)構(gòu)體數(shù)組元素的長度*/#define numsubs 5 /*學(xué)科數(shù)目*/typedef struct message_student/*結(jié)構(gòu)體定義*/ char number6; char name20; int age; int birthday; char sex4; char address20; float subjectnumsubs; float score; float average; int index; s
2、tudent;int numstus; /*學(xué)生數(shù)目*/ student *pointer;/*指向結(jié)構(gòu)體數(shù)組的指針*/ int lens; int menu_select(); /*函數(shù)聲明*/int openfile(student stu); int findrecord(student stud); int writetotext(student stud); void welcome(); void display1(); void showtable(); void sort(student stu); void deleterecord(student stu,int i); v
3、oid addrecord(student stud); void display(student stud,int n1,int n2); void amendrecord(student stud); void count(student stud); void sortnum(student stud); void sortnum2(student stud); void sortname(student stud); void sortname2(student stud); void sortcount(student stud); void sortcount2(student s
4、tud); void statistic(student stud); void display1(); void main() int i=1; char str2; lens=100; pointer=(student *)malloc(lens*LEN); numstus=0; welcome(); system (color 1f); while(i0) i=menu_select(); switch(i) case 1:addrecord(pointer);break; /*增加學(xué)生信息*/ case 2:findrecord(pointer);break; /*查詢學(xué)生信息*/ c
5、ase 3:amendrecord(pointer);break;/*修改學(xué)生信息*/ case 4:sort(pointer);break; /*學(xué)生信息排序*/ case 5:statistic(pointer);break;/*統(tǒng)計(jì)信息*/ case 6:openfile(pointer);break;/*打開文件*/ case 7:writetotext(pointer);break;/*保存文件*/ case 8:display(pointer,0,numstus-1);break;/*顯示記錄*/ case 0: if(numstus!=0) printf(是否保存當(dāng)前記錄?(y/
6、n); gets(str); if(str0=y|str0=Y) writetotext(pointer); i=-1;break;/*退出系統(tǒng)*/ default:printf(請(qǐng)輸入數(shù)字08:n);i=1; /*輸入錯(cuò)誤*/ printf(tt謝謝使用!歡迎再次使用本系統(tǒng)。nn); display1(); void welcome() printf(t*n); printf(tt*南京工程學(xué)院學(xué)生信息管理系統(tǒng)*ntttt n); printf(); printf(t*n); void display1() printf(tt制作人-丁文豪nn); printf(tt nn); printf
7、(ttn); printf(nn); getchar(); /*菜單*/int menu_select() char c; printf(nn); printf( | 增加學(xué)生記錄 |n); printf( | 查詢學(xué)生記錄 |n); printf( | 修改學(xué)生記錄 |n); printf( | 學(xué)生紀(jì)錄排序 |n); printf( | 統(tǒng)計(jì)信息 |n); printf( | 打開文件 |n); printf( | 保存文件 |n); printf( | 顯示記錄 |n); printf( | 0 退出系統(tǒng) |n); printf(nn); printf(請(qǐng)選擇(0-8):); c=get
8、char(); getchar(); return (c-0); /*輸入模塊*/ void addrecord(student stud) int i=0,j,num; char str5; if(numstus!=0) printf(已有記錄存在是否覆蓋?(y/n)n); gets(str); if(str0=Y|str0=y) i=0; else i=numstus; printf(請(qǐng)輸入增加的學(xué)生信息條目數(shù):); scanf(%d,&num); if(i=0) numstus=num; else numstus+=num; if(numstuslens) lens+=50; point
9、er=(student *)realloc(pointer,lens*LEN); printf(請(qǐng)輸入學(xué)生信息:n); for(;inumstus;i+) getchar(); printf(請(qǐng)輸入學(xué)號(hào):); gets(pointeri.number); printf(請(qǐng)輸入姓名:); gets(); printf(請(qǐng)輸入學(xué)生年齡:); scanf(%d,&studi.age); printf(請(qǐng)輸入學(xué)生出生年月:); scanf(%d,&studi.birthday); getchar(); printf(請(qǐng)輸入性別(男/女 1/0):); gets(pointer
10、i.sex); if(pointeri.sex0=0) strcpy(pointeri.sex,女); else strcpy(pointeri.sex,男); printf(請(qǐng)輸入學(xué)生地址:); gets(pointeri.address); printf(請(qǐng)輸入各科成績:按高數(shù),線性代數(shù),英語,C語言,電路原理的順序); studi.score=0; for(j=0;jnumsubs;j+) scanf(%f,&studi.subjectj); studi.score+=studi.subjectj; studi.average=studi.score/numsubs; count(stu
11、d); display(stud,0,numstus-1); getchar(); int numstus; int lens; student *pointer;/*顯示模塊*/void showtable() printf(-n); printf(學(xué)號(hào)|姓名|年齡|出生年月|性別|高數(shù)|線性代數(shù)|英語|C語言|電路原理|總分|平均分|名次); printf(-n); void display(student stud,int n1,int n2) int i; showtable(); for(i=n1;i=n2;i+)/*顯示表頭*/ printf(%s %s %d %d %s %.2f
12、 %.2f %.2f %.2f %.2f %.2f %.2f %dtn,studi.number,,studi.age,studi.birthday,studi.sex,studi.subject0,studi.subject1,studi.subject2,studi.subject3,studi.subject4,studi.score,studi.average,studi.index); getchar();/*保存*/int writetotext(student stud) int i=0,j; FILE *fp; char filename20; printf
13、(輸入文件名稱:); gets(filename); fp=fopen(filename,w); fprintf(fp,%dn,numstus); while(inumstus) fprintf(fp,%s %s %s ,studi.number,,studi.sex); for(j=0;jnumsubs;j+) fprintf(fp,%f ,studi.subjectj); fprintf(fp,%f %f %d ,studi.score,studi.average,studi.index); i+; fclose(fp); printf(已成功存儲(chǔ)!n); displa
14、y(stud,0,numstus-1); numstus=0; return 0; /*查找模塊*/ int findrecord(student stud) char str2; int i,num; if(numstus=0) printf(沒有可被查找的記錄n); return -1; else printf(以何種方式查找?n1.學(xué)號(hào)t2.姓名t3.名次n); gets(str); if(str0=1) printf(請(qǐng)輸入學(xué)號(hào):); gets(str); for(i=0;i=numstus;i+) if(strcmp(str,studi.number)=0) display(stud
15、,i,i); break; else continue; else if(str0=2) printf(請(qǐng)輸入姓名:); gets(str); for(i=0;i=numstus;i+) if(strcmp(str,)=0) display(stud,i,i); break; else continue; else if(str0=3) printf(請(qǐng)輸入名次:); scanf(%d,&num); getchar(); for(i=0;inumstus) printf(沒有查找所要的信息。n); return -1; return i; int openfile(stud
16、ent stu) /*將所有記錄寫入文件*/ int i=0,j; FILE *fp; char filename20,str2; if(numstus!=0) printf(已經(jīng)有記錄存在,是否保存?(y/n); gets(str); if(str0=y|str0=Y) writetotext(stu); printf(請(qǐng)輸入文件名:); gets(filename); numstus=0; if(fp=fopen(filename,rb+)=NULL) printf(無法打開該文件n); return(-1); fscanf(fp,%d,&numstus); fgetc(fp); whil
17、e(inumstus) fscanf(fp,%s,stui.number); fscanf(fp,%s,); fscanf(fp,%s,stui.sex); for(j=0;jnumsubs;j+) fscanf(fp,%f,&stui.subjectj); fscanf(fp,%f,&stui.score); fscanf(fp,%f,&stui.average); fscanf(fp,%d,&stui.index); i+; fclose(fp); printf(文件讀取成功n); printf(是否顯示紀(jì)錄?(y/n); gets(str); if(str0=y|str
18、0=Y) display(stu,0,numstus-1); return(0); /*排序模塊*/ void sort(student stud) int i,j=0; char str5; student *p; p=stud; if(numstus=0) printf(沒有可供查詢的記錄!); while(1) for(i=0;i+) printf( 請(qǐng)輸入查詢方式:); printf((直接輸入回車則結(jié)束查詢操作)n); printf(1.按照學(xué)號(hào)t); printf(2.按照姓名t); printf(3.按照名次n); gets(str); if(strlen(str)=0) bre
19、ak; if(str0=1) printf(請(qǐng)輸入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortnum2(p); else sortnum(p); display(stud,0,numstus-1); else if(str0=2) printf(請(qǐng)輸入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortname2(p); else sortname(p); display(stud,0,numstus-1); els
20、e if(str0=3) printf(請(qǐng)輸入排序次序:n); printf(1.升序排列t); printf(2.降序排列n); gets(str); if(str0=1) sortcount2(p); else sortcount(p); display(stud,0,numstus-1); else printf(請(qǐng)輸入13); printf(是否退出排序?(y/n); gets(str); if(str0=y|str0=Y) break; return; void sortnum(student stud) /采用冒泡排序法 int i,j; student temp; student
21、 *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortnum2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortname(student stud) int i,j; student temp; student *
22、p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortname2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;j0) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortcount(student stud) int i,j; student temp; student *
23、p; p=stud; for(i=0;inumstus;i+) for(j=0;jstudj.index) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; void sortcount2(student stud) int i,j; student temp; student *p; p=stud; for(i=0;inumstus;i+) for(j=0;jstudj+1.index) temp=*(p+j); *(p+j)=*(p+j+1); *(p+j+1)=temp; /*處理模塊*/ void statistic(student stud)
24、int i,j=0,k=0; char c1,str2; float averagenumsubs,sum=0; if(numstus=0) printf(沒有可被查找的記錄n); else while(1) printf(下面將統(tǒng)計(jì)考試成績n); printf(“請(qǐng)選擇你要統(tǒng)計(jì)哪科的成績 1.At2.Bt3.Ct4.Dt5.En); c1=getchar(); printf(t一共有個(gè)%d記錄n,numstus);/*總共記錄數(shù)*/ switch(c1) case 1: for(i=0;istudi.subject0) k=i; if(studj.subject0studi.subject0
25、) j=i; average0=sum/numstus; printf(t科目A的最高分:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studj.number,,studj.subject0); printf(t科目A的最低分是:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studk.number,,studk.subject0); printf(t科目A的平均分是 %5.2fn,average0); break; case 2: for(i=0;istudi.subject1) k=i; if(studj
26、.subject1studi.subject1) j=i; average1=sum/numstus; printf(t科目B的最高分:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studj.number,,studj.subject1); printf(t科目B的最低分是:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studk.number,,studk.subject1); printf(t科目B的平均分是 %5.2fn,average1); break; case 3: for(i=0;istudi.
27、subject2) k=i; if(studj.subject2studi.subject2) j=i; average2=sum/numstus; printf(t科目C的最高分:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studj.number,,studj.subject2); printf(t科目C的最低分是:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studk.number,,studk.subject2); printf(t科目C的平均分是 %5.2fn,average2); break;
28、case 4: for(i=0;istudi.subject3) k=i; if(studj.subject3studi.subject3) j=i; average3=sum/numstus; printf(t科目D的最高分:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studj.number,,studj.subject3); printf(t科目D的最低分是:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studk.number,,studk.subject3); printf(t科目D的平均分是 %5.2fn,average3); break; case 5: for(i=0;istudi.subject4) k=i; if(studj.subject4studi.subject4) j=i; average4=sum/numstus; printf(t科目E的最高分:n); printf(tt學(xué)號(hào):%s 姓名:%s 分?jǐn)?shù):%.2fn,studj.number,,st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度二手車寄售代理服務(wù)合同
- 2025年度吊車租賃與施工現(xiàn)場(chǎng)管理服務(wù)協(xié)議
- 2025年車貸居間服務(wù)收費(fèi)標(biāo)準(zhǔn)合同范本
- 建立適應(yīng)性強(qiáng)的財(cái)務(wù)體系計(jì)劃
- 學(xué)生領(lǐng)導(dǎo)力培養(yǎng)課程計(jì)劃
- 教學(xué)工作創(chuàng)新方向計(jì)劃
- 年度戰(zhàn)略性談判的技巧分享計(jì)劃
- 市場(chǎng)調(diào)研與分析工作安排計(jì)劃
- 特色課程開發(fā)與實(shí)施方案計(jì)劃
- 高危作業(yè)的安全保障措施優(yōu)化計(jì)劃
- 1.2《友邦驚詫論》教學(xué)設(shè)計(jì)-【中職專用】高二語文同步講堂(高教版2024·拓展模塊上冊(cè))
- 《紡織服裝材料》課件-0緒論
- 盤扣式卸料平臺(tái)施工方案
- 繪本故事在小學(xué)道德與法治課堂中的有效教學(xué)策略分析
- 2023年江蘇省鹽城市中考數(shù)學(xué)試卷及答案
- 胃癌影像診斷(共42張)
- 2024新高考英語1卷試題及答案(含聽力原文)
- G -B- 43068-2023 煤礦用跑車防護(hù)裝置安全技術(shù)要求(正式版)
- 劍橋KET詞匯表(中英對(duì)照)
- 2024年湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試題庫附答案
- 2024年4月浙江省00015英語二試題及答案含評(píng)分參考
評(píng)論
0/150
提交評(píng)論