设计一个学籍管理系统,基本功能包括:
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语言版)相关推荐

  1. c语言编写的简单学籍管理系统,简易学籍管理系统(C语言版)

    //功能界面 #include #include #include struct STUDENT { int num; char name[64]; double elec; /*首先定义全局结构体变 ...

  2. 教师查询系统C语言,教师管理系统c语言版

    <教师管理系统c语言版>由会员分享,可在线阅读,更多相关<教师管理系统c语言版(7页珍藏版)>请在人人文库网上搜索. 1.include/头文件#include/字符处理头文件 ...

  3. 酒店管理系统c语言带注释,酒店管理系统--C语言版.pdf

    酒店管理系统...C语言版. // #include #include #include #include //成员变量的声明 int i,j,k,p 0; char temp[] "&qu ...

  4. 汽车销售管理系统 c语言版 课程设计,汽车销售管理系统c语言版.docx

    Document serial number[NL89WT-NY98YT-NC8CB-NNUUT-NUT108] Document serial number[NL89WT-NY98YT-NC8CB- ...

  5. 学生成绩排名及管理系统c语言,学生成绩管理系统__C语言版.doc

    学生成绩管理系统__C语言版 学生成绩管理系统__C语言版 #include #include #include #include #include #include using namespace ...

  6. c语言学籍管理系统实训作业,学籍管理系统C语言实训报告

    学籍管理系统C语言实训报告 实训报告 课程名称: C语言程序设计课设 项目名称: 学籍管理系统 学 院: 专 业: 姓 名: 学 号: 指导教师: 成 绩: 目录 1 问题提出 ........... ...

  7. 学生管理系统——C语言版

    文章目录 学生管理系统--C语言版 主函数 录入学生信息 删除学生信息 修改学生信息 查找学生信息 打印学生信息 保存学生信息 读取学生信息 求班级成绩的平均值 学生管理系统--C语言版 主函数 in ...

  8. 生成绩管理系统c语言,学生成绩管理系统——C语言版

    <学生成绩管理系统--C语言版>由会员分享,可在线阅读,更多相关<学生成绩管理系统--C语言版(12页珍藏版)>请在人人文库网上搜索. 1.*常用的标准输入输出函数*/*acc ...

  9. 学生信息管理系统(C++语言版)

    学生信息管理系统(C语言版) #include "stdio.h" #include "bios.h" #include "conio.h" ...

  10. 课设 c语言编译学籍管理系统,C语言课设之学生学籍管理系统

    <C语言课设之学生学籍管理系统>由会员分享,可在线阅读,更多相关<C语言课设之学生学籍管理系统(10页珍藏版)>请在人人文库网上搜索. 1.题目:学生学籍管理系统 目录:一.个 ...

最新文章

  1. 总结open与fopen的区别
  2. 空车上路,Waymo拿下加州首个“真”无人驾驶许可证
  3. webvr动画函数requestAnimationFrame
  4. 英特尔推出模仿人脑运行方式、拥有800万组神经元的计算机系统
  5. RESTful Web 服务 - 介绍
  6. mysql执行计划字段解析_MySQL执行计划解析
  7. 利用 Flash 远程检测客户端安装的杀软
  8. 你知道WPF这三大模板实例运用吗?
  9. css3 变换、过渡效果、动画
  10. Gradle DSL method not found: ‘compile()’
  11. 计算机桌面亮度调整,接近完美:如何调整计算机屏幕的亮度?如何调整计算机屏幕的亮度[graphic]...
  12. WinStore控件之Button、HyperlinkButton、RadioButton、CheckBox、progressBar、ScrollViewer、Slider...
  13. Django最新版(1.10.5)在SAE上面部署流程
  14. 02: python3使用email和smtplib库发送邮件
  15. windows主题Mac OS 风格 BigSur主题美化
  16. sox 转换pcm格式采样率
  17. 【csdn上使用MathType编写公式建议方法】【亲测有效!!!】
  18. 神经网络arm neon加速实现
  19. 推荐收藏 | 美团技术团队的书单
  20. window安全中心关闭防火墙后仍然会将xx文件删除的解决办法

热门文章

  1. m基于FPGA的GPS收发系统开发,包括码同步,载波同步,早迟门跟踪环,其中L1采用QPSK,L2采用BPSK
  2. 带你读懂——频率响应与采样频率之间的关系
  3. oracle10g笔记1
  4. 英文版-主我高举你的名-Lord I lift Your name on high-纯蓝歌词字幕
  5. Unity发布项目,记录日志并写入文件。
  6. Java经典算法四十例编程详解+程序实例
  7. Excel长串数字显示异常,如2E+13
  8. 01 Python学习--第一周--开课介绍、数据类型、数据运算、表达式、循环、三元运算、对象基本概念...
  9. Python作画玫瑰花
  10. Arduino for Esp8266 基础篇之Ticker