⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdt.h

📁 一个简单的学生信息管理系统
💻 H
字号:
#ifndef SDT_H
#define SDT_H
#include<map>
#include<utility>
#include<vector>
#include<cstdlib>
void main_menu();
class student{
	friend std::istream& operator>>(std::istream&,student&);
	friend std::ostream& operator<<(std::ostream&,const student&);
public:
	student():s_name("*"),s_num("*"),s_class("*"){}
	operator std::string() const
	{	
		return s_class;
	}
	std::string s_name;             //姓名
	std::string s_num;              //学号
	std::string s_class;            //班级
	std::map<std::string,double> s_score;//课程得分	
};
extern std::vector<student> svec;   //申明全局vector存放文件内容
inline bool operator<(const student &lhs,const student &rhs)       //重载小于操作符,供按班级排序
{
	return lhs.s_class<rhs.s_class;
}
inline std::istream& operator>>(std::istream &in,student &rhs)
{
	in>>rhs.s_name>>rhs.s_num>>rhs.s_class;
	std::string kc;		//课程名字
	double score=0.0;	//课程得分
	while(in>>kc>>score)
		rhs.s_score.insert(make_pair(kc,score));
	return in;
}
inline std::ostream& operator<<(std::ostream &os,const student &rhs)
{
	os<<rhs.s_name<<"\t"<<rhs.s_num<<"\t"<<rhs.s_class
		  <<"\t";
	std::map<std::string,double>::const_iterator map_it=rhs.s_score.begin();
	while(map_it!=rhs.s_score.end())
	{
		os<<map_it->first<<" "<<map_it->second<<"\t";
		++map_it;
	}
	return os;
}
inline void select_menu()
{
	std::cout<<"请输入数字键进行选择!"<<std::endl;
}
inline void come_back()
{
	system("cls");
	main_menu();
}
class GT_cls                   //函数对象,做find_if的谓词函数,找出第1个不相等的
{
public:
	GT_cls(std::string new_val="*"):val(new_val){}
	bool operator()(const std::string &s)
	{
		return s!=val;
	}
private:
	std::string val;
};
inline void back_main()
{
	std::cout<<std::endl<<std::endl;
	char y;
	std::cout<<"操作完毕,是否返回主菜单(Y/N)"<<std::endl;
	std::cin>>y;
	if(y=='Y'||y=='y')
	{
		system("cls");
		main_menu();
	}
	else exit(0);
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -