c語(yǔ)言實(shí)訓(xùn)學(xué)生信息管理系統(tǒng)_第1頁(yè)
c語(yǔ)言實(shí)訓(xùn)學(xué)生信息管理系統(tǒng)_第2頁(yè)
c語(yǔ)言實(shí)訓(xùn)學(xué)生信息管理系統(tǒng)_第3頁(yè)
c語(yǔ)言實(shí)訓(xùn)學(xué)生信息管理系統(tǒng)_第4頁(yè)
c語(yǔ)言實(shí)訓(xùn)學(xué)生信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、#include#include#include#define N 8struct Studentchar num10;/學(xué)號(hào) char name8;/姓名 char major10;/專(zhuān)業(yè)(computer,software,network) int classNo;/班級(jí)(1-2) int score3;/3門(mén)課的成績(jī)(高數(shù),離散,c語(yǔ)言);typedef struct Student STU;/-函數(shù)聲明-void input(STU *p);void save(STU *p,int n);void output(STU *p);void load(STU *p,int n);void

2、fetch();void Max();void sort_select();void sort_buble();void search();/-主函數(shù)開(kāi)始-void main()int j,id; STU studentN,temN;/用于保存輸入的N名學(xué)生信息 while(1)printf(ttt學(xué)生信息管理系統(tǒng)tttnn); printf(1-輸入信息n); printf(2-文件存盤(pán)n); printf(3-打開(kāi)文件輸出n); printf(4-隨機(jī)讀取n); printf(5-單科成績(jī)最高分的學(xué)生n); printf(6-選擇法對(duì)所有學(xué)生平均成績(jī)由低到高排序n); printf(7-起

3、泡法對(duì)班級(jí)學(xué)生平均成績(jī)由高到低排序n); printf(8-綜合查找班級(jí)分?jǐn)?shù)總分n); printf(其他-退出n); scanf(%d,&id); getchar(); switch(id)case 1:for(j=0;jN;j+)printf(%dn,j+1); input(student+j); /輸入信息 break; case 2: save(student,N); /文件存盤(pán) break; case 3:load(tem,N); printf(學(xué)號(hào) 姓名 專(zhuān)業(yè) 班級(jí) 高數(shù) 離散 c語(yǔ)言 平均分 總分n); for(j=0;jN;j+)output(tem+j); break; /讀

4、取文件 case 4:fetch(); /隨機(jī)讀取 break; case 5:Max(); /單科成績(jī)最高分的學(xué)生 break; case 6:sort_select(); /選擇法對(duì)所有學(xué)生平均成績(jī)由低到高排序 break; case 7:sort_buble(); /起泡法對(duì)班級(jí)學(xué)生平均成績(jī)由高到低排序 break;case 8:search(); /綜合查找班級(jí)分?jǐn)?shù)總分 break;default:break; /其他鍵退出if(id8) break;/-輸入函數(shù)-void input(STU *p)int i;printf(n請(qǐng)輸入學(xué)號(hào),回車(chē)結(jié)束:);scanf(%s,&p-num)

5、;getchar();printf(n請(qǐng)輸入姓名,回車(chē)結(jié)束:);gets(p-name);printf(n請(qǐng)輸入專(zhuān)業(yè),回車(chē)結(jié)束:);gets(p-major);printf(n請(qǐng)輸入班級(jí),回車(chē)結(jié)束:);scanf(%d,&p-classNo);printf(n請(qǐng)輸入三科成績(jī),每門(mén)成績(jī)以回車(chē)結(jié)束:n);for(i=0;iscorei);getchar();/-寫(xiě)文件函數(shù)-void save(STU *p,int n)FILE *fp;int i;char filename20;printf(n請(qǐng)輸入保存的文件名:n);gets(filename);if(fp=fopen(filename,wb)

6、=NULL) /創(chuàng)建二進(jìn)制文件printf(cannot open filen);return;for(i=0;inum,p-name,p-major,p-classNo,p-score0,p-score1,p-score2,(*p).score0+(*p).score1+(*p).score2)/3.0, (*p).score0+(*p).score1+(*p).score2);/-讀文件函數(shù)-void load(STU *p,int n)FILE *fp;char filename20;printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename);fp=fopen(filename

7、,rb); /打開(kāi)二進(jìn)制文件fread(p,sizeof(STU),n,fp); /從文件中一次讀n個(gè)結(jié)構(gòu)體量值fclose(fp);/-隨機(jī)讀取-void fetch()FILE *fp;STU tem;char filename20;int i; printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename);fp=fopen(filename,rb); /打開(kāi)二進(jìn)制文件 printf(請(qǐng)輸入要查找的學(xué)生的編號(hào): );scanf(%d,&i);fseek(fp,i*sizeof(STU),0);fread(&tem,sizeof(STU),1,fp); /從文件中一次讀1個(gè)結(jié)構(gòu)體量值

