C++实现---学生选课系统

这篇具有很好参考价值的文章主要介绍了C++实现---学生选课系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、项目要求

二、模块分析

分析:

设计思路

类实现:(也就是每一节车厢的模板)

1)基类(信息类)

2)课程类;(公有继承信息类)

3)学生类(公有继承信息类)

函数实现

1) void print();向屏幕输出课程信息

2)void get();指定课程的信息,用课程编号获取

3)void add();增加一个课程的信息

4)void del() ; 删除某个课程信息(老师)

5)void edit();修改课程信息(老师)

6)void ishave(long si);查询是否有该课程

7)void print();打印学生的信息

8)void get();获取学生的信息

9)void add();添加学生的信息

效果展示

 源代码:


一、项目要求

(1)学生有自己的 ID、姓名 、年级 、选课信息等;

(2)学生可以进行对已选课程的增删改查;

(3)每个课程有自己的学分,授课老师等;

二、模块分析

分析:

我们首要的首要的任务就是先对模块进行划分;从项目的要求出发;该系统可以大致分为两大类;

课程类(用来保存每门课程的信息,例如编号,名称,学分,授课教师);

学生类(用来保存每个学生的信息;例如编号,名字,性别。年级,分数);

对于这两个类来说;他们拥有相同的一点;就是编号和名称;所以可以脱出一个类用其他两个类来继承它;

设计思路

首先思考:打造一个火车那就先建造每一节车厢 ;而车厢就像是一个货物清单;用c++的类来实现;当一个车厢建造出来之后;最后就是用工具将它连接起来;

对项目分析:

(1)首先设计两个火车,一个是课程的;一个是学生的;

(2)每个火车都有自己的属性和成员;

(3)学生火车可以操作课程火车;

C++实现---学生选课系统

C++实现---学生选课系统

类实现:(也就是每一节车厢的模板)

1)基类(信息类)

目的:保存学生和课程共有的属性也就是,编号和名称;

class info
{
protected:
	long number;//编号
	string name;//名称
public:
	info() {}
	info(long num, string name) :number(num), name(name) {}
};

2)课程类;(公有继承信息类)

class course : public info//课程类
{
private:
	int credit;//学分
	string teachername;//授课教师
public:
	course() {}
	course(long num, string name, int cre, string tea) : info(num, name)
	{
		credit = cre;
		teachername = tea;
	}
	course(const course& c1)
	{
		number = c1.number;
		name = c1.name;
		credit = c1.credit;
		teachername = c1.teachername;
	}
	static void print();//输出数据
	static void get();//获取数据
	static void add();//增加数据
	static void del();//删除数据
	static void edit();//修改数据
	static int ishave(long si);//查询是否有该课程
};

3)学生类(公有继承信息类)

class student : public info//学生类
{
private:
	string sex;//性别
	string grade;//年级
	long scredit;
public:
	vector<course> havec;//查询学生选课信息
	student() {}
	student(long num, string name, string se, string gra, long scr) : info(num, name)
	{
		sex = se;
		grade = gra;
		scredit = scr;
	}
	static void print();//输出数据
	static void get();//获取数据
	static void add();//增加数据
	static void del();//删除数据
	static void edit();//修改数据
	static int ishave(long si);//查询是否有该学生
	static void addcourse();// 为学生添加课程
	static void delcourse();//为学生删除课程
	static int ishavec(long si);//查询该学生是否有该课程
};

函数实现

1) void print();向屏幕输出课程信息

void course::print()
{
	system("cls");

	for (int i = 0; i < c.size(); i++)
	{
		cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl;
		cout << endl << "课程编号:" << c[i].number << "   课程名称:" << c[i].name << "   课程学分:" \
			<< c[i].credit << "   授课老师:" << c[i].teachername << endl;
	}

	cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl;
	cprintorget();
}

2)void get();指定课程的信息,用课程编号获取

void course::get()//获得课程信息
{
	system("cls");
	long k = 1, kk;

	cout << "*************请输入要查询的课程编号**************" << endl;
	
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < c.size(); i++)
			if (c[i].number == kk)
			{
				cout << endl << "课程编号:" << c[i].number << "   课程名称:" << c[i].name << "   课程学分:" \
					<< c[i].credit << "   授课老师:" << c[i].teachername << endl;
				break;
			}
	}
	else
	{
		cout << "*************没有该课程******************" << endl;
	
	}
	cprintorget();
}

