已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/*“学生信息管理系统” c语言程序 使用前请先建立”FILE.DA”和”superUser.txt”文件!*/#includemalloc.h#includeconio.h#includestring.h#includectype.h#includestdio.h#define LEN sizeof(struct student)struct student char No6,name10,sex5,age4; char className10,address30,tel15; struct student *next; ;struct student *head;/函数声明int Add(void);int DeleteStu(void);int Repair(void);int VerificationIdentity(void);int Maintain(void);int FindName(void);int FindNumber(void);int Find(void);int FindAddrApart(void);int InitStuInfo(void);/主函数int main(int argc,char* argv) int initFlag,quitFlag,maintainFlag,findFlag; char ch; quitFlag=1; initFlag=InitStuInfo(); if(initFlag) while(quitFlag) printf(ntt*学籍管理系统*n); printf(tt* 1.查询 *n); printf(tt* 2.维护 *n); printf(tt* 0.退出 *n); printf(ntt*n); printf(请选择(1/2/0):); ch=getche(); switch(ch) case1:findFlag=Find(); /调用查询模块 break; case2:maintainFlag=Maintain(); /调用维护模块 break; case0:quitFlag=0; break; default:printf(n输入错误,请重新选择nnn); break; else printf(n初始化学生信息失败!); return 1; printf(n再见!请按任意键退出.); getch(); return 0; /追加新的学生信息int Add(void) struct student *p3,*p2; char ch; int addFlag; p2=head; while(p2-next!=NULL) p2=p2-next; ch=y; while(tolower(ch)=y) p3=(struct student *)malloc(LEN); printf(n请按如下格式输入:n); printf(学号:); gets(p3-No); printf(姓名:); gets(p3-name); printf(年龄:); gets(p3-age); printf(性别:); gets(p3-sex); printf(班级:); gets(p3-className); printf(家庭地址:); gets(p3-address); printf(电话:); gets(p3-tel); p3-next=NULL; printf(n请确认上述输入y/Y,否则按其他任意键继续); ch=getche(); if(tolower(ch)=y) p2-next=p3; p2=p3; p3=NULL; printf(n追加学生信息成功!.按任意键继续.); getch(); putch(n); addFlag=1; else printf(n未能追加学生信息!.按任意键继续.); getch(); putch(n); addFlag=2; printf(n是否增加下一个学生信息,如果增加,键入y/Y;否则键入n/N:); ch=getch(); p2=NULL; return addFlag; /Add/删除学生信息int DeleteStu(void) char ch,stuNo10; int deleteFlag; struct student *p,*q; ch=y; while(tolower(ch)=y) printf(n请输入待删除学生的学号(按回车键确认):); gets(stuNo); p=head; q=NULL; while(p!=NULL) if(strcmp(p-No,stuNo) q=p; p=p-next; else printf(n您要删除的学生姓名是:%是n,p-name); printf(请您再次确认y/Y:); ch=getche(); if(tolower(ch)=y) q-next=p-next; deleteFlag=3; break; else deleteFlag=4; break; if(p=NULL) printf(n不存在您要删除的学生信息,按任意键继续.n); deleteFlag=5; getche(); printf(n是否继续删除下一个学生信息y/Y,不删除按其他任意键.n); ch=getche(); return deleteFlag; /DeleteStu/修改学生信息int Repair(void)int repairFlag;char ch,stuNo10;struct student *p,*q;doprintf(n请输入待修改学生的学号(按回车确认):);gets(stuNo);p=head;q=NULL;while(p!=NULL)if ( strcmp ( p-No , stuNo ) )p=p-next;else break;while(1)printf(n您将要修改的学生信息是:n);printf(%st%st%st%st%st%st%stn,p-No,p-name,p-age,p-sex,p-className,p-address,p-tel);printf(n请输入您所要修改的信息名称:n);printf(1 学号 2 姓名 3 年龄 4 性别 5 班级 6 家庭住址 7 电话n);printf(请您选择:);ch=getche();switch(ch)case1:printf(n请输入新的信息(按回车结束):); gets(p-No);repairFlag=6;break;case2:printf(n请输入新的信息(按回车结束):); gets(p-name);repairFlag=6;break;case3:printf(n请输入新的信息(按回车结束):); gets(p-age);repairFlag=6;break;case4:printf(n请输入新的信息(按回车结束):); gets(p-sex);repairFlag=6;break;case5:printf(n请输入新的信息(按回车结束):); gets(p-className);repairFlag=6;break;case6:printf(n请输入新的信息(按回车结束):); gets(p-address);repairFlag=6;break;case7:printf(n请输入新的信息(按回车结束):); gets(p-tel);repairFlag=6;break; default:printf(n输入错误,请重新输入:n); repairFlag=5;break;printf(n是否还要继续修改学生信息y/n:);ch=getche();if(tolower(ch)=y)continue;else break;printf(n是否还要继续修改学生信息y/n:);ch=getche();while(tolower(ch)=y);return repairFlag;/维护人员权限验证int VerificationIdentity(void)char userID20,passWord20; /存放由键盘输入的用户名和口令char superUID20,passWD20; /存放文件中读取的用户名和口令int i,legalUser=0;char ch;FILE *fp;fp=fopen(superUser.txt,r);if(fp=NULL)printf(n文件不存在!按任意键继续n);getch(); /superUserFlag = 0elsedoprintf(n请输入用户名(小于15个字符):);i=0;while( isalpha ( ch=getch() ) & ( i 15 ) )putchar(ch);userIDi=ch;i+;userIDi=0;printf(n请输入密码(小于10个字符):);i=0;while( isdigit ( ch=getch() ) & ( i No,p-name,p-age,p-sex,p-className,p-address,p-tel);p=p-next;fclose(fp);return 0;/维护模块int Maintain(void)char ch;int success,saveFlag,maintainR=4;success=VerificationIdentity();if(success=0)printf(n你是无权用户!);maintainR=5;elsedoprintf(ntt* 查询 *n);printf(tt* 1.增加 *n); printf(tt* 2.删除 *n); printf(tt* 3.修改 *n); printf(tt* 0.退出 *n); printf(ntt*n); printf(n 请输入选择(1/2/3/0):);ch=getche();switch(ch)case1:maintainR=Add();break;case2:maintainR=DeleteStu();break;case3:maintainR=Repair();break;case0:maintainR=0;break;default:printf(n输入错误,请重新输入你的选择:);break;while(maintainR!=0);printf(n你已经完成了对学生信息的维护,n);printf(请你确认是否永久保存你所做的修改(y/n):);ch=getche();if(tolower(ch)=y)saveFlag=Save();if(saveFlag)maintainR=4;return maintainR;/Maintain/按住址查询int FindAddrApart(void)char saddress20;struct student *p;int flag;flag=5;p=head;printf(n请输入你想要查找学生的住址:);gets(saddress);while(p!=NULL)if(strcmp(saddress,p-address)=0)printf(学号:%sn,p-No);printf(姓名:%sn,p-name);printf(年龄:%sn,p-age);printf(性别:%sn,p-sex); printf(班级:%sn,p-className);flag=1;p=p-next;return flag;/FindAddrApart/按姓名查询int FindName(void)char sname20;struct student *p;int flag;flag=5;p=head;printf(n 请输入你想要查找学生的姓名:);gets(sname);while(p!=NULL)if(strcmp(sname,p-name)=0)printf(学号:%sn,p-No);printf(姓名:%sn,p-name);printf(年龄:%sn,p-age);printf(性别:%sn,p-sex);printf(班级:%sn,p-className);printf(地址:%sn,p-address);printf(电话:%sn,p-tel);flag=1;p=p-next;return flag;/FindName/按学号查询int FindNumber(void)char sno10;struct student*p;int flag;flag=5;p=head;printf(n请输入你想要查找学生的学号000001000040:);gets(sno);while(p!=NULL)if(strcmp(sno,p-No)=0)printf(学号:%sn,p-No);printf(姓名:%sn,p-name);printf(年龄:%sn,p-age);printf(性别:%sn,p-sex);printf(班级:%sn,p-className);printf(住址:%sn,p-address);printf(电话:%sn,p-tel);flag=1;p=p-next;return flag;/FindNumber/查询模块int Find(void)char ch;int flag;flag=4;while(flag)printf(ntt* 查询 *n);printf(tt* 1.学号 *n);printf(tt* 2.姓名 *n); printf(tt* 3.住址/系别 *n); printf(tt* 0.退出 *n);printf(ntt*n);printf(请输入选择(1/2/3/0):);ch=getche();switch(ch)case 1:flag=FindNumber();break;case 2:flag=FindName(); break;case 3:flag=FindAddrApart();break;case 0:flag=0;break;default:printf(n输入错误,请重新输入:);flag=4;brea
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年衡阳辅警招聘考试真题附答案详解(夺分金卷)
- 2025年衢州辅警协警招聘考试备考题库含答案详解(基础题)
- 2025黑龙江省农产品订购合同示范文本
- 2025年石嘴山辅警协警招聘考试备考题库含答案详解(研优卷)
- 2025年婴儿用品行业母婴健康关注研究报告及未来发展趋势预测
- 2025年智能制造业行业工业机器人与智能制造系统应用案例分析研究报告及未来发展趋势预测
- 2025年塑料包装行业生物降解包装材料研究报告及未来发展趋势预测
- 2025年通信行业5G技术商用推进策略研究报告及未来发展趋势预测
- 2025年智能家居智能化解决方案研究报告及未来发展趋势预测
- 2025年能源行业可再生能源发展与碳中和路径研究报告及未来发展趋势预测
- 结直肠癌导致急性肠梗阻外科治疗中国专家共识(2025版)课件
- 辅助改方时方向继电器电路识读穆中华60课件
- 东方航空民航招飞面试常见问题及答案
- 危险性较大的分部分项工程清单
- 英语第二册(五年制高职) 课件 Unit5 Social Rules
- 银行物业年终工作总结
- 2025年三方询价单合同模板
- ISO14001-2015环境管理体系风险和机遇识别评价分析及应对措施表(包含气候变化)
- 如何正确书写化学方程式 教学设计
- 积极应对人口老龄化城市能力指数报告
- 2025年1月浙江首考高考英语听力试题真题及答案(含原文+MP3)
评论
0/150
提交评论