版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100int iNumOfStu=0;struct score float math; float english; float computer; ;struct student int number; char name20; struct score sco; float average; ;struct student stuN;void print_menu(void);/輸出菜單void choosemenu(void);
2、/菜單選擇void input_student1(int);/輸入學生信息void input_student2(void);/輸入總函數(shù)void input_student3(int &,int);/判斷學號是否重復void input_student4(int,int);/覆蓋原信息void sort_student3(student s,int);/按照英語成績排序void sort_student4(student s,int);/按照計算機成績排序void sort_student2(student s,int);/按照數(shù)學成績排序void sort_student5(stu
3、dent s,int);/按照平均成績排序float input_score2(int);/計算學生平均成績void print_student2(void);/顯示表頭void print_student3(int);/顯示學生信息void print_student1(int);/顯示全部學生資料void sort_student1(void);/排序總函數(shù)void menu(void);/菜單調度總函數(shù)int search_student2(int);/按學號查詢學生信息并輸出void search_student3(int);/按平均分最高查詢并輸出void search_studen
4、t1(void);/查詢總函數(shù)void delete_student2(int,int);/刪除學生信息void delete_student1(void);/刪除總函數(shù)void change_student2(int);/修改學生資料void change_student1(void);/修改總函數(shù)void input_score3(int);/統(tǒng)計成績void input_score1(void);/統(tǒng)計成績總函數(shù)void print_help(void);/輸出幫助信息void exit_student(void);/退出系統(tǒng)void save_student(student *,int
5、);/保存學生信息void main() menu(); void save_student(student *s,int a)/保存學生信息 FILE *fp; if(fp=fopen("d:學生信息.txt","wb")=NULL) printf("不能打開文件!n"); else printf("保存信息到D盤n"); fprintf(fp,"本班所有學生具體信息如下:rn"); fprintf(fp," 學號 姓名 數(shù)學成績 英語成績 計算機成績 平均成績rn");
6、for(int i=0;i<a;i+) fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2fn",stui.number,,stui.sco.math,stui.sco.english,stuiputer,stui.average); fprintf(fp,"rn"); fclose(fp); printf("信息保存成功!n"); void exit_student(void)/退出系統(tǒng) exit(1); void print_help(void)/輸出幫助信息 printf
7、("本系統(tǒng)所能容納的最大學生數(shù)為%d人n學生信息保存在D盤根目錄下,保存文件為“學生信息.txt”。n感謝使用!n",N); void input_score1(void)/統(tǒng)計成績總函數(shù) int c; c=search_student2(iNumOfStu); printf("學號:%dn",stuc.number); printf("姓名:%sn",); input_score3(c); printf("新成績錄入成功!n"); stuc.average=input_score2(c); vo
8、id input_score3(int a)/統(tǒng)計成績 printf("數(shù)學新成績:"); scanf("%f",&stua.sco.math); printf("英語新成績:"); scanf("%f",&stua.sco.english); printf("計算機新成績:"); scanf("%f",&stuaputer); void change_student2(int a)/修改學生資料 printf("學號:%d-修改為:&quo
9、t;,stua.number); scanf("%d",&stua.number); getchar(); printf("姓名:%s-修改為:",); gets(); printf("數(shù)學成績:%.2f-修改為:",stua.sco.math); scanf("%f",&stua.sco.math); printf("英語成績:%.2f-修改為:",stua.sco.english); scanf("%f",&st
10、ua.sco.english); printf("計算機成績:%.2f-修改為:",stuaputer); scanf("%f",&stuaputer); void change_student1(void)/修改總函數(shù) int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此學生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d='y'|d='Y') change
11、_student2(c); stuc.average=input_score2(c); printf("信息修改成功!n"); void delete_student1(void)/刪除總函數(shù) int c; c=search_student2(iNumOfStu); getchar(); printf("是否刪除此條記錄?(“y”代表是)"); char d; scanf("%c",&d); if(d='y'|d='Y') delete_student2(c,iNumOfStu); printf
12、("記錄已刪除!n"); void delete_student2(int a,int b)/刪除學生信息 for(int i=a;i<b-1;i+) stui=stui+1; -iNumOfStu; void search_student1(void)/查詢總函數(shù) printf("1、按學號查詢n2、按平均分最高查詢n請選擇:"); int c; scanf("%d",&c); switch(c) case 1: search_student2(iNumOfStu); break; case 2: search_stu
13、dent3(iNumOfStu); break; default: break; void menu(void)/菜單調度總函數(shù) print_menu(); choosemenu(); void sort_student1(void)/排序總函數(shù) printf("1、按數(shù)學成績排序n2、按英語成績排序n3、按計算機成績排序n4、按平均成績排序n請選擇:"); int c; scanf("%d",&c); switch(c) case 1: sort_student2(stu,iNumOfStu); break; case 2: sort_stud
14、ent3(stu,iNumOfStu); break; case 3: sort_student4(stu,iNumOfStu); break; case 4: sort_student5(stu,iNumOfStu); break; default: break; void print_student1(int a)/顯示全部學生資料 printf("本班所有學生具體信息如下n"); print_student2(); for(int i=0;i<a;i+) print_student3(i); void print_student3(int a)/顯示學生信息 p
15、rintf("%8d%12s%14.2f%14.2f%14.2f%14.2fn",stua.number,,stua.sco.math,stua.sco.english,stuaputer,stua.average); void print_student2(void)/顯示表頭 printf(" 學號 姓名 數(shù)學成績 英語成績 計算機成績 平均成績n"); void input_student4(int a,int b)/覆蓋原信息 stua=stub-1; -iNumOfStu; void input_student3(int &a
16、mp;a,int b)/判斷學號是否重復 if(a!=0) int i=0; do if(stua.number=stui.number) printf("此學號代表的學生已錄入n1、覆蓋原信息n2、重新輸入n請選擇:"); int c; scanf("%d",&c); switch(c) case 1: input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替換!n"); break; case 2: printf("請重新輸入學生信息:n"); i
17、nput_student1(iNumOfStu-1); break; default: break; break; +i; while(i<b-1); void print_menu(void)/輸出菜單 printf("=歡迎來到學生信息管理系統(tǒng)=n"); printf(" 1、輸入學生資料n"); printf(" 2、刪除學生資料n"); printf(" 3、查詢學生資料n"); printf(" 4、修改學生資料n"); printf(" 5、顯示學生資料n"
18、); printf(" 6、統(tǒng)計學生成績n"); printf(" 7、排序學生成績n"); printf(" 8、保存學生資料n"); printf(" 9、獲取幫助信息n"); printf(" 10、退出系統(tǒng)n"); printf("=n"); printf("請選擇:"); void input_student2(void)/輸入總函數(shù) char end; printf("請輸入學生信息(在最后一個學生信息錄入完成后以“/”結束錄入):n
19、"); for(int i=0;(end=getchar()!='/'i+) input_student1(i); +iNumOfStu; input_student3(i,iNumOfStu); for(int j=0;j<iNumOfStu;j+) stuj.average=input_score2(j); void input_student1(int a)/輸入學生信息 printf("學號:"); scanf("%d",&stua.number); getchar(); printf("姓名:&
20、quot;); gets(); printf("數(shù)學成績:"); scanf("%f",&stua.sco.math); printf("英語成績:"); scanf("%f",&stua.sco.english); printf("計算機成績:"); scanf("%f",&stuaputer); float input_score2(int a)/計算學生平均成績 return (stua.sco.math+stua.sco.en
21、glish+stuaputer)/3; void search_student3(int a)/按平均分最高查詢并輸出 int max=0; for(int i=0;i<a;i+) if(stumax.average<stui.average) max=i; print_student2(); print_student3(max); void sort_student2(student s,int a)/按照數(shù)學成績排序 struct student temp; for(int i=0;i<a-1;i+) int max=i; for(int j=i+1;j<a;j+
22、) if(stuj.sco.math>stumax.sco.math) max=j; if(max!=i) temp=stumax; stumax=stui; stui=temp; print_student2(); for(int k=0;k<a;k+) print_student3(k); void sort_student3(student s,int a)/按照英語成績排序 struct student temp; for(int i=0;i<a-1;i+) int max=i; for(int j=i+1;j<a;j+) if(stuj.sco.english
23、>stumax.sco.english) max=j; if(max!=i) temp=stumax; stumax=stui; stui=temp; print_student2(); for(int k=0;k<a;k+) print_student3(k); void sort_student4(student s,int a)/按照計算機成績排序 struct student temp; for(int i=0;i<a-1;i+) int max=i; for(int j=i+1;j<a;j+) if(stujputer>stumaxputer) max=
24、j; if(max!=i) temp=stumax; stumax=stui; stui=temp; print_student2(); for(int k=0;k<a;k+) print_student3(k); void sort_student5(student s,int a)/按照平均成績排序 struct student temp; for(int i=0;i<a-1;i+) int max=i; for(int j=i+1;j<a;j+) if(stuj.average>stumax.average) max=j; if(max!=i) temp=stum
25、ax; stumax=stui; stui=temp; print_student2(); for(int k=0;k<a;k+) print_student3(k); int search_student2(int a)/按照學號查找學生并輸出 int num; int c; printf("請輸入要查詢的學號:"); scanf("%d",&num); for(int i=0;i<a;i+) if(num=stui.number) c=i; printf("此學生的信息是:n"); print_student2(); print_student3(c); return c; void choosemenu(void)/菜單選擇 int i; scanf("%d",&i); switch(i) case 1: input_student2(); printf("按回車鍵返回主菜單"); getchar(); getchar(); menu()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:健全全過程人民民主制度體系研究
- 課題申報參考:家校社聯(lián)動共育模式對青少年24h活動行為與抑郁癥狀改善的促進研究
- 2025年香港離婚協(xié)議書范本離婚后子女監(jiān)護權協(xié)議3篇
- 二零二五年影視剪輯師版權合作協(xié)議3篇
- 二零二五版白酒銷售顧問銷售數(shù)據(jù)分析與報告合同3篇
- 二零二五版木材廠土地租賃合同與林業(yè)產業(yè)發(fā)展規(guī)劃3篇
- 二零二五版國際IT產品代理銷售協(xié)議2篇
- 2025版小區(qū)公共區(qū)域保潔與綠化維護承包合同3篇
- 2025年三明貨運從業(yè)資格證好考嗎
- 二零二五版供應鏈融資高額抵押反擔保合同3篇
- 2024公路瀝青路面結構內部狀況三維探地雷達快速檢測規(guī)程
- 2024年高考真題-地理(河北卷) 含答案
- 中國高血壓防治指南(2024年修訂版)解讀課件
- 2024風力發(fā)電葉片維保作業(yè)技術規(guī)范
- 《思想道德與法治》課程教學大綱
- 封條(標準A4打印封條)
- 運動技能學習與控制課件第十章動作技能的指導與示范
- 石油天然氣建設工程交工技術文件編制規(guī)范(SYT68822023年)交工技術文件表格儀表自動化安裝工程
- 中醫(yī)治療“濕疹”醫(yī)案72例
- 2023年大學生《思想道德與法治》考試題庫附答案(712題)
- 清代文學緒論
評論
0/150
提交評論