学生成绩管理系统设计

C++基础题目:

题目
学生参加考试,有N个学生,每个学生参加3门课程考试。要求定义学生类student,数据有学号num,姓名name,三门课程socre[3]:数学,英语,计算机;静态成员count表示学生人数。要求工程文件实现,工程名称为:自己姓名。
(1) 输入学生学号,姓名,学生成绩。(setdate 函数实现)
(2) 设计构造函数和析购函数。每构造一个对象,实现个数加1,每删除一个对象,个数减1。
(3) 求每个学生的总分。(成员函数stu_sum实现)
(4) 设计一个友元函数,输出学生每门课程成绩对应的等级。(友元函数kc_dj()) 90100:优秀;8090:良好;7079:中等;6069:及格;小于60:不及格。
(5) 输出学生信息,每门课程成绩,相应等级,学生总分。(print函数实现)
(6) 编写主函数验证,输入学生个数,学生相应数据,输出信息。对象数组实现。

学生 Student的定义

//Student.h
#pragma once
#include<iostream>
using namespace std;
#ifndef STUDENT_H
#define STUDENT_H
class student
{
private:		//定义私有成员
	char num[30];		
	char name[10];
	int score[3];
	static int count;		//定义静态成员
public:				//定义共有成员
	student();
	~student();
	void setdate();
	int stu_sum();
	friend void kc_dj(int);
	char* getnum() 
		{ return num; }
	char* getname() 
		{ return name; }
	int getscore1();
	int getscore2();
	int getscore3();
	int setcount() 
		{ cin >> count; return count; }
	int getcount() 
		{ return count; }
};
#endif // !student

学生Student 的实现

//Student.cpp
#include "student.h"
student::student()		//构造函数
{
	count++;
}
student::~student()		//析构函数
{
	count--;
}
void student::setdate()		//输入学生信息
{
	cout << "学生学号:"; cin >> num;
	cout << "学生姓名:"; cin >> name;
	cout << "学生数学、英语和计算机成绩:";
	for (int i = 0; i < 3; i++)
	{
		cin >> score[i];
	}
}
int student::stu_sum()		//求和
{
	int sum = 0;
	for (int i = 0; i < 3; i++)
	{
		sum += score[i];
	}
	return sum;
}
int student::getscore1()
{
	return score[0];
}
int student::getscore2()
{
	return score[1];
}
int student::getscore3()
{
	return score[2];
}
void kc_dj(int x)		//友元函数
{
	if (90 <= x)
		printf("\t优秀\n");
	if (80 <= x && 90 > x)
		printf("\t良好\n");
	if (70 <= x && 80 > x)
		printf("\t中等\n");
	if (60 <= x && 70 > x)
		printf("\t及格\n");
	if (x < 60)
		printf("\t不及格\n");
}

主函数

//主函数.cpp
#include <iostream>
using namespace std;
#include "student.h"
void kc_dj(int);
int student::count = 0;
int main()
{
	int sum = 0;
	student box[3];
	cout << "学生个数:";
	box->setcount();
	cout << "学生信息:\n" << endl;
	for (int i = 0; i < box->getcount(); i++)
	{
		box[i].setdate();
		sum = box[i].stu_sum();
		printf("学生个数:%d\n", box[i].getcount());
		printf("学生学号:%s\n", box[i].getnum());
		printf("学生姓名:%s\n", box[i].getname());
		printf("学生成绩:\n");
		printf("\t数学:%d", box[i].getscore1());
		printf("\n\t英语:%d", box[i].getscore2());
		printf("\n\t计算机:%d\n", box[i].getscore3());
		printf("成绩等级:\n");
		kc_dj(box[i].getscore1());
		kc_dj(box[i].getscore2());
		kc_dj(box[i].getscore3());
		printf("学生总分:%d\n", box[i].stu_sum());
	}
	return 0;
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生成绩管理系统设计” A.问题描述 学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。 中学生除了包括小学生所有信息外,还包括地理、历史成绩。 大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数学等课程。 设计一程序能够对学生成绩进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。 B.功能要求 (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 (3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。 (5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。 (6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。 (7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 (9)排序功能:可按总分和单科成绩排名次。
实现功能  计算平均值Avg:包括每门课程的平均值,和每个学生所有课程的平均值。  计算最高分Max:包括每门课程的最高分,和学生平均分的最高分,并给出最高分对应的学生姓名和学号。  计算最低分Min:包括每门课程的最低分,和学生平均分的最低分,并给出最低分对应的学生姓名和学号。  计算每门课程成绩不及格(<60分)以及优秀(大于90分)的学生个数Count。  计算每门课程的标准方差Variance。  查询功能Query:可以根据输入的学生姓名或者学号,查询该学生的所有课程的成绩。  排序功能Sort:按照从高到低的顺序,对每门课程的成绩进行排序,对学生平均分进行排序,并给出排序后成绩所对应的学生姓名和学号。 实现功能  计算平均值Avg:包括每门课程的平均值,和每个学生所有课程的平均值。  计算最高分Max:包括每门课程的最高分,和学生平均分的最高分,并给出最高分对应的学生姓名和学号。  计算最低分Min:包括每门课程的最低分,和学生平均分的最低分,并给出最低分对应的学生姓名和学号。  计算每门课程成绩不及格(<60分)以及优秀(大于90分)的学生个数Count。  计算每门课程的标准方差Variance。  查询功能Query:可以根据输入的学生姓名或者学号,查询该学生的所有课程的成绩。  排序功能Sort:按照从高到低的顺序,对每门课程的成绩进行排序,对学生平均分进行排序,并给出排序后成绩所对应的学生姓名和学号。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值