您的位置:首页 > 编程语言 > C语言/C++

小学期作业-老师评分系统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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: