小学期作业-老师评分系统c++stl实现
2015-01-13 16:02
218 查看
#include<iostream> #include<string> #include<list> #include<fstream> #include<functional> #include<Windows.h> #include<algorithm> using namespace std; class Teacher { public: string name; int xuehao; int score; Teacher(string str1, int xh, int sc)//有参构造函数 { this->name = str1; this->xuehao = xh; this->score = sc; } Teacher(const Teacher &st1)//拷贝构造函数 { this->name = st1.name; this->xuehao = st1.xuehao; this->score = st1.xuehao; } Teacher &operator=(const Teacher &str1)//重载= { this->name = str1.name; this->xuehao = str1.xuehao; this->score = str1.xuehao; return *this; } bool operator<(const Teacher &str1) const { return (this->score<str1.score ? 1 : 0); } bool operator>(const Teacher &str1) const { return (this->score>str1.score ? 1 : 0); } bool operator==(const Teacher &str1) const { return (this->score == str1.score ? 1 : 0); } void print() { cout << "姓名为"<<this->name <<"工号为"<< this->xuehao << "评分"<<this->score << endl; cout << "------------------" << endl; } }; class Student { public: Student(int&k, string&name)//构造函数 { this->xuehao = k; this->name = name; } int xuehao; string name; }; list<Teacher> mylist;//链表 list<Student> stlist;//链表 void showjiben() { cout << "请输入你的学号,查看你的基本信息" << endl; int flag = 0; int xuehao; cin >> xuehao; auto k = stlist.begin(); for (k; k != stlist.end(); k++) { if (xuehao == k->xuehao) { flag = 1; cout << "你的信息为" << endl; cout << "姓名:" << k->name << " " << "学号为" << k->xuehao << endl; break; } } if (flag == 0) { cout << "木有此人" << endl; } } void showall()//显示老师所有信息 { //system("cls"); auto k = mylist.begin(); for (k; k != mylist.end(); k++) { k->print(); } } void insert()//插入老师 { system("cls"); string str1; int xuehao; int score1; cout << "----------------请输入老师姓名----------------" << endl; cin >> str1; cout << "----------------请输入老师工号----------------" << endl; cin >> xuehao; score1 = 0; Teacher one(str1, xuehao, score1); mylist.push_back(one); std::cout << "已经有" << mylist.size() << "个" << "老师了" << endl; Sleep(1000); } void pj()//评分 { // system("cls"); int flag = 0; string str1; int xuehao; cout << "----------------请输入学生学号----------------" << endl; cin >> xuehao; cout << "----------------请输入学生姓名----------------" << endl; cin >> str1; Student one(xuehao, str1); stlist.push_back(one); cout << "----------------谁是你最喜欢的老师请选择----------------" << endl; showall(); for (int i = 0; i < 3; i++) { auto k = mylist.begin(); cout << "第" << i + 1 << "位喜爱的老师" << endl; cout << "---------------请输入工号来选择老师---------------" << endl; int num; cin >> num; for (k; k != mylist.end(); k++) { if (k->xuehao == num) { flag = 1; cout << "请给姓名为 " << k->name << " 工号为 " << k->xuehao << "打分 " << endl; int z; cin >> z; k->score = z; cout << "----------------打分完成----------------" << endl; } } if (flag == 0) { cout << "----------------输入有误----------------" << endl; } } Sleep(500); } void sorth() { mylist.sort(greater<Teacher>()); } void sortpaixu()//按照评分排序,然后显示老师所有信息 { system("cls"); system("cls"); cout << "---------------分数排序完毕---------------" << endl; mylist.sort(greater<Teacher>()); showall(); system("pause"); } void showstudent()//根据学号登陆显示所有老师信息 { system("cls"); cout << "请输入你的学号,查看评分结果" << endl; int flag = 0; int xuehao; cin >> xuehao; auto k = stlist.begin(); for (k; k != stlist.end(); k++) { if (xuehao == k->xuehao)//显示所有老师信息 { flag = 1; sortpaixu(); break; } } if (flag == 0) { std::cout << "输入有误" << endl; } } void savefile()//保存 { system("cls"); ofstream xie("Teacher.dat", ios::out); if (!xie) { cout << "----------------文件打开失败----------------" << endl; exit(1); } auto k = mylist.begin(); for (k; k != mylist.end(); k++) { xie << "姓名:"<< k->name << ' ' << "工号:"<<k->xuehao << ' ' <<"评分:"<< k->score << endl; } cout << "----------------写入文件完毕----------------" << endl; cout << "1秒后跳转" << endl; Sleep(1000); } void readfile()//读取文件 { system("cls"); ifstream du("Teacher.dat", ios::in); sorth(); if (!du) { std::cout << "----------------文件读取失败----------------" << endl; exit(0); } auto k = mylist.begin(); for (k; k != mylist.end(); k++) { char str1[80]; du.getline(str1,80); std::cout << str1 << std::endl; } Sleep(4000); std::cout << "4秒后跳转" << endl; } void infom() { system("cls"); MessageBoxA(NULL, "此系统由小曾完成,欢迎各位使用", "系统提示", 1); } void screenb() { while (1) { system("cls"); cout << "----------------1.创建老师----------------" << endl; cout << "----------------2.根据学号,显示老师信息----------------" << endl; cout << "----------------3.根据学号,对老师打分----------------" << endl; cout << "----------------4.保存老师信息----------------" << endl; cout << "----------------5.读取文件信息----------------" << endl; cout << "----------------6,排序查看--------------------" << endl; cout << "----------------7.返回主菜单----------------" << endl; cout << "----------------请选择----------------" << endl; char ch; cin >> ch; switch (ch) { case '1':insert(); break; case '2':showstudent(); break; case '3':pj(); break; case '4':savefile(); break; case '5':readfile(); break; case '6':sortpaixu(); break; case '7':return; break; default: return; break; } } } void screen() { system("color F0"); system("cls"); while (1) { cout << " ************欢迎使用隐无影打分系统************** " << endl; cout << " 隐无影csdn博客地址:http://blog.csdn.net/u011391093"; 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 << endl; cout << endl; cout << endl; cout << endl; cout << endl; cout << " 隐无影----完成于2015年1月13号 12:57" << endl; char ch; cin >> ch; switch (ch) { case '1': screenb(); break; case '2': showjiben(); break; case '3': showstudent(); break; case '4': infom(); break; case '5': MessageBoxA(0, "谢谢使用,谢了", "隐无影提示", 1); return; } } } int main() { system("title 隐无影来也"); system("color b3"); Teacher one("小曾", 25,66); Teacher one1("小红", 26,33); Teacher one2("小逸", 27,44); Teacher one3("小文", 20,11); mylist.push_back(one); mylist.push_back(one1); mylist.push_back(one2); mylist.push_back(one3); MessageBoxA(NULL, "欢迎!欢迎!热烈欢迎", "系统提示", 1); screen(); system("pause"); return 0; }
相关文章推荐
- 老师布置的C++实践作业:C++编写的学生系统
- 老师给我布置的实训作业-安全登录注册系统------注册界面的实现(1)
- 用C++ STL 实现成绩管理系统
- C/C++实现跨平台重启系统
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- c++实现显示系统当前时间
- STL实现图书管理系统
- c++实现系统托盘图标
- (转)C++ STL的各种实现版本介绍
- 词频统计的C++实现(使用stl--map)
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
- C++面试题:介绍一下STL,STL如何实现vector。
- [C++]第七次作业:实现一个大整数类BigInt
- Excel(11)-用Excel飞速实现“人力”老师布置的作业
- 关于虚函数的作业中对学校信息管理系统的实现要求和编程要点
- 自己实现了一下C++STL中的next_permutation,名为ant_next_permutation,发下代码
- c++实现系统托盘图标
- 成绩管理系统的C++实现
- “基于关键字匹配的文本过滤系统”配置文件的设计和实现(C/C++源码)
- C++的大作业,简单学生管理系统