3)void add();增加一个课程的信息

void course::add()
{
	system("cls");
	long k = 1; course c1;
	cout << "$        请输入要添加的课程编号:      $" << endl;
	cin >> c1.number;
	while (ishave(c1.number))
	{

		system("cls");
	
		cout << "***************************************" <<endl;
		cout << "        该课程已添加,请重新输入:       " << endl;
		cout << "              (按0退出)               " << endl;
		cout << "***************************************" << endl;
		cin >> k;
		if (k == 0)
		{
			cinfo();
			break;
		}
		else c1.number = k;

	}
	if (k != 0)
	{
		
		cout << "$           请输入课程名称:           &" << endl;
		cin >> c1.name;
		cout << "****************************************" << endl;
		cout << "            请输入课程学分:             " << endl;
		cout << "****************************************" << endl;
		cin >> c1.credit;
		cout << "****************************************" << endl;
		cout << "          请输入授课老师名称:            " << endl;
		cout << "****************************************" << endl;
		cin >> c1.teachername;
		system("cls");
		c.push_back(c1);
		cinfo();
	}
}

4)void del() ; 删除某个课程信息(老师)

void course::del()//老师删除课程信息
{
	system("cls");
	long k = 1, kk;
	cout << "***************请输入要删除的课程编号****************" << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (auto p = c.begin(); p != c.end();)
		{
			if (p->number == kk)
			{
				p = c.erase(p);
				break;
			}
			else
				++p;
		}
		cout << "***************成功删除该课程********************" << endl;
		
}
	else
	{
		
		cout << "****************你还没有添加该课程****************" << endl;
	}
}

5)void edit();修改课程信息(老师)

void course::edit()//老师修改课程信息
{
	system("cls");
	long k = 1, kk;
	cout << "       请输入要修改课程的课程编号:     " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < c.size(); i++)
		{
			if (c[i].number == kk)
			{
				system("cls");
				cout << "          请重新输入课程名称:           " << endl;
				cin >> c[i].name;
				cout << "          请重新输入课程学分:           " << endl;
				cin >> c[i].credit;
				cout << "         请重新输入授课老师名称:         " << endl;
				cin >> c[i].teachername;
				cout << "              修改成功。                 " << endl;
				break;
			}
		}
	}
	else
	{
		cout << "              没有该课程 。             " << endl;

	}

}

6)void ishave(long si);查询是否有该课程

int course::ishave(long si)//查询是否有该课程
{
	for (size_t i = 0; i < c.size(); i++)
		if (c[i].number == si)
			return true;
	return false;
}

7)void print();打印学生的信息

void student::print()//打印所有学生信息
{
	long sumk = 0;
	system("cls");
	for (int i = 0; i < s.size(); i++)
	{
		sumk = 0;
		cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl;
		cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
			<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
			<< "学生已选课程:" << endl;
		if (s[i].havec.size() == 0)
		{
			cout << "无" << endl;
			continue;
		}
		else
		{
			for (int k = 0; k < s[i].havec.size(); k++)
			{
				cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
					<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
				sumk = sumk + s[i].havec[k].credit;

			}
			cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
		}
	}cout << "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" << endl;
	sprintorget();
}

8)void get();获取学生的信息

void student::get()//获取学生信息
{
	system("cls");
	long k = 1, kk, sumk = 0;
	cout << "          请输入要查询的学生学号:       " << endl;
	cin >> kk;
	system("cls");
	if (ishave(kk))
	{
		for (size_t i = 0; i < s.size(); i++)
			if (s[i].number == kk)
			{
				cout << "************************************************** << endl;
				cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
					<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
					<< "学生已选课程:" << endl;
				if (s[i].havec.size() == 0)
				{
					cout << "无" << endl;
					continue;
				}
				else
				{
					for (int k = 0; k < s[i].havec.size(); k++)
					{
						cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
							<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
						sumk = sumk + s[i].havec[k].credit;

					}
					cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
					cout << "************************************************" << endl;
				}
			}
	}
	else
	{

		cout << "              没有该学生。            " << endl;

	}
	sprintorget();
}