8、printf(學(xué)號(hào) 姓名 專(zhuān)業(yè) 班級(jí) 高數(shù) 離散 c語(yǔ)言 平均分 總分n);output(&tem);fclose(fp);/-單科成績(jī)最高分的學(xué)生-void Max()int i,j;FILE *fp;STU temN,*max;char filename20;printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename);if(fp=fopen(filename,rb)=NULL)printf(cannot open file!n);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);printf(請(qǐng)輸入要查找的課程編號(hào): );scanf(%d,&

9、j); switch(j)case 0: /輸出課程printf(n高數(shù)n);break;case 1:printf(n離散n);break;case 2:printf(nc語(yǔ)言n); break;default:break; max=&tem0;for(i=0;iscorejscorej,max-name);fclose(fp);/-選擇法對(duì)所有學(xué)生平均成績(jī)由低到高排序-void sort_select()int i,j;FILE *fp;STU temN,m;char filename20;printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename); fp=fopen(filen

10、ame,rb);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);for(i=0;iN-1;i+) /選擇法開(kāi)始 for(j=i+1;j(temj.score0+temj.score1+temj.score2)m=temi; temi=temj; temj=m; /較小數(shù)放在前面 /選擇法結(jié)束printf(n所有學(xué)生按平均成績(jī)由低到高進(jìn)行排序,其順序?yàn)椋簄n);printf(學(xué)號(hào) 姓名 專(zhuān)業(yè) 班級(jí) 高數(shù) 離散 c語(yǔ)言 平均分 總分n);for(i=0;iN;i+)output(&temi);fclose(fp);/-起泡法對(duì)班級(jí)學(xué)生平均成績(jī)由高到低排序-v

11、oid sort_buble()FILE *fp;STU stu_class_aveN,m,temN;int count=0;int i,j,n;char filename20;printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename);if(fp=fopen(filename,rb)=NULL)printf(cannot open file!n);printf(請(qǐng)輸入要查詢(xún)的班級(jí)(1or2): n);scanf(%d,&n); for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp);for(i=0;iN;i+)if(temi.classNo=n)st

12、u_class_avecount=temi;count+; /實(shí)際元素?cái)?shù)for(i=0;icount-1;i+) /起泡法開(kāi)始for(j=0;jcount-1-i;j+)if(stu_class_avej.score0+stu_class_avej.score1+stu_class_avej.score2)(stu_class_avej+1.score0+stu_class_avej+1.score1+stu_class_avej+1.score2)m=stu_class_avej+1;stu_class_avej+1=stu_class_avej;stu_class_avej=m; /較大數(shù)

13、放在前面 /起泡法結(jié)束 printf(n班級(jí)學(xué)生按平均成績(jī)由高到低進(jìn)行排序,其順序?yàn)椋簄n);printf(學(xué)號(hào) 姓名 專(zhuān)業(yè) 班級(jí) 高數(shù) 離散 c語(yǔ)言 平均分 總分n); for(i=0;icount;i+)output(&stu_class_avei);fclose(fp);/-綜合查找班級(jí)分?jǐn)?shù)總分-void search()FILE *fp;int i,j;int count=0;int sumN;intk; /定義要查詢(xún)的總分STU temN; char filename20;printf(n請(qǐng)輸入打開(kāi)文件名:n);gets(filename); fp=fopen(filename,rb);for(i=0;iN;i+)fread(&temi,sizeof(STU),1,fp); for(i=0;iN;i+)sumi=temi.score0+temi.score1+temi.score2;printf(n請(qǐng)輸入要查找的班級(jí),總分下限:nn);scanf(%d %d,&j,&k); for(i=0;i=k)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論