c语言成绩管理系统的作用,C语言实现班级成绩管理系统

C语言班级成绩管理系统
本文介绍了一个使用C语言实现的班级成绩管理系统,该系统能够处理N个学生和M门课程的成绩管理,包括成绩录入、显示、修改、排序等功能,并通过菜单引导用户进行各项操作。

42bd13c6670274f0993c5c92419dc87e.png

C语言课程设计――班级成绩管理系统,供大家参考,具体内容如下

题目:

对一个有N个学生的班级,每个学生有M门课程。该系统实现对班级成绩的录入、显示、修改、排序、保存等操作的管理。功能

要求:

(1)本系统采用一个结构体数组,每个数据的结构应当包括:学号、姓名、M门课程名称。

(2)本系统显示这样的菜单:

请选择系统功能项:

a、成绩录入

b、成绩显示

c、成绩保存

d、成绩排序

e、成绩修改(要求先输入密码)

f、成绩统计

1)显示每门课程成绩最高的学生的基本信息

2)显示每门课程的平均成绩

3)显示超过某门课程平均成绩的学生人数

g、退出系统

1)执行一个具体的功能之后,程序将重新显示菜单。

2)将学生成绩保存到文件中。

代码:

#include

#include

#include

#include

#include

#include

#include

using namespace std;

typedef struct Student{

int ID; /*学生学号*/

char name[15]; /*学生姓名*/

vector subject; /*因未知课程数量,所以课程数量采用动态数组vector*/

double sum; /*学生各科成绩总分*/

}Student;

struct Rule{ /*排序规则*/

bool operator()(const Student &stu1,const Student &stu2)const

{

if(stu1.sum!=stu2.sum) /*总分不相等按照总分从大到小排序*/

return stu1.sum>stu2.sum;

return stu1.ID>stu2.ID; /*总分相等按照学号从大到小排序*/

}

};

int N,M,i,j; /*N为学生人数,M为课程数量*/

double score; /*临时变量*/

Student temp; /*临时变量*/

vector Stu; /*本课设采用动态数组vector,防止浪费内存空间*/

bool condition=true; /*系统运行状态*/

char choice; /*用于输入来选择功能*/

/*---------------------------------------------a.成绩录入---------------------------------------------*/

void InsertScore(){

cout<

cin>>N>>M;

cout<

for(i=0;i

cin>>temp.ID>>temp.name;

for(j=0;j

cin>>score;

temp.subject.push_back(score);

}

Stu.push_back(temp);

/*------------------------------这一行很重要------------------------------*/

/*------------------------------这一行很重要------------------------------*/

vector().swap(temp.subject);

/*------------------------------这一行很重要------------------------------*/

/*------------------------------这一行很重要------------------------------*/

}

cout<

}

/*---------------------------------------------b.成绩显示---------------------------------------------*/

