学生信息管理c语言程序.docx_第1页
学生信息管理c语言程序.docx_第2页
学生信息管理c语言程序.docx_第3页
学生信息管理c语言程序.docx_第4页
学生信息管理c语言程序.docx_第5页
已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论