9)void add();添加学生的信息

void student::add()//添加学生信息
{
	system("cls");
	long k = 1; student s1;
	cout << "          请输入要添加的学生学号:        " << endl;
	cin >> s1.number;
	while (ishave(s1.number))
	{

		system("cls");
		cout << "       该学生已添加,请重新输入:       " << endl;
		cout << "             (按0退出)               " << endl;
		cin >> k;
		if (k == 0)
		{
			sinfo();
			break;
		}
		else s1.number = k;

	}
	if (k != 0)
	{
		cout << "             请输入学生姓名:            " << endl;
		cin >> s1.name; 
		cout << "             请输入学生性别:             " << endl;
		cin >> s1.sex;
		cout << "             请输入学生年级:            " << endl;
		cin >> s1.grade; 
		system("cls");
		s.push_back(s1);
		sinfo();
	}
}

效果展示

C++实现---学生选课系统

C++实现---学生选课系统文章来源地址https://www.toymoban.com/news/detail-493232.html

 源代码:

#if 1
#include <iostream>
#include<string.h>
#include <windows.h>
#include <vector>
#include<algorithm>
#include <string>
using namespace std;
using std::vector;
int Menu();
void cinfo();
void cprintorget();
void sinfo();
void sprintorget();
char password[16] = "1234";

class info//信息类
{
protected:
	long number;//编号
	string name;//名称
public:
	info() {}
	info(long num, string name) :number(num), name(name) {}
};

class course : public info//课程类
{
protected:
	int credit;//学分
	string teachername;//授课教师
public:
	course() {}
	course(long num, string name, int cre, string tea) : info(num, name)
	{
		credit = cre;
		teachername = tea;
	}
	course(const course& c1)
	{
		number = c1.number;
		name = c1.name;
		credit = c1.credit;
		teachername = c1.teachername;
	}
	static void print();//输出数据
	static void get();//获取数据
	static void add();//增加数据
	static void del();//删除数据
	static void edit();//修改数据
	static int ishave(long si);//查询是否有该课程
	friend class student;
};
vector<course> c;

class student : public info//学生类
{
	
protected:
	string sex;//性别
	string grade;//年级
	long scredit;
public:
	vector<course> havec;//查询学生选课信息
	student() {}
	student(long num, string name, string se, string gra, long scr) : info(num, name)
	{
		sex = se;
		grade = gra;
		scredit = scr;
	}
	static void print();//输出数据
	static void get();//获取数据
	static void add();//增加数据
	static void del();//删除数据
	static void edit();//修改数据
	static int ishave(long si);//查询是否有该学生
	static void addcourse();// 为学生添加课程
	static void delcourse();//为学生删除课程
	static int ishavec(long si);//查询该学生是否有该课程
};
vector<student> s;


void course::print()//打印所以课程信息 
{
	system("cls");

	for (int i = 0; i < c.size(); i++)
	{
		cout << endl << "课程编号:" << c[i].number << "   课程名称:" << c[i].name << "   课程学分:" \
			<< c[i].credit << "   授课老师:" << c[i].teachername << endl;
	}

	cprintorget();
}

void course::get()//获得课程信息
{
	system("cls");
	long k = 1, kk;
	
	cout << "        请输入要查询的课程编号:      " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < c.size(); i++)
			if (c[i].number == kk)
			{
				cout << endl << "课程编号:" << c[i].number << "   课程名称:" << c[i].name << "   课程学分:" \
					<< c[i].credit << "   授课老师:" << c[i].teachername << endl;
				break;
			}
	}
	else
	{	
		cout << "              没有该课程 。           " << endl;
	}
	cprintorget();
}

void course::add()
{
	system("cls");
	long k = 1; course c1;
	cout << "        请输入要添加的课程编号:      " << endl;
	cin >> c1.number;
	while (ishave(c1.number))
	{

		system("cls");
		cout << "┃      该课程已添加,请重新输入:      ┃" << endl;
		cout << "┃             (按0退出)              ┃" << endl;
		cin >> k;
		if (k == 0)
		{
			cinfo();
			break;
		}
		else c1.number = k;

	}
	if (k != 0)
	{
		cout << "           请输入课程名称:            " << endl;
		cin >> c1.name;
		cout << "           请输入课程学分:           " << endl;
		cin >> c1.credit;
		cout << "          请输入授课老师名称:         " << endl;
		cin >> c1.teachername;
		system("cls");
		c.push_back(c1);
		cinfo();
	}
}

