版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C语言实现学生学籍管理系统课程设计目录设计要求完整代码运行结果本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下
设计要求
设计学籍管理系统
1、添加学生信息
2、浏览学生信息
3、查询学生信息
4、修改学生信息
5、册J除学生信息
6、排序学生信息
7、读取文件学生
8、保存到文件
完整代码
#define_CRT_SECURE_NO_WARNINGS
#includestdio.h
#includestring.h
#includemath.h
#includestdlib.h
#includewindows.h
#defineM80//对结构体变量(学生数目)进行宏定义
constchar*path="D://C语言课程设计//信息存储文件.txt";
FILE*fp;//定义指向文件的指针
structstudent
charname[20];//姓名
charsex[10];//性别
intage;//年龄
charnum[20];//学号
charmajor[30];//专业
charclasses[30];//班级
intmath;//数学成绩
intenglish;//英语成绩
};//定义结构体变量
intjiami();
voidinput(structstudentstu[M]);
voidoutput(structstudentstu[M]);
voidlookfor(structstudentstu[M]);
voidorder(structstudentstu[M]);
voiddelete_s(structstudentstu[M]);
voidmodify(structstudentstu[M]);
voidxuehao(structstudentstu[M]);
voidxingming(structstudentstu[M]);
voidfileread(structstudentstu[M]);
voidfilewrite(structstudentstu[M]);
intcount;//判断学生的数目
structstudentt;
intjiami()
ints=123,m;//s为密码,m为输入的密码
inti=0;//用来判断输入的密码是否正确
printf("请输入密码(仅有三次机会):");
scanf("%d",//第一次输入密码
if(m!=s)
printf("密码错误,还有两次机会:");
scanf("%d",//第二次输入密码
if(m!=s)
printf("密码错误,最后一次机会:");
scanf("%d",//第三次输入密码
if(m!=s)
printf("密码错误\n");
elsei=1;
elsei=1;
elsei=1;
returni;
intmain()
intchoice,sum,i;//choice用来判断输入的命令;sum用来记录输入错误的次数;i用来判断输入的密码是否正确
structstudentstu[M];
sum=0;//初始化sum
i=jiami();
if(i==1)//判断输入的密码是否正确
printf("\t-------------------------------------------------\n");
printf("\t\t+学生学籍管理系统+\n");
printf("\t-------------------------------------------------\n");
printf("\t\t***************\n");
printf("\t\t1、添加学生信息\n");
printf("\t\t2、浏览学生信息\n");
printf("\t\t3、查询学生信息\n");
printf("\t\t4、修改学生信息\n");
printf("\t\t5、删除学生信息\n");
printf("\t\t6、排序学生信息\n");
printf("\t\t7、读取文件学生\n");
printf("\t\t8、保存到文件\n");
printf("\t\t9、退出系统\n");
printf("\t\t***************\n");
printf("请输入你的选择\n");//输出菜单
scanf("%d",choice);//输入选择
fflush(stdin);//清空缓冲区
if(choice9||choice=0)
sum++;
if(sum=5)
printf("输入错误次数过多,程序将重新开始\n");
system("pause");
system("cls");//清屏
switch(choice)
case1:
input(stu);
break;//添加学生信息
case2:
output(stu);
break;//浏览学生信息
case3:
lookfor(stu);
break;//寻找学生信息
case4:
modify(stu);
break;//修改学生信息
case5:
delete_s(stu);
break;//删除学生信息
case6:
order(stu);
break;//排序学生信息
case7:
fileread(stu);
break;//从文件中读取学生信息
case8:
filewrite(stu);
break;//将学生信息写入文件
case9:
printf("感谢你使用学生学籍管理系统,请关掉程序!\n");
system("pause");
break;
default:
printf("无效的选择!请重新输入!\n");
break;
}while(choice!=9);
printf("密码输入错误,程序结束\n");
return0;
voidinput(structstudentstu[M])//自定义输入函数
system("cls");//清屏
printf("请添加要输入学生的信息\n");
printf("请输入学生的姓名\n");
scanf("%s",stu[count].name);//输入学生姓名
printf("请输入学生的性别\n");
scanf("%s",stu[count].sex);//输入学生性别
printf("请输入学生的年龄\n");
scanf("%d",stu[count].age);//输入学生年龄
printf("请输入学生的学号\n");
scanf("%s",stu[count].num);//输入学生学号
printf("请输入学生的专业\n");
scanf("%s",stu[count].major);//输入学生专业
printf("请输入学生的班级\n");
scanf("%s",stu[count].classes);//输入学生班级
printf("请输入学生的数学成绩\n");
scanf("%d",stu[count].math);//输入学生数学成绩
printf("请输入学生的英语成绩\n");
scanf("%d",stu[count].english);//输入学生英语成绩
count++;//计算学生人数
voidoutput(structstudentstu[M])//自定义输出函数
intj;
system("cls");//清屏
if(count==0)//判断目前是否有学生信息
printf("当前已存入学生的信息为0个\n");
return;
else
for(j=0;jcount;j++)
printf("姓名:%s,",stu[j].name);//输出姓名
printf("性别:%s,",stu[j].sex);//输出性别
printf("年龄:%d,",stu[j].age);//输出年龄
printf("学号:%s,",stu[j].num);//输出学号
printf("专业:%s,",stu[j].major);//输出专业
printf("班级:%s,",stu[j].classes);//输出班级
printf("数学成绩:%d,",stu[j].math);//输出数学成绩
printf("英语成绩:%d\n",stu[j].english);//输出英语成绩
voidlookfor(structstudentstu[M])//自定义查询函数
intchoice;//定义选择
system("cls");//清屏
if(count==0)//判断目前是否有学生信息
printf("当前已存学生的信息为0个,无法查询!!!\n");
return;
else
printf("请选择你所要查询的方式:1、学号2、姓名3、取消\n");
scanf("%d",choice);//输入选项
switch(choice)
case3:return;break;
case2:xingming(stu);break;//按姓名查询
case1:xuehao(stu);break;//按学号查询
default:printf("无效的选择!请重新输入!\n");break;
}}
voidxuehao(structstudentstu[M])//自定义学号查询函数
intj,flag=0;
intk=0;//判断是否找到该学生信息
charxh[25];
system("cls");
printf("请输入你想要查询的学生的学号");
scanf("%s",xh);//输入学号
fflush(stdin);//清空缓冲区
for(j=0;jcount;j++)
if(strcmp(stu[j].num,xh)==0)//找到该学号的学生信息
printf("姓名:%s\t\t",stu[j].name);//输出姓名
printf("性别:%s\t\t",stu[j].sex);//输出性别
printf("年龄:%d\t\t",stu[j].age);//输出年龄
printf("学号:%s\t\t",stu[j].num);//输出学号
printf("专业:%s\t\t",stu[j].major);//输出专业
printf("班级:%s\t\t",stu[j].classes);//输出班级
printf("数学成绩:%d\t\t",stu[j].math);//输出数学成绩
printf("英语成绩:%d\t\t",stu[j].english);//输出英语成绩//出该学生的信息
k=1;
if(k==0)//没有找到该学号
printf("很抱歉,没有你所需要的学生信息\n");
voidxingming(structstudentstu[M])//自定义姓名查询函数
intn=0;
intj,flag=0;
charxm[25];
system("cls");
printf("请输入你想要查询的学生的姓名");
scanf("%s",xm);
fflush(stdin);
for(j=0;jcount;j++)
if(strcmp(stu[j].name,xm)==0)
printf("姓名:%s\t\t",stu[j].name);//输出姓名
printf("性别:%s\t\t",stu[j].sex);//输出性别
printf("年龄:%d\t\t",stu[j].age);//输出年龄
printf("学号:%s\t\t",stu[j].num);//输出学号
printf("专业:%s\t\t",stu[j].major);//输出专业
printf("班级:%s\t\t",stu[j].classes);//输出班级
printf("数学成绩:%d\t\t",stu[j].math);//输出数学成绩
printf("英语成绩:%d\t\t",stu[j].english);//输出英语成绩//输出该学生的信息
n=1;
if(n==0)
printf("很抱歉,没有你所需要的学生信息\n");
voidorder(structstudentstu[M])//自定义排序函数
intj,k,choice,max;
system("cls");
printf("请输入你想要进行排序的方式\n");
printf("1、数学2、英语\n");
scanf("%d",choice);//输入选项
switch(choice)
case1:
for(j=0;jcount;j++)
max=j;
for(k=j+1;kcount;k++)
if(stu[k].mathstu[max].math)
t=stu[k];
stu[k]=stu[max];
stu[max]=t;
break;//按数学成绩排序
case2:
for(j=0;jcount;j++)
max=j;
for(k=j+1;kcount;k++)
if(stu[k].englishstu[max].english)
t=stu[k];
stu[k]=stu[max];
stu[max]=t;
break;//按英语成绩排序
default:
printf("无效的选择!请重新输入!\n");
break;
if(choice=1choice=5)
printf("排序成功!!!");
voiddelete_s(structstudentstu[M])//自定义删除函数(按学号删除)
intj,index=0,k=count;
charxh[25];
system("cls");
if(count==0)//判断学生数量是否为0
printf("当前已存学生信息为0个,无法删除!!!\n");
return;
else
printf("请输入你想要删除的同学学号\n");
scanf("%s",xh);//输入删除学生的学号
fflush(stdin);//清空缓冲区
for(j=0;jcount;j++)
if(strcmp(stu[j].num,xh)==0)//寻找该学生
for(j=index;jcount;j++)
stu[j]=stu[j+1];
count--;
if(countk)//判断是否删除成功
printf("你已经删除成功\n");
index++;
if(j==count)//判断是否有该学生的信息
printf("抱歉!!!没有你所需要删除的学生信息!*_*!\n");
voidmodify(structstudentstu[M])//自定义修改函数
intj,flag=0,course;
inti=0;
charxh[25];
system("cls");
if(count==0)//判断是否有学生信息
printf("当前已存学生信息为0个,无法修改!!!\n");
return;
else
printf("请输入你想要修改的同学学号\n");
scanf("%s",xh);//输入要修改学生的学号
fflush(stdin);
for(j=0;jcount;j++)
if(strcmp(stu[j].num,xh)==0)
i=1;
printf("你确定要修改学生的信息吗如果不确定的话,请关掉本程序吧!\n");
printf("选择课程:1、数学2、英语3、跳过\n");
scanf("%d",course);//选择要修改的一部分学生信息
switch(course)
case1:printf("请输入你想要修改后的学生成绩\n");
scanf("%d",stu[j].math);break;//修改数学成绩
case2:printf("请输入你想要修改后的学生成绩\n");
scanf("%d",stu[j].english);break;//修改英语成绩
case3:break;
default:printf("无效的选择!请重新输入!\n");break;
printf("选择信息:1、学号2、性别3、年龄4、专业5、班级6、跳过\n");
scanf("%d",course);//选择要修改的一部分学生信息
switch(course)
case1:scanf("%s",stu[j].num);break;//修改学号
case2:printf("请输入修改后的信息:");scanf("%s",
stu[j].name);break;//修改性别
case3:printf("请输入修改后的信息:");scanf("%d",
stu[j].age);break;//修改年龄
case4:printf("请输入修改后的信息:");scanf("%s",
stu[j].major);break;//修改专业
case5:printf("请输入修改后的信息:");scanf("%s",
stu[j].classes);break;//修改班级
case6:break;
default:printf("无效的选择!请重新输入!\n");break;
if(i==0)printf("无该学生信息!!\n");
return;
voidfilewrite(structstudentstu[M])//自定义写入文件函数
charf;
intj=0;
system("cls");
printf("请选择是否要存入已输入的学生信息:'y'还是'n'\n");
scanf("%c",//判断是否写入文件
fflush(stdin);//清空缓冲区
while(f!='y'f!='n')
if(f!='y'f!='n')
printf("输入错误,请重新输入\n");
printf("以下操作将会覆盖已存储的数据,确定请输入'y'或'n'\n");
scanf("%c",
fflush(stdin);
if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 飞行员掌握飞行技能安全操作指导书
- 2026中学化学竞赛入门指导课件
- 2026春季防晒宣讲课件
- 办公自动化设备维护保养规范与操作指导
- 关于物流配送时效的承诺函5篇
- 高科技产品研发项目承诺书(6篇)
- 高中生结合化学动力学理论分析酶促反应对食品质构变化速率的影响的课题报告教学研究课题报告
- 2026春季药妆品牌选择指南课件
- 2026春季避免过度护肤科普课件
- 自我提升与学习进步承诺书(3篇)
- 《道路运输企业主要负责人和安全生产管理人员安全考核机动车维修企业》专业部分题库(附答案)
- 20.2电生磁教案(表格式)2025-2026学年初中物理人教版九年级全一册
- 霍桑红字介绍
- TGXAS-抗肿瘤药物临床试验护理工作规范编制说明
- 美团推广合同范本
- 网络金融部业务知识考试题库
- 税务领导选拔面试题目及答案
- 内分泌危象识别与应急处理
- 机关人员公务出差审批单
- 2025年(重点)水利安全员B证近年考试真题题库及答案
- 结直肠癌教学课件
评论
0/150
提交评论