C++学生信息管理系统 Map实现

1、 作品的功能描述:
实现一个学生信息管理系统,通过对学生信息类中的成员进行增、删、改、查从而实现对数据的操作,除此之外,还可以显示学生信息,按分数排序信息,并通过文件的读入读出实现学生信息的存储和读出。
子函数操作细节说明:
(1) 插入学生信息
通过map容器中的insert()函数进行学生信息的插入,使用二元组作为参数,first为学生姓名索引,second为学生个人信息类
(2) 删除学生信息
使用map中的erase()函数对学生信息进行删除,如果学生存在于map中,删除成功。
(3) 修改学生信息
通过map的key值调用value中的set函数,并调用information类中打印学生信息的函数将学生信息显示在程序执行窗口中。
(4) 查找学生信息
通过map中的find()函数查找该信息是否存在。
(5) 列表显示学生信息
自定义一个for循环,对map进行遍历,输出map中的每个成员。
(6) 按分数排序信息
自定义一个按照数学成绩由高到低,将map中的每个成员存入到vector这个动态数组中,然后调用sort()函数按照自定义的比较顺序对学生信息进行排序。
(7) 清空数据
调用map中的clear()函数,清空map容器;
(8) 学生信息存盘
将学生信息写入文件
(9) 读出信息存盘
读入之前写入文件的学生信息
(10) 关闭系统
调用程序后,函数返回return 0, 程序运行结束。
2、 功能实现原理:
采用STL库中的map容器进行信息存储,便于查找和修改信息。
3、代码:

/*
	为了实现高效的学生管理系统,主要采用了STL库中的 map容器来进行信息存储。
	
	面向对象程序设计课程设计---实训课程序设计 
*/
#include <iostream>
#include <cstring>
#include <algorithm>
#include <map> 
#include <string>
#include <vector>
#include <cstdio> 
#include <windows.h>
using namespace std;

void color(int a)
{
   
// 更改命令行窗口的颜色
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}

class information{
    //个人信息类 
	private:
		string name; //姓名 
		string id;   //学号  
		string sex;//性别
		string classname; //课程名
		string classnumber;//课程号
		double score; //课程分数 
	public:
		information() {
   }; //无参构造函数 
		information(string s, string s1, string s2, string s3, string s4, double s5) : name(s), id(s1), sex(s2), classname(s3), classnumber(s4), score(s5) {
   }; //构造函数 	
		
		void printinf() {
   
			//将字符串对象转化为字符数组格式化输出
			printf("%-15s%-15s%-15s%-15s%-15s%-15lf\n", name.c_str(), id.c_str(), sex.c_str(), classname.c_str(), classnumber.c_str(), score);
		}
		//get() set()方法 
		string getname() const{
   return name;}
		string getid() const{
   return id;}
		string getsex() const{
   return sex;}
		string getclassname() const{
   return classname;}
		string getclassnumber() const{
   return classnumber;}
		double getscore() const {
   return score;}
		
		void setname(string str) {
   name = str;}
		void setid(string str) {
   id = str;}
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值