void course::del()//老师删除课程信息
{
	system("cls");
	long k = 1, kk;
	cout << "         请输入要删除的课程编号:       " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (auto p = c.begin(); p != c.end();)
		{
			if (p->number == kk)
			{
				p = c.erase(p);
				break;
			}
			else
				++p;
		}
		cout << "            成功删除该课程。          " << endl;
	}
	else
	{
		cout << "          你还没有添加该课程 。        " << endl;
	}
}

void course::edit()//老师修改课程信息
{
	system("cls");
	long k = 1, kk;
	cout << "      请输入要修改课程的课程编号:    " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < c.size(); i++)
		{
			if (c[i].number == kk)
			{
				system("cls");
				
				cout << "         请重新输入课程名称:         " << endl;
				cin >> c[i].name;
				cout << "         请重新输入课程学分:         " << endl;
				cin >> c[i].credit;
				cout << "       请重新输入授课老师名称:       " << endl;
				cin >> c[i].teachername;
				cout << "              修改成功。              " << endl;
				break;
			}
		}
	}
	else
	{
		cout << "              没有该课程 。           " << endl;
	}

}

int course::ishave(long si)//查询是否有该课程
{
	for (size_t i = 0; i < c.size(); i++)
		if (c[i].number == si)
			return true;
	return false;
}
void student::print()//打印所有学生信息
{
	long sumk = 0;
	system("cls");
	for (int i = 0; i < s.size(); i++)
	{
		sumk = 0;
		cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
			<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
			<< "学生已选课程:" << endl;
		if (s[i].havec.size() == 0)
		{
			cout << "无" << endl;
			continue;
		}
		else
		{
			for (int k = 0; k < s[i].havec.size(); k++)
			{
				cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
					<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
				sumk = sumk + s[i].havec[k].credit;

			}
			cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
		}
	}
	sprintorget();
}

void student::get()//获取学生信息
{
	system("cls");
	long k = 1, kk, sumk = 0;
	cout << "        请输入要查询的学生学号:      " << endl;
	cin >> kk;
	system("cls");
	if (ishave(kk))
	{
		for (size_t i = 0; i < s.size(); i++)
			if (s[i].number == kk)
			{
				cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
					<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
					<< "学生已选课程:" << endl;
				if (s[i].havec.size() == 0)
				{
					cout << "无" << endl;
					continue;
				}
				else
				{
					for (int k = 0; k < s[i].havec.size(); k++)
					{
						cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
							<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
						sumk = sumk + s[i].havec[k].credit;

					}
					cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
				}
			}
	}
	else
	{
		cout << "              没有该学生。            " << endl;
	}
	sprintorget();
}

void student::add()//添加学生信息
{
	system("cls");
	long k = 1; student s1;
	cout << "        请输入要添加的学生学号:      " << endl;
	cin >> s1.number;
	while (ishave(s1.number))
	{
		system("cls");
		cout << "┃      该学生已添加,请重新输入:      ┃" << endl;
		cout << "┃             (按0退出)              ┃" << endl;
		cin >> k;
		if (k == 0)
		{
			sinfo();
			break;
		}
		else s1.number = k;

	}
	if (k != 0)
	{
		cout << "           请输入学生姓名:           " << endl;
		cin >> s1.name;
		cout << "           请输入学生性别:           " << endl;
		cin >> s1.sex;
		cout << "           请输入学生年级:           " << endl;
		cin >> s1.grade;
		system("cls");
		s.push_back(s1);
		sinfo();
	}
}

void student::del()    //删除学生信息
{
	system("cls");
	long k = 1, kk;
	cout << "        请输入要删除的学生学号:      " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (auto p = s.begin(); p != s.end();)
		{
			if (p->number == kk)
			{
				p = s.erase(p);
				break;
			}
			else
				++p;
		}
		cout << "            成功删除该学生:          " << endl;

	}
	else
	{
		cout << "          你还没有添加该学生 。       " << endl;
		
	}
}

