使用c++实现学生成绩管理系统

一、前言

学生成绩管理系统的设计,可以更好地帮助学习c++的初学者掌握基础知识。因此,小编将带领大家一起使用c++实现学生成绩管理系统,本文就介绍了一些相关的代码。

二、系统介绍

学生类CStudent,该类有以下几个私有成员变量:学生姓名、学号和性别和三门课的成绩。有实现下述功能的成员函数:
1)初始化学生姓名、学号、性别和年龄;
2)输入四门课的成绩,并计算平均成绩和总成绩;
3)输出学生信息。
以CStudent类为基础设计开发一个学生成绩管理系统。具有以下功能:
(1)运行程序后显示以下操作信息:
1、Display all information
2、Add a student
3、Delete a student
4、Quit
(2)按1后输出所有学生的所有信息,输出的信息包括: 姓名、学号、性别、和三门课的成绩、平均成绩和总成绩;并在最后计算每一门课程的平均成绩。
(3)按2选择增加学生信息。姓名、学号、性别、和三门课的成绩(在程序中可以事先初始化几个学生信息)。
(4)按3删除学生信息,根据输入学号删除对应的学生信息,学号从0依次往后排,当删除中间的学生信息后,将该序号后的学生信息依次往前移。
(5)每次处理完之后继续显示操作信息,可以再次按键进行操作。
(6)按4退出程序。

头文件(CStudent.h)

#include <string>
using namespace std;

class CStudent 
{
private:
	string name = "Null";//姓名
	char sex = 'N';//性别
	int all = 0;//总分
	double averge = 0.0;//平均分
public:
	int num = 0;//学号
	int chinese = 0;//语文成绩
	int math = 0;//数学成绩
	int english = 0;//英语成绩
	void ShowStudent();//输出学生的信息
	void CountAll();//计算总分
	void CountAverge();//计算平均分
	void SetStudent();//输入学生
	//构造函数
	CStudent(string name, int num, char sex, int chinese, int math, int english)//含缺省值的构造函数
	CStudent() {};
};

2.源文件(实现函数)

#include <string>
#include"CStudent.h"
#include <iostream>
using namespace std;

//输出学生
void CStudent::ShowStudent() 
{
	cout << "姓名:" << name << " 学号:" << num << " 性别:" << sex << " 语文:" << chinese << " 数学:" << math << " 英语:" << english << " 总分:" << all << " 平均分:" << averge << endl;
}
//计算总分
void CStudent::CountAll()
{
	all = chinese + math + english;
}
//计算平均分
void CStudent::CountAverge() 
{
	averge = all / 3;
}
//输入学生
void CStudent::SetStudent()
{
	cout << "请依次输入学生的姓名、学号、性别、语文成绩、数学成绩和英语成绩" << endl;
	cin >> name >> num >> sex >> chinese >> math >> english;
	CountAll(); CountAverge();
}
//构造函数
	CStudent(string name, int num, char sex, int chinese, int math, int english) 
	{
		this->name = name;
		this->num = num; 
		this->sex = sex;
		this->chinese = chinese;
		this->math = math;
		this->english = english;
	}

3.源文件(测试函数)

#include <string>
#include"CStudent.h"
#include <iostream>
using namespace std;

