


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/*Copyright (c) 2012, 陳長(zhǎng)佑*All right reserved* 文件名稱 :log_menu.c*文件標(biāo)識(shí):* 摘 要:本文件放置了登錄函數(shù),功能是登錄到管理員主菜單或?qū)W生主菜單,* 管理員賬戶固定, 登錄前加載密碼, 學(xué)生登錄前先加載學(xué)生信息, 然后匹配學(xué)生用戶名和 密碼。*版 本: 1.0* 作 者:陳長(zhǎng)佑 *完成日期: 2012年 8月4日*/ #includegloble.h void loger()/ 登錄函數(shù)int m=0;int i=0;int y=310909;/ 固定的管理員賬戶char st32;/ 把加載的管理員密碼放到該數(shù)組中char str
2、32;/ 把輸入密碼放到該數(shù)組中 node_p head=create_headnode();/ 創(chuàng)建頭結(jié)點(diǎn) strcpy(st,load_manege_key();/75 加載管理員密碼 head=load_stu(head);/ 加載學(xué)生信息 for(i=0;inext; if(sp!=NULL)while(sp!=NULL)if(m=sp-stu.num)&(strcmp(str,sp-stu.key)=0)/ 驗(yàn)證學(xué)生學(xué)號(hào)和密碼 break;sp=sp-next;if(sp!=NULL)student_menu(head,m);/ 進(jìn)入學(xué)生菜單elseprintf( 系統(tǒng)不存在這用戶
3、!n);if(inext=NULL;return head;node_p create_node()/ 創(chuàng)建空結(jié)點(diǎn),無(wú)指向node_p headp; headp=(node_p)malloc(sizeof(node_t); if(headp=NULL)exit(1);headp-next = NULL;return headp;node_p input_data()/ 輸入學(xué)生信息node_p headp;static int k;k=add_num();headp=create_node();if(headp=NULL)printf( 內(nèi)存分配失敗 n);headp-stu.num=k;pr
4、intf( 自動(dòng)生成學(xué)號(hào) n); printf(%d,headp-stu.num); printf( 請(qǐng)輸入姓名 n); scanf(%s,); getchar();printf( 請(qǐng)輸入密碼 n); scanf(%s,headp-stu.key);getchar();printf( 請(qǐng)輸入年齡 n); if(headp-stu.agestu.age150)printf( 輸入 );/*elseprintf( 請(qǐng)輸入學(xué)生名字 密碼 年齡 班級(jí) n);scanf(%s %s %d %d,,headp-stu.key,&headp-stu.a
5、ge,&headp-stu.class es);getchar();printf( 請(qǐng)輸入數(shù)學(xué) 語(yǔ)文 c 語(yǔ)言成績(jī): n);scanf(%d %d %d,&headp-stu.grade.math,&headp-stu.grade.chinese,&headp-stu.grade. c);*/k+;return headp;int add_num()/ 學(xué)號(hào)自增函數(shù)int a=301;int b,c,d,t;printf( 請(qǐng)?jiān)O(shè)置學(xué)號(hào)的年級(jí) 班級(jí) 第一個(gè)學(xué)生的編號(hào) n); scanf(%d %d %d,&b,&c,&d);getchar(); t=a*1000000+b*10000+c*100
6、+d;return t;node_p insert_node(node_p head,node_p headp)/ 把結(jié)點(diǎn)插入到鏈表中去 headp-next=head-next; head-next=headp;return head; node_p add_stu(node_p head)/ 增加學(xué)生信息int n;int i;node_p headp;printf( 輸入學(xué)生人數(shù) n); scanf(%d,&n);getchar(); if(head=NULL)exit(1); for(i=0;inext;while(headp!=NULL) fwrite(&headp-stu,size
7、of(STU),1,fp); headp=headp-next;printf( 保存學(xué)生信息成功 n);fclose(fp);flag=0;getchar();return head;node_p load_stu(node_p head)/ 加載學(xué)生信息FILE* fp;if(head=NULL)exit(1);node_p p=head-next;while(p!=NULL)head-next = p-next;free(p);p-next=NULL;p = head-next;if(fp=fopen(stb,rt)=NULL)printf( 不能打開文件 n);exit(1);node_
8、p headp =create_node();while(fread(&headp-stu,sizeof(STU),1,fp)=1)printf( 學(xué) 號(hào) =%d, 姓 名 =%s, 密 碼 =%s, 年 齡 =%d, 班 級(jí) =%dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf( 數(shù) 學(xué) =%d, 語(yǔ) 文 =%d,c 語(yǔ) 言 =%dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);head=
9、insert_node(head,headp);headp =create_node();fclose(fp);flag=0;printf( 加載學(xué)生信息成功 n);getchar();return head;node_p delete_stu(node_p head)/ 刪除學(xué)生信息 int n;node_p headp;if(head=NULL)exit(1);headp=head-next; if(headp=NULL) exit(1); printf( 請(qǐng)輸入刪除學(xué)生的學(xué)號(hào) :n); scanf(%d,&n);getchar();if(headp!=NULL)while(headp!=
10、NULL) if(n=headp-stu.num) break;head=head-next; headp=headp-next;if(headp!=NULL) head-next=headp-next; free(headp); headp-next=NULL; printf( 刪除學(xué)生信息成功 n); flag=1;elseprintf( 系統(tǒng)不存在這用戶 !n);return head;node_p modify_stu(node_p head)/ 修改學(xué)生信息 int i;int choice;while(1)system(clear); printf(=n);printf(1: 修改
11、學(xué)生成績(jī) n);printf(2: 修改學(xué)生姓名 n);printf(3: 修改學(xué)生班級(jí) n);printf(0: 返回上一級(jí)菜單 n); printf(=n);printf( 請(qǐng)選擇: n); i=scanf(%d,&choice);while(i=0)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 :n); while(getchar()!=n);/ 清空鍵盤緩沖 i=scanf(%d,&choice);getchar();/ 去掉換行符switch(choice)case 1:modify_score(head);break;case 2:modify_name(head);break;case
12、3:modify_classes(head);break;case 0:return head;default:printf( 輸入不對(duì),請(qǐng)重新輸入: );break; getchar();flag=1; return head;void search_stu(node_p head)int i;int choice;while(1)system(clear); printf(=n); printf(1: 按姓名查詢學(xué)生信息 n); printf(2: 按班級(jí)查詢學(xué)生信息 n);printf(3: 按總成績(jī)排名查詢學(xué)生信息 n); printf(0: 返回上一級(jí)菜單 n);printf(=n)
13、; printf( 請(qǐng)選擇: n);i=scanf(%d,&choice);while(i=0)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 :n); while(getchar()!=n);/ 清空鍵盤緩沖 i=scanf(%d,&choice);/ getchar();/ 去掉換行符switch(choice)case 1:name_search(head);break;case 2:classes_search(head);break;case 3:total_sort_output(head); break;case 0:return;default:printf( 輸入不對(duì),請(qǐng)重新輸入: )
14、; break; getchar(); flag=0; return;void sort_stu(node_p head)int i;int choice; while(1)system(clear); printf(=n); printf(1: 根據(jù)總成績(jī)顯示學(xué)生信息 n); printf(2: 根據(jù)排名顯示學(xué)生信息 n); printf(3: 根據(jù)姓名排名顯示學(xué)生信息 n); printf(0: 返回上一級(jí)菜單 n); printf(=n); printf( 請(qǐng)選擇: n); i=scanf(%d,&choice);while(i=0)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 :n); whi
15、le(getchar()!=n);/ 清空鍵盤緩沖 i=scanf(%d,&choice);/ getchar();/ 去掉換行符switch(choice)case 1:total_sort_output(head); break;case 2:rank_output(head);break;case 3:name_sort_output(head);break;case 0:return;default:printf( 輸入不對(duì),請(qǐng)重新輸入: );break;getchar();flag=0;return;void printf_stu(node_p head)/ 打印學(xué)生信息 if(he
16、ad=NULL) exit(1);node_p headp=head-next;while(headp!=NULL)printf( 學(xué) 號(hào) =%d, 姓 名 =%s, 密 碼 =%s, 年 齡 =%d, 班 級(jí) =%dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf( 數(shù) 學(xué) =%d, 語(yǔ) 文 =%d,c 語(yǔ) 言 =%dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);headp=headp-n
17、ext;getchar();return;void quit_stu(node_p head)/ 退出管理員菜單函數(shù) if(head=NULL)exit(1); if(flag=0)exit(1); if(flag=1)printf( 是否保存信息 y 或 n:n); getchar(); if(getchar()=y|getchar()=Y) save_stu(head); exit(1); if(n=getchar()|N=getchar() exit(1); return;void save_manege_key()/ 保存管理員密碼FILE *fp;char st32=abcde; i
18、f(fp=fopen(sts,wt)=NULL)printf( 不能打開文件 n);exit(1);fprintf(fp,%s,st);rewind(fp);fclose(fp);printf( 保存管理員密碼成功 n);getchar();return;char* load_manege_key()/ 加載管理員密碼 FILE *fp;static char st32=; if(fp=fopen(sts,rt)=NULL) printf( 不能打開文件 n);exit(1);fscanf(fp,%s,st);rewind(fp);fclose(fp);printf( 加載管理員密碼成功 n)
19、; return st;void modify_manege_key()/ 修改管理員密碼FILE *fp;static char snew32=;static char gnew32=;while(1)printf( 請(qǐng)輸入管理員新密碼 :n);scanf(%s,snew);getchar();printf( 請(qǐng)?jiān)俅屋斎牍芾韱T新密碼 :n); scanf(%s,gnew);if(strcmp(snew,gnew)=0)if(fp=fopen(sts,wt)=NULL)printf( 不能打開文件 n);exit(1);fprintf(fp,%s,gnew);rewind(fp);fclose
20、(fp);printf( 修改密碼成功 n);getchar();break;elsen);printf( 輸入新密碼不正確,請(qǐng)重新輸入return;/*Copyright (c) 2012, 陳長(zhǎng)佑*All right reserved* 文件名稱 :modify_menu.c*文件標(biāo)識(shí):* 摘 要:本文件放置了修改菜單中的各個(gè)子函數(shù), 功能是修改學(xué)生的名字 班級(jí) 各科分?jǐn)?shù) (數(shù)學(xué) 語(yǔ)文 c 語(yǔ)言)。*版 本: 1.0* 作 者:陳長(zhǎng)佑 *完成日期: 2012年 8月4日*/#includegloble.hvoid modify_name(node_p head)/ 修改名字子函數(shù)stati
21、c char a32;static char b32;node_p headp; if(head=NULL)exit(1); headp=find(head);/118 定位要修改學(xué)生的當(dāng)前位置 printf( 顯示原來(lái)學(xué)生的名字 n);printf(%sn,);while(1)printf( 請(qǐng)輸入舊的名字 n); scanf(%s,a);getchar(); if(strcmp(,a)=0)printf( 請(qǐng)輸入新名字 n); scanf(%s,b);getchar(); strcpy(,b); print
22、f( 修改姓名成功 n);flag=1;return;elseprintf( 請(qǐng)?jiān)俅屋斎肱f的名字 n);return;void modify_classes(node_p head)/ 修改班級(jí)子函數(shù)static int k;static int h;node_p headp;if(head=NULL)exit(1);headp=find(head);/118 定位要修改學(xué)生的當(dāng)前位置 printf( 顯示原來(lái)學(xué)生的班級(jí) n);printf(%dn,headp-stu.classes);while(1)printf( 請(qǐng)輸入舊的班級(jí) n); scanf(%d,&k);getchar();if(
23、headp-stu.classes=k)printf( 請(qǐng)輸入新班級(jí) n); scanf(%d,&h);getchar();headp-stu.classes=h; printf( 修改班級(jí)成功 n);flag=1;return;elseprintf( 請(qǐng)?jiān)俅屋斎肱f的班級(jí) n);return;void modify_score(node_p head)/ 修改成績(jī)子函數(shù) int i,choice;while(1)system(clear); printf(=n);printf(1: 修改數(shù)學(xué)成績(jī) n);printf(2: 修改語(yǔ)文成績(jī) n);printf(3: 修改 c 語(yǔ)言成績(jī) n); pr
24、intf(0: 返回上一級(jí)菜單 n); printf(=n); printf( 請(qǐng)選擇: n); i=scanf(%d,&choice);while(i=0)printf( 輸入錯(cuò)誤,請(qǐng)重新輸入 :n); while(getchar()!=n);/ 清空鍵盤緩沖 i=scanf(%d,&choice);/ getchar();/ 去掉換行符switch(choice)case 1: modify_math_score(head); break;case 2: modify_chinese_score(head); break;case 3: modify_clanguage_score(hea
25、d); break;case 0:return;default:printf( 輸入不對(duì),請(qǐng)重新輸入 ); break;getchar();flag=1;return;void modify_math_score(node_p head)/ 修改數(shù)學(xué)成績(jī)static int h; static int k; node_p headp; if(head=NULL) exit(1); headp=find(head);/118 定位要修改學(xué)生的當(dāng)前位置 printf( 顯示原來(lái)學(xué)生的數(shù)學(xué)成績(jī) n); printf(%dn,headp-stu.grade.math);while(1) printf(
26、 請(qǐng)輸入原來(lái)的數(shù)學(xué)成績(jī) n); scanf(%d,&k); getchar();if(headp-stu.grade.math=k)printf( 請(qǐng)輸入新數(shù)學(xué)成績(jī) n); scanf(%d,&h); getchar();headp-stu.grade.math=h; printf( 修改數(shù)學(xué)成績(jī)成功 n); flag=1;return; else printf( 請(qǐng)?jiān)俅屋斎朐瓉?lái)的數(shù)學(xué)成績(jī) n); return;void modify_chinese_score(node_p head)/ 修改語(yǔ)文成績(jī) static int h; static int k; node_p headp; if(
27、head=NULL)exit(1);headp=find(head);/ 236 定位要修改學(xué)生的當(dāng)前位置 printf( 顯示原來(lái)學(xué)生的語(yǔ)文成績(jī) n); printf(%dn,headp-stu.grade.chinese);while(1)printf( 請(qǐng)輸入原來(lái)的語(yǔ)文成績(jī) n); scanf(%d,&k);getchar(); if(headp-stu.grade.chinese=k)printf( 請(qǐng)輸入新語(yǔ)文成績(jī) n); scanf(%d,&h);getchar(); headp-stu.grade.chinese=h;printf( 修改語(yǔ)文成績(jī)成功 n); flag=1;ret
28、urn;elseprintf( 請(qǐng)?jiān)俅屋斎朐瓉?lái)的語(yǔ)文成績(jī) n);return;void modify_clanguage_score(node_p head)/ 修改 c 語(yǔ)言成績(jī) static int h;static int k;node_p headp;if(head=NULL)exit(1);headp=find(head);/ 定位要修改學(xué)生的當(dāng)前位置 printf( 顯示原來(lái)學(xué)生的 c 語(yǔ)言成績(jī) n); printf(%dn,headp-stu.grade.c);while(1)printf( 請(qǐng)輸入原來(lái)的 c 語(yǔ)言成績(jī) n); scanf(%d,&k);getchar();if(
29、headp-stu.grade.c=k)printf( 請(qǐng)輸入新 c 語(yǔ)言成績(jī) n); scanf(%d,&h);getchar();headp-stu.grade.c=h;printf( 修改 c 語(yǔ)言成績(jī)成功 n);flag=1;return;elseprintf( 請(qǐng)?jiān)俅屋斎朐瓉?lái)的 c 語(yǔ)言成績(jī) n);return;node_p find(node_p head)/ 定位要修改學(xué)生的當(dāng)前位置 int n;node_p headp; if(head=NULL)exit(1);headp=head-next; if(headp=NULL)exit(1);printf( 輸入要修改學(xué)生的學(xué)號(hào)
30、:n); scanf(%d,&n);getchar(); while(n!=headp-stu.num)headp=headp-next;if(headp=NULL)exit(1);return headp;#includegloble.hvoid name_search(node_p head)/ 根據(jù)名字查詢 char a6; node_p headp; if(head=NULL) exit(1); headp=head-next; if(headp=NULL) return;printf( 輸入要查詢的姓名 :); scanf(%s,a); getchar();while(headp!=
31、NULL) while(strcmp(a,)!=0) headp=headp-next; if(headp=NULL) return; printf( 顯示學(xué)生的學(xué)號(hào) 姓名 密碼 年齡 班級(jí) n);printf(%d %s %s %d %dn,headp-stu.num,,headp-stu.key,headp-stu.a ge,headp-stu.classes);printf( 顯示數(shù)學(xué) 語(yǔ)文 c 語(yǔ)言成績(jī) n);printf(%d %d %dn,headp-stu.grade.math,headp-stu.grade.chinese
32、,headp-stu.grade.c); headp=headp-next; getchar(); flag=0; return;void classes_search(node_p head)/ 根據(jù)班級(jí)查詢int n;node_p headp; if(head=NULL)exit(1); headp=head-next; if(headp=NULL)return;printf( 輸入要查詢的班級(jí) :); scanf(%d,&n);getchar(); while(headp!=NULL)while(n!=headp-stu.classes) headp=headp-next; if(hea
33、dp=NULL) return;printf( 顯示學(xué)生的學(xué)號(hào) 姓名 密碼 年齡 班級(jí) n);printf(%d %s %s %d %dn,headp-stu.num,,headp-stu.key,headp-stu.a ge,headp-stu.classes);printf( 顯示數(shù)學(xué) 語(yǔ)文 c 語(yǔ)言成績(jī) n);printf(%d %d %dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c); headp=headp-next;flag=0;return; /*Copyright (
34、c) 2012, 陳長(zhǎng)佑*All right reserved* 文件名稱 :sort_menu.c*文件標(biāo)識(shí):*摘 要:本文件放置了學(xué)生排序菜單中的子函數(shù), 功能是對(duì)總成績(jī) 名字 各科成績(jī) (數(shù)學(xué)語(yǔ)文*c 語(yǔ)言)進(jìn)行排序,并能根據(jù)輸入名次顯示出學(xué)生信息。*版本:1.0*作者:陳長(zhǎng)佑*完成日期:2012 年 8 月 4 日*/#includegloble.hvoid total_sort_output(node_p head)/ 根據(jù)所有科目的總分排序STU *pr;int n=0;int i=0;if(head=NULL)exit(1); n=function(head);/142 pr=array_rank(head,n);/128 pr=total_rank(pr,n);/ 226/printf( 輸入學(xué)生總成績(jī)的名次 n);/scanf(%d,&m);/getchar();/printf( 根據(jù)總成績(jī)名次輸出學(xué)生信息 n);/display(m,pr);/156for(i=0;inext; pr=(STU*)malloc(n*sizeof(STU);for(i=0;istu; headp=headp-next;return pr;int function(node_p head)/ 計(jì)算結(jié)點(diǎn)數(shù)目int n=0;node_p headp;if(hea
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 信陽(yáng)選調(diào)面試題庫(kù)及答案
- 逐步提升系統(tǒng)分析師考試試題及答案
- 連結(jié)員復(fù)習(xí)測(cè)試附答案
- 運(yùn)營(yíng)消保練習(xí)卷含答案
- 輸氣工(高級(jí))理論復(fù)習(xí)測(cè)試附答案
- 面試指導(dǎo)系統(tǒng)分析師考試試題及答案
- 安全監(jiān)管人員試題及答案
- 22商務(wù)應(yīng)知應(yīng)會(huì)復(fù)習(xí)測(cè)試卷含答案
- 積累經(jīng)驗(yàn)軟件評(píng)測(cè)師試題及答案
- 2025貸款協(xié)議合同(民間借貸)
- 江蘇卷2024年高考語(yǔ)文第一次模擬考試二(原卷版+解析版)
- UL583標(biāo)準(zhǔn)中文版-2018電動(dòng)工業(yè)車輛UL中文版標(biāo)準(zhǔn)
- 第二次世界大戰(zhàn)后資本主義的變化及其實(shí)質(zhì)
- 2023年高考真題-歷史(遼寧卷) 含解析
- 2022版ISO27001信息安全管理體系基礎(chǔ)培訓(xùn)課件
- 2024油氣管道無(wú)人機(jī)巡檢作業(yè)標(biāo)準(zhǔn)
- 2024年共青團(tuán)團(tuán)課考試測(cè)試題庫(kù)及答案
- 招投標(biāo)管理招聘筆試題及解答(某大型國(guó)企)
- 新版《鐵道概論》考試復(fù)習(xí)試題庫(kù)(含答案)
- 2024年公選處級(jí)領(lǐng)導(dǎo)干部面試題選及參考答案
- 6.3基層群眾自治制度 說(shuō)課課件高中政治統(tǒng)編版必修三政治與法治
評(píng)論
0/150
提交評(píng)論