void student::edit()//修改学生信息
{
	system("cls");
	long k = 1, kk;
	cout << "        请输入要修改学生的学号:      " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < s.size(); i++)
		{
			if (s[i].number == kk)
			{
				system("cls");	
				cout << "         请重新输入学生姓名:         " << endl;
				cin >> s[i].name;
				cout << "         请重新输入学生性别:         " << endl;
				cin >> s[i].sex;
				cout << "         请重新输入学生年级:         " << endl;
				cin >> s[i].grade;
				cout << "              修改成功。              " << endl;
				break;
			}
		}
	}
	else
	{
		cout <<  "             没有该学生。            " << endl;
	}
}

void student::addcourse()//添加课程
{
	system("cls");
	long k = 1, kk, sumk = 0, sk;
	cout << "           请输入学生的学号:         " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < s.size(); i++)
		{
			if (s[i].number == kk)
			{
			
				cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
					<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
					<< "学生已选课程:" << endl;
				if (s[i].havec.size() == 0)
				{
					cout << "无" << endl;

				}
				else
				{
					for (int k = 0; k < s[i].havec.size(); k++)
					{
						cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
							<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
						sumk = sumk + s[i].havec[k].credit;

					}
					cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
				
				}
				
				cout << "          请输入要添加的课程:        " << endl;
				cin >> sk;
				for (size_t k = 0; k < s[i].havec.size(); k++)
					if (s[i].havec[k].number == sk)
					{
						cout << "         已有该课程,无法添加。       " << endl;	
					}
					else
					{
						if (course::ishave(sk))
						{
							course c1;
							for (size_t jk = 0; jk < c.size(); jk++)
							{
								if (c[jk].number == sk)
								{
									c1.number = c[jk].number;
									c1.name = c[jk].name;
									c1.credit = c[jk].credit;
									c1.teachername = c[jk].teachername;
								}
							}
							sumk = sumk + c1.credit;
							if (sumk > s[i].scredit)
							{
								cout << "┃          学分不足,无法添加。        ┃" << endl;
							}
							else
							{
								s[i].havec.push_back(c1);		
								cout << "┃               添加成功。             ┃" << endl;
								break;
							}


						}
						else
						{
							cout << "┃           系统内没有该课程 。        ┃" << endl;
						}
					}

			}
		}
	}
	else
	{
		cout << "              没有该学生。            " << endl;
	}
}

void student::delcourse()//删除课程 
{
	system("cls");
	long k = 1, kk, sumk = 0, sk;
	cout << "           请输入学生的学号:         " << endl;
	cin >> kk;
	if (ishave(kk))
	{
		for (size_t i = 0; i < s.size(); i++)
		{
			if (s[i].number == kk)
			{
				cout << endl << "学生学号:" << s[i].number << "   姓名:" << s[i].name << "   性别:" \
					<< s[i].sex << "   年级:" << s[i].grade << endl << endl\
					<< "学生已选课程:" << endl;
				if (s[i].havec.size() == 0)
				{
					cout << "无" << endl;
					continue;
				}
				else
				{
					for (int k = 0; k < s[i].havec.size(); k++)
					{
						cout << endl << "课程编号:" << s[i].havec[k].number << "   课程名称:" << s[i].havec[k].name << "   课程学分:" \
							<< s[i].havec[k].credit << "   授课老师:" << s[i].havec[k].teachername << endl;
						sumk = sumk + s[i].havec[k].credit;

					}
					cout << endl << "该学生本学期共有" << s[i].scredit << "学分,已选" << s[i].havec.size() << "门,共" << sumk << "学分。" << endl;
				}
				cout << "          请输入要删除的课程:        " << endl;
				cin >> sk;
				for (auto p = s[i].havec.begin(); p != s[i].havec.end();)
				{
					if (p->number == sk)
					{
						p = s[i].havec.erase(p);
						break;
					}
					else
						++p;
				}
				cout << "               删除成功。             " << endl;
			}
		}
	}
	else
	{
		cout << "              没有该学生。            " << endl;

	}
}

int student::ishave(long si)
{
	for (size_t i = 0; i < s.size(); i++)
		if (s[i].number == si)
			return true;
	return false;
}

