




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*Copyright (c) 2012,陈长佑*All right reserved*文件名称:log_menu.c*文件标识:*摘 要:本文件放置了登录函数,功能是登录到管理员主菜单或学生主菜单,* 管理员账户固定,登录前加载密码,学生登录前先加载学生信息,然后匹配学生用户名和密码。*版 本:1.0*作 者:陈长佑*完成日期:2012年8月4日*/#includegloble.hvoid loger()/登录函数int m=0;int i=0;int y=310909;/固定的管理员账户char st32;/把加载的管理员密码放到该数组中char str32;/把输入密码放到该数组中node_p head=create_headnode();/创建头结点strcpy(st,load_manege_key();/75加载管理员密码head=load_stu(head);/加载学生信息for(i=0;inext;if(sp!=NULL)while(sp!=NULL)if(m=sp-stu.num)&(strcmp(str,sp-stu.key)=0)/验证学生学号和密码break;sp=sp-next;if(sp!=NULL)student_menu(head,m);/进入学生菜单elseprintf(系统不存在这用户!n);if(inext=NULL;return head; node_p create_node()/创建空结点,无指向node_p headp;headp=(node_p)malloc(sizeof(node_t);if(headp=NULL)exit(1);headp-next = NULL;return headp;node_p input_data()/输入学生信息node_p headp;static int k; k=add_num();headp=create_node();if(headp=NULL)printf(内存分配失败n);headp-stu.num=k;printf(自动生成学号n);printf(%d,headp-stu.num);printf(请输入姓名n);scanf(%s,);getchar();printf(请输入密码n);scanf(%s,headp-stu.key);getchar();printf(请输入年龄n);if(headp-stu.agestu.age150)printf(输入);/*elseprintf(请输入学生名字 密码 年龄 班级n);scanf(%s %s %d %d,,headp-stu.key,&headp-stu.age,&headp-stu.classes);getchar();printf(请输入数学 语文 c语言成绩:n);scanf(%d %d %d,&headp-stu.grade.math,&headp-stu.grade.chinese,&headp-stu.grade.c); */k+;return headp;int add_num()/学号自增函数int a=301;int b,c,d,t;printf(请设置学号的年级 班级 第一个学生的编号n);scanf(%d %d %d,&b,&c,&d);getchar();t=a*1000000+b*10000+c*100+d;return t;node_p insert_node(node_p head,node_p headp)/把结点插入到链表中去headp-next=head-next;head-next=headp; return head;node_p add_stu(node_p head)/增加学生信息int n;int i;node_p headp;printf(输入学生人数n);scanf(%d,&n);getchar();if(head=NULL)exit(1);for(i=0;inext;while(headp!=NULL)fwrite(&headp-stu,sizeof(STU),1,fp);headp=headp-next;printf(保存学生信息成功n); fclose(fp);flag=0;getchar();return head;node_p load_stu(node_p head)/加载学生信息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_p headp =create_node();while(fread(&headp-stu,sizeof(STU),1,fp)=1)printf(学号=%d,姓名=%s,密码=%s,年龄=%d,班级=%dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf(数学=%d,语文=%d,c语言=%dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);head=insert_node(head,headp);headp =create_node();fclose(fp);flag=0;printf(加载学生信息成功n);getchar();return head;node_p delete_stu(node_p head)/删除学生信息int n;node_p headp;if(head=NULL)exit(1);headp=head-next;if(headp=NULL)exit(1);printf(请输入删除学生的学号:n);scanf(%d,&n);getchar();if(headp!=NULL)while(headp!=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(删除学生信息成功n);flag=1;elseprintf(系统不存在这用户!n);return head;node_p modify_stu(node_p head)/修改学生信息int i;int choice;while(1)system(clear);printf(=n);printf(1:修改学生成绩n);printf(2:修改学生姓名n);printf(3:修改学生班级n);printf(0:返回上一级菜单n);printf(=n);printf(请选择:n);i=scanf(%d,&choice);while(i=0)printf(输入错误,请重新输入:n);while(getchar()!=n);/清空键盘缓冲i=scanf(%d,&choice);getchar();/去掉换行符switch(choice) case 1:modify_score(head);break;case 2:modify_name(head);break;case 3:modify_classes(head);break;case 0:return head;default:printf(输入不对,请重新输入:);break; getchar(); flag=1;return head;void search_stu(node_p head)int i;int choice;while(1)system(clear);printf(=n);printf(1:按姓名查询学生信息n);printf(2:按班级查询学生信息n);printf(3:按总成绩排名查询学生信息n);printf(0:返回上一级菜单n);printf(=n);printf(请选择:n);i=scanf(%d,&choice);while(i=0)printf(输入错误,请重新输入: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(输入不对,请重新输入:);break; getchar();flag=0; return;void sort_stu(node_p head)int i;int choice;while(1)system(clear);printf(=n);printf(1:根据总成绩显示学生信息n);printf(2:根据排名显示学生信息n);printf(3:根据姓名排名显示学生信息n);printf(0:返回上一级菜单n);printf(=n);printf(请选择:n);i=scanf(%d,&choice);while(i=0)printf(输入错误,请重新输入:n);while(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(输入不对,请重新输入:);break; getchar();flag=0; return;void printf_stu(node_p head)/打印学生信息if(head=NULL)exit(1);node_p headp=head-next;while(headp!=NULL)printf(学号=%d,姓名=%s,密码=%s,年龄=%d,班级=%dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf(数学=%d,语文=%d,c语言=%dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);headp=headp-next;getchar();return;void quit_stu(node_p head)/ 退出管理员菜单函数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;if(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);return st;void modify_manege_key()/修改管理员密码FILE *fp;static char snew32=;static char gnew32=;while(1)printf(请输入管理员新密码:n);scanf(%s,snew);getchar();printf(请再次输入管理员新密码: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(fp);printf(修改密码成功n);getchar();break;elseprintf(输入新密码不正确,请重新输入n);return;/*Copyright (c) 2012,陈长佑*All right reserved*文件名称:modify_menu.c*文件标识:*摘 要:本文件放置了修改菜单中的各个子函数,功能是修改学生的名字 班级 各科分数(数学 语文 c语言)。*版 本:1.0*作 者:陈长佑*完成日期:2012年8月4日*/#includegloble.hvoid modify_name(node_p head)/修改名字子函数static char a32;static char b32;node_p headp;if(head=NULL)exit(1);headp=find(head);/118定位要修改学生的当前位置printf(显示原来学生的名字n);printf(%sn,);while(1)printf(请输入旧的名字n);scanf(%s,a);getchar();if(strcmp(,a)=0)printf(请输入新名字n);scanf(%s,b);getchar();strcpy(,b);printf(修改姓名成功n);flag=1;return;elseprintf(请再次输入旧的名字n);return;void modify_classes(node_p head)/修改班级子函数static int k;static int h;node_p headp;if(head=NULL)exit(1);headp=find(head);/118定位要修改学生的当前位置printf(显示原来学生的班级n);printf(%dn,headp-stu.classes);while(1)printf(请输入旧的班级n);scanf(%d,&k);getchar();if(headp-stu.classes=k)printf(请输入新班级n);scanf(%d,&h);getchar();headp-stu.classes=h;printf(修改班级成功n);flag=1;return;elseprintf(请再次输入旧的班级n);return;void modify_score(node_p head)/修改成绩子函数int i,choice;while(1)system(clear);printf(=n);printf(1:修改数学成绩n);printf(2:修改语文成绩n);printf(3:修改c语言成绩n);printf(0:返回上一级菜单n);printf(=n);printf(请选择:n);i=scanf(%d,&choice);while(i=0)printf(输入错误,请重新输入: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(head);break;case 0:return;default:printf(输入不对,请重新输入);break;getchar(); flag=1;return;void modify_math_score(node_p head)/修改数学成绩static int h;static int k;node_p headp;if(head=NULL)exit(1);headp=find(head);/118定位要修改学生的当前位置printf(显示原来学生的数学成绩n);printf(%dn,headp-stu.grade.math);while(1)printf(请输入原来的数学成绩n);scanf(%d,&k);getchar();if(headp-stu.grade.math=k)printf(请输入新数学成绩n);scanf(%d,&h);getchar();headp-stu.grade.math=h;printf(修改数学成绩成功n);flag=1;return;elseprintf(请再次输入原来的数学成绩n);return;void modify_chinese_score(node_p head)/修改语文成绩static int h;static int k;node_p headp;if(head=NULL)exit(1);headp=find(head);/236定位要修改学生的当前位置printf(显示原来学生的语文成绩n);printf(%dn,headp-stu.grade.chinese);while(1)printf(请输入原来的语文成绩n);scanf(%d,&k);getchar();if(headp-stu.grade.chinese=k)printf(请输入新语文成绩n);scanf(%d,&h);getchar();headp-stu.grade.chinese=h;printf(修改语文成绩成功n);flag=1;return;elseprintf(请再次输入原来的语文成绩n);return;void modify_clanguage_score(node_p head)/修改c语言成绩static int h;static int k;node_p headp;if(head=NULL)exit(1);headp=find(head);/定位要修改学生的当前位置printf(显示原来学生的c语言成绩n);printf(%dn,headp-stu.grade.c);while(1)printf(请输入原来的c语言成绩n);scanf(%d,&k);getchar();if(headp-stu.grade.c=k)printf(请输入新c语言成绩n);scanf(%d,&h);getchar();headp-stu.grade.c=h;printf(修改c语言成绩成功n);flag=1;return;elseprintf(请再次输入原来的c语言成绩n);return;node_p find(node_p head)/定位要修改学生的当前位置int n;node_p headp;if(head=NULL)exit(1);headp=head-next;if(headp=NULL)exit(1);printf(输入要修改学生的学号: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)/根据名字查询 char a6;node_p headp;if(head=NULL)exit(1);headp=head-next;if(headp=NULL)return;printf(输入要查询的姓名:);scanf(%s,a);getchar();while(headp!=NULL)while(strcmp(a,)!=0)headp=headp-next;if(headp=NULL)return;printf(显示学生的学号 姓名 密码 年龄 班级n);printf(%d %s %s %d %dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf(显示数学 语文 c语言成绩n);printf(%d %d %dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);headp=headp-next;getchar();flag=0;return;void classes_search(node_p head)/根据班级查询int n;node_p headp;if(head=NULL)exit(1);headp=head-next;if(headp=NULL)return;printf(输入要查询的班级:);scanf(%d,&n);getchar();while(headp!=NULL)while(n!=headp-stu.classes)headp=headp-next;if(headp=NULL)return;printf(显示学生的学号 姓名 密码 年龄 班级n);printf(%d %s %s %d %dn,headp-stu.num,,headp-stu.key,headp-stu.age,headp-stu.classes);printf(显示数学 语文 c语言成绩n);printf(%d %d %dn,headp-stu.grade.math,headp-stu.grade.chinese,headp-stu.grade.c);headp=headp-next;flag=0;return; /*Copyright (c) 2012,陈长佑*All right reserved*文件名称:sort_menu.c*文件标识:*摘 要:本文件放置了学生排序菜单中的子
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 16126-2025人体生物监测质量保证规范
- 2025贵州台江县民族中医院第二次招聘备案制专业技术人员考前自测高频考点模拟试题及答案详解(名师系列)
- 2025年应急管理部所属单位第二批次招聘185人考前自测高频考点模拟试题有答案详解
- 2025江西赣州市市直医疗卫生单位及赣州市立医院招聘专业技术人员389人模拟试卷(含答案详解)
- 2025江苏盐城市急救医疗中心招录政府购买服务用工1人模拟试卷及答案详解(各地真题)
- 2025江苏泰州学院招聘专职辅导员和专任教师17人考前自测高频考点模拟试题附答案详解(黄金题型)
- 2025年商洛丹源电力(集团)有限责任公司招聘(2人)考前自测高频考点模拟试题完整参考答案详解
- 2025年中国滑雪双肩包行业市场分析及投资价值评估前景预测报告
- 2025年中国户外遮阳窗行业市场分析及投资价值评估前景预测报告
- 2025黑龙江东北林业大学土木与交通学院派遣人才招聘1人模拟试卷附答案详解(黄金题型)
- 2025贵州黔西南州州直事业单位面向全州考聘工作人员84人考试参考试题及答案解析
- 肉鸡屠宰行业安全培训课件
- DB11-T 2477-2025 洗染企业服务评价规范
- 儿童休克的护理
- 墩柱安全教育培训课件
- 新版中华民族共同体概论课件第十五讲新时代与中华民族共同体建设(2012- )-2025年版
- 2025年全国《家庭教育指导师》考试模拟试题(附答案)
- 建筑工程检测机构管理制度、设备操作规程、自校准规程(含技术记录)及检测作业指导书2025版
- 2026届房山区高三开学考试语文试题及参考答案
- 珠海市金湾区园洲岛海洋牧场养殖区项目环境影响报告书
- 街道社区安全培训内容课件
评论
0/150
提交评论