/*8.学生成绩管理系统
[问题描述]
编写一个简单的学生信息管理程序,能实现对学生信息的简单管理。
[基本要求]
建立一个4个学生的信息登记表,每个学生的信息包括:学号,姓名,和3门课程的成绩(FOX,C,ENGLISH)。
程序运行时显示一个简单的菜单,例如:
(1)信息输入(Input)
(2)总分统计(Count)
(3)总分排序(Sort)
(4)查询(Query)
其中:
(1)对4个学生的信息进行输入;
(2)对每个学生的3门课程统计总分;
(3)对4个学生的总分按降序排序并显示出来;
(4)查询输入一个学号后,显示出该学生的有关信息;
*/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int N;
int score[100];
typedef struct
{
int stu_num;
char name[20];
int score1;
int score2;
int score3;
}Stu;
typedef struct
{
Stu info[100];
int last;
}SeqList;
SeqList LI,*L;
void menu()
{
printf("B11050110 靖天才…> ^ 。^ <\n");
printf("\n ***洛阳理工学院***\n\n");
printf(" 欢迎进入学生管理系统\n");
printf("****************************************\n");
printf("**菜单栏 : 1.输入信息 **\n");
printf("** 2.总分统计 **\n");
printf("** 3.总分排序 **\n");
printf("** 4.查询信息 **\n");
printf("****************************************\n");
}
void Input(SeqList *L)
{
int i;
printf("\t***输入信息***\n");
printf("需要输入多少个学生的信息?");
scanf("%d",&N);
L->last=-1;
printf("\n");
for(i=0;i<N;i++)
{
printf("学号:");
scanf("%d",&L->info[i].stu_num);
printf("姓名:");
scanf("%s",L->info[i].name);
printf("数据结构:");
scanf("%d",&L->info[i].score1);
printf("概率统计:");
scanf("%d",&L->info[i].score2);
printf("大学英语:");
scanf("%d",&L->info[i].score3);
L->last++;
printf("\n");
}
printf("信息输入完毕\n\n");
}
void Print(SeqList *L)
{
int i;
printf("学号 姓名 数据结构 概率统计 大学英语 总分\n");
for(i=0;i<=L->last;i++)
{
printf("%-5d",L->info[i].stu_num);
printf("%-7s",L->info[i].name);
printf("%-10d%-10d%-10d%-10d",L->info[i].score1,L->info[i].score2,L->info[i].score3,score[i]);
printf("\n");
}
printf("\n");
}
void Result(SeqList *L,int i)
{
printf("学号 姓名 数据结构 概率统计 大学英语 总分\n");
printf("%-5d",L->info[i].stu_num);
printf("%-7s",L->info[i].name);
printf("%-10d%-10d%-10d%-10d",L->info[i].score1,L->info[i].score2,L->info[i].score3,score[i]);
printf("\n\n");
}
void Count(SeqList *L)
{
int i;
printf("\t***统计总分***:\n");
for(i=0;i<=L->last;i++)
score[i]=L->info[i].score1+L->info[i].score2+L->info[i].score3;
Print(L);
}
void Sort(SeqList *L)
{
Stu temp1;
int i,j,k;
int temp2;
printf("\t***总分降序***\n");
for(i=0;i<L->last;i++)
{
k=i;
for(j=i+1;j<=L->last;j++)
if(score[k]<=score[j])
k=j;
if(i!=k)
{
temp1=L->info[k];
L->info[k]=L->info[i];
L->info[i]=temp1;
temp2=score[k];
score[k]=score[i];
score[i]=temp2;
}
}
Print(L);
}
void Query(SeqList *L)
{
int i=0,j=0,num;
printf("\t***查询信息***\n");
printf("请输入学号:");
scanf("%d",&num);
for(;i<=L->last;i++)
if(num==L->info[i].stu_num)
{
j++;
printf("学号为%d的同学的信息为:\n",num);
Result(L,i);
}
if(j==0)
printf(" 不存在这个学生的信息\n\n");
}
void main()
{
int w;
int flag=1;
char str[10];
L=&LI;
menu();
while(flag)
{
printf("是否操作(Yes or No?):");
scanf("%s",str);
if(strcmp(str,"Yes")==0)
{
printf("\n请输入操作序号:");
scanf("%d",&w);
if(w>=1&&w<=4)
switch (w)
{
case 1:Input(L);break;
case 2:Count(L);break;
case 3:Sort(L);break;
case 4:Query(L);break;
}
else
{
printf("输入的序号错误,请重新输入.\n");
}
}
else
if(strcmp(str,"No")==0)
{
flag=0;
printf("\n*****操作结束,退出系统*****\n\n");
}
else
printf("输入错误,请重新输入.\n");
}
}
??
??
??
??
课程设计-基于C语言的学生成绩管理系统(源码+报告).zip
版权申诉
19 浏览量
2024-05-05
23:24:15
上传
评论
收藏 246KB ZIP 举报
![avatar](https://profile-avatar.csdnimg.cn/e473673e23484abfafca58fbb5eb9dd1_qq_61141142.jpg!1)
等天晴i
- 粉丝: 5374
- 资源: 10万+
最新资源
- Vue中的计算属性和侦听器有什么区别?经典vue面试题
- 一个Ruby程序示例,它实现了一个简单的电子商务网站后端的基本功能 这个示例包括了用户认证、产品展示、购物车管理以及订单
- AutoSAR COM模块详细介绍
- 后缀表达式求值.zip
- 一个Ruby进阶示例,展示了面向对象编程、模块化、异常处理和文件操作 这个例子中,我们将创建一个简单的博客系统,其中包含文章
- 一个简单的Kotlin程序示例,它演示了基本的函数定义、条件语句和循环的使用
- navicat15安装包
- AutoSAR-CP架构介绍
- 编程实战项目:基于asp.net技术的高校网上教材征订系统的设计与实现(含源代码)
- 创建一个简单的Fortran的例子程序,用于管理一个图书馆的图书信息
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)