void cprintorget()//查询或展示课程信息
{
	cout << endl;
	cout << "      **学生选课信息管理系统**   " << endl;
	cout << "      ┏━━━━━━━━━━━━━━━━━━━━━┓   " << endl;
	cout << "      ┃ 请选择功能:        ┃   " << endl;
	cout << "      ┃ 1.查询课程信息      ┃  " << endl;
	cout << "      ┃ 2.展示课程信息      ┃  " << endl;
	cout << "      ┃ 3.回到上一页        ┃  " << endl;
	cout << "      ┗━━━━━━━━━━━━━━━━━━━━━┛   " << endl;
	cout << "      请输入序号(1~3)进入系统操作:  " << endl;
	cout << endl;
	int ii, k = 1;
	cin >> ii;
	while (k)
	{
		if (ii > 3 || ii < 1)
		{
			cout << "输入错误,请重新输入数字1~3。" << endl;
			cin >> ii;
		}

		else
			k = 0;
	}
	system("cls");
	switch (ii)
	{
	case 1: course::get(); break;
	case 2: course::print(); break;
	case 3:cinfo(); break;
	}
}

void cinfo()//学生选课信息
{
	system("cls");
	cout << endl;
	cout << "      **学生选课信息管理系统**   " << endl;
	cout << "      ┏━━━━━━━━━━━━━━━━━━━━━┓   " << endl;
	cout << "      ┃ 请选择功能:        ┃   " << endl;
	cout << "      ┃ 1.查询课程信息      ┃  " << endl;
	cout << "      ┃ 2.录入课程信息      ┃  " << endl;
	cout << "      ┃ 3.删除课程信息      ┃  " << endl;
	cout << "      ┃ 4.修改课程信息      ┃  " << endl;
	cout << "      ┃ 5.回到主菜单        ┃  " << endl;
	cout << "      ┗━━━━━━━━━━━━━━━━━━━━━┛   " << endl;
	cout << "      请输入序号(1~5)进入系统操作:  " << endl;
	cout << endl;

	int ii, k = 1;
	cin >> ii;
	while (k)
	{
		if (ii > 5 || ii < 1)
		{
			cout << "输入错误,请重新输入数字1~5。" << endl;
			cin >> ii;
		}

		else
			k = 0;
	}
	system("cls");
	switch (ii)
	{
	case 1: cprintorget(); break;
	case 2:course::add(); break;
	case 3:course::del(); break;
	case 4:course::edit(); break;
	case 5:Menu(); break;
	}
}

void sprintorget()//查询或展示学生信息
{
	cout << endl;
	cout << "      **学生选课信息管理系统**   " << endl;
	cout << "      ┏━━━━━━━━━━━━━━━━━━━━━┓   " << endl;
	cout << "      ┃ 请选择功能:        ┃   " << endl;
	cout << "      ┃ 1.查询学生信息      ┃  " << endl;
	cout << "      ┃ 2.展示学生信息      ┃  " << endl;
	cout << "      ┃ 3.回到上一页        ┃  " << endl;
	cout << "      ┗━━━━━━━━━━━━━━━━━━━━━┛   " << endl;
	cout << "      请输入序号(1~3)进入系统操作:  " << endl;
	cout << endl;
	int ii, k = 1;
	cin >> ii;
	while (k)
	{
		if (ii > 3 || ii < 1)
		{
			cout << "输入错误,请重新输入数字1~3。" << endl;
			cin >> ii;
		}

		else
			k = 0;
	}
	system("cls");
	switch (ii)
	{
	case 1: student::get(); break;
	case 2: student::print(); break;
	case 3:sinfo(); break;
	}
}