int main()
{
	//声明CStudent类型的学生数组并初始化部分元素
	CStudent stu[10];
	stu[0] = { "LiMing",356,'m',85,78,63 };
	stu[1] = { "Marry",357,'w',98,99,87 };
	stu[2] = { "Whister",358,'w',56,98,56 };
	stu[0].CountAll(); stu[0].CountAverge();
	stu[0].CountAll(); stu[0].CountAverge();
	stu[0].CountAll(); stu[2].CountAverge();
	//sum为目前学生表中的元素
	int sum = 3;
	//程序开始执行,可运行10000次
	for (int i = 0; i < 10000; i++) 
	{
		cout << "1、Display all information" << endl
			 << "2、Add a student" << endl
			 << "3、Delete a student" << endl
			 << "4、Quit" << endl;
		cout << "请输入你想要运行的功能:";
		//输入序号n运行不同的功能
		int n;
		cin >> n;
		//功能1:Display all information
		if (n == 1)
		{
			cout << "学生信息如下" << endl;
			for(int j = 0;j < sum;j++)
			{
				stu[j].ShowStudent();
			}
			//计算各门成绩的平均分并输出
			int CAll = 0;
			int MAll = 0;
			int EAll = 0;
			for (int f = 0; f < sum; f++)
			{
				CAll += stu[f].chinese;
				MAll += stu[f].math;
				EAll += stu[f].english;
			}
			double CAverge = CAll / sum;
			double MAverge = MAll / sum;
			double EAverge = EAll / sum;
			cout << "语文平均分: " << CAverge << " 数学平均分: " << MAverge << " 英语平均分: " << EAverge << endl;
			//选择是否退出程序或者返回主菜单
			cout << "返回主菜单请按'*',按任意键退出程序" << endl;
			char g;
			cin >> g;
			if (g == '*')
				continue;
			else
				break;
		}
		//功能2:Add a student
		if (n == 2)
		{
			stu[sum].SetStudent();
			sum++;
			cout << "添加成功!" << endl;
			//选择是否退出程序或者返回主菜单
			cout << "返回主菜单请按'*', 按任意键退出程序" << endl;
			char f;
			cin >> f;
			if (f == '*')
				continue;
			else
				break;
		}
		//功能3:Delete a student
		if (n == 3) 
		{
			cout << "请输入你想要删除的学生学号:";
			int s;
			cin >> s;
			//查找学生学号是否存在
			int z = -1;
			for (int w = 0; w < sum; w++) 
			{
				if (s == stu[w].num)
				{
					z = w;
					break;
				}
				else
					continue;
			}
			if (z == -1)
			{
				cout << "学生不存在!" << endl;
			}
			//存在则删除学生
			else
			{
				for (int k = z; k < sum; k++) 
				{
					stu[k] = stu[k + 1];
				}
				sum--;
				cout << "删除成功!" << endl;
			}
			//选择是否退出程序或者返回主菜单
			cout << "返回主菜单请按'*',按任意键退出程序" << endl;
			char r;
			cin >> r;
			if (r == '*')
				continue;
			else
				break;
		}
		//功能4:Quit
		if (n == 4) 
		{
			cout << "已退出" << endl;
			break;
		}
	}
	return 0;
}

4.运行截图

在这里插入图片描述

三、总结

