学籍管理系统(C语言版)
设计一个学籍管理系统,基本功能包括:
1.输入学生基本信息
2.查询学生信息(1.按学号2.按姓名)
3.删除学生信息(1.按学号2.按姓名)
4.学生信息排序(1.按学号2.按姓名)
5.修改学生基本信息
6.输出学生信息
7.保存学生信息
0.退出程序
注:由于知识有限,该系统暂时规定只输入3个学生数据,今后会改良成可随机处理任意多个学生的数据
一、首页
void enter(struct student stu[],int n)
{int select;while(select!=0){printf("\t\t\t ---------------------------\n");printf("\n");printf("\t\t\t 欢迎使用学籍管理系统\n");printf("\n");printf("\t\t\t ---------------------------\n");printf("\t\t\t 1.输入学生基本信息\n");printf("\t\t\t 2.查询学生信息(1.按学号2.按姓名)\n");printf("\t\t\t 3.删除学生信息(1.按学号2.按姓名)\n");printf("\t\t\t 4.学生信息排序(1.按学号2.按姓名)\n");printf("\t\t\t 5.修改学生基本信息\n");printf("\t\t\t 6.输出学生信息\n");printf("\t\t\t 7.保存学生信息\n");printf("\t\t\t 0.退出程序\n");printf("\t\t\t 请输入您的选项");scanf("%d",&select);system("cls");switch(select){case 1:input(stu,n);break;case 2:seek(stu,n);break;case 3:delect(stu,n);break;case 4:sort(stu,n);break;case 5:revise(stu,n);break;case 6:output(stu,n);break;case 7:keep(stu,n);break;case 0:printf("\t\t\t 您已退出学籍管理系统\n");break;default:printf("输入有误\n");system("pause");system("cls"); }}
}
二、输入
int count=0; //计数器记录学生个数
void input(struct student stu[],int n)
{ int i;if(count!=0)count=0;printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息录入系统\n");printf("\n");printf("\t\t\t-------------------------------\n");printf("\t\t请输入学生基本信息(学号,姓名,年龄,性别(女w,男m))\n");for(i=0;i<n;i++)scanf("%d %s %d %c",&stu[i].number,stu[i].name,&stu[i].age,&stu[i].sex);system("cls");printf("\t\t\t 学生信息已录入\n");system("pause");system("cls");
}
三、查询
void seek(struct student stu[],int n)
{int i,select2,num2;char name2[10];printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息查询系统\n");printf("\n");printf("\t\t\t-------------------------------\n");printf("\t\t请选择查询方式(1.按学号查询 2.按姓名查询)");scanf("%d",&select2);system("cls");switch(select2){case 1:{ printf("\t\t\t\t 请输入学号");scanf("%d",&num2);system("cls");for(i=0;i<n-count;i++)if(stu[i].number==num2)break; //判断输入学号和结构数组的学号是否匹配,找到匹配项则退出循环if(i<n-count) //数组下标小于学生数,则说明找到该学生,输出信息{printf("\t\t\t您要查询的学生信息为:\n");printf("\t\t\t学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);}else //数组下标等于学生数,则没有找到该学生printf("\t\t\t\t查无此人\n");system("pause");system("cls");}break;case 2:{printf("\t\t\t\t 请输入姓名");scanf("%s",name2);system("cls");for(i=0;i<n-count;i++)if(strcmp(stu[i].name,name2)==0)break;if(i<n-count){printf("\t\t\t您要查询的学生信息为:\n");printf("\t\t\t学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);}elseprintf("\t\t\t\t查无此人\n");system("pause");system("cls"); }break;}}
四、删除
void delect(struct student stu[],int n)
{int i=n,j,select3,num3,choice3;char name3[10];printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息删除系统\n");printf("\n");printf("\t\t\t-------------------------------\n");printf("\t\t请选择删除方式(1.按学号删除 2.按姓名删除)");scanf("%d",&select3);system("cls");switch(select3){case 1:{printf("\t\t\t\t 请输入学号");scanf("%d",&num3);system("cls");for(i=0;i<n-count;i++)if(stu[i].number==num3)break;//首先找到要删除的学生if(i<n-count){printf("\t\t\t当前您要修改的学生信息为\n");printf("\t\t\t学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);printf("\t\t\t如果您不想再删除该生信息请按0,继续删除请按1\n");scanf("%d",&choice3);system("cls");if(choice3==1){for(j=i;j<n-count;j++)//从该学生往后每一项向前移动一项,覆盖前一个数据项stu[j]=stu[j+1];count++;printf("\t\t\t\t该生信息已删除\n");system("pause");system("cls");}}else{printf("\t\t\t\t查无此人\n");system("pause");system("cls"); }}break;case 2:{printf("\t\t\t\t 请输入姓名");scanf("%s",&name3);system("cls");for(i=0;i<n-count;i++)if(strcmp(stu[i].name,name3)==0)break;if(i<n-count){printf("\t\t\t当前您要修改的学生信息为\n");printf("\t\t\t学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);printf("\t\t\t如果您不想再删除该生信息请按0,继续删除请按1\n");scanf("%d",&choice3);system("cls");if(choice3==1){for(j=i;j<n-count;j++)stu[j]=stu[j+1];count++;printf("\t\t\t\t该生信息已删除\n");system("pause");system("cls");}}else{printf("\t\t\t\t查无此人\n");system("pause");system("cls"); }}}
}
五、排序
void sort(struct student stu[],int n)
{int select4,i,j;struct student t;printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息排序系统\n");printf("\n");printf("\t\t\t-------------------------------\n");printf("\t\t请选择排序方式(1.按学号排序 2.按姓名排序)");scanf("%d",&select4);system("cls");switch(select4){case 1:{ //冒泡排序for(j=1;j<n-count;j++){for(i=0;i<n-count-j;i++){if(stu[i].number>stu[i+1].number){t=stu[i];stu[i]=stu[i+1];stu[i+1]=t;}}} }break;case 2:{for(j=1;j<n-count;j++){for(i=0;i<n-count-j;i++){if(strcmp(stu[i].name,stu[i+1].name)>0){t=stu[i];stu[i]=stu[i+1];stu[i+1]=t;}}}}}
printf("\t\t\t\t已按要求完成排序\n");
system("pause");
system("cls");
}
六、修改
void revise(struct student stu[],int n)
{int num5,i=n,choice5;printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息修改系统\n");printf("\n");printf("\t\t\t-------------------------------\n");printf("\t\t\t请输入您要修改的学生学号");scanf("%d",&num5);system("cls");for(i=0;i<n-count;i++)if(stu[i].number==num5)break;if(i<n-count){printf("\t\t\t当前您要修改的学生信息为\n");printf("\t\t\t学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);printf("\t\t\t如果您不想再修改该生信息请按0,继续修改请按1\n");scanf("%d",&choice5);system("cls");if(choice5==1){printf("\t\t\t请输入修改的信息\n");printf("\t\t\t学号\t姓名\t年龄\t性别\n");printf("\t\t\t");scanf("%d %s %d %c",&stu[i].number,stu[i].name,&stu[i].age,&stu[i].sex);//直接将新信息存储到原数据项中,覆盖原信息即可system("cls");printf("\t\t\t\t已完成信息修改\n");system("pause");system("cls");}}else{printf("\t\t\t\t查无此人\n");system("pause");system("cls");}
}
七、输出
void output(struct student stu[],int n)
{int i;printf("\t\t\t-------------------------------\n");printf("\n");printf("\t\t\t 欢迎进入学生信息输出系统\n");printf("\n");printf("\t\t\t-------------------------------\n");for(i=0;i<n-count;i++)//循环输出所有学生信息printf("\t\t\t 学号%d 姓名%s 年龄%d 性别%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);system("pause");system("cls");
}
八、保存
void keep(struct student stu[],int n)
{FILE *fp; //文件指针fpint i;if((fp=fopen("d:\\xsxx.txt","wt+"))==NULL)//在D盘读写打开或建立一个名为“xxsx”的文本文件,允许读写{printf("\t\t\t\t文件不能打开!");exit(0);}for(i=0;i<n-count;i++)fprintf(fp,"%d\t%s\t%d\t%c\n",stu[i].number,stu[i].name,stu[i].age,stu[i].sex);//调用格式化写fprintf()函数,将数组中内容写入文件fclose(fp);printf("\t\t\t\t文件已保存\n");system("pause");system("cls");
}
九、主函数
int main(){struct student stu[3];enter(stu,3); //规定学生数为3人return 0;
}
十、结构体定义
struct student{int number;char name[10];int age;char sex;
}; //定义结构体student
如发现文章有误,请各大佬们不吝赐教
学籍管理系统(C语言版)相关推荐
- c语言编写的简单学籍管理系统,简易学籍管理系统(C语言版)
//功能界面 #include #include #include struct STUDENT { int num; char name[64]; double elec; /*首先定义全局结构体变 ...
- 教师查询系统C语言,教师管理系统c语言版
<教师管理系统c语言版>由会员分享,可在线阅读,更多相关<教师管理系统c语言版(7页珍藏版)>请在人人文库网上搜索. 1.include/头文件#include/字符处理头文件 ...
- 酒店管理系统c语言带注释,酒店管理系统--C语言版.pdf
酒店管理系统...C语言版. // #include #include #include #include //成员变量的声明 int i,j,k,p 0; char temp[] "&qu ...
- 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统c语言版.docx
Document serial number[NL89WT-NY98YT-NC8CB-NNUUT-NUT108] Document serial number[NL89WT-NY98YT-NC8CB- ...
- 学生成绩排名及管理系统c语言,学生成绩管理系统__C语言版.doc
学生成绩管理系统__C语言版 学生成绩管理系统__C语言版 #include #include #include #include #include #include using namespace ...
- c语言学籍管理系统实训作业,学籍管理系统C语言实训报告
学籍管理系统C语言实训报告 实训报告 课程名称: C语言程序设计课设 项目名称: 学籍管理系统 学 院: 专 业: 姓 名: 学 号: 指导教师: 成 绩: 目录 1 问题提出 ........... ...
- 学生管理系统——C语言版
文章目录 学生管理系统--C语言版 主函数 录入学生信息 删除学生信息 修改学生信息 查找学生信息 打印学生信息 保存学生信息 读取学生信息 求班级成绩的平均值 学生管理系统--C语言版 主函数 in ...
- 生成绩管理系统c语言,学生成绩管理系统——C语言版
<学生成绩管理系统--C语言版>由会员分享,可在线阅读,更多相关<学生成绩管理系统--C语言版(12页珍藏版)>请在人人文库网上搜索. 1.*常用的标准输入输出函数*/*acc ...
- 学生信息管理系统(C++语言版)
学生信息管理系统(C语言版) #include "stdio.h" #include "bios.h" #include "conio.h" ...
- 课设 c语言编译学籍管理系统,C语言课设之学生学籍管理系统
<C语言课设之学生学籍管理系统>由会员分享,可在线阅读,更多相关<C语言课设之学生学籍管理系统(10页珍藏版)>请在人人文库网上搜索. 1.题目:学生学籍管理系统 目录:一.个 ...
最新文章
- 总结open与fopen的区别
- 空车上路,Waymo拿下加州首个“真”无人驾驶许可证
- webvr动画函数requestAnimationFrame
- 英特尔推出模仿人脑运行方式、拥有800万组神经元的计算机系统
- RESTful Web 服务 - 介绍
- mysql执行计划字段解析_MySQL执行计划解析
- 利用 Flash 远程检测客户端安装的杀软
- 你知道WPF这三大模板实例运用吗?
- css3 变换、过渡效果、动画
- Gradle DSL method not found: ‘compile()’
- 计算机桌面亮度调整,接近完美:如何调整计算机屏幕的亮度?如何调整计算机屏幕的亮度[graphic]...
- WinStore控件之Button、HyperlinkButton、RadioButton、CheckBox、progressBar、ScrollViewer、Slider...
- Django最新版(1.10.5)在SAE上面部署流程
- 02: python3使用email和smtplib库发送邮件
- windows主题Mac OS 风格 BigSur主题美化
- sox 转换pcm格式采样率
- 【csdn上使用MathType编写公式建议方法】【亲测有效!!!】
- 神经网络arm neon加速实现
- 推荐收藏 | 美团技术团队的书单
- window安全中心关闭防火墙后仍然会将xx文件删除的解决办法
热门文章
- m基于FPGA的GPS收发系统开发,包括码同步,载波同步,早迟门跟踪环,其中L1采用QPSK,L2采用BPSK
- 带你读懂——频率响应与采样频率之间的关系
- oracle10g笔记1
- 英文版-主我高举你的名-Lord I lift Your name on high-纯蓝歌词字幕
- Unity发布项目,记录日志并写入文件。
- Java经典算法四十例编程详解+程序实例
- Excel长串数字显示异常,如2E+13
- 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...
- Python作画玫瑰花
- Arduino for Esp8266 基础篇之Ticker