void sinfo()
{
	system("cls");
	cout << endl;
	cout << "      **学生选课信息管理系统**   " << endl;
	cout << "      ┏━━━━━━━━━━━━━━━━━━━━━┓   " << endl;
	cout << "      ┃ 请选择功能:        ┃   " << endl;
	cout << "      ┃ 1.查询学生信息      ┃  " << endl;
	cout << "      ┃ 2.录入学生信息      ┃  " << endl;
	cout << "      ┃ 3.删除学生信息      ┃  " << endl;
	cout << "      ┃ 4.修改学生信息      ┃  " << endl;
	cout << "      ┃ 5.为学生添加课程    ┃  " << endl;
	cout << "      ┃ 6.为学生删除课程    ┃  " << endl;
	cout << "      ┃ 7.回到主菜单        ┃  " << endl;
	cout << "      ┗━━━━━━━━━━━━━━━━━━━━━┛   " << endl;
	cout << "      请输入序号(1~7)进入系统操作:  " << endl;
	cout << endl;

	int ii, k = 1;
	cin >> ii;
	while (k)
	{
		if (ii > 7 || ii < 1)
		{
			cout << "输入错误,请重新输入数字1~7。" << endl;
			cin >> ii;
		}

		else
			k = 0;
	}
	system("cls");
	switch (ii)
	{
	case 1: sprintorget(); break;
	case 2:student::add(); break;
	case 3:student::del(); break;
	case 4:student::edit(); break;
	case 5:student::addcourse(); break;
	case 6:student::delcourse(); break;
	case 7:Menu(); break;
	}
}

void login()//登录界面
{
	cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl;
	cout << "┃                                      ┃" << endl;
	cout << "┃欢迎您使用学生选课信息管理系统管理端!┃" << endl;
	cout << "┃                                      ┃" << endl;
	cout << "┃    请输入密码:(默认密码:1234)    ┃" << endl;
	cout << "┃                                      ┃" << endl;
	cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl;
	int k = 0;
	char input[16];
	cin >> input;
	while (strcmp(password, input) != 0)
	{
		cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl;
		cout << "┃                                      ┃" << endl;
		cout << "┃        密码错误,请重新输入。        ┃" << endl;
		cout << "┃                                      ┃" << endl;
		cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl;
		cin >> input;
		k++;

		if (k > 3)
		{
			cout << "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" << endl;
			cout << "┃                                      ┃" << endl;
			cout << "┃    输入错误超过5次,暂停操作5秒。    ┃" << endl;
			cout << "┃                                      ┃" << endl;
			cout << "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" << endl;
			Sleep(5000);
			k = 0;
			system("cls");
			cout << "             请重新输入。             " << endl;
			cin >> input;
		}
	}

	if (strcmp(password, input) == 0)
	{
		system("cls");
		cout << "          登录成功,欢迎您 !         " << endl;
	}
}

void changepassword()//修改密码
{
	int kk = 1;
	char p1[16], p2[16];
	while (kk) {
		system("cls");
		cout << "            请输入新密码:            " << endl;
		cin >> p1;
		cout << "           请重新输入密码:           " << endl;
		cin >> p2;
		if (strcmp(p1, p2) != 0)
		{
			cout << "  两次输入的密码不一致 ,请重新输入。 " << endl;
		}
		else
		{
			system("cls");
			cout << "       更改密码成功,请重新登录。     " << endl;
			strcpy_s(password, p1);
			kk = 0;
			login();
		}
	}
}


int Menu()//菜单
{
	while (1)
	{
		cout << endl;
		cout << "      **学生选课信息管理系统**   " << endl;
		cout << "      ┏━━━━━━━━━━━━━━━━━━━━━┓   " << endl;
		cout << "      ┃ 请选择功能:        ┃   " << endl;
		cout << "      ┃ 1.课程信息管理      ┃  " << endl;
		cout << "      ┃ 2.学生信息管理      ┃  " << endl;
		cout << "      ┃ 3.修改密码          ┃  " << endl;
		cout << "      ┃ 4.注销              ┃  " << endl;
		cout << "      ┃ 5.退出系统          ┃  " << endl;
		cout << "      ┗━━━━━━━━━━━━━━━━━━━━━┛   " << endl;
		cout << "      请输入序号(1~5)进入系统操作:  " << endl;
		cout << endl;

		int ii, k = 1;
		cin >> ii;
		while (k)
		{
			if (ii > 5 || ii < 1)
			{
				cout << "输入错误,请重新输入数字1~5。" << endl;
				cin >> ii;
			}

			else
				k = 0;
		}

		switch (ii)
		{
		case 1: cinfo(); break;
		case 2: sinfo(); break;
		case 3:
		{
			changepassword();
			login();
			break;
		}
		case 4:
		{
			system("cls");
			cout << "┃         注销成功,请重新登录。       ┃" << endl;
			login();
		}
		break;
		case 5: return 0;
			break;
		}
	}
}
//*****************************************************//

