




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、#include <>#include <>#include <> /*#include <>*/#include <>#include <>#include <>#include <>int Add(struct student stu,int *size);聲明 */int Del(struct student stu,int *stusize);函數(shù)聲明 */int Modify(struct student stu,int *stusize);函數(shù)聲明*/int DispOne(struct
2、 student stu,int *stusize);函數(shù)聲明*/int DispAll(struct student stu,int size);聲明 */void AsceSort(struct student stu,int stusize);打開文件子菜單保存文件函數(shù)聲增加學(xué)生記錄函數(shù)刪除學(xué)生記錄修改學(xué)生記錄查看一個記錄顯示全部記錄函數(shù)按升序排序函#define VIDEO_INT 0x10#define STUSIZE 40/*struct studentint stunum;/*char stuname10; /*float stuscore5; /* 3stuSTUSIZE;/*
3、int stunum=0;/*void StuCover();/*void MainMenu();/*void EditMenu();/*void DispMenu();/*void CompMenu();/*void SortMenu();/*void Open(struct student stu,int *size);函數(shù)聲明 */void Save(struct student stu,int *size);明 */假定處理的學(xué)生不超過40 人 */學(xué)號*/學(xué)生姓名 */門成績、平均成績、總成績*/定義學(xué)生數(shù)組 */用來記錄當(dāng)前學(xué)生記錄數(shù)*/項(xiàng)目封面函數(shù)聲明 */主菜單函數(shù)聲明 */編
4、輯子菜單函數(shù)聲明*/顯示子菜單函數(shù)聲明*/計(jì)算子菜單函數(shù)聲明*/排序子菜單函數(shù)聲明*/*/*/*/*/*/*/*/*void DropSort(struct student stu,int stusize);/*數(shù)聲明 */void NotElig(struct student stu,int stusize);/*錄函數(shù)聲明 */void CompSum(struct student stu,int stusize);/*平均成績函數(shù)聲明 */void SearchMax(struct student stu,int stusize);/*函數(shù)聲明*/void SearchMin(struc
5、t student stu,int stusize);/*函數(shù)聲明*/void Explain();/*程序說明函數(shù)聲明*/void Quit(int);/*退出函數(shù)聲明*/void gotoxy(int x,int y);/* 光標(biāo)定位函數(shù)聲明*/數(shù)聲明 */按降序排序函查找不及格記計(jì)算總成績和查找最高成績查找最低成績外循環(huán)開始*/調(diào)用主菜單函數(shù)*/主菜單的switch 開始 */內(nèi)循環(huán) 1 開始 */調(diào)用編輯子菜單函數(shù)*/編輯子菜單switch 開始 */int main()int choose,editnum,dispnum,compnum,sortnum; /*定義 5 個輸入變量*/
6、system("cls");StuCover();getch();while(1)/*MainMenu();/*printf("tt請輸入序號:");scanf("%d",&choose);switch(choose)/*case 1:Open(stu,&stunum);break;case 2:Save(stu,&stunum);break;case 3:do/*EditMenu(); /*printf("tt請輸入序號:");scanf("%d",&editn
7、um);switch(editnum) /* case 1:Add(stu,&stunum);break;case 2:Del(stu,&stunum);break;case 3:Modify(stu,&stunum);break;case 0:Quit(0);break;/*while(editnum!=0); /* break;case 4:do/* DispMenu();/*printf("tt請輸入序號:");scanf("%d",&dispnum);switch(dispnum) /* case 1:DispOn
8、e(stu,&stunum);break;case 2:DispAll(stu,stunum);break;編輯子菜單switch 結(jié)束 */內(nèi)循環(huán) 1 結(jié)束 */內(nèi)循環(huán) 2 開始 */調(diào)用查看子菜單函數(shù)*/顯示子菜單switch 開始 */case 3:do/*3 開始 */請輸入序號: ");SortMenu(); printf("tt scanf("%d",&sortnum);switch(sortnum) /*case 1:AsceSort(stu,stunum);break;case 2:DropSort(stu,stunum)
9、;break;case 0:Quit(0);break;/*while(sortnum!=0); /*break;case 4:NotElig(stu,stunum);break;case 0:Quit(0);break;/*while(dispnum!=0); /*break;case 5:do/*CompMenu(); /*排序子菜單switch 開始 */排序子菜單switch 結(jié)束 */內(nèi)循環(huán) 3 結(jié)束 */顯示子菜單switch 結(jié)束 */內(nèi)循環(huán)2 結(jié)束*/內(nèi)循環(huán)4 開始*/調(diào)用計(jì)算子菜單函數(shù)*/printf("tt請輸入序號:");scanf("%d&
10、quot;,&compnum);計(jì)算子菜單switch 開始 */switch(compnum) /*case 1:CompSum(stu,stunum);break;case 2:SearchMax(stu,stunum);break;計(jì)算子菜單switch 結(jié)束 */內(nèi)循環(huán) 4 結(jié)束 */程序說明 */主菜單的switch 結(jié)束 */外循環(huán)結(jié)束*/OUTPUT_HANDLE),c);case 3:SearchMin(stu,stunum);break;case 0:Quit(0);break;/*while(compnum!=0); /* break;case 6:Explain(
11、);break; /* case 0:Quit(1);break;/*return 0;/*void gotoxy(int x,int y)COORD c;=x-1;=y-1;SetConsoleCursorPosition(GetStdHandle(STD */void Quit(int flag)/*if(flag=1)system("cls");printf("nnnnnntttgetch();system("cls");exit(0);/*elseif(flag=0)/*system("cls");printf(&q
12、uot;nnnnnntttgetch();system("cls");退出函數(shù)*/操作結(jié)束,退出系統(tǒng)!");退出程序,返回到操作系統(tǒng)庫函數(shù)返回上級菜單*/操作結(jié)束,返回上級菜單!");/*程序說明 */void Explain() system("cls");gotoxy(10,3);/* 光標(biāo)定位函數(shù) */printf(" 這是一個教學(xué)程序。它以開發(fā)班級學(xué)生成績管理系統(tǒng)為主要項(xiàng)目, ");gotoxy(10,5);printf("旨在通過簡單學(xué)生成績管理系統(tǒng)軟件的開發(fā),使讀者了解并掌握用C語)gotox
13、y(10,7); printf(" 言開發(fā)程序的方法與技巧。 "); gotoxy(10,9);printf(" 該項(xiàng)目由15個任務(wù)來完成,將C語言基本知識與理論溶入到任務(wù)中!");gotoxy(10,11);printf(" 完成 15個任務(wù)后就完成整個項(xiàng)目的設(shè)計(jì)。通過任務(wù)驅(qū)動和項(xiàng)目導(dǎo)向教學(xué),");gotoxy(10,13); printf(" 最終實(shí)現(xiàn)教學(xué)目的,達(dá)到培養(yǎng)目標(biāo) !");gotoxy(10,15);printf(" 該項(xiàng)目實(shí)施貫穿在整個教學(xué)過程中,它將重點(diǎn)與難點(diǎn)分散在各個任務(wù)")
14、;gotoxy(10,17);printf(" 中,達(dá)到循序漸進(jìn),逐個突破的目的,教學(xué)最后將安排一定的時間歸納匯");gotoxy(10,19); printf(" 總。 ");getch();項(xiàng)目封面函數(shù)*/執(zhí)行DOS青屏命令函數(shù)*/void StuCover()/*system("cls");/*printf("nnn");printf("tt 班級學(xué)生成績管理系統(tǒng)nn");printf("tt版本號: nn");printf("nnn");print
15、f("tt 2011年 9 月 n'n");printf("tt章國華 軟件工作室 n");void MainMenu()/*項(xiàng)目主菜單函數(shù) */int n;system("cls");printf("nnn");printf(" |* * * * *學(xué)生成績管理系統(tǒng)* * * * *|n");printf("|n");printf("|請選擇菜單序號(06)|n");printf("|.|n");printf("|1
16、打開文件|n");printf("|2保存文件|n");printf("|3編輯數(shù)據(jù)|n");printf("|4顯示數(shù)據(jù)|n");printf("|5數(shù)據(jù)計(jì)算|n");printf("|6程序說明 |n");printf("|0退出系統(tǒng)|n");printf("|n");printf("tt請選擇序號:");scanf("%d",&n);printf("您選擇了第 項(xiàng)!n",n
17、);void DispMenu()/*項(xiàng)目主菜單函數(shù)*/int n;system("cls");printf("nnn");printf("* * * * * *顯示子菜單* * * * *|n");printf("|.|n");printf("|請選擇菜單序號(04)|n");printf("|.|n");printf("|1查看選定記錄|n");printf("|2顯示全部記錄|n");printf("|3顯示排序記錄|n
18、");printf("|4顯示不及格記錄|n");printf("|0返回上級菜單|n");printf("|.|n");printf("tt請選擇序號:");scanf("%d",&n);printf("您選擇了第 項(xiàng)!n",n);*/void EditMenu()/*項(xiàng)目編輯子菜單函數(shù)int n;system("cls");printf("nnn");printf(" |* * * * * * *編輯子菜
19、單* * * * * *|n");printf("|n");printf("|請選擇菜單序號(03)|n");增加記錄|n");刪除記錄|n");修改記錄|n");返回上級菜單 |n");printf("|n");printf("|1printf("|2printf("|3printf("|0printf("|n");printf("tt 請選擇序號:");scanf("%d",&
20、;n);printf(" 您選擇了第 項(xiàng)!n",n);void CompMenu()/*項(xiàng)目計(jì)算子菜單函數(shù)*/int n;system("cls");printf("nnn");printf(" |* * * * * * *計(jì)算子菜單* * * * * *|n");printf("|n");printf(" |請選擇菜單序號(03)|n");printf("|n");printf("|1計(jì)算總成績和平均成績|n");printf(&qu
21、ot;|2計(jì)算最高分(平均分)|n");printf("|3計(jì)算最低分(平均分)|n");printf("|0返回上級菜單|n");printf("|n");printf("tt 請選擇序號:");scanf("%d",&n);printf("您選擇了第 項(xiàng)!n",n);void SortMenu()/*項(xiàng)目排序子菜單函數(shù) */int n;system("cls");printf("nnn");printf("
22、; |* * * * * * *排序子菜單* * * * * *|n");printf("|n");printf("|請選擇菜單序號(02)|n");printf("|n");printf("|1按升序排序|n");printf("|2按降序排序|n");printf(" |0返回上級菜單|n");printf(" |n");printf("tt 請選擇序號:");scanf("%d",&n);pr
23、intf(" 您選擇了第 項(xiàng)!n",n);void SearchMax(struct student stu,int stusize) float max=stu0.stuscore4;int i;system("cls");for(i=1;i<stusize;i+)if(max<stui.stuscore4)max=stui.stuscore4;gotoxy(20,5);printf("成績最高的是:%.1fn",max);gotoxy(20,10);printf("查找最高分成功,按任意鍵返回上級菜單getc
24、h();/*!");查找最高分指針訪問函數(shù)*/*/void SearchMin(struct student stu,int stusize) /* 查找最低分指針訪問函數(shù) float min=stu0.stuscore4;int i;system("cls");for(i=1;i<stusize;i+)if(min>stui.stuscore4)min=stui.stuscore4;gotoxy(20,5);printf(" 成績最高的是: %.1fn",min);gotoxy(20,10);printf(" 查找最低分
25、成功,按任意鍵返回上級菜單 !");getch();void NotElig(struct student stu,int stusize) /*查找不合格學(xué)生成績指針訪問函數(shù) */int i,flag=0;system("cls");gotoxy(20,5);printf(" 不合格成績: ");for(i=0;i<stusize;i+)if(stui.stuscore4<60)printf("%",stui.stuscore4);flag=1;if(!flag)gotoxy(35,5);printf(&quo
26、t; 沒有不合格成績! ");gotoxy(20,10);printf(" 查找不及格成績成功,按任意鍵返回上級菜單! ");getch();void CompSum(struct student stu,int stusize) /*計(jì)算總成績和平均成績函數(shù)聲明*/int i,j;float sumscore;system("cls");if(stusize<=0)gotoxy(22,5);printf(" 數(shù)組中沒有學(xué)生記錄或文件沒有打開,不能計(jì)算總成績和平均成績! ");getch();elsefor(i=0;i
27、<stusize;i+)sumscore=0;for(j=0;j<3;j+)sumscore+=stui.stuscorej;stui.stuscore3=sumscore;stui.stuscore4=sumscore/;gotoxy(20,5);printf(" 計(jì)算總成績和平均成績成功,按任意鍵返回上級菜單! ");getch();void AsceSort(struct student stu,int stusize) /*按升序排列指針訪問函數(shù)*/int i,j;float temp;float temp_scoreSTUSIZE,*pf;/*定義一個
28、新數(shù)組*/system("cls");給新數(shù)組賦值*/雙重循環(huán)實(shí)現(xiàn)學(xué)生成績按pf=temp_score;for(i=0;i<stusize;i+)/*temp_scorei=stui.stuscore4;for(i=0;i<stusize-1;i+)/*升序排列 */for(j=0;j<stusize-i-1;j+)if(*(pf+j+1)<*(pf+j)temp=*(pf+j);*(pf+j)=*(pf+j+1);*(pf+j+1)=temp;gotoxy(5,5);printf(" 升序排列結(jié)果: ");for(i=0;i&l
29、t;stusize;i+)printf("%",*(pf+i);gotoxy(20,10);printf(" 升序排列成功,按任意鍵返回上級菜單!");getch();void DropSort(struct student stu,int stusize) /*/int i,j;float temp;float temp_scoreSTUSIZE,*pf;/*system("cls");pf=temp_score;for(i=0;i<stusize;i+)/*temp_scorei=stui.stuscore4;for(i=0
30、;i<stusize-1;i+)/*序排列 */for(j=0;j<stusize-i-1;j+)if(*(pf+j+1)>*(pf+j)temp=*(pf+j);*(pf+j)=*(pf+j+1);*(pf+j+1)=temp;按降序排列指針訪問函數(shù)定義一個新數(shù)組*/給新數(shù)組賦值*/雙重循環(huán)實(shí)現(xiàn)學(xué)生成績按降gotoxy(5,5);printf(" 降序排列結(jié)果: ");for(i=0;i<stusize;i+)printf("%",*(pf+i);gotoxy(20,10);printf(" 降序排列成功,按任意鍵返回
31、上級菜單!");getch();int Add(struct student stu,int *size) /* int i,j;int stunum;int number;system("cls");增加學(xué)生記錄函數(shù)*/if(*size>=40)/*gotoxy(30,2);printf(" 數(shù)組已滿,不能再增加記錄! ");return 0;elsedo/*/gotoxy(30,2);printf("請輸入增加的記錄個數(shù): ");scanf("%d",&number);if(number
32、<0|number+*size>=40)判斷數(shù)組是否裝滿*/判斷輸入的增加記錄數(shù)是否合適gotoxy(30,4);printf("輸入增加記錄個數(shù)錯,請重新輸入! ");while(number<0|number+*size>=40);stunum=*size+number;system("cls");gotoxy(33,2);增加學(xué)生記錄*/printf(" 學(xué)生信息輸入! ");for(i=*size;i<stunum;i+) /*gotoxy(15,5);printf("請輸入第d個學(xué)生學(xué)
33、號:"尸1);gotoxy(15,7);printf("請輸入第%d個學(xué)生姓名:"尸1);gotoxy(15,9);printf("請輸入第 1 門成績: ");gotoxy(15,11);printf("請輸入第2 門成績:");gotoxy(15,13);printf("請輸入第3 門成績:");gotoxy(37,5);scanf("%d",&stui.stunum);gotoxy(37,7);scanf("%s",&stui.stuname)
34、;for(j=0;j<3;j+)gotoxy(32,9+j*2);scanf("%f",&stui.stuscorej); if(i=*size)gotoxy(33,4);printf("沒有記錄輸入! ");*size=stunum;/*有指針變量帶回學(xué)生記錄數(shù) */ gotoxy(33,15);printf(" 按任意鍵返回上級菜單! ");getch();return 0;刪除學(xué)生記錄函數(shù)*/int Del(struct student stu,int *stusize) /* int i,k;int loop=0
35、;int number;system("cls");gotoxy(33,2);printf(" 刪除學(xué)生記錄!n");if(*stusize<=0)/* 判斷數(shù)組是否空*/gotoxy(20,4);printf(" 數(shù)組中沒有學(xué)生記錄或文件沒有打開,不能刪除記錄! ");getch();return 0;elsedosystem("cls");gotoxy(25,2);printf("刪除學(xué)生記錄(不能刪除記錄請輸入-1 ) ! n");gotoxy(28,4);printf("
36、請輸入被刪除學(xué)生的學(xué)號: n");scanf("%d",&number);if(number=-1)return 0;for(i=0,k=0;i<*stusize;i+)if(number=stui.stunum)loop=1;k=i;/*被刪除記錄的下標(biāo)*/break;if(loop!=1)gotoxy(25,6);printf("輸入學(xué)生學(xué)號出錯,按任意鍵重新輸入! ");getch();while(loop!=1);for(i=k;i<*stusize;i+)stui=stui+1;/*刪除操作 */gotoxy(25
37、,6);printf(" 刪除成功,按任意鍵返回上級菜單! ");*stusize=*stusize-1;getch();return 0;int Modify(struct student stu,int *stusize) /*修改學(xué)生記錄函數(shù)*/int i,k;int loop=0;/*學(xué)號輸入正確標(biāo)志*/int number;system("cls");gotoxy(33,2);printf(" 修改學(xué)生記錄!n");if(*stusize<=0)gotoxy(20,4);printf(" 數(shù)組中沒有學(xué)生記錄或
38、文件沒有打開,不能修改記錄! ");getch();return 0;elsedo/*找出修改學(xué)生記錄的下標(biāo)*/system("cls");gotoxy(25,2);printf("修改學(xué)生記錄!(不修改記錄請輸入-1 )n");gotoxy(28,4);printf("請輸入被修改學(xué)生的學(xué)號: ");scanf("%d",&number);if(number=-1)return 0;for(i=0,k=0;i<*stusize;i+)if(number=stui.stunum)loop=1
39、;k=i;/*被修改記錄的下標(biāo)*/break;if(loop!=1)gotoxy(25,6);printf("輸入學(xué)生學(xué)號出錯,按任意鍵重新輸入! ");getch();while(loop!=1);system("cls");gotoxy(33,2);printf(" 修改學(xué)生記錄! n");gotoxy(28,4);printf("學(xué)號:%d",stuk.stunum);gotoxy(28,6);printf("姓名:%d",stuk.stuname);gotoxy(28,8);printf
40、(" 成績 1 : %.1f",stuk.stuscore0);gotoxy(28,10);printf("成績 2 : %.1f",stuk.stuscore1);gotoxy(28,12);printf("成績 3 : %.1f",stuk.stuscore2);gotoxy(34,4);scanf("%d",&stuk.stunum);gotoxy(34,6);scanf("%s",&stuk.stuname);gotoxy(35,8);scanf("%f&quo
41、t;,&stuk.stuscore0);gotoxy(35,10);scanf("%f",&stuk.stuscore1);gotoxy(35,12);scanf("%f",&stuk.stuscore2);gotoxy(25,14);printf(" 修改成功,按任意鍵返回上級菜單! ");getch();return 0;int DispAll(struct student stu,int size) /* 顯示全部記錄函數(shù)*/int i,j;system("cls");if(size&
42、lt;=0) gotoxy(20,4);printf(" 數(shù)組中沒有學(xué)生記錄或文件沒有打開,不能顯示記錄! ");getch();return 0; elsegotoxy(5,4);printf("學(xué)號 姓名 成績1 成績2 成績3 總成績 平均成績 "); for(i=0;i<size;i+) gotoxy(5,6+i);printf("%-5d",stui.stunum);printf("%8s",stui.stuname);for(j=0;j<5;j+) printf("%",
43、stui.stuscorej);printf("n");gotoxy(28,7+size);printf(" 按任意鍵返回上級菜單! ");getch();return 0;int DispOne(struct student stu,int *stusize) /* 顯示選定記錄函數(shù)*/int i,j,k,loop,number;dosystem("cls");gotoxy(25,2);printf("查看學(xué)生記錄!(不查看記錄請輸入-1 )n");gotoxy(28,4);printf("請輸入被查看學(xué)生的學(xué)號: ");scanf("%d",&number);if(number=-1)return 0;for(i=0,k=0;i<*stusize;i+)if(number=stui.stunum)loop=1;k=i;break;if(loop!=1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 多媒體設(shè)計(jì)師考試全景視角試題及答案
- 2024年秘書證考試分析框架試題及答案
- 西藏幼教筆試題庫及答案
- 檔案的價值評估試題及答案
- 育嬰師專業(yè)知識培訓(xùn)課件
- 電石廠煤氣凈化操作安全培訓(xùn)
- 美膚知識培訓(xùn)課件
- 美容知識與方法培訓(xùn)課件
- 企業(yè)競聘報告
- 物聯(lián)網(wǎng)技術(shù)在智慧教育中的創(chuàng)新與變革
- 12《風(fēng)向和風(fēng)力》教學(xué)設(shè)計(jì)-2024-2025學(xué)年科學(xué)四年級上冊青島版
- 化療藥物規(guī)范配置
- 學(xué)校滅火及應(yīng)急疏散預(yù)案
- 江蘇省揚(yáng)州市梅嶺集團(tuán)2024-2025學(xué)年九年級下學(xué)期3月月考英語試題(原卷版+解析版)
- 啄木鳥簡介課件
- 2025年義烏工商職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案1套
- 2025年幼兒教師筆試試題及答案
- 第19課《十里長街送總理》 統(tǒng)編版語文(五四學(xué)制)六年級上冊
- 第5單元《溫暖的家》課件 花城版音樂一年級下冊
- 蒙臺梭利課程模式課堂
- 病區(qū)8S管理成果匯報
評論
0/150
提交評論