void ShowScore(){

cout<

for(i=0;i

cout<

cout<

for(i=0;i

cout<

for(int j=0;j

cout<

cout<

}

}

/*---------------------------------------------c.成绩保存---------------------------------------------*/

void SaveScore(){

FILE *fp;

if((fp=fopen("stu.dat","wb"))==NULL){

cout<

return;

}

for(i=0;i

if(fwrite(&Stu[i],sizeof(Student),1,fp)!=1)

cout<

}

fclose(fp);

cout<

}

/*---------------------------------------------d.成绩排序---------------------------------------------*/

void SortScore(){

for(i=0;i

Stu[i].sum=0;

for(j=0;j

Stu[i].sum+=Stu[i].subject[j];

}

sort(Stu.begin(),Stu.end(),Rule()); /*使用排序函数排序*/

cout<

}

/*---------------------------------------------e.成绩修改---------------------------------------------*/

void ModifyScore(){

string password;

int id,no;

cout<

cin>>password;

/*------------------------------密码输入错误------------------------------*/

while(password!="GUXUNMEI"){

cout<

cin>>password;

if(password=="Q")

return;

}

/*------------------------------密码输入正确------------------------------*/

cout<

while(1){

cout<

cin>>id;

if(id==-1){

cout<

return;

}

cin>>no>>score;

if(no>M){ /*课程不存在*/

cout<

continue;

}

for(i=0;i

if(Stu[i].ID==id){

Stu[i].subject[no-1]=score;

break;

}

}

if(i==N){ /*学生不存在*/

cout<

continue;

}

cout<

}

}

/*---------------------------------------------f.成绩统计---------------------------------------------*/

void CountScore(){

int maxn[M],count[M];

double k,average[M];

memset(maxn,0,sizeof(maxn));

/*--------------------显示每门课程成绩最高的学生的基本信息--------------------*/

for(i=0;i

for(j=0;j

if(Stu[i].subject[j]>Stu[i].subject[maxn[j]])

maxn[j]=i;

}

}

for(i=0;i

cout<

for(j=0;j

cout<

cout<

}

cout<

/*---------------------------显示每门课程的平均成绩---------------------------*/

for(j=0;j

k=0;

for(i=0;i

k+=Stu[i].subject[j];

average[j]=k/N;

cout<

}

cout<

/*---------------------显示超过某门课程平均成绩的学生人数---------------------*/

for(j=0;j

count[j]=0;

for(i=0;i

if(Stu[i].subject[j]>average[j])

++count[j];

}

cout<

}

}

/*---------------------------------------------g.退出系统---------------------------------------------*/

void ExitSystem(){

condition=false; /*全局变量condition控制程序运行*/

cout<

}

int main()

{

while(condition){

/*-----------------------------------系统菜单-----------------------------------*/

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

cout<

/*-----------------------------------选择系统功能项-----------------------------------*/

cout<

cin>>choice;

cout<

switch(choice){

case "a":InsertScore(); break;

case "b":ShowScore(); break;

case "c":SaveScore(); break;

case "d":SortScore(); break;

case "e":ModifyScore(); break;

case "f":CountScore(); break;

case "g":ExitSystem(); break;

default:cout<

}

}

return 0;

}

关于管理系统的更多内容请点击《管理系统专题》进行学习

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

原文链接:https://blog.csdn.net/weixin_45953673/article/details/107097298

、软件开发目的 该软件主要是使用C语言设计开发个简单的班级同学信息管理系统实现班级同学信息录入和管理功能。 、数据结构 程序中采用结构体数组存储班级同学的信息。结构体成员包括:姓名学号,宿舍,QQ号码和电话号码等。数组的长度不超过70。 、软件功能说明 1.学生信息录入和保存 首先提示输入学生人数,接着是分别输入每个学生的信息包括:姓名学号,宿舍,QQ号码和电话号码等。在录入数据的同时,系统将对信息的合法性进行检验(学号范围为1~70),若用户录入了不合法的数据系统应作出提示,并且要求重新输入录入完毕后系统保存全部学生相关信息。 2.显示学生信息 将学生信息在屏幕上列表输出。要求先显示提示信息姓名 学号 宿舍 QQ号码 电话号码”,然后再显示学生信息,每行显示名学生的信息。 3.查询学生信息学号查询,输出学生姓名 学号 宿舍 QQ号码 电话号码。 按姓名查询,输出学生姓名 学号 宿舍 QQ号码 电话号码。 4.修改信息学号姓名修改, 只能修改学生的“宿舍、QQ号码、电话号码”。(要求输入密码) 5.删除学生信息 通过学生的学号对某个学生全部信息进行删除,并将删除后的学生信息列表输出,以方便用户确认。 6.追加学生信息 输入新学生的相关信息,将新的信息插入原学生信息清单中,并将新的学生信息列表输出,以方便用户确认。 7.排序 (1)按照学号排序显示所有同学的纪录 (2)按照姓名排序显示所有同学的纪录 8.退出系统,结束任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值