int main()
{
	
	return 0;
}
#endif

到了这里,关于C++实现---学生选课系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于javaEE学生选课系统(计算机毕业设计完整项目代码)

    系统可以实现学生选课的一些重要功能,如:课程的添加、删除,信息查询、选课、生成课表,以及学生选课管理人员、用户个人信息的维护等。学生选课系统主要是为学生选课的管理提供全面、准确、科学的管理方法,方便快捷地处理选课的管理信息;避免了信息处理错误

    2024年02月08日
    浏览(44)
  • 大学生选修选课系统|基于Springboot的大学生选修选课系统设计与实现(源码+数据库+文档)

    大学生选修选课系统目录 目录 基于Springboot的大学生选修选课系统设计与实现 一、前言 二、系统功能设计  三、系统实现  1、用户信息管理 2、 课程信息管理 3、排课信息管理 4、公告信息管理  四、数据库设计 1、实体ER图   五、核心代码   六、论文参考 七、最新计算机

    2024年03月11日
    浏览(77)
  • 计算机Java项目|SSM微信小程序的学生选课系统

    作者主页:编程指南针 作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师 主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库

    2024年01月22日
    浏览(68)
  • Java+Swing+MySQL实现学生选课管理系统

    目录 一、系统介绍 1.运行环境 2.技术说明 3.系统功能 4.数据库实体E-R图设计 5.数据库表的设计 二、系统实现  1.用户登录 2.主界面   3.数据库连接 4.数据查询 5.查询课程信息 6.添加学生信息 7.修改学生信息 三、部分代码  1.ChangePwd.java 2.Login.java 3.Main.java 5.备注 开发工具:

    2024年02月08日
    浏览(70)
  • 基于JavaWeb实现的学生选课系统(源码+数据库)

    本项目是一套基于JavaWeb实现的学生选课系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse 确保可以运行! 该系统功能完善、界面美观、

    2024年02月08日
    浏览(76)
  • Python Django的学生选课管理系统,实现多用户登录注册,可选课可评课

    学生选课管理系统是一个基于Python Django开发的教务管理系统,旨在提供方便快捷的选课服务和学籍管理功能。该系统分为教师端和学生端两个角色,为教师和学生提供了不同的功能和权限。 教师端功能: 教师可以登录系统后,进行课程管理、成绩录入和学生管理等操作。具

    2024年01月24日
    浏览(50)
  • 一零五六、Jsp+mysql 实现学生选课系统(附源码及数据库)

    目录 实现效果 项目代码 数据库 结语 实现效果 login.jsp index.jsp  course_query.jsp  course_selection.jsp   course_withdraw.jsp selection_query.jsp    项目代码 checkSelectionStatus.jsp course_query.jsp course_selection.jsp course_selection_check.jsp course_withdraw.jsp course_withdraw_check.jsp index.jsp login.jsp login_check.jsp se

    2024年02月09日
    浏览(53)
  • node.js+vue.js大学生在线选课系统的设计与实现93pul

    本次设计任务是要设计一个选课系统的设计与实现,通过这个系统能够满足用户对选课信息的需求。系统的主要功能包括:个人中心、学生管理、教师管理、选课信息管理等功能。 管理员可以根据系统给定的账号进行登录,登录后可以进入选课系统的设计与实现对所有模块进

    2024年02月06日
    浏览(62)
  • 数据库课程设计-学生选课管理系统(实训报告+答辩ppt+源码+sql文件+打包好的程序)springboot项目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。 如果对你有帮助,请给一个小小的star⭐ 源码加vx : ChenZhen_7 (实训报告+答辩ppt+源码+sql文件+打包好的程序 无套路 免费获取! 不放

    2024年02月11日
    浏览(71)
  • 基于微信小程序的学生选课成绩管理系统的设计与实现(源码+论文)_v_149

    摘   要 随着移动互联网、智能手机的普及,微信被广大用户认可并广泛被使用,其中微信小程序主要通过微信信息会话以及网页的形式为用户提供服务,方便人们对信息的了解,操作简单实用。本文主要介绍了学生成绩管理系统微信小程序的开发过程,对开发环境、系统设

    2024年02月02日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包