




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
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ù)聲增加學生記錄函數(shù)刪除學生記錄修改學生記錄查看一個記錄顯示全部記錄函數(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);明 */假定處理的學生不超過40 人 */學號*/學生姓名 */門成績、平均成績、總成績*/定義學生數(shù)組 */用來記錄當前學生記錄數(shù)*/項目封面函數(shù)聲明 */主菜單函數(shù)聲明 */編
4、輯子菜單函數(shù)聲明*/顯示子菜單函數(shù)聲明*/計算子菜單函數(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);/* 光標定位函數(shù)聲明*/數(shù)聲明 */按降序排序函查找不及格記計算總成績和查找最高成績查找最低成績外循環(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 結束 */內(nèi)循環(huán) 1 結束 */內(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 結束 */內(nèi)循環(huán) 3 結束 */顯示子菜單switch 結束 */內(nèi)循環(huán)2 結束*/內(nèi)循環(huán)4 開始*/調(diào)用計算子菜單函數(shù)*/printf("tt請輸入序號:");scanf("%d&
10、quot;,&compnum);計算子菜單switch 開始 */switch(compnum) /*case 1:CompSum(stu,stunum);break;case 2:SearchMax(stu,stunum);break;計算子菜單switch 結束 */內(nèi)循環(huán) 4 結束 */程序說明 */主菜單的switch 結束 */外循環(huán)結束*/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ù)*/操作結束,退出系統(tǒng)!");退出程序,返回到操作系統(tǒng)庫函數(shù)返回上級菜單*/操作結束,返回上級菜單!");/*程序說明 */void Explain() system("cls");gotoxy(10,3);/* 光標定位函數(shù) */printf(" 這是一個教學程序。它以開發(fā)班級學生成績管理系統(tǒng)為主要項目, ");gotoxy(10,5);printf("旨在通過簡單學生成績管理系統(tǒng)軟件的開發(fā),使讀者了解并掌握用C語)gotox
13、y(10,7); printf(" 言開發(fā)程序的方法與技巧。 "); gotoxy(10,9);printf(" 該項目由15個任務來完成,將C語言基本知識與理論溶入到任務中!");gotoxy(10,11);printf(" 完成 15個任務后就完成整個項目的設計。通過任務驅動和項目導向教學,");gotoxy(10,13); printf(" 最終實現(xiàn)教學目的,達到培養(yǎng)目標 !");gotoxy(10,15);printf(" 該項目實施貫穿在整個教學過程中,它將重點與難點分散在各個任務")
14、;gotoxy(10,17);printf(" 中,達到循序漸進,逐個突破的目的,教學最后將安排一定的時間歸納匯");gotoxy(10,19); printf(" 總。 ");getch();項目封面函數(shù)*/執(zhí)行DOS青屏命令函數(shù)*/void StuCover()/*system("cls");/*printf("nnn");printf("tt 班級學生成績管理系統(tǒng)nn");printf("tt版本號: nn");printf("nnn");print
15、f("tt 2011年 9 月 n'n");printf("tt章國華 軟件工作室 n");void MainMenu()/*項目主菜單函數(shù) */int n;system("cls");printf("nnn");printf(" |* * * * *學生成績管理系統(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ù)計算|n");printf("|6程序說明 |n");printf("|0退出系統(tǒng)|n");printf("|n");printf("tt請選擇序號:");scanf("%d",&n);printf("您選擇了第 項!n",n
17、);void DispMenu()/*項目主菜單函數(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("您選擇了第 項!n",n);*/void EditMenu()/*項目編輯子菜單函數(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(" 您選擇了第 項!n",n);void CompMenu()/*項目計算子菜單函數(shù)*/int n;system("cls");printf("nnn");printf(" |* * * * * * *計算子菜單* * * * * *|n");printf("|n");printf(" |請選擇菜單序號(03)|n");printf("|n");printf("|1計算總成績和平均成績|n");printf(&qu
21、ot;|2計算最高分(平均分)|n");printf("|3計算最低分(平均分)|n");printf("|0返回上級菜單|n");printf("|n");printf("tt 請選擇序號:");scanf("%d",&n);printf("您選擇了第 項!n",n);void SortMenu()/*項目排序子菜單函數(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(" 您選擇了第 項!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) /*查找不合格學生成績指針訪問函數(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) /*計算總成績和平均成績函數(shù)聲明*/int i,j;float sumscore;system("cls");if(stusize<=0)gotoxy(22,5);printf(" 數(shù)組中沒有學生記錄或文件沒有打開,不能計算總成績和平均成績! ");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(" 計算總成績和平均成績成功,按任意鍵返回上級菜單! ");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)實現(xiàn)學生成績按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(" 升序排列結果: ");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)實現(xiàn)學生成績按降gotoxy(5,5);printf(" 降序排列結果: ");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");增加學生記錄函數(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);增加學生記錄*/printf(" 學生信息輸入! ");for(i=*size;i<stunum;i+) /*gotoxy(15,5);printf("請輸入第d個學生學
33、號:"尸1);gotoxy(15,7);printf("請輸入第%d個學生姓名:"尸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;/*有指針變量帶回學生記錄數(shù) */ gotoxy(33,15);printf(" 按任意鍵返回上級菜單! ");getch();return 0;刪除學生記錄函數(shù)*/int Del(struct student stu,int *stusize) /* int i,k;int loop=0
35、;int number;system("cls");gotoxy(33,2);printf(" 刪除學生記錄!n");if(*stusize<=0)/* 判斷數(shù)組是否空*/gotoxy(20,4);printf(" 數(shù)組中沒有學生記錄或文件沒有打開,不能刪除記錄! ");getch();return 0;elsedosystem("cls");gotoxy(25,2);printf("刪除學生記錄(不能刪除記錄請輸入-1 ) ! n");gotoxy(28,4);printf("
36、請輸入被刪除學生的學號: 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;/*被刪除記錄的下標*/break;if(loop!=1)gotoxy(25,6);printf("輸入學生學號出錯,按任意鍵重新輸入! ");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) /*修改學生記錄函數(shù)*/int i,k;int loop=0;/*學號輸入正確標志*/int number;system("cls");gotoxy(33,2);printf(" 修改學生記錄!n");if(*stusize<=0)gotoxy(20,4);printf(" 數(shù)組中沒有學生記錄或
38、文件沒有打開,不能修改記錄! ");getch();return 0;elsedo/*找出修改學生記錄的下標*/system("cls");gotoxy(25,2);printf("修改學生記錄!(不修改記錄請輸入-1 )n");gotoxy(28,4);printf("請輸入被修改學生的學號: ");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;/*被修改記錄的下標*/break;if(loop!=1)gotoxy(25,6);printf("輸入學生學號出錯,按任意鍵重新輸入! ");getch();while(loop!=1);system("cls");gotoxy(33,2);printf(" 修改學生記錄! n");gotoxy(28,4);printf("學號:%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ù)組中沒有學生記錄或文件沒有打開,不能顯示記錄! ");getch();return 0; elsegotoxy(5,4);printf("學號 姓名 成績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("查看學生記錄!(不查看記錄請輸入-1 )n");gotoxy(28,4);printf("請輸入被查看學生的學號: ");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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣西壯族自治區(qū)柳州市中考二模地理試題及答案
- 2025年中國旅游食品加工設備數(shù)據(jù)監(jiān)測研究報告
- 2025-2030年中國交互語音應答系統(tǒng)IVR未來市場規(guī)模分析及投資策略研究報告
- 原發(fā)性心臟橫紋肌肉瘤健康宣講
- 2025乘風流量新邏輯:從“掉量黑洞”到增長引擎
- 新疆現(xiàn)代職業(yè)技術學院《環(huán)境監(jiān)測綜合實驗》2023-2024學年第二學期期末試卷
- 信陽師范大學《大數(shù)據(jù)計算框架技術》2023-2024學年第二學期期末試卷
- 2025至2031年中國碳化硅中鋁襯磚行業(yè)投資前景及策略咨詢研究報告
- 甘肅省武威市涼州區(qū)洪祥鎮(zhèn)2024年中考押題數(shù)學預測卷含解析
- 2025年生產(chǎn)經(jīng)營負責人安全培訓考試試題附參考答案【奪分金卷】
- SL631-637-2012-水利水電工程單元工程施工質(zhì)量驗收評定標準
- 胸腔穿刺術課件
- 門診辦運用PDCA提高門診預約掛號率品管圈成果匯報
- 市場開拓委托合同書
- 跟骨牽引 跟骨牽引圖片
- 簡易呼吸器操作流程及考核評分表
- 人行天橋施工組織設計方案
- 工程設計管理規(guī)定
- 寶安區(qū)地圖深圳市寶安區(qū)鄉(xiāng)鎮(zhèn)街道地圖高清矢量可填充編輯地圖PPT模板
- 信息通信網(wǎng)絡線務員
- 安徽筑格橋梁構件有限公司高端工程金屬橡膠產(chǎn)品(公路橋梁伸縮裝置、板式橡膠支座、盆式橡膠支座、QZ球形支座、橡膠止水帶等)項目 環(huán)境影響報告書
評論
0/150
提交評論