




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、題目名稱: 學(xué)生信息管理系統(tǒng)算法分析:1用結(jié)構(gòu)體標出信息系統(tǒng)的成員:學(xué)生學(xué)號,學(xué)生姓名,班級, 成績,排名2利用c語言的文件知識將系統(tǒng)的信息存放在 c盤下的“”的文 件夾下3定義各個子函數(shù)(1)定義輸入信息函數(shù),將學(xué)生信息按一定 格式用scanf函數(shù)輸入(統(tǒng)計M個學(xué)生的信息);(2)定義輸出函數(shù),每兩個表一頁直到最后一個;(3)定義信息查詢函數(shù)。a,定義按學(xué)號查詢函數(shù),如果輸入的 學(xué)號等于學(xué)生學(xué)號則輸出要查詢的信息;b,定義按姓名查詢函數(shù),如果輸入的姓名字符串等于其中一個學(xué)生的姓名字符串則輸出信息; c,定義按班級查找函數(shù),如果輸入的數(shù)字等于其中學(xué)生的班級數(shù), 則輸出該信息;d,定義按成績查找
2、函數(shù),如果輸入的數(shù)字等于其中學(xué) 生的成績數(shù),則輸出該信息;e,定義查找總函數(shù),輸入一個數(shù)選擇查 找方式,1-4分別對應(yīng)調(diào)用abcd四個函數(shù)。(4)定義刪除信息函數(shù)。輸入的數(shù)字作為要刪除的學(xué)生學(xué)號, 輸出要刪除的學(xué)生信息后選擇是否刪除, 刪除后將第g+1個的信息賦 給第g個,輸出刪除后的信息表。(5)定義信息修改函數(shù)。輸入的數(shù)字等于要修改的學(xué)生學(xué)號, 輸出要修改的學(xué)生信息后選擇是否修改,用 switch , case語句選擇 要修改的項目,輸入n,y決定是否繼續(xù)直到不繼續(xù)修改,輸出學(xué)生信 息。(6)定義信息統(tǒng)計函數(shù)。輸入一個數(shù)字作為成績,比較M個學(xué)生成績是否等于輸入的數(shù)字,統(tǒng)計相等的個數(shù) n輸出
3、。(7)定義成績排序函數(shù)。用冒泡排序法將 M個學(xué)生的成績按從 大到小的順序排列后輸出。4定義主函數(shù)。調(diào)用讀取文件函數(shù),輸入數(shù)字1-5分別對應(yīng)調(diào)用修改學(xué)生信息函數(shù),刪除學(xué)生信息函數(shù),查找學(xué)生信息函數(shù),統(tǒng)計學(xué)生信息函數(shù),學(xué)生成績排行信息函數(shù),0表示退出系統(tǒng)。最后調(diào)用保存文件函數(shù)。流程設(shè)計:結(jié)束程序。"學(xué)生信息管理系統(tǒng)程序用結(jié)構(gòu)體說明各個成員定義各個子函數(shù)定義成績 排序函數(shù)定義刪除信息函數(shù)定義統(tǒng)計 函數(shù)定義信息查 詢函數(shù)定義按學(xué) 號,姓名, 班級,成績 的函數(shù)定義修 改信息 函數(shù)switch,case語句選擇查詢方選擇要修 改的信息 1-4判斷是否 繼續(xù)修改 直到不繼 續(xù),結(jié)束將第g+1
4、個信息賦 給第g個比較成績數(shù) 是否等于輸 人數(shù)計數(shù), 輸出n定義主函數(shù),用switch case選擇要調(diào)用的子函數(shù)保存文件 退出系統(tǒng) 結(jié)束程序代碼設(shè)計:#include<>#include<>#include<>#define M 2#define PAGE 2/*學(xué)生信息結(jié)構(gòu)體類型*/typedef structint num;/*學(xué)號 */char name20; /*姓名*/int banji;/*班級 */int chengji;/*成績 */int paiming;/*NF名 */STUDENTS;int read_file(STUDENTS st
5、udents)/*文件的讀取 */ FILE *fp;/*定義一個文件指針變量*/int i=0;if(fp=fopen("","r")=NULL)/*文件空判斷,fopen 打開一個文件 */ printf("nn*庫存文件不存在!請創(chuàng)建");return 0;while(feof(fp)!=1)/*文件是否結(jié)束 */ fread(&studentsi,sizeof(STUDENTS),1,fp);/*讀取文件 */if(studentsi.num=0)/*學(xué)號是否為零 */break;elsei+;)fclose(fp);
6、/* 關(guān)閉文件 */ return i;)void save_file(STUDENTS students,int sum)/*保存文件 */ FILE *fp;int i;if(fp=fopen("","wb")=NULL)/*判斷文件是否為空 */ printf(" 讀文件錯誤! n");return;)for(i=0;i<sum;i+)if(fwrite(&studentsi,sizeof(STUDENTS),1,fp)!=1)/*向文件寫入的數(shù)據(jù)塊不等于1*/printf("寫文件錯誤! n"
7、);fclose(fp);)/*輸入模塊*/int input(STUDENTS students) int i=0;printf("nn錄入學(xué) 生信息 (最多%d人)n",M);printf("n");do printf("n第 人",i+1);printf("n學(xué)生學(xué)號:");scanf("%d",&studentsi.num);if(studentsi.num=0) break;printf("n學(xué)生姓名:");scanf("%s",stud
8、);printf("n班級:");scanf("%d”,&studentsi.banji);printf("n成績:");scanf("%d”,&studentsi.chengji);printf("n排名:");scanf("%d",&studentsi.paiming);i+;個學(xué)生信息輸入完畢!-n",i);按任意鍵返回主菜單!");while(i<M);printf("n-%dprintf("nge
9、tchar();return i;/* 輸出模塊*/void output(STUDENTS students)int i=0,j=0,page=1;printf("nn -學(xué)生信息表-第 d5Jnn",page);/*每兩個一頁 */printf(" 學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");do if(studentsi.num!=0) j+;if(j%PAGE!=0)printf("%12d%10s%2d%3d%4dn",studentsi.num,,stu
10、dentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");else printf("按任意鍵繼續(xù)!");getchar();printf("nn -學(xué)生信息表-第dnn",+page);printf("學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,
11、studentsi.chengji,studentsi.paiming);printf("n");i+;while(studentsi.num<M);printf(" 按任意鍵返回主菜單!");getchar( );/*學(xué)生信息查詢*/ void find_by_num(STUDENTS students,int sum) /* 按學(xué)號查找 */ int i,find_num;printf("n請輸入要查找的學(xué)生學(xué)號:”);scanf("%d”,&find_num);for(i=0;i<sum;i+)if(stud
12、entsi.num=find_num)printf("這是您所查找到的學(xué)生信息:n");printf("學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");break;elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回!
13、");getchar();void find_by_name(STUDENTS students,int sum)/*按姓名查找 */int i;char find_name20;printf("nscanf("%s",find_name);for(i=0;i<sum;i+);請輸入要查找的學(xué)生姓名:");if(strcmp(,find_name)=0) /*字符串比較相等返回0*/printf("這是您所查找到屬于該學(xué)生的信息:");printf(" 學(xué)生學(xué)號-姓名-班級- 成績
14、-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,, studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回!");getchar();void find_by_banji(STUDENTS students,int sum)/*按班級查找*/int i;int find
15、_banji;printf("n請輸入要查找的學(xué)生班級:");scanf("%d”,&find_banji);for(i=0;i<sum;i+)if(studentsi.banji=find_banji)printf("這是您所查找到屬于該班級的學(xué)生:");printf(" 學(xué)生學(xué)號-姓名-班級-成績-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,, studentsi.
16、banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的班級信息,按任意鍵返回!");getchar(); void find_by_chengji(STUDENTS students,int sum)/*按成級查找*/int i;int find_chengji;printf("n請輸入要查找的學(xué)生成績:");scanf("%d”,&find_chengji);for(i=0;i<sum;i+) if(student
17、si.chengji=find_chengji) printf("這是您所查找到有該成績的學(xué)生:");printf("學(xué)生學(xué)號-姓名-班級-成績-排名n");printf("printf("%12d%10sAn");%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");elseprintf("n未找到要查找的學(xué)生信息,按任意鍵返回
18、!");getchar();void find(STUDENTS students,int sum)/*定義查找總函數(shù) */ int choice;printf("n您要按照哪種方式查找 n");/* 用switch語句*/printf("n1.按學(xué)生學(xué)號查找n");printf("n2.按學(xué)生姓名查找n");printf("n3.按學(xué)生班級查找n");printf("n 4. 按學(xué)生成績查找n");printf("n 0.退出 n");printf("n
19、請選擇(0-4): n");scanf("%d”,&choice);switch(choice) case 1: find_by_num(students,sum); break;case 2: find_by_name(students,sum); break;case 3: find_by_banji(students,sum); break;case 4: find_by_chengji(students,sum); break;case 0:break;/*刪除信息模塊*/void del(STUDENTS students) int i,g,sum;int
20、 del_num;printf("n請輸入要刪除的學(xué)生學(xué)號:”);scanf("%d”,&del_num);for(i=0;i<sum;i+)if(studentsi.num=del_num)/*通過學(xué)號判斷 */printf("這是您所要刪除學(xué)生信息:n");printf(" 學(xué)生學(xué)號-姓名-班級-成績 n");printf("n");printf("%12d%10s%2d%3dn",studentsi.num,,studentsi.banji,stu
21、dentsi.chengji,studentsi.paiming);printf("n");printf("您確認要刪除嗎");printf("按任意鍵繼續(xù)!");getchar();排名%4dprintf(" 已成功刪除學(xué)生信息!)for(g=i;g<sum;g+) studentsg=studentsg+1;printf("刪除后的信息表:n");printf("學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");printf("%
22、12d%10s%2d%3d%4dn",studentsi.num,, studentsi.banji, studentsi.chengji,studentsi.paiming);printf("n");)/*信息修改模塊*/void modify(STUDENTS students,int sum)int i=0,choice,modify_num,flag;doprintf("請輸入要修改的學(xué)生學(xué)號:");scanf("%d”,&modify_num);for(i=0;i<sum;i+)if
23、(studentsi.num=modify_num) printf("nn -學(xué)生信息-nn");printf("學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("n");printf("n您要修改哪一項n");printf(&
24、quot;n1.學(xué)生姓名n");printf("n2.學(xué)生班級n");printf("n3.成績 n");printf("n4.排名 n");printf("n請選擇(1-4):n");scanf("%d”,&choice);switch(choice) case 1: printf("n請輸入修改后的學(xué)生姓名:");scanf("%s",); break;case 2: printf("n請輸入修改后的學(xué)生班
25、級:");scanf("%s",studentsi.banji); break;case 3: printf("n請輸入修改后的成績:");scanf("%s",studentsi.chengji); break;case 4: printf("n請輸入修改后的排名:");scanf("%d",&studentsi.paiming); break;printf("nn -學(xué)生信息一nn");printf("學(xué)生學(xué)號-姓名-班級- 成績-排名n&qu
26、ot;);printf("n");printf("%12d%10s%2d%3d%4dn",studentsi.num,,studentsi.banji,studentsi.chengji,studentsi.paiming);printf("An");break;)else( printf("n該學(xué)生不存在!");)printf("n修改成功!n");printf("您要繼續(xù)修改嗎(Y/N)");if (choice='Y'|cho
27、ice='y') flag=1;printf("n繼續(xù)!n");)else flag=0;while( flag=1);/*直到不修改結(jié)束循環(huán)*/printf("n按任意鍵返回主菜單!");getchar();/*學(xué)生信息統(tǒng)計模塊*/void count(STUDENTS students口,int sum) /*統(tǒng)計某個成績的學(xué)生個數(shù) */int i;int count_chengji;int n=0;printf("請輸入一個成績:n");scanf("%d”,&count_chengji);fo
28、r(i=0;i<sum;i+)if(studentsi.chengji=count_chengji)/*計數(shù)*/n+;break;printf("統(tǒng)計出屬于該成績的一共有 d個人n",n);/*成績排序模塊*/void sort(STUDENTS students,int sum)STUDENTS t;int i,j;printf("nn -學(xué)生信息一nn");printf(" 學(xué)生學(xué)號-姓名-班級- 成績-排名n");printf("n");for(i=1;i<sum;i+) for(j=i+1;j<sum;j+)if(studentsj.chen
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 23649:2025 EN Chemicals for the leather tanning industry - Determination of cyclosiloxanes
- 【正版授權(quán)】 ISO 3518:2025 EN Essential oil of sandalwood (Santalum album L.)
- 【正版授權(quán)】 ISO 18162:2024 EN Biotechnology - Biobanking - Requirements for human neural stem cells derived from pluripotent stem cells
- 2025年度標準托盤租賃及全程跟蹤服務(wù)協(xié)議
- 二手機械二手交易與環(huán)保處理服務(wù)合同(2025版)
- 2025年度二手房購房貸款保險合同范本
- 2025年辦公設(shè)備升級改造項目合作協(xié)議
- 生產(chǎn)計劃的周期性評審與調(diào)整
- 農(nóng)業(yè)生產(chǎn)的安全防護措施計劃
- 如何制定子女的教育基金計劃
- 小學(xué)二年級體育課《團身滾動》教案
- 8.3 摩擦力 同步練習(xí)-2021-2022學(xué)年人教版物理八年級下冊(Word版含答案)
- 級本科診斷學(xué)緒論+問診課件
- 初中足球選拔測試標準
- 《現(xiàn)代漢語詞匯》PPT課件(完整版)
- 法社會學(xué)(上課)
- 沉積學(xué)與古地理
- 生理學(xué)教學(xué)大綱
- 化工原理課程設(shè)計(換熱器)
- 環(huán)保鐵1215物質(zhì)安全資料表MSDS
- “君子教育”特色課程的探索
評論
0/150
提交評論