c語言學(xué)生信息管理系統(tǒng)_第1頁
c語言學(xué)生信息管理系統(tǒng)_第2頁
c語言學(xué)生信息管理系統(tǒng)_第3頁
c語言學(xué)生信息管理系統(tǒng)_第4頁
c語言學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、#include<stdio.h>#include<string.h>#include<stdlib.h>#include<conio.h>#define N 10000 void srh_stu();void sort();struct student char num10;/學(xué)號(hào) char name10;/姓名 char code10;/登錄密碼 char sex3;/性別 char depart10;/系部 char addr10;/家庭住址 char tel15;/電話 int age;/年齡 int elec;/選修課 int requ

2、;/必修課 int sum; /總成績 stuN,ts;struct admin/管理員結(jié)構(gòu)體 char num10;/管理員編號(hào) char code10;/密碼admN,ta;struct teacher/教師結(jié)構(gòu)體 char num10;/教師編號(hào) char code10;/密碼thrN,tt;int ID;/登錄號(hào)int i,j;int len=0;/學(xué)生人數(shù) int lent=0;/老師人數(shù)int lena=0;/管理員人數(shù)void save()/保存信息 FILE *fp; if(fp=fopen("student.txt","w")=NULL

3、)/打開文件 printf("文件打開失??!"); exit(0); for(i=0;i<len;i+)/寫入文件 fprintf(fp,"%st%st%st%st%st%st%st%dt%dt%dt%dtn",stui.num,,stui.code,stui.sex,stui.depart,stui.addr,stui.tel,stui.age,stui.elec,stui.requ,stui.sum ); fclose(fp);/關(guān)閉文件if(fp=fopen("teacher.txt","w&q

4、uot;)=NULL)/打開教師文件 printf("文件打開失?。?quot;); exit(0); for(i=0;i<lent;i+)/寫入文件 fprintf(fp,"%st%stn",thri.num,thri.code); fclose(fp);/關(guān)閉文件if(fp=fopen("admin.txt","w")=NULL)/打開管理員文件 printf("文件打開失?。?quot;); exit(0); for(i=0;i<lena;i+)/寫入文件 fprintf(fp,"%st

5、%stn",admi.num,admi.code); fclose(fp);/關(guān)閉文件 void load()/讀取信息 FILE *fp; if(fp=fopen("student.txt","r")=NULL)/打開文件 fopen("student.txt","w");/創(chuàng)建文件 goto loop1; i=0; while(!feof(fp)/讀取文件 fscanf(fp,"%s%s%s%s%s%s%s%d%d%d%d",&stui.num,&

6、,&stui.code,&stui.sex,&stui.depart,&stui.addr,&stui.tel,&stui.age,&stui.elec,&stui.requ,&stui.sum ); if(!feof(fp) i+; len=i;/數(shù)量 fclose(fp);/關(guān)閉文件loop1: if(fp=fopen("teacher.txt","r")=NULL)/打開文件 fopen("teacher.txt","w");/創(chuàng)建文件

7、goto loop2; i=0; while(!feof(fp)/讀取文件 fscanf(fp, "%s%s",&thri.num,&thri.code); if(!feof(fp) i+; lent=i;/教師數(shù)量 fclose(fp);/關(guān)閉文件loop2: if(fp=fopen("admin.txt","r")=NULL)/打開文件 fopen("admin.txt","w");/創(chuàng)建文件 strcpy(adm0.num,"123");/初始化初始賬號(hào)

8、 strcpy(adm0.code,"123");/初始化初始密碼 lena=1; save();/保存 return; i=0; while(!feof(fp)/讀取文件 fscanf(fp, "%s%s",&admi.num,&admi.code); if(!feof(fp) i+; lena=i;/管理員數(shù)量 fclose(fp);/關(guān)閉文件 char menu_login()/登陸菜單char ch; system("cls");/清屏 printf("nnnn"); printf(&quo

9、t;-中國海洋大學(xué)青島學(xué)院-n");printf("n"); printf(" -歡迎使用-n"); printf("n"); printf("-學(xué)生信息管理系統(tǒng)-n"); printf("nn"); printf("ttt|-Login-|n"); printf("ttt|t 1. 幫助【必看】 |n"); printf("ttt|t 2. 學(xué)生登陸 |n"); printf("ttt|t 3. 教師登錄 |n&q

10、uot;); printf("ttt|t 4. 管理員登錄 |n"); printf("ttt|t 5. 退出 |n"); printf("nn"); printf("-n"); printf("-n"); printf("ttchoose(1-5):");printf(" 請(qǐng)選擇:"); ch=getchar();getchar();/消除緩存中的換行符return ch;void help() system("cls"); syst

11、em("COLOR 2f"); printf("-中國海洋大學(xué)青島學(xué)院-n"); printf(" -歡迎使用-n"); printf("-學(xué)生信息管理系統(tǒng)-n"); printf("n 尊敬的用戶您好!"); printf("n =n| |"); printf("n | 1.歡迎進(jìn)入幫助系統(tǒng)! |n| |"); printf("n | |n| |"); printf("n | 2.請(qǐng)按照菜單提示進(jìn)入數(shù)字代號(hào)! |n| |&q

12、uot;); printf("n | 3.教師和學(xué)生信息由管理員寫入! |n| |"); printf("n | 4.成績?yōu)?1表示尚未錄入成績! |n| |"); printf("n | 5.初始管理員初始登錄賬號(hào):123 密碼:123! |n| |"); printf("n | 6.謝謝您的使用! |n| |"); printf("n | 7.教師和學(xué)生首次登陸賬號(hào)和密碼由管理員給定 |n| |"); printf("n =n "); printf("-n&qu

13、ot;); printf("-n"); printf("請(qǐng)按任意鍵進(jìn)入登錄界面:."); getch();void exit1() system("cls");/清屏system("COLOR 3f");printf("-中國海洋大學(xué)青島學(xué)院-n");printf("n");printf(" -【學(xué)生信息管理系統(tǒng)】-n");printf("n");printf("n");printf(" 制作人: 【王汝通

14、】 n");printf("=n");printf(" Bye-Byen");printf("n");printf(" n");printf("n");printf(" n");printf(" n");printf("n");printf(" n");printf(" 海 10級(jí) n");printf(" 軟 n");printf(" 大 件 n"

15、;);printf(" 工 n");printf(" 青 程 n");printf(" 一 n");printf(" 院 班 n");printf(" n");printf(" 謝謝使用n");exit(0);char menu_stu()/學(xué)生菜單 char ch; system("cls");/清屏 printf("nnnnn"); printf("-中國海洋大學(xué)青島學(xué)院-n"); printf(" -

16、歡迎使用-n"); printf("-學(xué)生信息管理系統(tǒng)-n"); printf("tt|-STUDENT-|n"); printf("tt| 1.個(gè)人信息查詢 |n"); printf("tt| 2.修改密碼 |n"); printf("tt| 3.退出 |n"); printf("tt|-|n"); printf("nn"); printf("-n"); printf("-n"); printf(&quo

17、t;tttchoose(1-3):"); ch=getchar(); getchar();/消除回車符 return ch;void srh_gr()/個(gè)人信息查詢 system("cls");/清屏 printf("我(%s)的信息如下:n",); printf("_n"); printf("學(xué)號(hào) 姓名 年齡 性別 系部 住址 電話 選修 專業(yè) 總分nn"); printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%dn",stuI

18、D.num,stuID.name,stuID.age,stuID.sex,stuID.depart,stuID.addr,stuID.tel,stuID.elec,stuID.requ,stuID.sum); printf("_n"); printf("查詢完畢,任意鍵返回."); getch();void mod_code_stu()/修改密碼char cd010,cd110,cd210; system("cls");/清屏printf("請(qǐng)輸入原密碼:");gets(cd0);if(strcmp(cd0,stu

19、ID.code)=0)/與原密碼相同 while(1) printf("請(qǐng)輸入新密碼:"); gets(cd1); printf("請(qǐng)?jiān)俅屋斎胄旅艽a:"); gets(cd2); if(strcmp(cd1,cd2)=0)/兩次密碼相同 strcpy(stuID.code,cd1);/修改密碼 save();/保存 printf("修改成功,任意鍵返回。"); getch(); return; else/兩次輸入密碼不同 printf("兩次輸入密碼不同,請(qǐng)重來。n"); system("cls"

20、;);/清屏 else/與原密碼不同 printf("對(duì)不起!您輸入的密碼錯(cuò)誤,任意鍵返回。"); getch();void login_stu()/學(xué)生登錄char num10,code10; system("cls");/清屏 printf("nnn 請(qǐng)輸入學(xué)號(hào): "); gets(num); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/比較學(xué)號(hào)是否相同 break; if(i=len) printf("對(duì)不起!沒有這個(gè)學(xué)號(hào)。任意鍵返回。"); getch()

21、; ID=-1;/-1表示登錄失敗 return;else printf(" 請(qǐng)輸入密碼: "); gets(code); while(strcmp(code,stui.code)!=0)/密碼不同 printf(" 密碼錯(cuò)誤,請(qǐng)重新輸入:"); gets(code); ID=i;/記住登錄號(hào)void students()/學(xué)生系統(tǒng) char ch; login_stu();/登錄 if(ID=-1) return;/登錄失敗,返回 while(1) ch=menu_stu();/學(xué)生菜單 switch(ch) case '1': srh

22、_gr(); break;/個(gè)人信息查詢 case '2': mod_code_stu(); break;/修改密碼 case '3': return;/返回上一級(jí) void login_thr()/教師登錄char num10,code10; system("cls");/清屏 printf("nnn 請(qǐng)輸入教師編號(hào): "); gets(num); for(i=0;i<lent;i+) if(strcmp(num,thri.num)=0)/比較編號(hào)是否相同 break; if(i=lent) printf(&quo

23、t;對(duì)不起!沒有這個(gè)管理員編號(hào)。任意鍵返回。"); getch(); ID=-1;/-1表示登錄失敗 return;else printf(" 請(qǐng)輸入密碼: "); gets(code); while(strcmp(code,thri.code)!=0)/密碼不同 printf(" 密碼錯(cuò)誤,請(qǐng)重新輸入:"); gets(code); ID=i;/記住登錄號(hào)char menu_thr()/教師菜單 char ch; system("cls"); printf("nnnnn"); printf("

24、-中國海洋大學(xué)青島學(xué)院-n"); printf(" -歡迎使用-n"); printf("-學(xué)生信息管理系統(tǒng)-n"); printf("tt|-TEACHER-|n"); printf("tt|t 1.密碼修改 |n"); printf("tt|t 2.學(xué)生成績的錄入 |n"); printf("tt|t 3.學(xué)生信息的查詢 |n"); printf("tt|t 4.學(xué)生成績的顯示(排序) |n"); printf("tt|t 5.退出

25、 |n"); printf("tt|-|n"); printf("nn"); printf("-n"); printf("-n"); printf("tttchoose(1-5):"); ch=getchar();/獲取選擇 getchar();/消除回車符 return ch;/*void modefy() /成績修改 char num10; system("cls");/清屏 printf("請(qǐng)輸入要修改成績的學(xué)生學(xué)號(hào):"); gets(nu

26、m); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/學(xué)號(hào)是否相同 break;/相同 結(jié)束查找if(i=len) printf("對(duì)不起!沒有這個(gè)學(xué)號(hào)記錄,任意鍵返回。"); getch(); return; printf("請(qǐng)輸入專業(yè)課成績:");scanf("%d",&stui.requ);printf("請(qǐng)輸入選修課成績:");scanf("%d",&stui.elec);getchar();/消除回車stui.sum=s

27、tui.requ+stui.elec;/總成績save();/保存printf("成績修改完成,任意鍵返回。");getch(); */void mod_code_thr() /密碼修改 char cd010,cd110,cd210; system("cls");/清屏printf("請(qǐng)輸入原密碼:");gets(cd0);if(strcmp(cd0,thrID.code)=0)/與原密碼相同 while(1) printf("請(qǐng)輸入新密碼:"); gets(cd1); printf("請(qǐng)?jiān)俅屋斎胄旅艽a:

28、"); gets(cd2); if(strcmp(cd1,cd2)=0)/兩次密碼相同 strcpy(thrID.code,cd1);/修改密碼 save();/保存 printf("修改成功,任意鍵返回。"); getch(); return; else/兩次輸入密碼不同 printf("兩次輸入密碼不同,請(qǐng)重來。n"); system("cls");/清屏 else/與原密碼不同 printf("對(duì)不起!您輸入的密碼錯(cuò)誤,任意鍵返回。"); getch();void input() /成績錄入 cha

29、r num12; system("cls");/清屏 printf("請(qǐng)輸入要錄入成績的學(xué)生學(xué)號(hào):"); gets(num); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/學(xué)號(hào)是否相同 break;/相同 結(jié)束查找if(i=len) printf("對(duì)不起!沒有這個(gè)學(xué)號(hào)記錄,任意鍵返回。"); getch(); return; printf("請(qǐng)輸入專業(yè)課成績:");scanf("%d",&stui.requ);printf("

30、;請(qǐng)輸入選修課成績:");scanf("%d",&stui.elec);getchar();/消除回車stui.sum=stui.requ+stui.elec;/總成績save();/保存printf("成績錄入完成,任意鍵返回。");getch(); void teacher() /老師系統(tǒng) char ch; login_thr();/登錄 if(ID=-1) return;/登錄失敗,返回 while(1) ch=menu_thr();/老師生菜單 switch(ch) case '1': mod_code_thr(

31、); break;/密碼修改 case '2': input(); break;/成績錄入 case '3': srh_stu(); break;/學(xué)生信息的查詢 case '4': sort(); break;/學(xué)生成績的排序 /case '5': modefy();/學(xué)生成績的修改 case '5':return;/返回上一級(jí) void login_adm()/管理員登錄char num10,code10; system("cls");/清屏 printf("nnn 請(qǐng)輸入管理員編

32、號(hào): "); gets(num); for(i=0;i<lena;i+) if(strcmp(num,admi.num)=0)/比較編號(hào)是否相同 break; if(i=lena) printf("對(duì)不起!沒有這個(gè)管理員編號(hào)。任意鍵返回。"); getch(); ID=-1;/-1表示登錄失敗 return;else printf(" 請(qǐng)輸入密碼: "); gets(code); while(strcmp(code,admi.code)!=0)/密碼不同 printf(" 密碼錯(cuò)誤,請(qǐng)重新輸入:"); gets(cod

33、e); ID=i;/記住登錄號(hào)char menu_adm()/管理員菜單 char ch; system("cls"); printf("nnnnn"); printf("-中國海洋大學(xué)青島學(xué)院-n"); printf(" -歡迎使用-n"); printf("-學(xué)生信息管理系統(tǒng)-n"); printf("n"); printf("ttt|-COMMANDER-|n"); printf("ttt| 1.登陸密碼的修改 |n"); pri

34、ntf("ttt| 2.顯示學(xué)生信息 |n"); printf("ttt| 3.賬戶注冊(cè)管理 |n"); printf("ttt| 4.賬戶注銷管理 |n"); printf("ttt| 5.學(xué)生信息查詢 |n"); printf("ttt| 6.學(xué)生信息修改 |n"); printf("ttt| 7.退出 |n"); printf("ttt|-|n"); printf("nn"); printf("-n"); pr

35、intf("-n"); printf("ttchoose(1-6):"); ch=getchar();/獲取選擇 getchar();/消除回車符 return ch;void mod_code_adm()/修改管理員密碼char cd010,cd110,cd210; system("cls");/清屏printf("請(qǐng)輸入原密碼:");gets(cd0);if(strcmp(cd0,admID.code)=0)/與原密碼相同 while(1) printf("請(qǐng)輸入新密碼:"); gets(c

36、d1); printf("請(qǐng)?jiān)俅屋斎胄旅艽a:"); gets(cd2); if(strcmp(cd1,cd2)=0)/兩次密碼相同 strcpy(admID.code,cd1);/修改密碼 save();/保存 printf("修改成功,任意鍵返回。"); getch(); return; else/兩次輸入密碼不同 printf("兩次輸入密碼不同,請(qǐng)重來。n"); system("cls");/清屏 else/與原密碼不同 printf("對(duì)不起!您輸入的密碼錯(cuò)誤,任意鍵返回。"); get

37、ch(); void del() /注銷賬戶char num10,ch; system("cls");/清屏 printf("請(qǐng)選擇要注銷賬戶的類型(1、學(xué)生 2、教師 3、管理員):n"); while(1) ch=getchar(); getchar();/消除上一步產(chǎn)生的回車符 if(ch='1' | ch='2' | ch='3') break; else printf("輸入錯(cuò)誤請(qǐng)重新輸入:"); if(ch='1' )/注銷學(xué)生賬號(hào) printf("

38、請(qǐng)輸入要注銷學(xué)生的學(xué)號(hào):"); gets(num); for(i=0;i<len;i+) if(strcmp(num,stui.num)=0)/學(xué)號(hào)是否相同 break; if(i=len) printf("對(duì)不起!沒有這個(gè)學(xué)號(hào),任意鍵返回。");getch();return; ts=stui; stui=stui+1; stui+1=ts;/和最后一個(gè)同學(xué)交換位置 len-;/數(shù)量減一 save();/保存 else if(ch='2')/注銷管老師賬號(hào) printf("請(qǐng)輸入要注銷教師的編號(hào):"); gets(num)

39、; for(i=0;i<lent;i+) if(strcmp(num,thri.num)=0)/編號(hào)是否相同 break; if(i=lent) printf("對(duì)不起!沒有這個(gè)教師編號(hào),任意鍵返回。");getch();return; tt=thri; thri=thri+1; thri+1=tt;/和最后一個(gè)老師交換位置 lent-;/數(shù)量減一 save();/保存 else if(ch='3')/注銷管理員賬號(hào) printf("請(qǐng)輸入要注銷管理員的編號(hào):"); gets(num); for(i=0;i<lena;i+)

40、if(strcmp(num,admi.num)=0)/編號(hào)是否相同 break; if(i=lena) printf("對(duì)不起!沒有這個(gè)管理員編號(hào),任意鍵返回。");getch();return; ta=admi; admi=admi+1; admi+1=ta;/和最后一個(gè)管理員交換位置 lena-;/數(shù)量減一 save();/保存 save();/保存 printf("注銷成功!任意鍵返回。"); getch();void sort() /對(duì)學(xué)生成績的成績排序 system("cls");/清屏 for(j=0;j<len-1

41、;j+) for(i=0;i<len-1-j;i+) if(stui.sum<stui+1.sum)/冒泡法按成績排序 ts=stui; stui=stui+1; stui+1=ts; printf("按總成績從高到底排序結(jié)果如下:n" ); printf("_n"); printf("學(xué)號(hào) 姓名 年齡 性別 系部 住址 電話 選修 專業(yè) 總分nn"); for(i=0;i<len;i+) printf("%-8s%-8s%-6d%-6s%-8s%-8s%-8s%-6d%-6d%dn",stui.

42、num,,stui.age,stui.sex,stui.depart,stui.addr,stui.tel,stui.elec,stui.requ,stui.sum); printf("_n"); printf("排序完畢,任意鍵返回。"); getch();void regist() /注冊(cè)管理char ch; system("cls");/清屏 printf("請(qǐng)選擇要注冊(cè)賬戶的類型(1、學(xué)生 2、教師 3、管理員):n"); while(1) ch=getchar(); getchar();/消除上一步產(chǎn)生的回車符 if(ch='1&#

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論