C语言结构体版学生成绩管理系统

 更新时间:2020年02月14日 09:49:19   作者:日行一善,写一算法  
这篇文章主要为大家详细介绍了C语言结构体版的学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下

结构体版的学生成绩管理系统

主要功能有

按1 输入学生信息
按2 输出学生信息
按3 查询学生信息
按4 修改学生信息
按5 删除学生信息
按6 插入学生信息
按7 排序总成绩信息

学生信息主要有姓名,班级,学号,C语言成绩,高数成绩,大学英语成绩,控制台界面输出格式有点不美观。

#include<stdio.h>
#include<string.h>
struct student
{
 char name[20];//名字
 char sex[10];//性别
 int number;//学号
 char ban[20];//班级
 int c;//C语言成绩
 int gaoshu;//高数成绩
 int yingyu;//大学英语成绩
 int sum;//总成绩

}stu[60];
int n;//学生数量
void menu()//菜单
{
 printf("\n");
 printf("***********************************\n");
 printf("*** 学生成绩管理系统 ***\n");
 printf("*** 按1 输入学生信息 ***\n");
 printf("*** 按2 输出学生信息 ***\n");
 printf("*** 按3 查询学生信息 ***\n");
 printf("*** 按4 修改学生信息 ***\n");
 printf("*** 按5 删除学生信息 ***\n");
 printf("*** 按6 插入学生信息 ***\n");
 printf("*** 按7 排序成绩信息 ***\n");
 printf("***  按0 退出系统 ***\n");
 printf("***********************************\n");
}
void input()//学生信息的录入
{
 int i,j=1;
 printf("\n  请输入总学生数量:");
 scanf("%d",&n);
 for(i=1;i<=n;i++)
 {
 printf(" 输入第%d个学生相关信息\n",j++);
 printf("输入姓名\n");
 scanf("%s",stu[i].name);
 getchar();
 printf("输入性别\n");
 scanf("%s",stu[i].sex);
 printf("输入学号\n");
 scanf("%d",&stu[i].number);
 printf("输入班级\n");
 scanf("%s",stu[i].ban);
 printf("输入c语言成绩\n");
 scanf("%d",&stu[i].c);
 printf("输入高数成绩\n");
 scanf("%d",&stu[i].gaoshu);
 printf("输入大学英语成绩\n");
 scanf("%d",&stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
 printf("该学生的总成绩:%d\n",stu[i].sum);
 

 

 }
}
void output()//学生信息输出
{
 int i;
 printf("----------学生信息的是----------\n");
 if(n==0)printf(" ++++++这里没有信息++++++\n");
 else for(i=1;i<=n;i++)
 {
 printf("名字:%2s",stu[i].name);
 printf("性别:%2s",stu[i].sex);
 printf("学号:%2d",stu[i].number);
 printf("班级:%2s",stu[i].ban);
 printf("c语言成绩:%2d\n",stu[i].c);
 printf("高数成绩:%2d\n",stu[i].gaoshu);
 printf("英语成绩:%2d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
 printf("该学生的总成绩:%d\n",stu[i].sum);
 }

}
void search()//查询
{
 int num,i,t;
 char a[20],k;
 if(n!=0)
 {
 printf("选择查找条件(1:学号 2:名字)\n");
 scanf("%d",&t);
 if(t==1)
 {
 printf("输入您要查找的学生的学号\n");
  scanf("%d",&num);
 for(i=1;i<=n;i++)
 {
 if(stu[i].number==num)
 {
 printf("名字:%s",stu[i].name);
  printf("性别:%s",stu[i].sex);
  printf("学号:%d",stu[i].number);
  printf("班级:%s",stu[i].ban);
  printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu);
 printf("英语成绩:%d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
  printf("该学生的总成绩:%d\n",stu[i].sum);
 break;
 }
 } if(i>n) printf("您查找的信息不存在或者学号输入错误\n");
 }
 if(t==2)
 {
 printf("输入您要查找的学生的名字\n");
 scanf("%s",a);
 for(i=1;i<=n;i++)
 {
 k=strcmp(stu[i].name,a);
 if(k==0)
 {
 printf("名字:%s",stu[i].name);
  printf("性别:%s",stu[i].sex);
  printf("学号:%d",stu[i].number);
  printf("班级:%s",stu[i].ban);
  printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu);
 printf("英语成绩:%d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
  printf("该学生的总成绩:%d\n",stu[i].sum);
 break;

 }
 }if(i>n) printf("您查找的信息不存在或者学号输入错误\n");
 }

 }
 else printf("对不起,这里没有学生信息\n");

 

}
void change()//修改
{
 int num,i;
 printf("输入您要修改的学生的学号\n");
 scanf("%d",&num);
 if(n==0) printf(" ++++++这里没有信息++++++\n");
 else
 {
 for(i=1;i<=n;i++)
 {
 if(stu[i].number==num)
 {
 printf("您要修改的学生信息为\n");
 printf("名字:%s",stu[i].name);
  printf("性别:%s",stu[i].sex);
  printf("学号:%d",stu[i].number);
  printf("班级:%s",stu[i].ban);
  printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu);
 printf("英语成绩:%d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
  printf("该学生的总成绩:%d\n",stu[i].sum);
 printf("\n");
 break;

 }
 
 }

 if(i>n) printf("您查找的信息不存在或者学号输入错误\n");
 else
 {
  printf("输入姓名\n");
 scanf("%s",stu[i].name);
 getchar();
 printf("输入性别\n");
 scanf("%s",stu[i].sex);
 printf("输入学号\n");
 scanf("%d",&stu[i].number);
 printf("输入班级\n");
 scanf("%s",stu[i].ban);
 printf("输入c语言成绩\n");
 scanf("%d",&stu[i].c);
 printf("输入高数成绩\n");
 scanf("%d",&stu[i].gaoshu);
 printf("输入大学英语成绩\n");
 scanf("%d",&stu[i].yingyu);
 }
 }
}
void del()//删除
{
 int i,j,e,num;
 if(n!=0)
 {
 printf(" ****这是所有学生的信息****\n");
 for(i=1;i<=n;i++)
 {
 printf("--------------------------*\n");
 printf("名字:%s\n",stu[i].name);
 printf("    *\n");
 printf("性别:%s\n",stu[i].sex);
 printf("    *\n");
 printf("学号:%d\n",stu[i].number);
 printf("    *\n");
 printf("班级:%s\n",stu[i].ban);
 printf("    *\n");
 printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu);
 printf("英语成绩:%d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
 printf("该学生的总成绩:%d\n",stu[i].sum);
 printf("--------------------------*\n");
 }
 printf("请输入您要删除的学生的学号:");
 scanf("%d",&num);
 for(i=1;i<=n;i++)
 if(stu[i].number==num)
 {
 j=i;
 for(e=i-1;e<n;e++,j++)
 {
 strcpy(stu[j].name,stu[j+1].name);
 strcpy(stu[j].sex,stu[j+1].sex);
 stu[j].number=stu[j+1].number;
 strcpy(stu[j].ban,stu[j+1].ban);
 stu[j].c=stu[j+1].c;
 stu[j].gaoshu=stu[j+1].gaoshu;
 stu[j].yingyu=stu[j+1].yingyu;
 n--;
 }
 }printf("**********该学生信息已删除**********\n");

 }
 else printf("对不起,这里没有学生信息\n");

 
 
 
}
void add()//插入
{
 int i,j,t;
 if(n!=0)
 {
 printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
 printf("^ 注: 下面已有信息,如有重复请不要插入 ^\n");
 printf("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n");
 printf("\n");
 for(i=1;i<=n;i++)
 {
 
  printf("名字:%s",stu[i].name);
  printf("性别:%s",stu[i].sex);
  printf("学号:%d",stu[i].number);
  printf("班级:%s",stu[i].ban);
  printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu);
 printf("英语成绩:%d\n",stu[i].yingyu);
 stu[i].sum=stu[i].c+stu[i].gaoshu+stu[i].yingyu;
  printf("该学生的总成绩:%d\n",stu[i].sum);
 printf("\n");
 }
 printf("是否继续插入(是:y 否:n)\n");
 printf("%c您的选择是:",t=getchar());
 t=getchar();
 if(t=='y')
 {
 j=n;
 printf("**********请插入学生相关信息**********\n");
  printf("输入姓名\n");
  scanf("%s",stu[j+1].name);
 getchar();
  printf("输入性别\n");
  scanf("%s",stu[j+1].sex);
  printf("输入学号\n");
  scanf("%d",&stu[j+1].number);
  printf("输入班级\n");
  scanf("%s",stu[j+1].ban);
  printf("输入c语言成绩\n");
  scanf("%d",&stu[j+1].c);
 printf("输入高数成绩\n");
  scanf("%d",&stu[j+1].gaoshu);
 printf("输入英语成绩\n");
  scanf("%d",&stu[j+1].yingyu);
 strcpy(stu[j+2].name,stu[j+1].name);
 strcpy(stu[j+2].sex,stu[j+1].sex);
 stu[j+2].number=stu[j+1].number;
 strcpy(stu[j+2].ban,stu[j+1].ban);
 stu[j+2].c=stu[j+1].c;
 stu[j+2].gaoshu=stu[j+1].gaoshu;
 stu[j+2].yingyu=stu[j+1].yingyu;
 printf("  该学生信息已经插入\n");
 n++;
 }else printf("\n (▔▽▔)插入程序结束,请重新选择");printf("\n");
 
 }
 else{i=1;printf("请输入要插入学生的相关信息\n");
  printf("输入姓名\n");
 scanf("%s",stu[i].name);
 getchar();
 printf("输入性别\n");
 scanf("%s",stu[i].sex);
 printf("输入学号\n");
 scanf("%d",&stu[i].number);
 printf("输入班级\n");
 scanf("%s",stu[i].ban);
 printf("输入c语言成绩\n");
 scanf("%d",&stu[i].c);
 printf("输入高数成绩\n");
 scanf("%d",&stu[i].gaoshu);
 printf("输入英语成绩\n");
 scanf("%d",&stu[i].yingyu);
 n++;
 
 }
 
}
void paixu()
{
 int i,j,t;
if(n!=0)
{
 printf("该排序是按照总分成绩从高到低进行排序\n");
 for(i=1;i<=n;i++)
  for(j=1;j<n;j++)
 { 
   if(stu[j].sum<stu[j+1].sum)
   {
   t=stu[j].sum;
   stu[j].sum=stu[j+1].sum;
   stu[j+1].sum=t;
   }
 }
 for(i=1;i<=n;i++)
 {
 printf("名字:%s\n",stu[i].name);
 printf("性别:%s\n",stu[i].sex);
 printf("学号:%d\n",stu[i].number);
 printf("班级:%s\n",stu[i].ban);
 printf("c语言成绩:%d\n",stu[i].c);
 printf("高数成绩:%d\n",stu[i].gaoshu); 
 printf("总成绩:%d\n",stu[i].sum);
 }
 
}
else printf(" ++++++这里没有信息++++++\n");
}
void main()
{
 int a,b=1;
 while(b)
 {
 menu();
 printf("您选择的是: ");
 scanf("%d",&a);
 printf("\n");
 switch(a)
 {
 case 1:input();break;//输入
 case 2:output();break;//输出
 case 3:search();break;//查找
 case 4:change();break;//修改
 case 5:del();break;//删除
 case 6:add();break;//插入
 case 7:paixu();break;//排序
 case 0:b=0;break;//退出
 }
 }
 printf(" 学生管理系统已退出( ^_^ )\n");
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解C/C++内存区域划分(简而易懂)

    详解C/C++内存区域划分(简而易懂)

    C/C++中,内存主要分为、堆、栈、全局/静态存储区和常量存储区。本文重点给大家介绍C/C++内存区域划分的相关知识,需要的朋友参考下吧
    2021-06-06
  • C语言数据结构实现字符串分割的实例

    C语言数据结构实现字符串分割的实例

    这篇文章主要介绍了C语言数据结构实现字符串分割的实例的相关资料,希望通过本文能帮助到大家实现这样的功能,需要的朋友可以参考下
    2017-10-10
  • 基于Matlab实现中国象棋的示例代码

    基于Matlab实现中国象棋的示例代码

    中国象棋是起源于中国的一种棋,属于二人对抗性游戏的一种,在中国有着悠久的历史。由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。本文将利用Matlab实现这一游戏,需要的可以参考一下
    2022-02-02
  • C语言中memcpy 函数的用法详解

    C语言中memcpy 函数的用法详解

    这篇文章主要介绍了C语言中memcpy 函数的用法详解的相关资料,需要的朋友可以参考下
    2017-07-07
  • 适合新手小白DEV C++的使用方法

    适合新手小白DEV C++的使用方法

    Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL,下面这篇文章主要给大家介绍了关于适合新手小白DEV C++的使用方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • C语言实现数组的循环左移,右移,翻转的示例

    C语言实现数组的循环左移,右移,翻转的示例

    今天小编就为大家分享一篇C语言实现数组的循环左移,右移,翻转的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • C语言实现计算树的深度的方法

    C语言实现计算树的深度的方法

    这篇文章主要介绍了C语言实现计算树的深度的方法,针对数据结构中树进行操作的方法,在算法设计中比较常见,需要的朋友可以参考下
    2014-09-09
  • windows下在vim中搭建c语言开发环境的详细过程

    windows下在vim中搭建c语言开发环境的详细过程

    这篇文章主要介绍了windows下在vim中搭建c语言开发环境,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • C语言中的5种简单排序算法(适合小白)

    C语言中的5种简单排序算法(适合小白)

    在编程练习时我们经常会遇到一些将一串乱序的数字排列成有序的数列(递增,递减)的问题,以此起到解决问题的效果,下面这篇文章主要给大家介绍了关于C语言中的5种简单排序算法的相关资料,需要的朋友可以参考下
    2023-03-03
  • 基于OpenCV和C++ 实现图片旋转

    基于OpenCV和C++ 实现图片旋转

    这篇文章主要介绍了基于OpenCV和C++ 实现图片旋转,帮助大家更好的利用c++处理图片,感兴趣的朋友可以了解下
    2020-12-12

最新评论