C语言实现简单学生成绩管理系统项目
#include
#include
//#include "hs.h"
struct student
{
int id;
float yw;
float sx;
float wy;
float pj;
};
void help(void);
int type(struct student *p);
void list(struct student *p,int n);
void average(struct student *p,int n);
void search (struct student *p);
void sort(struct student *p,int n);
int main(int argc, const char *argv[])
{
char ch;
struct student stu[32];
int n=0;
while(1)
{
printf("请输入命令 = ");
//getchar();
scanf("%c",&ch);
putchar(10);
if(ch=='T')
{
n=type(stu);
}
else if(ch=='L')
{
if(n==0)
{
printf("成绩表为空!请先使用T录入成绩!
");
putchar(10);
}
else
list(stu,n);
}
else if(ch=='A')
{
if(n==0)
{
printf("成绩表为空!请先使用T录入成绩!
");
putchar(10);
}
else
{
average(stu,n);
printf("平均分已计算,请使用命令L查看!
");
putchar(10);
}
}
else if(ch=='H')
help();
else if(ch=='C')
system("clear");
else if(ch=='S')
{
if(n==0)
{
printf("成绩表为空!请先使用T录入成绩!
");
putchar(10);
}
else
{
search(stu);
putchar(10);
}
}
else if(ch=='P')
{
if(n==0)
{
printf("成绩表为空!请先使用T录入成绩!
");
putchar(10);
}
else
{
sort(stu,n);
putchar(10);
}
}
else if(ch=='Q')
{
printf("Press any key to continue!
");
return -1;
}
getchar();
}
return 0;
}
int type(struct student *p)
{
int n=0;
printf("请输入学生人数:");
scanf("%d",&n);
printf("请输入学生三门课的成绩:
");
printf("学号 语文 数学 外语
");
for(int i=0;i { printf("%d ",i+1); struct student stu[i]; scanf("%f %f %f",&(p+i)->yw,&(p+i)->sx,&(p+i)->wy); } return n; } void list(struct student *p,int n) { printf("学生成绩如下: "); printf("学号 语文 数学 外语 平均分 "); for(int i=0;i { printf("%d ",i+1); printf("%.1f %.1f %.1f %.1f",p->yw,p->sx,p->wy,p->pj); p++; putchar(10); } } void average(struct student *p,int n) { for(int i=0;i { (p->pj)=((p->yw)+(p->sx)+(p->wy))/3; p++; } } void help(void) { printf("********************************** "); printf(" * 学生成绩管理系统——帮助菜单 * "); printf("********************************** "); printf(" * H = 显示帮助菜单 * "); printf(" * T = 成绩录入 * "); printf(" * A = 计算学生平均分 * "); printf(" * L = 列出成绩单 * "); printf(" * P = 按平均成绩由高到低排序 * "); printf(" * S = 按学号查询学生成绩 * "); printf(" * C = 清屏 * "); printf(" * Q =退出系统 * "); printf("********************************** "); printf(" *Copyright(c) 2022.3.15 By liq* "); printf("********************************** "); } void search(struct student *p) { int s=0; printf("请输入要查询的学生号:"); scanf("%d",&s); printf("学号 语文 数学 外语 平均分 "); printf("%d %.1f %.1f %.1f %.1f",s,(p+s-1)->yw,(p+s-1)->sx,(p+s-1)->wy,(p+s-1)->pj); putchar(10); } void sort(struct student *p,int n) { struct student temp; int i,j; for(i=0;i { for(j=0;j { if(p[j].pj
{ temp=p[j]; p[j]=p[j+1]; p[j+1]=temp; } } } printf("排序完成,请使用命令L查看! "); }