以上就是今天要讲的内容,本文仅仅简单实现了学生管理系统,代码仅供大家参考,感谢!

  • 24
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
修正了已发现的所有错误.欢迎大家下载试用.. 一、项目名称:学校学生信息管理系统。 二、项目目标:实现对学校学生的信息管理——信息的建立和维护、信息的检索。 三、主要功能: 1.信息的输入:建立学生档案文件。 2.信息维护: 添加:增加新学生; 修改:学生信息的改变; 删除:学生减少。 3.信息处理 按要求检索学生信息; 按要求统计信息。 四、界面系统 1.系统管理员进入 (请输入密码) 2.一级菜单 (1 信息维护 2 信息检索 3 信息统计 4 退出) 3. 二级菜单 信息维护 (1 建立学生成绩文件 2 添加学生记录 3 删除学生记录 4 修改学生记录 5 返回上级菜单) 信息检索 (1 按班级查找 2 返回上级菜单) 信息统计 (1 成绩统计 2 返回上级菜单) 五、主要功能说明: 1.用口令(密码)形式验证管理员身份(可输入三次),合法者可进入,否则程序结束。 2.有关功能说明 1)建立学生成绩表(模块a) 建立新的学生成绩文件; 建立若干学生记录,包括姓名、学号、班级、课程编号、成绩。 2)添加学生记录(模块b) 在已存在的学生成绩文件中添加新记录。 3)删除学生记录(模块c) 在学生成绩文件中删除有三门课程不及格的学生记录; 删除前,逐条显示符合删除条件的学生姓名、成绩,确认后再删除。 4)修改学生信息(模块d) 输入学生学号,在学生成绩文件中找出该学生记录; 在屏幕上逐条显示该学生的各条记录; 每显示一条,询问是否修改,如果“Y”,输入修改后数据, 将文件原记录删除,保存新的记录; 5)按姓名和班级查找(模块e) 输入姓名显示相应信息。 6)信息统计(模块f) 同时按照班级和课程统计每门课程、每个班级的平均成绩,最高分、最低分; 在屏幕上先依次显示各门课程,对应的各个班级的统计数据。 7)退出信息管理系统,返回操作系统
学生成绩管理系统是一个比较常见的项目,主要涉及到学生信息、课程信息和成绩信息的管理。下面是C++实现学生成绩管理系统的基本思路。 1. 定义学生类 首先,需要定义一个学生类,包含学生的基本信息,如学号、姓名、性别等,以及一个成绩数组,用来存储学生的各门课程成绩。 ```c++ class Student { public: string id; //学号 string name; //姓名 string gender; //性别 float scores[3]; //成绩数组,存储三门课程的成绩 }; ``` 2. 定义课程类 接下来,需要定义一个课程类,包含课程的基本信息,如课程号、课程名称、学分等。 ```c++ class Course { public: string id; //课程号 string name; //课程名称 int credit; //学分 }; ``` 3. 定义成绩成绩类用来记录一个学生在一门课程中的成绩情况,包含学生的学号、课程号和成绩。 ```c++ class Score { public: string student_id; //学生学号 string course_id; //课程号 float score; //成绩 }; ``` 4. 定义学生信息管理学生信息管理类用来管理学生的基本信息,包括添加学生、删除学生、修改学生信息、查找学生信息等操作。 ```c++ class StudentManager { public: vector<Student> students; //学生数组,存储所有学生信息 //添加学生 void addStudent(Student s); //删除学生 void deleteStudent(string id); //修改学生信息 void modifyStudent(string id); //查找学生信息 Student findStudent(string id); //打印所有学生信息 void printAllStudents(); }; ``` 5. 定义课程信息管理类 课程信息管理类用来管理课程的基本信息,包括添加课程、删除课程、修改课程信息、查找课程信息等操作。 ```c++ class CourseManager { public: vector<Course> courses; //课程数组,存储所有课程信息 //添加课程 void addCourse(Course c); //删除课程 void deleteCourse(string id); //修改课程信息 void modifyCourse(string id); //查找课程信息 Course findCourse(string id); //打印所有课程信息 void printAllCourses(); }; ``` 6. 定义成绩信息管理成绩信息管理类用来管理学生成绩信息,包括添加成绩、删除成绩、修改成绩、查找成绩等操作。 ```c++ class ScoreManager { public: vector<Score> scores; //成绩数组,存储所有成绩信息 //添加成绩 void addScore(Score s); //删除成绩 void deleteScore(string student_id, string course_id); //修改成绩 void modifyScore(string student_id, string course_id); //查找成绩 float findScore(string student_id, string course_id); //打印所有成绩信息 void printAllScores(); }; ``` 7. 实现主函数 在主函数中,需要实例化学生信息管理类、课程信息管理类和成绩信息管理类,然后通过菜单选择不同的操作。 ```c++ int main() { StudentManager sm; CourseManager cm; ScoreManager scm; int choice; while (true) { //打印菜单 cout << "1.添加学生\n2.删除学生\n3.修改学生信息\n4.查找学生信息\n5.打印所有学生信息\n" << "6.添加课程\n7.删除课程\n8.修改课程信息\n9.查找课程信息\n10.打印所有课程信息\n" << "11.添加成绩\n12.删除成绩\n13.修改成绩\n14.查找成绩\n15.打印所有成绩信息\n" << "16.退出\n"; cin >> choice; switch (choice) { case 1: //添加学生操作 break; case 2: //删除学生操作 break; case 3: //修改学生信息操作 break; case 4: //查找学生信息操作 break; case 5: //打印所有学生信息操作 break; case 6: //添加课程操作 break; case 7: //删除课程操作 break; case 8: //修改课程信息操作 break; case 9: //查找课程信息操作 break; case 10: //打印所有课程信息操作 break; case 11: //添加成绩操作 break; case 12: //删除成绩操作 break; case 13: //修改成绩操作 break; case 14: //查找成绩操作 break; case 15: //打印所有成绩信息操作 break; case 16: //退出程序 return 0; default: cout << "输入有误,请重新输入!\n"; break; } } return 0; } ``` 以上就是C++实现学生成绩管理系统的基本思路,具体的实现细节需要根据实际情况进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值