学生管理系统map实现篇
来源:互联网 发布:js 检测分辨率 编辑:程序博客网 时间:2024/06/05 11:19
<pre name="code" class="cpp">#ifndef student_h#define student_h#include<string>#include<iostream>#include<set>using namespace std;class student{private:string name;string sex;set<string> courseset;public:friend ostream& operator<<(ostream& cout,student &s); student& operator=(const student& s);student(){};student(string n,string s):name(n),sex(s){};void Addcourse();void Getcourse();};#endif
#include"student.h"ostream& operator<<(ostream& cout,student &s){cout<<s.name<<"\t"<<s.sex<<endl;return cout;}student& student::operator=(const student& s){this->name=s.name;this->sex=s.sex;return *this;}void student::Addcourse(){char v;do{cout<<"输入所选课程名称"<<endl;string name;//double grade;//Course cr(name,grade);cin>>name;//>>grade;courseset.insert(name);cout<<"是否继续选课?(y|Y)";cin>>v;}while(v=='y'||v=='Y');}void student::Getcourse(){set<string>::iterator p;p=courseset.begin();while(p!=courseset.end()){cout<<*p<<"\t";p++;}cout<<endl;}
#include"student.h"#include<iostream>#include<map>#include<string>#include<fstream>using namespace std;map<string,student> stumap;map<string,student>::iterator p;//set<Course> stuset;void main(){void Add_student();void Delete_student();void display();void Find_student();void Change_student();void Write_to_File();int n;while(true){cout<<"--------------------------学生管理系统--------------------------"<<endl<<" --------------(1)-------录入学生"<<endl<<" --------------(2)-------打印输出"<<endl<<" --------------(3)-------修改信息"<<endl<<" --------------(4)-------删除信息"<<endl<<" --------------(5)-------查找学生"<<endl<<" --------------(6)-------写入文件"<<endl<<" --------------(7)-------退出系统"<<endl<<"输入您要进行的操作"<<endl;cin>>n;switch(n){case 1:Add_student();break;case 2:display();break;case 3:Change_student();break;case 4:Delete_student();break;case 5:Find_student();break;case 6:Write_to_File();break;case 7:exit(0);}}}void Add_student(){string n,s; string id; char choose;for(int i=1;;i++){cout<<"input id,name,sex:";cin>>id>>n>>s;if(id=="0")break;student stud(n,s);stud.Addcourse();stumap.insert(make_pair(id,stud));cout<<endl;if(i%3==0){cout<<"是否继续录入学生信息?(y|Y)";cin>>choose;if(choose=='y'||choose=='Y'){system("cls");continue;}elsebreak;}}}void Delete_student(){cout<<"请输入需要删除的学生学号"<<endl;string del_id;char choose;cin>>del_id;cout <<del_id<<"号学生的基本信息为:" <<endl<< stumap.find(del_id)->second << endl;cout<<"确定删除?(y||Y)"<<endl;cin>>choose;if(choose=='y'||choose=='Y')stumap.erase(stumap.find(del_id)); }void display(){cout<<"下面是"<<stumap.size()<<"个学生的信息"<<endl;for(p=stumap.begin();p!=stumap.end();p++){cout<<p->first<<"号学生信息:"<<endl<<"姓名 性别:"<<p->second;cout<<"所选课程:"<<endl;p->second.Getcourse();cout<<endl;}}void Find_student(){cout<<"输入需要查找学生的学号:"<<endl;string id;bool find=false;cin>>id;for(p=stumap.begin();p!=stumap.end();p++)if(p->first==id){cout<<"该学生信息为:"<<p->second;cout<<"所选课程:"<<endl;p->second.Getcourse();cout<<endl;find=true;}if(!find)cout<<"没有该学生信息!"<<endl;}void Change_student(){string id,name,sex;cout<<"请输入需要修改信息学生的学号";cin>>id;p=stumap.find(id);if(p==stumap.end()){cout<<"抱歉,没有该学生!"<<endl;return;}cout<<"请输入学生信息:";cin>>name>>sex;student stu(name,sex);stu.Addcourse();stumap[id]=stu;}void Write_to_File(){map<string,student> vm;student stu;string num;ofstream out("22.txt",ios::binary); if (!out.is_open()) { cout << "File is open fail!" << endl;return; } p = stumap.begin(); while (p != stumap.end()) { out.write((char*)&p->first,sizeof(string)); out.write((char*)&p->second,sizeof(student)); p++; } out.close(); ifstream in("22.txt",ios::binary); if (!in.is_open()) { cout << "File is open fail!" << endl;return; } while (!in.eof()) { in.read((char*)&num,sizeof(string)); in.read((char*)&stu,sizeof(student)); vm.insert(make_pair(num,stu)); } in.close();for(p=vm.begin();p!=vm.end();p++){cout<<p->first<<"号学生信息:"<<endl<<"姓名 性别:"<<p->second;cout<<"所选课程:"<<endl;p->second.Getcourse();cout<<endl;}}
还有文件的输入输出未实现...............................................................未完待续.... 2016/04/21 19:12
完成文件的输入输出,并在学生类里添加set<string>型课程信息,但还不知道如何实现set<Course>(Course类中有课程名,分数信息),并实现按course分数进行排序,选择等操作 ................................................................未完待续.....2016/04/22 18:05
0 0
- 学生管理系统map实现篇
- 学生管理系统实现
- PHP 学生管理系统实现
- PDO实现学生管理系统
- 学生管理系统---Python实现
- java实现学生管理系统
- java--运用Map接口及其实现类完成简易学生系统的管理
- 程序设计篇(1):学生经验值管理系统(单链表实现)
- 【学生管理系统】总结篇
- 链表实现的学生管理系统
- 学生管理系统(利用指针实现)
- 链表实现c学生管理系统
- 双链表实现简单的学生管理系统
- 学生管理系统 链表实现
- 学生管理系统总结之功能实现
- Qt实现学生管理系统(应用程序版)
- Java基础实现学生管理系统
- 使用C++实现学生管理系统
- HTML5第8次课堂笔记( 模拟form表单提交数据,xml的解析,jQuery的Ajax方法使用, mui的ajax)
- Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC
- Jenkins入门系列
- sql server触发器
- Gradle DSL method not found: 'runProguard()'
- 学生管理系统map实现篇
- 51Nod-1066-Bash游戏
- leetcode——136——Single Number
- Android-启用系统相机拍摄图片并且显示
- Java读取properties文件中文乱码问题解决
- struts2动态方法调用
- Hadoop入门的五个进程的理解(二)
- 根据一个笔试题引出的思考
- Python nltk载入自己的中文语料库的两种方法 for Windows7