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

作者:日行一善,写一算法 时间:2021-11-05 03:29:41 

本文实例为大家分享了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");
}

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

来源:https://blog.csdn.net/qq_45502554/article/details/104302656

标签:C语言,管理系统
0
投稿

猜你喜欢

  • Flutter源码分析之自定义控件(RenderBox)指南

    2022-09-08 21:17:28
  • 微信小程序获取手机号,后端JAVA解密流程代码

    2023-11-29 07:57:26
  • 探讨:android项目开发 统筹兼顾 需要考虑的因素

    2023-08-05 11:21:32
  • 最近较流行的效果 Android自定义View实现倾斜列表/图片

    2021-09-06 03:56:51
  • 简单了解springboot的jar包部署步骤

    2021-07-02 14:22:48
  • Android使用百度地图出现闪退及定位时显示蓝屏问题的解决方法

    2023-08-01 11:57:39
  • Java 自定义注解的魅力

    2023-06-29 14:45:15
  • c#委托与事件(详解)

    2022-12-06 04:50:47
  • java-制表符\\t的使用说明

    2023-12-03 10:18:02
  • Android自定义软键盘的步骤记录

    2023-04-08 07:05:50
  • Java模拟HTTP Get Post请求 轻松实现校园BBS自动回帖

    2021-10-08 17:21:28
  • C# 日历类功能的实例代码

    2023-06-23 21:44:45
  • Spring Batch入门教程篇

    2022-02-15 01:53:01
  • C#实现多文件压缩与解压功能

    2022-03-05 04:45:54
  • Android CardView详解及使用方法和实例

    2023-01-11 01:04:30
  • C# 常用日期时间函数(老用不熟)

    2021-08-21 10:12:18
  • SpringBoot集成SpringSecurity和JWT做登陆鉴权的实现

    2023-01-29 09:34:57
  • 详解Java字节码编程之非常好用的javassist

    2021-08-27 04:54:30
  • Android入门之RelativeLayout、FrameLayout用法分析

    2021-10-16 03:21:32
  • C#数据结构之队列(Quene)实例详解

    2021-12-03 09:06:26
  • asp之家 软件编程 m.aspxhome.com