用語言編寫學生成績管理系統(tǒng)_第1頁
用語言編寫學生成績管理系統(tǒng)_第2頁
用語言編寫學生成績管理系統(tǒng)_第3頁
用語言編寫學生成績管理系統(tǒng)_第4頁
用語言編寫學生成績管理系統(tǒng)_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

1、#include<stdio.h>/編譯預處定義處理宏指令的 定義通過 最多的人 統(tǒng)計成績定義類型 保存所有 保存學生 保存性別保存所有 保存每個 總計成績學生成績 學生成績 學生平均 學生成績 學生成績 學生成績理指令#include<string.h> / 字符串函數(shù)#include<process.h> / 聲明#include<conio.h> / 控制臺進行數(shù)據(jù)輸入以及輸出#define N 2000/數(shù)人#define M 3 / typedef struct student / char number10;/人的學號char nam

2、e20;/姓名char sex10; /float scoreM; / 課程成績float aver;/人的平均成績float total;/STU;STU stuN;int n;void inputscore(void);/新建void savescore(void);/保存void avergescore(void); / 成績void total(void); / 總計void modifyscore(void); / 修改void lookscore(void); / 查看getch(); /按任意鍵繼續(xù),起到暫停的作用,函數(shù)頭文件conio.h 已經(jīng)定義void searchscor

