版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include#include#include#include#include#define LEN sizeof(struct stu)#define FORMAT %-8d%-10s%-8d%-10d%-8d%-15st%-20sn#define DATA commi.num,,commi.banji,commi.xuehao,commi.chengji,commi.teach,commi.timu#define TM sizeof(struct stu)#define FORMAT2 %-8d%-15st%-20sn#define TMK commi.bianhao
2、,commi.laoshi,commi.xuantistruct stu/*定義學(xué)生信息結(jié)構(gòu)體*/ int num; /*編號(hào)*/ int bianhao; char name15; /*學(xué)生名稱(chēng)*/ int banji; /*班級(jí)*/ int xuehao; /*學(xué)號(hào)*/ int chengji; /*成績(jī)*/ char teach15; /*老師名稱(chēng)*/ char laoshi15; char timu20; /*選題*/ char xuanti20;struct stu comm100;/*定義結(jié)構(gòu)體數(shù)組*/void in(); /*錄入學(xué)生信息*/void give(); /*管理員錄
3、入可選課題*/void show(); /*顯示學(xué)生信息*/void order1(); /*按成績(jī)排序*/void order2(); /*按班級(jí)學(xué)號(hào)排序*/void del(); /*刪除學(xué)生信息*/void del2(); /*刪除題目信息*/void modify1(); /*管理員修改學(xué)生信息*/void modify2(); /*學(xué)生選擇畢業(yè)設(shè)計(jì)題目*/void menu1(); /*管理員菜單*/void menu2(); /*學(xué)生菜單*/void insert(); /*插入學(xué)生信息*/void tongji(); /*所選題目*/void search(); /*查找學(xué)生信息
4、*/void main() /*主函數(shù)*/ int h,flag1,flag2,flag3; char name20=,password10=11111; char name120=guanli,password110=11111; char xuanzhe20=gl; char person20,password210,ch20; printf (tt * 歡迎進(jìn)入2014本科畢業(yè)設(shè)計(jì)管理系統(tǒng)!*nn); printf (tttt用 戶(hù) 登 錄 n ); printf (n請(qǐng)選擇登陸方式:您是管理員請(qǐng)輸入gl,學(xué)生請(qǐng)輸入其他 : ); gets(ch); flag1=strcmp(ch,xu
5、anzhe); for(h=0;h!=6;) if(flag1=0) printf( 管理員名:); gets(person); flag2=strcmp(person,name1); printf( 密碼: ); gets(password2); flag3=strcmp(password1,password2); else printf( 用戶(hù)名:); gets(person); flag2=strcmp(person,name); /*strcmp比較兩個(gè)字符串,若相等返回0*/ printf( 密碼:); gets(password2); flag3=strcmp(password,p
6、assword2); if(flag2=0 & flag3=0) printf(ttt 登陸成功!nn); if(flag1=0) menu1(); else menu2(); break; else printf (ttt用戶(hù)名或密碼錯(cuò)誤!nn); printf (ttt請(qǐng)注意:您還剩%d次機(jī)會(huì)!nn,5-h); h+; if (h=5) printf (對(duì)不起,您輸入的用戶(hù)名或密碼有誤,系統(tǒng)已強(qiáng)制退出。n);void menu1() /*管理員菜單*/ int n; system(cls); printf (ntt * 歡迎進(jìn)入2014本科畢業(yè)設(shè)計(jì)管理系統(tǒng)管理員入口!*nn); print
7、f(tt*-學(xué)生管理系統(tǒng)-*n); printf(tt| 1. 錄入學(xué)生信息 |n); printf(tt| 2. 序號(hào)查找信息 (精確) |n); printf(tt| 3. 名稱(chēng)查找信息 (模糊) |n); printf(tt| 4. 刪除存檔記錄 |n); printf(tt| 5. 修改學(xué)生信息 |n); printf(tt| 6. 插入學(xué)生信息 |n); printf(tt*-*n); printf(tt| 7. 按成績(jī)排序 |n); printf(tt| 8. 按班級(jí)學(xué)號(hào)排序 |n); printf(tt| 9. 統(tǒng)計(jì)學(xué)生信息 |n); printf(tt| 10. 顯示已存所有信
8、息 |n); printf(tt*-*n); printf(tt| 11.管理員錄入可選課題 |n); printf(tt| 12.刪除已存課題信息 |n); printf(tt| 13.查看可供選擇的課程 |n); printf(tt| 14. 退出 |n); printf(tt*-*nn); printf(ttt請(qǐng)輸入對(duì)應(yīng)數(shù)字選擇對(duì)應(yīng)功能:); scanf(%d,&n);/*輸入選擇功能的編號(hào)*/ while(n) switch(n) case 1: in(); break; /*調(diào)用錄入學(xué)生信息過(guò)程*/ case 2: search(); break; /*查找學(xué)生信息過(guò)程*/ case
9、 3: search1(); break; /*查找學(xué)生信息過(guò)程*/ case 4: del(); break; /*調(diào)用刪除學(xué)生信息的過(guò)程*/ case 5: modify1(); break; /*調(diào)用修改學(xué)生信息的過(guò)程*/ case 6: insert(); break; /*調(diào)用插入數(shù)據(jù)的過(guò)程*/ case 7: order1(); break; /*調(diào)用成績(jī)排序過(guò)程*/ case 8: order2(); break; /*調(diào)用班級(jí)學(xué)號(hào)排序過(guò)程*/ case 9: tongji(); break; /*計(jì)算總數(shù)*/ case 10: show(); break; case 11: g
10、ive(); break; /*管理員錄入可選課題*/ case 12: del2(); break; /*調(diào)用刪除課題的過(guò)程*/ case 13: show1(); break; /*查看可供選擇的課程*/ case 14: system(exit);exit(0); default:break; getch(); menu1(); /*執(zhí)行完功能再次顯示菜單界面*/ scanf(%d,&n); void menu2() /*學(xué)生菜單*/ int n; system(cls); printf (ntt * 歡迎進(jìn)入2014本科畢業(yè)設(shè)計(jì)管理系統(tǒng)學(xué)生入口!*nn); printf(tt*-學(xué)生管
11、理系統(tǒng)-*n); printf(tt| 1. 顯示所有學(xué)生信息 |n); printf(tt| 2. 序號(hào)查找信息 (精確) |n); printf(tt| 3. 名稱(chēng)查找信息 (模糊) |n); printf(tt| 4. 按成績(jī)排序 |n); printf(tt| 5. 按班級(jí)學(xué)號(hào)排序 |n); printf(tt| 6. 統(tǒng)計(jì)學(xué)生信息 |n); printf(tt*-*n); printf(tt| 7. 確認(rèn)本人信息并選擇課題 (選課 ) |n); printf(tt| 8. 查看本學(xué)期可選擇的課題 |n); printf(tt| 9. 退出 |n); printf(tt*-*nn);
12、printf(t溫馨提示: 請(qǐng)查看選項(xiàng)8中所給題目,再進(jìn)入7輸入你想選擇的題目!nn); printf(ttt請(qǐng)輸入選項(xiàng)前數(shù)字選擇對(duì)應(yīng)功能: ); scanf(%d,&n);/*輸入選擇功能的編號(hào)*/ while(n) switch(n) case 1: show(); break; case 2: search(); break; case 3: search1(); break; case 4: order1(); break; /*調(diào)用成績(jī)排序過(guò)程*/ case 5: order2(); break; /*調(diào)用班級(jí)學(xué)號(hào)排序過(guò)程*/ case 6: tongji(); break; /*計(jì)
13、算總數(shù)*/ case 7: modify2(); break; case 8: show1(); break; case 9:system(exit);exit(0); default:break; getch(); menu2(); /*執(zhí)行完功能再次顯示菜單界面*/ scanf(%d,&n); void in() /*錄入學(xué)生信息*/ int i,m=0; /*m是記錄的條數(shù)*/ char ch2; FILE *fp; /*定義文件指針*/ if(fp=fopen(data,ab+)=NULL) /*打開(kāi)指定文件*/ printf(不能打開(kāi)文件!n); /*null空指針*/ return
14、; while(!feof(fp) /feof(fp) 表示沒(méi)有到達(dá)末尾這個(gè)末尾是最后一個(gè)字符的下一個(gè)位置,即讀失敗時(shí)的位置 if(fread(&commm ,LEN,1,fp)=1) m+; /*統(tǒng)計(jì)當(dāng)前記錄條數(shù)*/ fclose(fp); if(m=0) printf(沒(méi)有記錄!n); else system(cls); show(); /*調(diào)用show函數(shù),顯示原有信息*/ if(fp=fopen(data,wb)=NULL) /*wb:只寫(xiě)二進(jìn)制文件*/ printf(不能打開(kāi)文件!n); return; for(i=0;im;i+) fwrite(&commi ,LEN,1,fp);
15、 /*向指定的磁盤(pán)文件寫(xiě)入信息*/ /每次寫(xiě) LEN,1次 printf(是否輸入?(y/n):); scanf(%s,ch); while(strcmp(ch,Y)=0|strcmp(ch,y)=0)/*判斷是否要錄入新信息*/ printf(序號(hào): ); scanf(%d,&commm.num); /*輸入序號(hào)*/ for(i=0;im;i+) if(commi.num = commm.num) printf(該序號(hào)已經(jīng)存在,按任意鍵繼續(xù)!); getch(); fclose(fp); return; printf(姓名: ); scanf(%s,&); /*輸入學(xué)生姓
16、名*/ printf(班級(jí): ); scanf(%d,&commm.banji); /*輸入學(xué)生班級(jí)*/ printf(學(xué)號(hào): ); scanf(%d,&commm.xuehao); /*輸入學(xué)生學(xué)號(hào)*/ printf(成績(jī): ); scanf(%d,&commm.chengji); /*輸入學(xué)生成績(jī)*/ printf(指導(dǎo)老師: ); scanf(%s,&commm.teach); /*輸入老師姓名*/ printf(選題: ); scanf(%s,&commm.timu); /*輸入所選題目*/ if(fwrite(&commm,LEN,1,fp)!=1) /*將新錄入的信息寫(xiě)入指定的磁盤(pán)
17、文件*/ printf(不能保存!); getch(); else printf(已經(jīng)保存,%s,); printf(的信息!n); m+; printf(是否繼續(xù)?(y/n):); /*詢(xún)問(wèn)是否繼續(xù)*/ scanf(%s,ch); /為下一次for循環(huán)取值 fclose(fp); printf(OK!n);void give() /*錄入可選課題信息*/ int i,m=0; /*m是記錄的條數(shù)*/ char ch2; FILE *fp; /*定義文件指針*/ if(fp=fopen(TMK,ab+)=NULL) /*打開(kāi)指定文件*/ /ab+:向二進(jìn)制文件末添加數(shù)據(jù),允
18、許讀 printf(不能打開(kāi)文件!n); /*null空指針*/ return; while(!feof(fp) /feof(fp) 表示沒(méi)有到達(dá)末尾這個(gè)末尾是最后一個(gè)字符的下一個(gè)位置,即讀失敗時(shí)的位置 if(fread(&commm ,TM,1,fp)=1) m+; /*統(tǒng)計(jì)當(dāng)前記錄條數(shù)*/ fclose(fp); if(m=0) printf(沒(méi)有記錄!n); else system(cls); show1(); /*調(diào)用show函數(shù),顯示原有信息*/ if(fp=fopen(TMK,wb)=NULL) /*wb:只寫(xiě)二進(jìn)制文件*/ printf(不能打開(kāi)文件!n); return; fo
19、r(i=0;im;i+) fwrite(&commi ,TM,1,fp); /*向指定的磁盤(pán)文件寫(xiě)入信息*/ /每次寫(xiě) TM,1次 printf(是否輸入?(y/n):); scanf(%s,ch); while(strcmp(ch,Y)=0|strcmp(ch,y)=0)/*判斷是否要錄入新信息*/ printf(編號(hào): ); scanf(%d,&commm.bianhao); /*輸入序號(hào)*/ for(i=0;im;i+) if(commi.bianhao = commm.bianhao) printf(該序號(hào)已經(jīng)存在,按任意鍵繼續(xù)!); getch(); fclose(fp); retu
20、rn; printf(n指導(dǎo)老師 : ); scanf(%s,&commm.laoshi); /*輸入老師姓名*/ printf(題目: ); scanf(%s,&commm.xuanti); /*輸入所給題目*/ if(fwrite(&commm,TM,1,fp)!=1) /*將新錄入的信息寫(xiě)入指定的磁盤(pán)文件*/ printf(不能保存!); getch(); else printf(已經(jīng)保存此課程的信息!n); m+; printf(是否繼續(xù)?(y/n):); /*詢(xún)問(wèn)是否繼續(xù)*/ scanf(%s,ch); /為下一次for循環(huán)取值 fclose(fp); printf(OK!n);vo
21、id show() /*顯示學(xué)生信息*/ FILE *fp; int i,m=0; fp=fopen(data,ab+); /ab+:向二進(jìn)制文件末添加數(shù)據(jù),允許讀 while(!feof(fp) if(fread(&commm ,LEN,1,fp)=1) /打開(kāi)文件,讀取成功時(shí)記錄次數(shù) m+; fclose(fp); printf(序號(hào) 姓名 班級(jí) 學(xué)號(hào) 成績(jī) 指導(dǎo)老師 選題tn); for(i=0;im;i+) printf(FORMAT,DATA);/*將信息按指定格式打印*/ void show1() /*顯示可供選擇的課程*/ FILE *fp; int i,m=0; fp=fope
22、n(TMK,ab+); while(!feof(fp) if(fread(&commm ,TM,1,fp)=1) /打開(kāi)文件,讀取成功時(shí)記錄次數(shù) m+; fclose(fp); printf(編號(hào) 指導(dǎo)老師 課題tn); for(i=0;im;i+) printf(FORMAT2,TMK);/*將信息按指定格式打印*/ void order1() /*按成績(jī)排序函數(shù)*/ FILE *fp; struct stu t; int i=0,j=0,m=0; if(fp=fopen(data,ab+)=NULL) printf(不能打開(kāi)文件!n); return; while(!feof(fp) if
23、(fread(&commm ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(沒(méi)有記錄!n); return; for(i=0;im-1;i+) for(j=i+1;jm;j+) /*雙重循環(huán)實(shí)現(xiàn)成績(jī)比較并交換*/ if(commi.chengji commj.chengji) t=commi; commi=commj; commj=t; if(fp=fopen(data,wb)=NULL) printf(不能打開(kāi)n); return; for(i=0;im;i+) /*將重新排好序的內(nèi)容重新寫(xiě)入指定的磁盤(pán)文件中*/ if(fwrite(&commi ,
24、LEN,1,fp)!=1) printf(%s 不能保存!n); getch(); fclose(fp); printf(保存成功n);void order2() /*按班級(jí)學(xué)號(hào)排序函數(shù)*/ FILE *fp; struct stu t; int i=0,j=0,m=0,x,y; if(fp=fopen(data,ab+)=NULL) printf(不能打開(kāi)文件!n); return; while(!feof(fp) if(fread(&commm ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(沒(méi)有記錄!n); return; for(i=0;im-
25、1;i+) for(j=i+1;j y) t=commi; commi=commj; commj=t; if(fp=fopen(data,wb)=NULL) printf(不能打開(kāi)n); return; for(i=0;im;i+) /*將重新排好序的內(nèi)容重新寫(xiě)入指定的磁盤(pán)文件中*/ if(fwrite(&commi ,LEN,1,fp)!=1) printf(%s 不能保存!n); getch(); fclose(fp); printf(保存成功n);void del() /*刪除學(xué)生函數(shù)*/ FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen
26、(data,ab+)=NULL) printf(不能打開(kāi)文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(沒(méi)有記錄!n); return; printf(請(qǐng)輸入序號(hào):); scanf(%d,&snum); for(i=0;im;i+) if(snum=commi.num) break; if(i=m) printf(沒(méi)有找到!); getchar(); return; printf(已經(jīng)找到該記錄,是否刪除?(y/n); scanf(%s,ch); if(strcm
27、p(ch,Y)=0|strcmp(ch,y)=0) /*判斷是否要進(jìn)行刪除*/ for(j=i;jm;j+) commj = commj+1; /*將后一個(gè)記錄移到前一個(gè)記錄的位置*/ m-; /*記錄的總個(gè)數(shù)減1*/ printf(成功刪除!n); if(fp=fopen(data,wb)=NULL) printf(不能打開(kāi)!n); return; for(j=0;jm;j+) /*將更改后的記錄重新寫(xiě)入指定的磁盤(pán)文件中*/ if(fwrite(&commj ,LEN,1,fp)!=1) printf(不能保存!n); getch(); fclose(fp);void del2() /*刪除
28、課題函數(shù)*/ FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen(tmk,ab+)=NULL) printf(不能打開(kāi)文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(沒(méi)有記錄!n); return; printf(請(qǐng)輸入題目編號(hào): ); scanf(%d,&snum); for(i=0;im;i+) if(snum=commi.bianhao) break; if(i=m) printf(沒(méi)有找到!); getcha
29、r(); return; printf(已經(jīng)找到該記錄,是否刪除?(y/n); scanf(%s,ch); if(strcmp(ch,Y)=0|strcmp(ch,y)=0) /*判斷是否要進(jìn)行刪除*/ for(j=i;jm;j+) commj = commj+1; /*將后一個(gè)記錄移到前一個(gè)記錄的位置*/ m-; /*記錄的總個(gè)數(shù)減1*/ printf(成功刪除!n); if(fp=fopen(tmk,wb)=NULL) printf(不能打開(kāi)!n); return; for(j=0;jm;j+) /*將更改后的記錄重新寫(xiě)入指定的磁盤(pán)文件中*/ if(fwrite(&commj ,TM,1,
30、fp)!=1) printf(不能保存!n); getch(); fclose(fp);void search() /*按編號(hào)查找函數(shù)(精確查詢(xún))*/ FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen(data,ab+)=NULL) printf(不能打開(kāi)文件n); return; while(!feof(fp) if(fread(&commm,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf(沒(méi)有記錄!n); return; printf(請(qǐng)輸入編號(hào):); scanf(%d,&snum); for(i=0;i
31、m;i+) if(snum = commi.num) /*查找輸入的編號(hào)是否在記錄中*/ printf(已經(jīng)找到該記錄,是否顯示?(y/n); scanf(%s,ch); if(strcmp(ch,Y)=0|strcmp(ch,y)=0) printf(序號(hào) 姓名 班級(jí) 學(xué)號(hào) 成績(jī) 指導(dǎo)老師 選題tn); printf(FORMAT,DATA);/*將查找出的結(jié)果按指定格式輸出*/ break; else return; if(i=m) printf(沒(méi)有找到相應(yīng)的記錄!n);/*未找到要查找的信息*/void search1() /*按題目的部分查找(模糊查詢(xún))*/ FILE *fp; int i,m=0,flag=0,x,y,k; char str120,str220,ch2; if(fp=fopen(data,ab+)=NULL) printf(不能打開(kāi)文件n); re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年燃?xì)夤艿辣☉?yīng)急演練工作總結(jié)(3篇)
- 2026屆河北省名校聯(lián)盟高三上學(xué)期模擬考試歷史試題(含答案)
- 2026年車(chē)載Wi-Fi熱點(diǎn)模塊項(xiàng)目公司成立分析報(bào)告
- 2026年智能血糖AI預(yù)測(cè)系統(tǒng)項(xiàng)目評(píng)估報(bào)告
- 基于量子密碼認(rèn)證
- 市級(jí)財(cái)稅政策對(duì)企業(yè)自主創(chuàng)新激勵(lì)效應(yīng)的多維度剖析與策略?xún)?yōu)化
- 工程承包商績(jī)效評(píng)估方案
- 外科基本技能圖譜:燒傷外科修復(fù)課件
- 建筑施工圖審查流程方案
- 鋼結(jié)構(gòu)節(jié)點(diǎn)抗剪設(shè)計(jì)
- 2025年河南農(nóng)業(yè)大學(xué)馬克思主義基本原理概論期末考試真題匯編
- 2025年國(guó)企副總經(jīng)理年終述職報(bào)告
- 昆山鈔票紙業(yè)有限公司2026年度招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 施工消防安全評(píng)估措施
- 高考語(yǔ)文復(fù)習(xí)古代詩(shī)歌形象鑒賞課件
- 2025中國(guó)醫(yī)學(xué)科學(xué)院北京協(xié)和醫(yī)學(xué)院勞務(wù)派遣制工作人員招聘3人筆試備考重點(diǎn)試題及答案解析
- 區(qū)域創(chuàng)新一體化機(jī)制-洞察及研究
- 兒科健康評(píng)估與護(hù)理
- 四診合參在護(hù)理評(píng)估中的綜合應(yīng)用
- 2026年青海省交通控股集團(tuán)有限公司招聘(45人)筆試考試參考題庫(kù)及答案解析
- GB 46768-2025有限空間作業(yè)安全技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論