C++学生选课系统

博主(本人)目前是一名大二学生,上学期学校的C++实验要求我们用C++实现一个简单的选课系统,博主花了4天时间(摸鱼)完成了一个很简单的系统。在这里我想将我的设计思路写成博客——如果你一不小心也得到了一个相似的项目要完成的话,或许本篇博客可以提供一点帮助。
注意,由于博主水平限制,本项目仅仅只身一个课程实验项目,并非完整且高水平的软件工程项目!
要获取源代码请点击超链接:CurtainXT的GitHub-Student_Management-System

实验要求如下:

模拟实现计算机学院学生选课绩管理系统。根据要 求每个学生要在每学期选修够20学分,每门课程设置选课人数上限 为60人,每门课程学分设置上限4分,超出限制将无法再被选。
系统功能图如下:
系统功能图
1、设计类要求:
学生类(描述学生专业、班级、学号、姓名、等课程信息 查看选课基本信息);
课程类(描述课程信息:课程编号、课程名称、学分、 人数上限、授课教师等) ;
学生课程类(学生类和课程类所派生,描 述学生选课信息:包括学生编号、姓名、课程编号、课程名称、累 计学分等)。
2、功能要求:
(1)分角色登录:学生和管理员按照账号密码登录。
(2)管理员模块:
①维护学生信息,包含信息的增加、删除、修改、查看等。
②维护课程信息,包含信息的增加、删除、修改、查看等。
③实现学生选课信息查询,包含按照课程名称查询、按照学生名字 查询等。
(3)学生模块:
①可查看备选课程信息,并按照课程编号选课。
②查看已选课程信息和累计学分。
(4)学生信息、课程信息、学生选课信息分别用文件保存,每个 类一个文件,程序执行时从文件读入。 (5)数据要求:学生不少于30条记录,课程信息不少于10条记录, 选课信息不少于20条记录。实验数据要格式规范且合理。
(6)显示要求:人机交互设计要合理友好,便于使用。

分析与实现:

很明显,这是我们对面向对象编程有一定了解,同时能够解决数据存储问题,在这里博主使用的是传说中的TXT文件来实现数据存储(因为博主自身不了解数据库),同时为了实现良好的用户界面,博主直接决定使用控制台做终端(还是因为太菜)。

项目总流程图

Created with Raphaël 2.2.0 开始 读取数据 登录 验证数据 系统主功能 是否退出 保存数据 结束 yes no yes no

类的设计部分按照他的要求进行设计即可。下面是我的Student类源代码:

class Student : public User
{
   
public:
	// Student类构造函数
	Student() = default;
	Student(std::string m, std::string clNum, std::string sID, std::string name, std::string password = "123") :
		m_major(m), m_classNum(clNum), m_studentID(sID), m_name(name), m_password(password) {
    }

	// 返回学生专业
	std::string GetMajor() const
	{
   
		return m_major;
	}
	// 返回学生班级
	std::string GetClassNum() const
	{
   
		return m_classNum;
	}
	// 返回学生密码
	std::string GetPassword() const
	{
   
		return m_password;
	}
	// 返回学生学号
	std::string GetID() const
	{
   
		return m_studentID;
	}
	// 返回学生姓名
	std::string GetName() const
	{
   
		return m_name;
	}

private:
	// 专业
	std::string m_major;
	// 班级
	std::string m_classNum;
	// 学号
	std::string m_studentID;
	// 姓名
	std::string m_name;
	// 登录密码
	std::string m_password;
};

因为我想要实现数据封装,所以所有的字段皆为private属性,其实可

  • 27
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值