




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/=学员信息管理系统=/=编制:宋焱鑫/=TXT文本文件实时存储数据,仍然运用结构体数组#include stdio.h#include stdlib.h#include string.h#include conio.hint scount; /定义数据库实际学生数量typedef struct/定义学生信息结构体类型char no10; char name16; float score3; STU;STU stu10000;/声明结构体数组,以数据库中最大学生数量来定义/函数声明部分void readdb(); /初始化学员信息,把外存中学生数据读入到内存中void savedb(); /把内存中结构体数组中的学生数据保存到外存中void zhumulu(); /显示程序主目录void display(); /显示所有学员信息void input(); /录入新学员信息int find(char str80);/查找指定学号的学员,找到返回该学员在数组中的下标,没找到返回-1,str代表指定学号;在多个模块中用到该函数void query(); /根据学号查找,并显示学员信息void update(); /修改学员信息void del(); /删除学员信息void sort(); /对学员进行排序void average(); /求学生成绩平均值void guake(); /不及格学生/函数定义void main()/程序进入“欢迎界面”printf(nnnnntt欢迎进入=学员信息管理系统=n);/按任意键初始化学员信息printf(nttt按任意键初始化学员信息.nn);getch(); /从键盘收任一个字符即返回,该函数在conio.h中readdb();/初始化学员信息,把外存中学生数据读入到内存中printf(ttt共有%d 条学员信息,scount);/scount是实际学生数量printf(nnttt按任意键进入主目录.);getch(); /从键盘收任一个字符即返回,该函数在conio.h中zhumulu();/调出“程序主目录”void zhumulu() char select;/代表用户所选择的子目录号 dosystem(cls);printf(=学员信息管理系统=nn);printf(以下是程序主目录,请选择功能nn);printf(1)显示n2)查找n3)录入n4)修改n5)删除n6)排序n7)求学生成绩的平均值8)不及格学生n0)退出nn);printf(键入功能前的数字后,按Enter键:); select=getchar();switch(select)case 1: /显示所有学员信息system(cls);display(); printf(nnttt按任意键进入主目录.); getch(); /从键盘收任一个字符即返回,该函数在conio.h中break;case 2:query();break;/查询学员信息case 3:input(); break;/录入新学员信息case 4:update(); break;/修改学员信息case 5:del(); break; /删除学员信息case 6:sort(); break; /对学员进行排序 case 7:average(); break; /求学生成绩平均值 case 8:guake(); break; /求挂科学生case 0: break;/退出default:printf(请选择功能前的数字n);break; while(select!=0);void readdb()/初始化学员信息,把外存中学生数据读入到内存中FILE *fp; if(fp=fopen(studb.txt,r)=NULL) printf(文件有错误!程序不能运行!n);return;scount=0;/scount是数据库中实际学生数量,是全局变量while(!feof(fp) /no是学号,name是姓名,)core是成绩 /stu是学生结构体数组,全局变量 fscanf(fp,%s %s %f %f %f,stuscount.no,,&stuscount.score0,&stuscount.score1,&stuscount.score2); if(strcmp(stuscount.no,)!=0) scount+;/去掉学号为空字符串fclose(fp);/把内存中结构体数组中的学生数据保存到外存中void savedb() int i;FILE *fp; if(fp=fopen(studb.txt,w)=NULL)/以写的方式打开文件,覆盖原文件 printf(文件有错误!程序不能运行!n);return;/stu是学生结构体数组,全局变量for(i=0;iscount;i+)/scount代表实际的学生数量,stu是表示学生信息的结构体数组名 if(strcmp(stui.no,)!=0)/去掉学号为空字符串的信息 printf(fp,%-8s%-10s%-10.1f%-10.1f%-10.1fn,stui.no,,stui.score0,stui.score1,stui.score2);fclose(fp); void display()/显示所有学员信息 int i;printf(n%-8s%-10s%-10s%-10s%-10sn,学号,姓名,语文,数学,英语);printf(%-8s%-10s%-10s%-10s%-10sn, =,=,=,=,=);for(i=0;iscount;i+) /在printf中,“-”表示数据左对齐,“.1”中的表示输出宽度,“1”表示输出位小数 printf(%-8s%-10s%-10.1f%-10.1f%-10.1fn,stui.no,,stui.score0,stui.score1,stui.score2);/查找指定学号的学员,代表指定学号(str)的下标,如果指定学号不存在,返回-1 ;在多个模块中用到该函数int find(char str80) int i;for(i=0;iscount;i+) if(strcmp(str,stui.no)=0) return i;return -1;void query() /根据学号查找,并显示学员信息 char str80;int n; system(cls); printf(n请输入要查询的学生的学号:); scanf(%s,str); n=find(str); if(n=-1)/find函数返回值,n代表指定学号的下标,如果指定学号不存在,返回-1 printf(n对不起,您要查找的学员不存在n); else printf(n%-8s%-10s%-10s%-10s%-10sn,学号,姓名,语文,数学,英语); printf(%-8s%-10s%-10s%-10s%-10sn, =,=,=,=,=); printf(%-8s%-10s%-10.1f%-10.1f%-10.1fn,stun.no,,stun.score0,stun.score1,stun.score2); printf(nnttt按任意键进入主目录.); /显示完毕,提示用户返回主程序getch(); /从键盘收任一个字符即返回,该函数在conio.h中void input()/录入新学员信息STU s;/代表新学员信息int i; /先显示已有学员信息system(cls);printf(当前学员信息如下:n);printf(n%-8s%-10s%-10s%-10s%-10sn,学号,姓名,语文,数学,英语);printf(%-8s%-10s%-10s%-10s%-10sn, =,=,=,=,=);for(i=0;iscount;i+) /在printf中,“-”表示数据左对齐,“.2”中的表示输出宽度,“.2”表示表示输出两位小数 printf(%-8s%-10s%-10.1f%-10.1f%-10.1fn,stui.no,,stui.score0,stui.score1,stui.score2);/下面输入新学员信息printf(nnn请输入学号,学号不允许为空字符串:);scanf(%s,&s.no);printf(n请输入姓名,注意姓名里不能加空格:);scanf(%s,&);printf(n请输入语文成绩:);scanf(%f,&s.score0 );printf(n请输入数学成绩:);scanf(%f,&s.score1 );printf(n请输入英语成绩:);scanf(%f,&s.score2 );/把临时结构体变量s赋到结构体数组中;同时把表示学员数量的变量scount增加stuscount+=s; savedb();/把内存中结构体数组中的学生数据保存到外存中printf(nnttt按任意键进入主目录.);getch(); /从键盘收任一个字符即返回,该函数在conio.h中void update()/修改学员信息 int n;char str80;STU s; system(cls); printf(当前学员信息如下:n); display();/先显示所有学员信息 printf(n请输入要修改的学生的学号:); scanf(%s,str); n=find(str); if(n=-1)/find函数返回值,n代表指定学号的下标,如果指定学号不存在,返回-1 printf(n对不起,您要查找的学员不存在n); else /您要修改的学员信息 printf(n您要修改的学员信息如下:n); printf(n%-8s%-10s%-10s%-10s%-10sn,学号,姓名,语文,数学,英语); printf(%-8s%-10s%-10s%-10s%-10sn, =,=,=,=,=); printf(%-8s%-10s%-10.1f%-10.1f%-10.1fn,stun.no,,stun.score0,stun.score1,stun.score2); /输入修改后的学员信息 /下面输入新学员信息 printf(nnn请输入修改后的学号,学号不允许为空字符串:); scanf(%s,&s.no); printf(n请输入修改后的姓名,注意姓名里不能加空格:); scanf(%s,&); printf(n请输入修改后的语文成绩:); scanf(%f,&s.score0 ); printf(n请输入修改后的数学成绩:); scanf(%f,&s.score1 ); printf(n请输入修改后的英语成绩:); scanf(%f,&s.score2 ); stun=s;/把修改后的值保存到内存数组中 savedb();/把内存数据保存到外存数据文件中 printf(nnttt祝贺您修改成功!); printf(nnttt按任意键进入主目录.); /显示完毕,提示用户返回主程序getch(); /从键盘收任一个字符即返回,该函数在conio.h中void del()/删除学员信息 int n,i;char str80;char ch; system(cls); printf(n请输入要删除的学生的学号:); scanf(%s,str); n=find(str); if(n=-1)/find函数返回值,n代表指定学号的下标,如果指定学号不存在,返回-1 printf(n对不起,您要删除的学员不存在n); else /您要修改的学员信息 printf(n您要删除的学员信息如下:n); printf(n%-8s%-10s%-10s%-10s%-10sn,学号,姓名,语文,数学,英语); printf(%-8s%-10s%-10s%-10s%-10sn, =,=,=,=,=); printf(%-8s%-10s%-10.1f%-10.1f%-10.1fn,stun.no,,stun.score0,stun.score1,stun.score2); /提示用户是否继续删除操作 printf(n您将删除该学员信息,继续删除,请输入y或者Y,否则,请输入n或者N:); do scanf(%c,&ch); while(!(ch=y|ch=Y|ch=n|ch=N); if(ch=n|ch=N) printf(n您已取消删除操作,删除不成功!n); if(ch=y|ch=Y) for(i=n;i=scount-2;i+) stui=stui+1;/删除指定学号 scount-; savedb();/把内存数据保存到外存数据文件中 printf(n恭喜您已成功删除!n); /显示完毕,提示用户返回主程序 printf(nnttt按任意键进入主目录.); getch(); /从键盘收任一个字符即返回,该函数在conio.h中void sort() /对学员进行排序 char select; /代表用户所选择的子目录号int i,j;STU t; /定义排序用的临时变量 dosystem(cls);printf(=学员信息管理系统=nn);printf(以下是排序子目录,请选择功能nn);printf(1)按学号升序n2)按学号降序n0)退出nn);printf(键入功能前的数字后,按Enter键:); select=getchar();swit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025浙江缙云县保安服务有限公司招聘国有企业项目用工10人笔试参考题库附带答案详解
- 2025中国一冶集团建安公司春季校园招聘笔试参考题库附带答案详解
- 危险因素安全培训课件
- 地质灾害滑坡课件
- 地球的内部构造
- 回忆我的母亲课件介绍
- 地球与地球仪课件
- 地板厂安全培训课件
- 危化安全教育培训课件
- 嘉兴消防安全知识培训课件
- 主播岗位职业生涯规划与管理
- 老年综合评估各种表格
- 2025至2030中国牙科手机消耗行业项目调研及市场前景预测评估报告
- NBT 11551-2024 煤矿巷道TBM法施工及验收标准
- 口腔瓷贴面诊疗沟通指南
- 山东安全管理人员大考试题库
- 2025-2030冲牙器行业市场深度调研及发展趋势与投资前景预测研究报告
- 70华诞主题班会课件
- 建筑抗震设计规程(下)DB62T3055-2020
- 商品赠品协议书范本
- 工伤事故赔偿协议书范本
评论
0/150
提交评论