《C语言学生信息管理系统(附源码)》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统(附源码)(22页珍藏版)》请在金锄头文库上搜索。
1、. . . . .学生信息管理系统#include#include#include#include#include#define LEN sizeof(struct student)#define FORMAT %-12d%-12s%-13.1f%-13.1f%-13.1f%-13.1fn#define DATA stui.num,stui.name,stui.chinese,stui.math,stui.english,stui.sum/*定义学生成绩结构体*/struct studentint num;char name15;float chinese;float math;float e
2、nglish;float sum;struct student stu50;/*函数声明与简介*/void input();void show();void order();void del();void modify();void menu();void insert();void total();void search();int chcode();/*主函数*/int main()int n;int login = chcode();if(!login)printf(登录失败!n);return 0;printf(登录成功!n);menu();scanf(%d,&n);while(n)s
3、witch(n) case 0: exit(0);case 1: input();break; case 2: search();break; case 3: del();break; case 4: modify();break; case 5: insert();break; case 6: order();break; case 7: total();break; case 8: show();break; default:printf(输入有误,请重新输入:);break;getch();menu();scanf(%d,&n);return 0;/*自定义函数实现菜单功能*/void
4、menu()system(cls);printf(tt|-学生信息系统-|n);printf(tt| |n);printf(tt| 0. 退出系统ttt |n);printf(tt| 1. 输入记录ttt |n);printf(tt| 2. 查找记录ttt |n);printf(tt| 3. 删除记录ttt |n);printf(tt| 4. 修改记录ttt |n);printf(tt| 5. 插入记录ttt |n);printf(tt| 6. 记录排序ttt |n);printf(tt| 7. 记录个数ttt |n);printf(tt| 8. 显示记录ttt |n);printf(tt|-
5、|nn);printf(tt请输入你的操作(0-8):);/*录入学生信息*/void input()int i,m=0;char ch2;FILE *fp;/*定义指针文件*/if(fp=fopen(stuData.tet,a+)=NULL)printf(打开文件失败n);return;while(!feof(fp)if(fread(&stum,LEN,1,fp)=1)m+;fclose(fp);if(m=0)printf(没有数据!n);elsesystem(cls);show();if(fp=fopen(stuData.txt,wb)=NULL)printf(打开文件失败n);retur
6、n;for(i=0;im;i+)fwrite(&stui,LEN,1,fp);printf(请确认(y/n):);scanf(%s,ch);while(strcmp(ch,Y)=0|strcmp(ch,y)=0)printf(学号:);scanf(%d,&stum.num);for(i=0;im;i+)if(stui.num=stum.num)printf(此学号已存在!);getch();fclose(fp);return;printf(姓名:);scanf(%s,stum.name);printf(语文成绩:);scanf(%f,&stum.chinese);printf(数学成绩:);s
7、canf(%f,&stum.math);printf(英语成绩:);scanf(%f,&stum.english);stum.sum=stum.chinese+stum.math+stum.english;if(fwrite(&stum,LEN,1,fp)!=1)printf(保存失败!);getch();elseprintf(%s 已保存!n,stum.name);m+;printf(是否继续?(y/n):);scanf(%s,ch);fclose(fp);printf(操作成功!n);/*自定义查找*/void search()FILE *fp;int snum,i,m=0;char ch
8、2;if(fp=fopen(stuData.txt,rb)=NULL)printf(打开文件失败n);return;while(!feof(fp)if(fread(&stum,LEN,1,fp)=1)m+;fclose(fp);if(m=0)printf(文件无记录!n);return;printf(请输入需要查找的学生学号:);scanf(%d,&snum);for(i=0;im;i+)if(snum=stui.num)printf(学生数据已找到,确认显示?(y/n));scanf(%s,ch);if(strcmp(ch,Y)=0|strcmp(ch,y)=0)printf(学号 姓名 语
9、文 数学 英语 总分tn);printf(FORMAT,DATA);break;if(i=m)printf(查找失败!n); /*自定义删除*/void del()FILE*fp;int snum,i,j,m=0;char ch2;if(fp=fopen(stuData.tet,r+)=NULL)printf(打开文件失败n);return;while(!feof(fp)if(fread(&stum,LEN,1,fp)=1)m+;fclose(fp);if(m=0)printf(文件无记录!n);return;show();printf(请输入需要删除的学生学号:);scanf(%d,&snu
10、m);for(i=0;im;i+)if(snum=stui.num)printf(数据已经找到,是否确认删除?(y/n);scanf(%s,ch);if(strcmp(ch,Y)=0|strcmp(ch,y)=0)for(j=i;jm;j+)stuj=stui;m-;if(fp=fopen(stuData.txt,wb)=NULL)printf(打开文件失败n);return;for(j=0;jm;j+)if(fwrite(&stuj,LEN,1,fp)!=1)printf(对不起,保存失败!n);getch();fclose(fp);printf(删除成功!n);return;elseprintf(取消删除!n);return;printf(没有找到要删除的信息!n);/*自定义修改函数*/void modify()FILE *fp;int i,j,m=0,snum;if(fp=fopen(stuData.txt,r+)=NULL)printf(打开文件失败n);return;while(!feof(fp)