版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、引用庫函數(shù) */char name10; /* int score5; /* Student;Student stu30; /*/*菜單選擇#include<stdio.h> /*#include<stdlib.h> /#include<ctype.h> #include<string.h>typedef struct /*定義結(jié)構(gòu)體數(shù)組 */ unsigned int num; /* 學(xué)號(hào) */姓名 */成績 */結(jié)構(gòu)體數(shù)組變量 */printf(*n");printf("ttt請(qǐng)輸入數(shù)字 1-9 加 enter 選擇功能操
2、作:n");*system("cls"); /*運(yùn)行前清屏 */printf("n*【學(xué)生成績管理系統(tǒng)】by 廣 工 10 電 子 2 曾 劍 浩*n");printf("tt | t1.輸入記錄|n");printf("tt | t2.顯示記錄|n");printf("tt | t3.掛科名單|n");printf("tt | t4.成績排序|n");printf("tt | t5.查詢記錄|n");printf("tt | t6.刪
3、除記錄|n");printf("tt | t7.插入文檔|n");printf("tt | t8.存入文檔|n");printf("tt | t9.退出程序|n");int menu_select() /* 菜單函數(shù) */ float c;char ch;H*scanf("%f",&c);while(c!=1&&c!=2&&c!=3&&c!=4&&c!=5&&c!=6&&c!=7&&c!
4、=8&&c!=9)while(ch=getchar()!='n')continue;printf(" 請(qǐng)輸入整型數(shù)字 1-9 ! n"); scanf("%f",&c); continue; / 跳過輸入的剩余部分return c; /*返回選擇 */*輸入 記錄int Input(Student stud,int n) /*system("color B0");int i=0,j;char sign='Y',x10; /*x10 while(sign='Y'|s
5、ign='y') /* 輸入若干條記錄 */為清除多余的數(shù)據(jù)所用 */ 判斷 */ttnt (輸入學(xué)號(hào)時(shí)輸入一個(gè)非數(shù)字的字符即可以返回到菜單界面) nttt 學(xué)號(hào): "); /* 交互輸入 */if(scanf("%u",&studn+i.num)!=1)break; printf("ttt 姓名: "); if(scanf("%s",studn+)!=1)break;printf("nttt 請(qǐng)依次輸入:高數(shù) 物理 外語 C 語言 德育 的成績: nttt"); fo
6、r(j=0;j<5;j+) scanf("%d",&studn+i.scorej); gets(x); /* 清除多余的輸入 */ printf("ttt 是否繼續(xù)輸入? ( 確定 Y/y ,否定 N/n)n"); scanf("ttt%c",&sign); /*輸入判斷 */i+; return n+i;顯示 記錄 /*2.*void Display(Student stud,int n) /* 顯示所有記錄 */格式頭 system("color A0"); int i; printf(&
7、quot;n"); /*/ printf(" 學(xué) 號(hào) 姓名 高數(shù) 物理 外語 C 語言 德育 n"); printf("n");for(i=1;i<n+1;i+) /* 循環(huán)輸入 */ printf("%12u %-6s %d %d %d %d %dn",studi-1.num,studi-1 .name,studi-1.score0,studi-1.score1,studi-1.score2,studi-1.score3,stud i-1.score4);printf("n");system(&q
8、uot;pause");輸出不及格學(xué)生名單* void Disqualified(Student stud,int n) system("color 47");int i,j;printf("nn");for(i=0;i<5;i+)switch(i)case 0:printf("tt高 數(shù)(不及格):學(xué) 號(hào)t姓 名t成績n");break;case 1:printf("nnnttbreak; case 2: printf("nnntt break;物 理(不及格):外 語(不及格):學(xué)號(hào)t學(xué)號(hào)t姓
9、名 t姓 名 t成績 n");成績 n");case 3:printf("nnnttC語 言(不及格):學(xué)號(hào)t姓 名 t成績 n");break;case 4:printf("nnntt德 育(不及格):學(xué)號(hào)t姓 名 t成績 n");break;printf("n");for(j=0;j<n;j+) if(studj.scorei<60)printf("ttt %12u %8s %4dn",studj.num,,studj.scorei); printf(&quo
10、t;nntttt");成績 排序/ /*void Sort(Student stud,int n) /*按成績從高到低排序 */system("color E9");int h,i,j,k,t;int SCORE305;unsigned int NUM30,g;char T10;char NAME3010; for(h=0;h<n;h+)for(k=0;k<5;k+)SCOREhk=studh.scorek;NUMh=studh.num; strcpy(NAMEh,); for(k=0;k<5;k+)switch(k)brea
11、k;case 0:printf("t高數(shù)排名 t學(xué)號(hào)t姓名分?jǐn)?shù) n");break;case 1:printf("t物理排名 t學(xué)號(hào)t姓名分?jǐn)?shù) n");break;case 2:printf("t外語排名 t學(xué)號(hào)t姓名分?jǐn)?shù) n");break;case 3:printf("tC語言排名 t學(xué)號(hào)t姓名分?jǐn)?shù) n");break;case 4:printf("t德育排名 t學(xué)號(hào)t姓名分?jǐn)?shù) n");printf("-n");/* 起泡法排序 , 值大的排在后面 */for(i=0;i
12、<n-1;i+)for(j=0;j<n-1-i;j+) if(SCOREjk>SCOREj+1k)t=SCOREjk;SCOREjk=SCOREj+1k;SCOREj+1k=t;strcpy(T,NAMEj); strcpy(NAMEj,NAMEj+1);strcpy(NAMEj+1,T);g=NUMj; NUMj=NUMj+1;NUMj+1=g;for(t=1,h=n-1;h>=0;h-)printf("tt%3d 、%12u %6s %6dn",t+,NUMh,NAMEh,SCOREhk); printf("n");查詢 記錄
13、/*5.*void Query(Student stud,int n) /* 按姓名查找并顯示一個(gè)記錄 */ system("color 75");char ss10;int i=0;printf("nttt 請(qǐng)輸入 nttt 該生的姓名: nttttt"); /*交互式輸入 */scanf("%s",ss);while(strcmp(,ss)!=0&&i<n)i+;/* 查找判斷 */if(i=n)printf("ttt 不存在此記錄! n"); /* 返回失敗信息 */
14、printf("ttt 該生的學(xué)號(hào): t%un",studi.num); /* 輸出該學(xué)生信息 */printf("ttt 該生的成績: tnttt 高數(shù) tt%dnttt 物理 tt%dnttt 外語 tt%dntttC 語 言 tt%dnttt 德 育 tt%dn",studi.score0,studi.score1,studi.score2,studi.score3,studi.score4);/*6.刪除 記錄*int Delete(Student stud,int n) /* system("color 81");char
15、s10;int i=0,j,k=0;按姓名查找,刪除一條記錄 */ttt 請(qǐng)輸入想要?jiǎng)h除的記錄的學(xué)生姓名 nttt (輸入一個(gè)非文字的字符即可以返回到菜 單界面) :n"); /*交互式尋問 */scanf("%s",s); while(strcmp(,s)!=0&&i<n)i+;/* 查找判斷 */if(i=n)printf("ttt 不存在此記錄! n"); /* 返回失敗信息 */return n;for(j=i;j<n-1;j+) /*刪除操作 */ studj.num=studj+1.n
16、um;strcpy(,studj+1.name); for(k=0;k<4;k+)studj.scorek=studj+1.scorek;printf("ttt 已刪除! n"); /* 返回成功信息 */ return(n-1);插入 文件/ /*從文件中讀入數(shù)據(jù) */* int Add(Student stud,int n) /*system("color 74"); int i=0,num; FILE *fp; /* 定義文件指針 */char ch,filename20; /* 定義文件名 */printf("
17、 是否從文件中插入記錄?(否定: N/n ,確定:其他任意健) n"); getchar();ch=getchar(); if(ch='N'|ch='n') return n;ttt 請(qǐng)輸入想要插入的文件的: “文件路徑 文件名稱 . 后綴名稱” n( 若直接輸入“文件名 稱. 后綴名稱”則在與程序相同目錄下打開新文件)n");scanf("%s",filename); /* 輸入文件名 */ if(fp=fopen(filename,"rb")=NULL) /* 打開文件 */printf("
18、;ttt 不存在此文件! n"); /* 打開失敗信息 */printf("ttt");getchar();return(n);fscanf(fp,"%d",&num); /*讀入總記錄量 */while(i<num) /* 循環(huán)讀入數(shù)據(jù) */ fscanf(fp,"%u %s %d %d %d %d %d",&studn+i.num,studn+,&studn+i.score 0,&studn+i.score1,&studn+i.score2,&studn+
19、i.score3,&studn+i.score 4);i+;n+=num;fclose(fp); /*關(guān)閉文件 */printf("ttt已插入! n");getchar();return n;/*8.存入 文件*int Write(Student stud,int n) /*將所有記錄寫入文件 */ system("color 72");getchar();int i=0;char ch;FILE *fp; /*定義文件指針 */char filename20; /*定義文件名 */ttt 將所有記錄寫入文件。 n"); /* 輸入文
20、件名 */printf(" 是否創(chuàng)建新文件 (會(huì)覆蓋原有同名文件) 并將全部記錄存入該文件? (否定: N/n , 確定:其他任意健) n");ch=getchar(); if(ch='N'|ch='n')return 0;printf("ttt 請(qǐng)輸入:“文件路徑 文件名稱 . 后綴名稱” n( 若直接輸入“文件名稱 . 后綴 名稱”則在與程序相同目錄下生成新文件。 )n");scanf("ttt%s",filename); if(fp=fopen(filename,"w")=NU
21、LL) /* 打開文件 */printf("ttt 無法存入文件! n"); getchar(); fprintf(fp,"%dn",n); /* 循環(huán)寫入數(shù)據(jù) */ while(i<n) fprintf(fp,"%u %s %d %d %d %d %dn",studi.num,,studi.score0,st udi.score1,studi.score2,studi.score3,studi.score4);i+; fclose(fp); /* 關(guān)閉文件 */ printf(" 已存入! n&q
22、uot;); /* 返回成功信息 */主函數(shù)/ /* system("color 3F");int main( ) /* 主函數(shù) */* 顏色屬性由兩個(gè)十六進(jìn)制數(shù)字指定 - 第一個(gè)為背景, 第二個(gè)則為前景。 每個(gè)數(shù)字可以為以下任何值之一 :0 =黑色8 =灰色1 =藍(lán)色9 =淡藍(lán)色2 =綠色A =淡綠色3 =湖藍(lán)色B =淡淺綠色4 =紅色C =淡紅色5 =紫色D =淡紫色6 =黃色E =淡黃色7 =白色F =亮白色*/int n=0;int menu_select();int Input(Student stud,int n) ; /* 輸入若干條記錄 */ void Di
23、splay(Student stud,int n); /* 顯示所有記錄 */void Disqualified(Student stud,int n); /* void Sort(Student stud,int n); /* void Query(Student stud,int n); /* int Delete(Student stud,int n); /* int Add(Student stud,int n); /* int Write(Student stud,int n); /*出不及格學(xué)生名單 */ 按成績從高到低排序 */ 按姓名查找并顯示一個(gè)記錄 */ 按姓名查找,刪除一條記錄 */ 從文件中讀入數(shù)據(jù) */ 將所有記錄寫入文件 */for(;)switch(menu_select() /* 選擇判斷 */case 1:printf("ttt1. 輸入記錄 n"); n=Input(stu,n);break;case 2:printf("ttt2. 顯示記錄 n");Display(stu,n);break;case 3
溫馨提示
- 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屆高三最后一模英語試題含解析
- 云南省西疇縣第二中學(xué)2025屆高三第二次模擬考試英語試卷含解析
- 2025屆重慶市南坪中學(xué)高三最后一模數(shù)學(xué)試題含解析
- 9.1《念奴嬌?赤壁懷古》課件 2024-2025學(xué)年統(tǒng)編版高中語文必修上冊(cè)
- 河南省三門峽市2025屆高三六校第一次聯(lián)考數(shù)學(xué)試卷含解析
- 2025屆新疆阿勒泰第二高級(jí)中學(xué)高考適應(yīng)性考試數(shù)學(xué)試卷含解析
- 《solidworks 機(jī)械設(shè)計(jì)實(shí)例教程》 課件 任務(wù)3.1 法蘭盤的設(shè)計(jì)
- 2025屆山東省濟(jì)南市山東師范大學(xué)附中高考英語倒計(jì)時(shí)模擬卷含解析
- 河北省保定市博野縣2025屆高三適應(yīng)性調(diào)研考試數(shù)學(xué)試題含解析
- 北京海淀外國語實(shí)驗(yàn)2025屆高考仿真模擬語文試卷含解析
- 工程項(xiàng)目管理流程圖
- 表箱技術(shù)規(guī)范
- 二氧化碳充裝操作規(guī)程完整
- 【全冊(cè)】最新部編人教版三年級(jí)道德與法治上冊(cè)知識(shí)點(diǎn)總結(jié)
- 植草溝施工方案
- 苯-甲苯浮閥塔精餾課程設(shè)計(jì).doc
- 環(huán)保-TVOC監(jiān)測(cè)標(biāo)準(zhǔn)方案
- 專題04 《魚我所欲也》三年中考真題(解析版)-備戰(zhàn)2022年中考語文課內(nèi)文言文知識(shí)點(diǎn)梳理+三年真題訓(xùn)練(部編版)
- 港股通知識(shí)測(cè)試2016
- 煤礦井下集中大巷皮帶機(jī)安裝施工組織設(shè)計(jì)及措施
- (完整版)渠道混凝土施工方案
評(píng)論
0/150
提交評(píng)論