3、e(void);查詢void statistic(void);統(tǒng)計void add(void);添加void modify(void);修改void delscore(void);刪除void menu(void);菜單void main() short int flag=0; menu(); do/學生成績學生成績學生成績學生成績學生成績 學生成績 flag=1;在菜單界面輸入 1 ,調(diào)用 i 函數(shù)/ 在菜單界面輸入 2,調(diào) 用函數(shù) lookscore() 函數(shù)調(diào)用 avregescore()switch(getch() case '1' : inputscore();bre

4、ak; / nputscore() 實現(xiàn)輸入學生成績信息功能 case '2' : lookscore();break; lookscore() 實現(xiàn)學生成績按平均分高低排序輸出,同時 函數(shù)實現(xiàn)各個學生的平均分計算case '3' : searchscore();break; /在 菜 單 界 面 輸 入 3, 調(diào) 用searchscore() 函數(shù)實現(xiàn)通過學號查找學生成績信息功能case '4' : statistic();break;函數(shù)輸出每一門課程的最高分,平均分以及不及格人員/在菜單界面輸入4,調(diào)用 statistic()case &#

5、39;5' : modify();break;數(shù)實現(xiàn)通過學號修改學生成績的功能/ 在菜單界面輸入5,調(diào)用 modify() 函case '6' : add();break;現(xiàn)添加學生成績/在菜單界面輸入6,調(diào)用 add() 函數(shù)實case '7' : delscore();break;函數(shù)實現(xiàn)刪除指定學生的成績/在菜單界面輸入7,調(diào)用 delscore()case '8' : savescore();break;函數(shù)將學生成績信息保存/在菜單界面輸入8,調(diào)用 savescore()case '9' :exit(0); br

6、eak;/統(tǒng)default : printf("輸入有誤 n");在菜單界面輸入9,退出成績管理系printf(" 按任意鍵繼續(xù) n");過menu(); /菜單while (flag=1);void menu(void) system("cls"); / printf("n");printf("n");printf("printf("1n"); printf("2n");printf("3n"); printf("

7、4n"); printf("5n"); printf("6n"); printf("7n"); printf("8n"); printf("9n"); printf("n");清屏歡迎進入學生成績管理系統(tǒng)菜單 n");輸入成績 查 看 成 績 及 成 績 排 序查詢學生成績成績統(tǒng)計修改成績添加成績刪除成績保存成績退出系統(tǒng)printf("請輸入您的選擇( 19) n");*輸入各個同學的學生信息*輸入學生學號輸入學生名字輸入性別輸入高數(shù)、

8、英語、C語言的成績輸入成績void inputscore(void) / int i,j;system("cls"); / 清屏專用,以下出現(xiàn)位置作用相同 printf(" 已經(jīng)轉(zhuǎn)到輸入成績菜單 n");printf(" 請輸入學生總數(shù): n");scanf("%d",&n);printf(" 提示:輸入學號時請輸入 9 位學生編號:圖書借閱證上的學號 n"); / 因 維表上下需對正故有此要求for(i=0;i<n;i+) printf("n");printf

9、(”請輸入第c位學生的學號:n",i+1);scanf("%s",stui.number);/printf(" 姓名 :n");scanf("%s",);/printf(" 請輸入該學生性別 n");scanf("%s",stui.sex);/printf("請輸入學生成績 :n");printf("高數(shù)分 t 英語分 tC 語言分 n");for(j=0;j<M;j+)scanf("%f",&

10、stui.scorej); /printf("成功輸入(按任意鍵繼續(xù)后請輸入 8 進行保存) n");*計算各個同學的總分*定義變量 i ,j ;i 用來表示學生個數(shù), j 則用來表示學表示科目在頭文件出已經(jīng)定義void total(void) int i,j;/生每門課的分數(shù)for(i=0;i<n;i+) stui.total=0;for(j=0;j<M;j+)/Mstui.total+=stui.scorej;*計算各個同學的平均分*void avergescore(void) int i,j; / 門課的分數(shù)定義變量 i ,j ;i 用來表示學生個數(shù),j

11、則用來表示學生每for(i=0;i<n;i+) stui.aver=0;for(j=0;j<M;j+) /M 表示科目在頭文件出已經(jīng)定義 stui.aver+=stui.scorej;stui.aver=stui.aver/M; / 計算平均分/* 查看學生成績及根據(jù)平均分對學生進行排序 *void lookscore(void) int i,j,k; / i,j,k 都表示學生成績比較用來調(diào)換順序STU t;total(); / 此處用來對調(diào)用函數(shù)的聲明avergescore();system("cls"); / 清屏專用 printf("已經(jīng)轉(zhuǎn)到查

12、看成績及成績排序菜單n");for(i=0;i<n-1;i+) for(k=i,j=i+1;j<n;j+) if(stuj.aver>stuk.aver) k=j; if(k!=j) t=stuk; stuk=stui; stui=t;printf(”名次t學號tt姓名t性別t高數(shù)分t英語分tC語言分t總分t平均分n");for(i=0;i<n;i+) printf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+)printf("%

13、4.2ft",stui.scorej);printf("%4.2ft",stui.total);printf("%4.2f",stui.aver);printf("n");*通過輸入學號查找學生成績*定義數(shù)組 a 的類型可輸入數(shù)字,字母或字符清屏已經(jīng)轉(zhuǎn)到查詢學生成績菜單 n");void searchscore(void) char a10; /int i,j;system("cls"); / printf("printf(" 請輸入需查詢的學生學號 n");sca

14、nf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) / 如果輸入的學號為真則輸出相關信息 printf(" 名次 t 學號 tt 姓名 t 性別 t 高數(shù)分 t 英語分 tC 語言分 t 總分 t 平 均分 n");printf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+) printf("%4.2ft",stui.scorej); printf("

15、%4.2ft",stui.total); printf("%4.2f",stui.aver); printf("n");break; / 找到該學生成績信息后跳出 for 循環(huán) elseprintf(" 未找到該學生信息 n"); /* 統(tǒng)計學生成績信息,計算出每一門課的最高分 */ void statistic()int i,j=0,k=0,c1;char str2;float averageM,sum=0; printf("沒有可被查找的記錄 n"); /system("cls")

16、;if(M=0) / 如果沒有輸入成績則輸出沒有可查找的記錄 printf(" 沒有可被查找的記錄 n");elsewhile(1)printf(" 下面將統(tǒng)計考試成績 n");printf(" 請選擇你要統(tǒng)計哪科的成績 1. 高數(shù) t2. 英語 t3.C 語言 n"); scanf("%d",&c1);printf("t 一共有 %d 個記錄 n",M); /* 總共記錄數(shù) */switch(c1)case 1: / 用來判斷高數(shù)的最高分,平均分,輸出不及格人員名單 for(i=0;i

17、<M;i+)sum+=stui.score0;if(stuk.score0>stui.score0) k=i;if(stuj.score0<stui.score0) j=i;average0=sum/M;printf("t高數(shù)的最高分 :n");printf("tt 學 號 :%s 姓 名 :%s數(shù):.2fn",stuj. number,stuj. name,stuj.score0);printf("t高數(shù)的最低分是 :n");printf("tt學號:%s姓名:%s數(shù):.2fn",stuk. n

18、umber,stuk .n ame,stuk.score0);printf("t高數(shù)的平均分是 %5.2fn",average0);printf(" 平均分低于 60 分的學生成員名單 n"); for(i=0;i<M;i+)if(stui.score0<60) printf("%sn",);break;case 2:/用來判斷英語的最高分,平均分,輸出不及格人員名單for(i=0;i<M;i+)sum+=stui.score1;if(stuk.score1>stui.score1) k=i;

19、if(stuj.score1<stui.score1) j=i;average1=sum/M;printf("t英語的最高分 :n");printf("tt學號:%s姓名:%s數(shù):%.2fn",stuj. number,stuj. name,stuj.score1);printf("t 英語的最低分是 :n");printf("tt 學 號 :%s 姓 名 :%s 數(shù):.2fn",stuk. number,stuk .n ame,stuk.score1);printf("t 英語的平均分是 %5.2

20、fn",average1); printf(" 平均分低于 60 分的學生成員名單 n");for(i=0;i<M;i+) if(stui.score1<60) printf("%sn",);break;case 3:/用來判斷 C 語言的最高分,平均分,輸出不及格人員名單for(i=0;i<M;i+) /*循環(huán)輸入判斷 */sum+=stui.score2;if(stuk.score2>stui.score2) k=i;if(stuj.score2<stui.score2) j=i; avera

21、ge2=sum/M;printf("tC 語言的最高分 :n"); /* 最高分 */printf("tt學號:%s姓名:%s數(shù):%.2fn",stuj. number,stuj. name,stuj.score2);printf("tC 語言的最低分是 :n"); /* 最低分 */printf("tt學號:%s姓名:%s數(shù):.2fn",stuk. number,stuk .n ame,stuk.score2);printf("tC 語言的平均分是 %5.2fn",average2); pri

22、ntf(" 平均分低于 60 分的學生成員名單 n");for(i=0;i<M;i+) if(stui.score2<60) printf("%sn",);break;default: /如果輸入的數(shù)字不符合要求則顯示錯誤信息printf(" 輸入錯誤!請輸入 1 3之間的數(shù) n");sum=0;getchar();printf(" 是否繼續(xù)進行統(tǒng)計 ?(y/n)");gets(str);if(str0='y'|str0='Y') statistic()

23、;else break;/*修改學生成績 */void modify(void)char a10;int i,j;system("cls");printf(" 已經(jīng)轉(zhuǎn)到修改成績菜單 n"); printf(" 請輸入需要修改成績的學生學號 n");scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) printf(" 名次 t 學號 tt 姓名 t 性別 t 高數(shù)分 t 英語分 tC 語言分 t 總分 t 平 均分 n");pr

24、intf("%dt%st%st%st",i+1,stui.number,,stui.sex);for(j=0;j<M;j+) printf("%4.2ft",stui.scorej);printf("%4.2f",stui.total); printf("%4.2f",stui.aver);printf("n");printf(" 請重新輸入該學生的姓名 :n");scanf("%s",stui.number); printf(&q

25、uot;n");scanf("%s",); printf(" 請輸入該學生性別 n");scanf("%s",stui.sex);printf(" 請重新輸入該學生成績 :n"); printf(" 高數(shù)分 t 英語分 tC 語言分 n");for(j=0;j<M;j+) scanf("%f",&stui.scorej);printf(" 修改成功 n");break; / 找到該學生成績后進行修改,跳出 for

26、循環(huán) elseprintf(" 請確認該學生是否為該校學生! n");*添加學生成績 *void add(void)int a,i,j; /i 定義為學生, j 為學生分數(shù), a 代表加入學生的數(shù)量 system("cls");printf(" 已經(jīng)轉(zhuǎn)到添加成績菜單 n"); printf(" 請輸入新增加的學生人數(shù): n");scanf("%d",&a);n=n+a;for(i=n-a;i<n;i+) printf("n");printf(”請輸入第c位學生的

27、學號:n",i+1);scanf("%s",stui.number);printf(" 姓名 :n");scanf("%s",);printf("輸入該學生性別 n");scanf("%s",stui.sex);printf("請輸入學生成績 :n");printf("高數(shù)分 t 英語分 tC 語言分n");for(j=0;j<M;j+)scanf("%f",&stui.scorej);prin

28、tf(" 添加成功 n");*刪除學生成績 *void delscore(void)int i,j,c;char m,a10; /m 用來存放后面輸入刪除的字母 y 或 n system("cls");printf("已經(jīng)轉(zhuǎn)到刪除成績菜單 n");printf(" 請輸入學生學號 n");scanf("%s",a);for(i=0;i<n;i+) if(strcmp(a,stui.number)=0) printf(" 名次 t 學號 tt 姓名 t 性別 t 高數(shù)分 t 英語分 tC 語言分 t 總分 t 平均分 n");printf("%dt%st%st%st",i+1,stui.number,stui.n

溫馨提示

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

評論

0/150

提交評論