




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统 -C语言版主要功能介绍:1 实现菜单式选项功能,09均有特殊功能2 主要菜单介绍: 数字0:返回功能,主界面 数字1: 学生信息的输入,不定数量的输入,判断是否继续输入 数字2:学生信息的显示,可以显示此时学生信息的资料 数字3:查找学生信息,查找是否存在要查询的学习信息 数字4:删除学生信息,删除输入的学生信息 数字5:插入学生信息 数字6:修改学生信息 有子菜单 修改学生的任何资料可以反复修改 数字7:对学生信息 进行排列 数字8:保存学生信息 以文本的形式 数字9:读取学生信息 从文本中读取 不需要重新输入数据,可读取以前的数据说明:此系统是根据其他网友的程序改编的,加入了几项!此系统还有可以增加的空间,如可以添加登陆界面,输入密码等!只是鉴于此系统没有用到指针,对于大多数人来说比较容易上手!心得:了解别人的程序基础上,进行了升级,遇到了一系列的问题。如,修改学生信息函数中,保存原来的值,替换原来的值,还有就是scanf()中的&,用反了,该用的没有用,要用的却没有用。最重要的问题是,完成以上后,把程序关闭后,却不可以从文件中读取。起初想是文件函数用错了,查看课本,按照课本中的例题来了一遍,可以的,然后对照自己写的文件,是对的!经过看,才知道是定义的int i 惹的祸。因为变量没有被调用时,还是0,为了验证我的假象,hu起初想将其与结构体保存在一个文件中,错了好多次,失败了!所以保持到了两个文件中!几位本例题!有时文件忘记关闭了,造成错误!此程序具有实际操作意义 复制程序:看着结果分析程序注意:系统使用教程,首先,必须选择1,即输入,保存。之后就可以随便选择功能! 学生信息管理系统源文件如下: #include#include#include #include struct student int id; /学号 char name20; int age; char sex10; char birthady20; int tel; char nativeplace50; int E_mail;st50; int i=0;/学生数初始化,通过输入确定人数 void shuru() FILE *fp; char a; do printf(n请输入学号:); scanf(%d,&sti.id); fflush(stdin);/清空回车字符头文件在stdio.h printf(n请输入姓名:); gets();/此处没有用到fflush 只有在scanf用了 printf(n) ; printf(请输入年龄:); scanf(%d,&sti.age); fflush(stdin); printf(n请输入姓别:); gets(sti.sex); fflush(stdin); printf(n请输入生日:); gets(sti.birthady); printf(n请输入电话:); scanf(%d,&sti.tel); fflush(stdin); printf(n请输入籍贯:); gets(sti.nativeplace); fflush(stdin); printf(n请输入E_mail:); scanf(%d,&sti.E_mail); fflush(stdin); printf(n是否继续输入另外一个学生信息?(y/n); fflush(stdin); a=getchar(); i+; while(a=y & i=50); if(fp=(fopen(c:stu_list1.txt,ab)=NULL) printf(can not open file:stu_list1!n); exit(0); fflush(stdin);putw(i,fp);fclose(fp); void save() int a;FILE *fp; if(fp=(fopen(c:stu_list.txt,ab)=NULL) printf(can not open file:stu_list!n); exit(0); for(a=0;ai;a+) if(fwrite(&sta,sizeof(struct student),1,fp)!=1) printf(write error!n); fclose(fp); exit(0); printf(tt恭喜你,要保存的学生信息已经为您保存完毕!);fclose(fp);void read()FILE *fp,*fp1;int a,k=2;fp1=fopen(c:stu_list1.txt,rb); k=getw(fp1); fclose(fp1); printf(n%d,k);fp=fopen(c:stu_list.txt,rb);printf(n);printf(学号t姓名t年龄t性别t生日t电话t籍贯tE_mailn); for(a=0;ak;a+)fread(&sta,sizeof(struct student),1,fp);printf(%dt%st%dt%st%st%dt%st%dn,sta.id,,sta.age,sta.sex,sta.birthady,sta.tel,sta.nativeplace,sta.E_mail); fclose(fp);printf(ttt读取全部文件的学生信息完毕!);void xianshi() int j,k; FILE *fp,*fp1;fp1=fopen(c:stu_list1.txt,rb); k=getw(fp1); fclose(fp1);fp=fopen(c:stu_list.txt,rb); printf(n);printf(学号t姓名t年龄t性别t生日t电话t籍贯tE_mailn); for(j=0;jk;j+)printf(%dt%st%dt%st%st%dt%st%dn,stj.id,,stj.age,stj.sex,stj.birthady,stj.tel,stj.nativeplace,stj.E_mail); fclose(fp); void paixu() /按年龄从大到小排序函数 int j,k,b; int temp; FILE *fp,*fp1; fp1=fopen(c:stu_list1.txt,ab); b=getw(fp1); fclose(fp1); fp=fopen(c:stu_list.txt,ab);for(j=0;jb;j+) for(k=0;kb-1-j;k+) if(stk.agestk+1.age) temp=stk.age; stk.age=stk+1.age; stk+1.age=temp; xianshi(); /排序后输出 void chazhao() int m,k; char name20,b; FILE *fp,*fp1;fp1=fopen(c:stu_list1.txt,rb); k=getw(fp1); fclose(fp1);fp=fopen(c:stu_list.txt,rb); printf(n); do printf(n请输入想查找的学生姓名:); fflush(stdin); gets(name); for(m=0;m=20) printf(nt没有找到这个学生!n); else printf(学号t姓名t年龄t性别t生日t电话t籍贯tE_mailn); printf(%dt%st%dt%st%st%dt%st%dn,stm.id,,stm.age,stm.sex,stm.birthady,stm.tel,stm.nativeplace,stm.E_mail); printf(n是否查找另一个学生的信息?(y/n); fflush(stdin); b=getchar(); while(b=y); void shanchu() char name20,c; int a,b,k; FILE *fp,*fp1; fp1=fopen(c:stu_list1.txt,rb); k=getw(fp1); fclose(fp1);fp=fopen(c:stu_list.txt,rb); printf(n); fp=fopen(c:stu_list.txt,ab); do printf(n请输入要删除的学生姓名:n); fflush(stdin); gets(name); for(a=0;ai;a+) if(strcmp(name,)=0) break; for(b=a;bi) printf(t没有找到这个学生!n); else i-; xianshi(); printf(n是否继续删除另一个学生信息?(y/n) ); fflush(stdin); c=getchar(); while(c=y); void charu() FILE *fp,*fp1;char ch; int k; fp1=fopen(c:stu_list1.txt,rb); k=getw(fp1); fclose(fp1); do printf(n请输入学号:); scanf(%d,&stk.id); fflush(stdin);/清空回车字符头文件在stdio.h printf(n请输入姓名:); gets();/此处没有用到fflush 只有在scanf用了 printf(n) ; printf(请输入年龄:); scanf(%d,&stk.age); fflush(stdin); printf(n请输入姓别:); gets(stk.sex); fflush(stdin); printf(n请输入生日:); gets(stk.birthady); printf(n请输入电话:); scanf(%d,&stk.tel); fflush(stdin); printf(n请输入籍贯:); gets(stk.nativeplace); fflush(stdin); printf(n请输入E_mail:); scanf(%d,&stk.E_mail); fflush(stdin); fp=(fopen(c:stu_list.txt,ab+);if(fwrite(&stk,sizeof(struct student),1,fp)!=1) printf(write error!n); fclose(fp); exit(0); printf(tt恭喜你,要插入的学生信息已经为您保存完毕!);fclose(fp); printf(n是否继续输入插入一个学生信息?(y/n); fflush(stdin); ch=getchar(); k+; while(ch=y & k=50); fp1=fopen(c:stu_list1.txt,wb); putw(k,fp1); fclose(fp1); printf(%d,k); void xiugai()int b,a,m,k,q;int nian0,nian1;int te0,te1;int email0,email1;char name20,ch020,ch120;char sex010,sex110;char bir020,bir120;char native050,native150;char en_d;FILE *fp,*fp1;fp1=fopen(c:stu_list1.txt,rb); q=getw(fp1); fclose(fp1);fp=fopen(c:stu_list.txt,rb); printf(n);doprintf(按照姓名进行信息查询修改,请输入要修改学生的姓名:);fflush(stdin); gets(name); fflush(stdin); for(a=0;aq;a+) if(strcmp(name,)=0) printf(ntt已经找到你要修改的人员!n);else if(a=i-1) printf(ntt对不起,没有找到你要查询的姓名!请查证后再次查询!n); goto loop1; else continue;break;printf( * * * 你想修改学生的信息有如下选择 * * *n);printf( * * 1-学号 2-姓名 3-年龄 * *n);printf( * * 4-性别 5-生日 6-电话 * *n);printf( * * 7-籍贯 8-E_mail * *n);printf( * * * * * * * * * * * * * * * * * * * *n);printf(n);printf(n); printf( 请输入要修改的选项:);scanf(%d,&b); fflush(stdin);switch(b)case 1:printf(你选择了修改学生的学号,请输入修改后的学生学号:);scanf(%d,&m);printf(n);k=sta.id;sta.id=m; printf(YES,修改后学生学号是:%d,替代了原来为%d的学号,m,k); break;case 2:printf(你选择了修改学生的姓名,请输入修改后的学生姓名:);scanf(%s,ch1);strcpy(ch0,);strcpy(,ch1);printf(n); printf(YES,修改后学生姓名是:%s,替代了原来为%s的姓名,ch1,ch0); break;case 3:printf(你选择了修改学生的年龄,请输入修改后的学生年龄:);scanf(%d,&nian1);printf(n);nian0=sta.age;sta.age=nian1; printf(YES,修改后学生年龄是:%d,替代了原来为%d的年龄,nian1,nian0); break; case 4:printf(你选择了修改学生的性别,请输入修改后的学生性别:);scanf(%s,sex1);strcpy(sex0,sta.sex);strcpy(sta.sex,sex1);printf(n); printf(YES,修改后学生生日是:%s,替代了原来为%s的生日,sex1,sex0); break; case 5:printf(你选择了修改学生的生日,请输入修改后的学生生日:);scanf(%s,bir1);strcpy(bir0,sta.birthady);strcpy(sta.birthady,bir1);printf(n); printf(YES,修改后学生生日是:%s,替代了原来为%s的生日,bir1,bir0); break; case 6:printf(你选择了修改学生的电话,请输入修改后的学生电话:);scanf(%d,te1);te0=sta.tel;sta.tel=te1;printf(n); printf(YES,修改后学生电话是:%d,替代了原来为%d的电话,te1,te0); break; case 7:printf(你选择了修改学生的籍贯,请输入修改后的学生籍贯:);scanf(%s,native1);strcpy(native0,sta.nativeplace);strcpy(sta.nativeplace,native1);printf(n); printf(YES,修改后学生籍贯是:%s,替代了原来为%s的籍贯,native1,native0); break; case 8:printf(你选择了修改学生的电话,请输入修改后的学生电话:);scanf(%d,email1);email0=sta.E_mail;sta.E_mail=email1;printf(n); printf(YES,修改后学生电话是:%d,替代了原来为%d的电话,email1,email0); break;default :printf(查询错误选项,确认后再查询);printf(n); fflush(stdin);loop1:printf(n是否继续修改学生信息,如果继续,请按y,否则请按n:);en_d=getchar();fflush(stdin);wh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 恒力招聘考试题及答案
- 雨露助残活动方案
- 杭州自考试题及答案
- 骨科知识考试题及答案
- 高空吊绳考试题及答案
- 分拣货物考试题及答案
- 多场景信息管理系统框架模型
- 电梯故障考试题及答案
- 跨部门协作沟通及会议记录工具
- 文档管理自动化系统及文件归档指南
- 高中英语新课标3000词汇表(新高考)
- 《中国政法大学》课件
- 班本课程的实施与开展培训
- 旅馆消防安全灭火疏散应急预案模版(3篇)
- 汽车吊维保记录
- 机房网络改造升级方案
- 函数的单调性与最值课件高三数学一轮复习
- DL∕T 5344-2018 电力光纤通信工程验收规范
- DL∕T 2528-2022 电力储能基本术语
- DL∕T 1785-2017 电力设备X射线数字成像检测技术导则
- 不交社保劳动合同模板
评论
0/150
提交评论