收藏 分销(赏)

专业课程设计学生学籍标准管理系统源代码.doc

上传人:a199****6536 文档编号:2727226 上传时间:2024-06-05 格式:DOC 页数:23 大小:49.04KB
下载 相关 举报
专业课程设计学生学籍标准管理系统源代码.doc_第1页
第1页 / 共23页
专业课程设计学生学籍标准管理系统源代码.doc_第2页
第2页 / 共23页
专业课程设计学生学籍标准管理系统源代码.doc_第3页
第3页 / 共23页
专业课程设计学生学籍标准管理系统源代码.doc_第4页
第4页 / 共23页
专业课程设计学生学籍标准管理系统源代码.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、#includestdio.h#includeconio.h#includestdlib.h#includestring.h#define N 1000/N为可输入学生总人数,可依照需要更改#define M 2/M为宏定义(在创立密码函数中)可建立登陆顾客个数,可更改struct student/定义学生信息构造体数组char num9; /学号char name20; /姓名char depar15; /院系char zhuanye15; /专业char classes5;/班级char age3; /年龄char sex4; /性别char nation5;/民族char birth9;

2、 /出生日期char add10; /籍贯;struct code/定义密码构造体数组char name20;char code7;coM,s0;/确认与否新创立密码文献模块int code()FILE *fp;if(fp=fopen(学生学籍管理系统_code.txt,rt)=NULL)printf(密码文献不存在,请输入新顾客名及密码:n);/若不存在此密码文献,则提示顾客创立密码printf(请输入任意键继续!);getch();system(cls);return 1;/无密码文献返回1elsereturn 0;/已有密码文献返回0/新创立初始密码void code_input()FI

3、LE *fp;int i;if(fp=fopen(学生学籍管理系统_code.txt,wt)=NULL);/当建立密码文献成功时,进入for循环for(i=0;iM;i+)/M为宏定义可建立登陆顾客个数,可更改printf(请录入第%d个顾客名:,i+1);/创立不同顾客名及密码scanf(%s,coi.name);printf(请录入第%d个密码(最多6位):,i+1);scanf(%s,coi.code);printf(n);fwrite(&coi,sizeof(struct code),1,fp);/将密码保存进文献中fclose(fp);getch();system(cls);/顾客登

4、陆验证模块int enter(char name120,char code16)FILE *fp;int flog=0;int i;fp=fopen(学生学籍管理系统_code.txt,rt);/打开存储密码文献for(i=0;i=M)/当比较完毕后,都没有符合条件顾客名与密码,则直接跳出程序printf(*您无权进入此管理系统!*);fclose(fp);getch();exit(1);/从文献读入数据int read_file(struct student stu)FILE *sp;int i=0;system(cls);if(sp=fopen(学生学籍管理系统_学生信息.txt,rt)=

5、NULL)/读文献,若文献不存在,则需要创立一种新文献(文献创立在save_file函数中完毕)printf(n学生学籍管理系统_学生信息文献不存在,请创立!n);getch();system(cls);return 0;while(fread(&stui,sizeof(struct student),1,sp)=1)/判断文献与否处在结束位置if(stui.num=0)/若文献内容为空,则跳出循环break;else/若文献内容不为空,i自加1。i+;/i为文献内构造体数组数量fclose(sp);return i;/返回i值,代表文献中学生人数/保存学生信息(保存在文献中)void sav

6、e_file(struct student stu,int sum)FILE *sp;int i;if(sp=fopen(学生学籍管理系统_学生信息.txt,wb)=NULL)/若不存在此TXT文档,则创立;printf(读文献错误!n);/创立不成功,返回menu函数;return;for(i=0;isum;i+)if(fwrite(&stui,sizeof(struct student),1,sp)!=1)/保存文献,sum为既有总学生人数,若未保存成功,提示写文献错误!;printf(写文献错误!n);fclose(sp);return;/创立并录入信息int found(struct

7、student stu)int i=0,x;system(cls);printf(请输入要录入学生个数:n);scanf(%d,&x);if(x=0)return 0;do/输入信息printf(n请录入第%d个学生信息:n,i+1);printf(请录入学号:);scanf(%s,stui.num);printf(n请录入姓名:);scanf(%s,stui.name);printf(n请录入院系:);scanf(%s,stui.depar);printf(n请录入专业:);scanf(%s,stui.zhuanye);printf(n请录入班级:);scanf(%s,stui.classe

8、s);printf(n请录入性别:);scanf(%s,stui.sex);printf(n请录入年龄:);scanf(%s,stui.age);printf(n请录入出生日期(yyyymmdd):);scanf(%s,stui.birth);printf(n请录入民族:);scanf(%s,stui.nation);printf(n请录入籍贯:);scanf(%s,stui.add);i+;system(cls);while(i=x(顾客规定创立学生人数)时,跳出输入信息for循环;save_file(stu,x);/保存学生信息致文献printf(录入完毕,请按任意键返回);getch()

9、;return i;/返回创立学生人数/修改学生信息void modify(struct student stu,int sum)int i,item,a=1;/i控制数组下标,item控制子菜单选取char s18;FILE *sp;system(cls);read_file(stu,sum);/读函数doprintf(nnn请输入你要修改学号:n);scanf(%s,s1);/要修改学生学号for(i=0;isum;i+)/查找此学生if(strcmp(stui.num,s1)=0)/若找到该生,输出该生信息printf(该学生学号:%sn,stui.num);printf(该学生姓名:%

10、sn,stui.name);printf(该学生院系:%sn,stui.depar);printf(该学生专业:%sn,stui.zhuanye);printf(该学生班级:%sn,stui.classes);printf(该学生性别:%sn,stui.sex);printf(该学生年龄:%sn,stui.age);printf(该学生出生日期:%sn,stui.birth);printf(该学生民族:%sn,stui.nation);printf(该学生籍贯:%sn,stui.add);a=0;/找到该生,a=0;break;/出for循环if(a=1)/若没有找到该生,a=1,输出提示语句

11、printf(nn该学号不存在!请重新输入学号:n);while(a);/当a=0,即没有找到该生,则继续循环重新输入学生学号printf(t*n);printf(t你选取你要修改选项:n);printf(t1.*修改姓名n);printf(t2.*修改年龄n);printf(t3.*修改性别n);printf(t4.*修改出生日期n);printf(t5.*修改籍贯n); printf(t6.*修改院系名称n);printf(t7.*修改专业名称n);printf(t8.*修改班级n);printf(t9.*修改民族n);printf(t0.*退出菜单n);printf(t*n);while

12、(1)printf(nt请选取你要进行操作:);scanf(%d,&item);/item控制子菜单选取 switch(item) case 1:/修改姓名printf(t请输入新姓名:);scanf(%s,stui.name);printf(nnn修改成功!n);save_file(stu,sum);break; case 2:/修改年龄printf(t请输入新年龄:);scanf(%s,stui.age); printf(nnn修改成功!n);save_file(stu,sum);break; case 3:/修改性别printf(t请输入新性别:);scanf(%s,stui.sex);

13、printf(nnn修改成功!n);save_file(stu,sum);break; case 4:/修改出生日期printf(t请输入新出生年月(yyyy.mm):);scanf(%s,stui.birth); printf(nnn修改成功!n);save_file(stu,sum);break; case 5:/修改籍贯 printf(t请输入新籍贯:); scanf(%s,stui.add); printf(nnn修改成功!n); save_file(stu,sum); break; case 6:/修改院系 printf(t请输入新院系:); scanf(%s,stui.depar)

14、; printf(nnn修改成功!n); save_file(stu,sum); break; case 7:/修改专业 printf(t请输入新专业名称:); scanf(%s,stui.zhuanye); printf(nnn修改成功!n); save_file(stu,sum); break; case 8:/修改班级 printf(t请输入新班级:); scanf(%s,stui.classes); printf(nnn修改成功!n); save_file(stu,sum); break;case 9:/修改民族 printf(t请输入新民族名称:); scanf(%s,stui.na

15、tion); printf(nnn修改成功!n); save_file(stu,sum); break; case 0:return;/不修改,退出 default:printf(t请在0到9之间选取:);/若输入值不在09,则提示/查询学生信息void seek(struct student stu,int sum) int i,item,flag;/i控制数组下标,item控制子菜单选取,flag为判断条件 char s111; system(cls); while(1) system(cls); printf(nntt-n); printf(tt 1.按学号查询n); printf(tt

16、 2.按姓名查询n); printf(tt 3.退出本菜单n); printf(tt-n); printf(tt 请选取子菜单编号:); scanf(%d,&item);/选取子菜单 flag=0; switch(item) case 1:/按学号进行查找 printf(tt请输入要查询学生学号:); scanf(%s,s1); for(i=0;isum;i+) if(strcmp(stui.num,s1)=0)/判断学号与否存在 /输出 flag=1;printf(该学生学号:%sn,stui.num);printf(该学生姓名:%sn,stui.name);printf(该学生院系:%sn

17、,stui.depar);printf(该学生专业:%sn,stui.zhuanye);printf(该学生班级:%sn,stui.classes);printf(该学生性别:%sn,stui.sex);printf(该学生年龄:%sn,stui.age);printf(该学生出生日期:%sn,stui.birth);printf(该学生民族:%sn,stui.nation);printf(该学生籍贯:%sn,stui.add); getch(); if(flag=0)/当上一种if条件不成立,flag=0,学生学号不存在,输出提示; printf(nnntt该学号不存在!n); getch(

18、); break; case 2:/按姓名进行查找 printf(nntt请输入要查询学生姓名:); scanf(%s,s1); for(i=0;isum;i+) if(strcmp(stui.name,s1)=0)/判断姓名与否存在 /输出 flag=1; printf(该学生学号:%sn,stui.num);printf(该学生姓名:%sn,stui.name);printf(该学生院系:%sn,stui.depar);printf(该学生专业:%sn,stui.zhuanye);printf(该学生班级:%sn,stui.classes);printf(该学生性别:%sn,stui.se

19、x);printf(该学生年龄:%sn,stui.age);printf(该学生出生日期:%sn,stui.birth);printf(该学生民族:%sn,stui.nation);printf(该学生籍贯:%sn,stui.add);getch(); if(flag=0)/当上一种if条件不成立,flag=0,学生姓名不存在,输出提示; printf(nnntt该姓名不存在!n); getch(); break; case 3: system(cls); return; default:printf(nnntt请在1-3之间选取n);/若输入值不在13,则提示 getch(); /删除某学生

20、信息int del(struct student stu,int sum) int i,j,flag=0; char s19; system(cls); printf(nntt请输入要删除学生学号:); scanf(%s,s1);for(i=0;isum;i+)if(strcmp(stui.num,s1)=0)/判断学号与否存在 flag=1;/该学号存在,用后一种数组覆盖此数组,循环,即可删除 for(j=i;jsum-1;j+) stuj=stuj+1; if(flag=0)/该学号不存在 printf(nntt该学号不存在!n); getch(); if(flag=1)/删除成功,输出提

21、示 printf(nnntt删除成功n); getch(); sum-;/删除成功,sum自-1; save_file(stu,sum);/保存return sum;/返回删除后存在学生人数 /显示打印已有学生信息 void show(struct student stu,int sum) int i; system(cls); printf(nntt 所有学生信息为:n); for(i=0;isum;i+)/for循环打印信息 printf(学号:%st,stui.num);printf(姓名:%st,stui.name);printf(院系:%st,stui.depar);printf(专

22、业:%st,stui.zhuanye);printf(班级:%st,stui.classes);printf(性别:%st,stui.sex);printf(年龄:%st,stui.age);printf(出生日期:%st,stui.birth);printf(民族:%st,stui.nation);printf(籍贯:%snn,stui.add);printf(按任意键返回); getch();system(cls);/添加学生信息int insert(struct student stu,int sum)int i,j,flag,m;FILE *sp;system(cls);printf(

23、t请输入要添加学生个数:);scanf(%d,&m);read_file(stu);/在添加前读文献do flag=1;i=sum;/此时i表达数组下标,添加学生,保存到当前已有数组下一种,sum为总数,stui表达第sum+1个人while(flag)flag=0;printf(nn 请输入第 %d 个学生学号:,i+1);scanf(%s,stui.num); for(j=0;ji;j+)/判断此学号与否存在if(strcmp(stui.num,stuj.num)=0) printf(nnn该学号已有,请重新输入!n);flag=1; break;/*如果该学号已有则立即对出该层for循环

24、*/ printf(n 请输入第 %d 个学生姓名:,i+1); scanf(%s,stui.name); printf(n 请输入第 %d 个学生院系:,i+1); scanf(%s,stui.depar); printf(n 请输入第 %d 个学生专业:,i+1); scanf(%s,stui.zhuanye); printf(n 请输入第 %d 个学生班级:,i+1); scanf(%s,stui.classes); printf(n 请输入第 %d 个学生性别:,i+1); scanf(%s,stui.sex); printf(n 请输入第 %d 个学生年龄:,i+1); scanf(

25、%s,stui.age); printf(n 请输入第 %d 个学生出生日期:,i+1); scanf(%s,stui.birth); printf(n 请输入第 %d 个学生民族:,i+1); scanf(%s,stui.nation); printf(n 请输入第 %d 个学生籍贯:,i+1); scanf(%s,stui.add); if(flag=0) i=i; i+; while(isum+m);/当下标i不大于sum+m时,循环继续,stusum+m指向添加所有学生后所用数组下一种单元 sum+=m;/添加完毕后,学生总人数变为sum+m; printf(nnnnnnnntttt

26、录入完毕!); save_file(stu,sum);/保存 getch(); system(cls); return sum;/返回添加完毕后既有学生人数 /对学生信息排序 void rank(struct student stu,int sum) int i,j;FILE *sp;struct student s1; system(cls); for(i=0;isum-1;i+)/对学生信息按照学号用 选取排序法 进行排序 for(j=i+1;j0)/小者换到stui s1=stui;stui=stuj;stuj=s1; printf(nntt 所有学生信息为:n); for(i=0;is

27、um;i+)/打印排好后学生信息 printf(学号:%st,stui.num);printf(姓名:%st,stui.name);printf(院系:%st,stui.depar);printf(专业:%st,stui.zhuanye);printf(班级:%st,stui.classes);printf(性别:%st,stui.sex);printf(年龄:%st,stui.age);printf(出生日期:%st,stui.birth);printf(民族:%st,stui.nation);printf(籍贯:%snn,stui.add);printf(按任意键返回); getch();

28、system(cls);/对班级学生人数进行记录void count(struct student stu,int sum)int i,count=0;char s15,s25,s35;system(cls); printf(tt请输入你要记录学生人数学院:);scanf(%s,s1);printf(tt请输入你要记录学生人数专业:);scanf(%s,s2);printf(tt请输入你要记录学生人数班级:);scanf(%s,s3);for(i=0;isum;i+)if(strcmp(s1,stui.depar)=0&strcmp(s2,stui.zhuanye)=0&strcmp(s3,s

29、tui.classes)=0)/判断条件count+;/count为符合条件学生人数printf(%s学院%s专业%s班级学生人数为:%d人,s1,s2,s3,count);getch();/菜单函数void menu() int choice,sum;struct student stuN;sum=read_file(stu);/sum为现已存入文献中学生人数dosystem(cls);printf(nnn);printf(tt *欢迎进入*n);printf(tt*学生学籍管理系统*nnn);printf(ttt 1.创立学生信息n);printf(ttt 2.修改学生信息n);print

30、f(ttt 3.查询学生信息n);printf(ttt 4.删除学生信息n);printf(ttt 5.添加学生信息n);printf(ttt 6.保存学生信息n);printf(ttt 7.显示已录入学生信息n);printf(ttt 8.对学生信息排序n);printf(ttt 9.记录学生信息n);printf(ttt 0.退出程序n);printf(ttt 请选取您要执行操作(09):);scanf(%d,&choice);switch(choice)case 1:sum=found(stu);break;/sum=创立后所存储学生人数case 2:modify(stu,sum);br

31、eak;/修改case 3:seek(stu,sum);break;/查询case 4:sum=del(stu,sum);break;/sum=删除学生后所存储学生人数case 5:sum=insert(stu,sum);break;/sum=添加学生后所存储学生人数case 6:save_file(stu,sum);break;/保存文献case 7:show(stu,sum);break;/显示case 8:rank(stu,sum);break;/排序case 9:count(stu,sum);break;/记录某班级学生人数case 0:break;while(choice!=0);v

32、oid main()int flag=0;flag=code();/确认与否新创立密码文献。若没有存储密码文献,则flag=1,若有,flag=0;if(flag)/判断if条件与否成立code_input();/当flag=1,即没有存储密码文献时,进入code_input()函数,创立顾客名及密码;当flag=0,则不用新建密码;printf(*请输入你顾客名及密码*:n);/登陆该管理系统前需身份验证scanf(%s %s,s0.name,s0.code);/输入顾客顾客名及密码enter(s0.name,s0.code);/登陆管理系统前,进入enter()函数验证模块system(cls);menu();

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服