#pragma once
#include
#include
using namespace std;
typedef long long LL;
class person {
private:
string name;//姓名
string age;//年龄
string sex;//性别
string pro;//职业
string Id;//身份标识
public:
person();
person(string name, string age, string sex, string Id);
~person();
string getN();
void setN(string name);
string getA();
void setA(string age);
string getS();
void setS(string sex);
void setI(string Id);
string getI();
bool AllisNum(string str);
LL Num(string str);
virtual void behave() = 0;
};

#include"person.h"
person::person()
{
}
person::person(string name, string age, string sex, string Id)
{
this->name = name;
this->age = age;
this->sex = sex;
this->Id = Id;
}
person::~person()
{
}

string person::getN()
{
return name;
}

void person::setN(string name)
{
this->name = name;
}

string person::getA()
{
return this->age;
}

void person::setA(string age)
{
this->age = age;
}

string person::getS()
{
return this->sex;
}

void person::setS(string sex)
{
this->sex = sex;
}

void person::setI(string Id)
{
this->Id = Id;
}

string person::getI()
{
return this->Id;
}
bool person::AllisNum(string str)
{
for (int i = 0; i < str.size(); i++)
{
int tmp = (int)str[i];
if (tmp >= 48 && tmp <= 57)
{
continue;
}
else
{
return false;
}
}
return true;
}
LL person::Num(string str)
{
LL A = 0;
for (int i = 0; i < str.size(); i++)
{
int tem = (int)str[i] - 48;
A = A * 10 + tem;
}
return A;
}
文件二:
#pragma once
#include"person.h"
using namespace std;
class Student : public person
{
private:
string grade;//年级
string fee;//学费
public:
Student(string name, string age, string sex, string Id, string grade, string fee);
Student();
~Student();
string getG();
void setG(string grade);
string getF();
void setF(string fee);
void behave();
friend istream& operator >> (istream& in, Student& S);
friend ostream& operator << (ostream& out, Student& S);
};
istream& operator >> (istream& in, Student& S);
ostream& operator << (ostream& out, Student& S);

#include"Student.h"

Student::Student(string name, string age, string sex, string Id, string grade, string fee):person(name, age, sex, Id)
{
this->grade = grade;
this->fee = fee;
}

Student::Student()
{
}
Student::~Student()
{
}

string Student::getG()
{
return this->grade;
}

void Student::setG(string grade)
{
this->grade = grade;
}

string Student::getF()
{
return this->fee;
}

void Student::setF(string fee)
{
this->fee = fee;
}

void Student::behave()
{
cout << this->getN() << “去交” << this->getF() << “元学费” << endl;
}

/ostream& Student::operator<<(ostream& out, Student S)
{
return out;
// TODO: 在此处插入 return 语句
}
/

istream& operator>>(istream& in, Student& S)
{
//string name, int age, char sex, LL Id, int grade, double fee
cout << "姓名: ";
string name;
in >> name;
S.setN(name);
//cout << endl;
cout << “年龄:”;
string age;
while (in >> age)
{
if (S.AllisNum(age) && S.Num(age) > 10 && S.Num(age) < 60) {
S.setA(age);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “性别:”;
string sex;
while (in >> sex)
{
if (sex == “男” || sex == “女”)
{
S.setS(sex);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “输入学号:”;
string Id;
while (in >> Id)
{
if(S.AllisNum(Id))
{
S.setI(Id);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “综合分数:”;
string grade;
while (in >> grade)
{
if (S.AllisNum(grade) && S.Num(grade) >= 0 && S.Num(age) <= 100) {
S.setG(grade);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “学费:”;
string fee;
while (in >> fee)
{
if (S.AllisNum(fee) && S.Num(fee) >= 3000 && S.Num(age) <= 10000) {
S.setF(fee);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
return in;
// TODO: 在此处插入 return 语句
}
ostream& operator<<(ostream& out, Student& S)
{
out << “姓名:” << S.getN() << endl;
out << "学号: " << S.getI() << endl;
out << “年龄:” << S.getA() << endl;
out << "性别: " << S.getS() << endl;
out << “综合分:” << S.getG() << endl;
out << "学费: " << S.getF() << endl;
return out;
// TODO: 在此处插入 return 语句
}

文件三:
#pragma once
#include"person.h"
class Teacher :public person
{
private:
string salary;
string subject;
public:
Teacher(string name, string age, string sex, string Id, string salary, string subject);
Teacher();
~Teacher();
string getSa();
void setSa(string salary);
string getSu();
void setSu(string subject);
void behave();
friend istream& operator >> (istream& in, Teacher& S);
friend ostream& operator << (ostream& out, Teacher& S);
};
istream& operator >> (istream& in, Teacher& S);
ostream& operator << (ostream& out, Teacher& S);

#include"teacher.h"
using namespace std;
Teacher::Teacher(string name, string age, string sex, string Id, string salary, string subject):person(name, age, sex, Id)
{
this->salary = salary;
this->subject = subject;
}

Teacher::Teacher()
{
}

Teacher::~Teacher()
{
}

string Teacher::getSa()
{
return this->salary;
}

void Teacher::setSa(string salary)
{
this->salary = salary;
}

string Teacher::getSu()
{
return this->subject;
}

void Teacher::setSu(string subject)
{
this->subject = subject;
}

void Teacher::behave()
{
cout << this->getN() << “去领” << this->getSa() << “元工资” << endl;
}

istream& operator>>(istream& in, Teacher& S)
{
cout << "姓名: ";
string name;
in >> name;
S.setN(name);
//cout << endl;
cout << “年龄:”;
string age;
while (in >> age)
{
if (S.AllisNum(age) && S.Num(age) > 10 && S.Num(age) < 60) {
S.setA(age);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “性别:”;
string sex;
while (in >> sex)
{
if (sex == “男” || sex == “女”)
{
S.setS(sex);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “输入工号:”;
string Id;
while (in >> Id)
{
if (S.AllisNum(Id))
{
S.setI(Id);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “教授科目:”;
string subject;
while (in >> subject)
{
if (subject == “语文” || subject == “数学” || subject == “英语” || subject == “物理” || subject == “生物” || subject == “化学”) {
S.setSu(subject);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
cout << “工资:”;
string salary;
while (in >> salary)
{
if (S.AllisNum(salary) && S.Num(salary) >= 3000 && S.Num(salary) <= 10000) {
S.setSa(salary);
break;
}
else
{
cout << “输出格式错误请重新输入:”;
}
}
return in;
// TODO: 在此处插入 return 语句
}

ostream& operator<<(ostream& out, Teacher& S)
{
out << “姓名:” << S.getN() << endl;
out << "学号: " << S.getI() << endl;
out << “年龄:” << S.getA() << endl;
out << “性别: " << S.getS() << endl;
out << “教授科目:” << S.getSu() << endl;
out << “工资: " << S.getSa() << endl;
return out;
// TODO: 在此处插入 return 语句
}文件四:
#pragma once
#include"Student.h”
#include"teacher.h”
#include
class School
{
public:
void entryS(Student S);//学生入学
void entryT(Teacher T);//老师入职
bool findS(LL S);//查找学生
bool findT(LL T);//查找老师
void deleteS(LL S);//开除学生
void deleteT(LL T);//老师离职
void printT();//打印老师名单
void printS();//打印学生名单
private:
map<LL, Teacher> tea;
map<LL, Student> Stu;
};

#include"school.h"
void School::entryS(Student S)
{
Stu.insert(make_pair(S.Num(S.getI()), S));
}

void School::entryT(Teacher T)
{
tea.insert(make_pair(T.Num(T.getI()), T));
}
bool School::findS(LL S)
{
map<LL, Student>::iterator it;
it = Stu.find(S);
if (it == Stu.end())
{
//cout << “本校无此学生” << endl;
return false;
}
else
{
//cout << “本校有此学生” << endl;
return true;
}
}
bool School::findT(LL T)
{
map<LL, Teacher>::iterator it;
it = tea.find(T);
if (it == tea.end())
{
//cout << “本校无此教职工” << endl;
return false;
}
else
{
//cout << “本校有此工作人员” << endl;
return true;
}
}

void School::deleteS(LL S)
{
if (findS(S))
{
map<LL, Student>::iterator it;
it = Stu.find(S);
Stu.erase(it);
}
else
{
cout << “删除操作失败,并无此学生”;
}
}

void School::deleteT(LL T)
{
if (findT(T))
{
map<LL, Teacher>::iterator it;
it = tea.find(T);
tea.erase(it);
}
else
{
cout << “删除操作失败,并无此老师”;
}

}

void School::printS()
{
for (map<LL, Student>::iterator it = Stu.begin(); it != Stu.end(); it++)
{
cout << it->second;
}
}

void School::printT()
{
for (map<LL, Teacher>::iterator it = tea.begin(); it != tea.end(); it++)
{
cout << it->second;
}
}
文件五:
#include"school.h"
#include
using namespace std;
int main()
{
School sch;
ifstream fin(“Stu.txt”, ios::in);
ifstream fin2(“Tea.txt”, ios::in);
if (!fin || !fin2)
{
cout << “file 打开失败 !” << endl;
return 0;
}
string name;
string age;
string sex;
string Id;
string grade;
string fee;
string salary;
string subject;
while (!fin.eof())
{
fin >> name >> age >> sex >> Id >> grade >> fee;
Student Stu(name, age, sex, Id, grade, fee);
sch.entryS(Stu);
}
while (!fin2.eof())
{
fin2 >> name >> age >> sex >> Id >> salary >> subject;
Teacher T(name, age, sex, Id, salary, subject);
sch.entryT(T);
}
sch.printS();
cout << “华丽的分割线” << endl;
sch.printT();
fin.close();
fin2.close();
return 0;
}

安徽科技学院 信网学院网络文化节 陈鑫鑫相关推荐

  1. 安徽科技学院 信网学院网络文化节 王鑫

    基于Python的文本分词与词云生成--以QQ群聊天记录为例 导入词云制作库wordcloud.中文分词库jieba和re模块等 import wordcloud import jieba impor ...

  2. 安徽科技学院 信网学院网络文化节 孙晓楠

    package CompetitionSXN; import java.util.Scanner; import java.util.regex.Pattern; public class BaseT ...

  3. 安徽科技学院 信网学院网络文化节 刁广

    文件1----javabean package com.game.card; public class card { private String[] card = new String[5000]; ...

  4. 安徽科技学院 信网学院网络文化节 张乐

    #include <stdio.h> #include <windows.h> //获取标准输出.入句柄 HANDLE hOut = NULL; HANDLE hIn = NU ...

  5. 安徽科技学院 信网学院网络文化节 房辉

    import xlrd import xlwt import matplotlib.pyplot as plt import numpy as np 正常显示中文 plt.rcParams['font ...

  6. 安徽科技学院 信网学院网络文化节 朱翔

    import time import random while 1: print("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@") print("O( ...

  7. 安徽科技学院 信网学院网络文化节 李彤彤

    #include<stdio.h> #include<stdlib.h> #include<string.h> #define MAX 100 ///全局变量 st ...

  8. 安徽科技学院 信网学院网络文化节 赵涛

    package wwww; //包名不同记得在这里改包名 /** @Describe:此程序可以自己写一个名单,一个名字一行,特别功能:如果在名字末尾加@, 如 张三@ 则随机点名的时候会默认把张三排 ...

  9. 安徽科技学院 信网学院网络文化节 胡鑫

    import sys sys.setrecursionlimit(1000000000) import tkinter import tkinter.messagebox from tkinter i ...

  10. 安徽科技学院 信网学院网络文化节 刘洪江

    import sys import time books = [{'name': '红楼梦', 'author': ' 曹雪芹', 'price': '19.9'}, {'name': '西游记', ...

最新文章

  1. 单片机c语言实现表格数据调用,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  2. 服务端如何识别是selenium在访问以及解决方案参考二
  3. Android国际化(多语言)实现,支持8.0
  4. SSM(springMVC-spring-mybatis)环境搭建-01-建立Maven-web项目
  5. Qt5.1.1 + VS2010安装错误(Unable to find a Qt build)
  6. jdk自带的Unicode转utf8工具
  7. Visual Studio 2010 单元测试之一---普通单元测试:http://blog.csdn.net/tjvictor/archive/2011/02/09/6175362.aspx...
  8. c语言读入图片matlab,将数据从matlab文件读入C语言
  9. 带你秒学JavaScript
  10. 查看mysql 主从日志_MySQL 主从
  11. 学习笔记——最小生成树
  12. 1150 Travelling Salesman Problem (25 分)(分析题目,细节处理)
  13. python 获取股市数据 baostock + 画K线图 mpl_finance
  14. 算术右移与逻辑右移的区别
  15. 从零学习游戏服务器开发(一) 从一款多人联机实时对战游戏开始
  16. 一文读懂命名实体识别
  17. 实现 外网 远程桌面 连接 个人pc(开机自启动,校园网web自动验证,多用户远程桌面)
  18. 上海往事之2015-07股市风云录
  19. 【100条企业网站推广方法】
  20. 2022年下半年网络规划设计师考试下午真题

热门文章

  1. php获得视频文件扩展名,php 获取文件扩展名的 n 种方法
  2. 计算机地图制图的优点,计算机地图制图实习报告.doc
  3. 高中计算机学科关于德育的论文,浅析如何在信息技术教学中实现德育教育
  4. 数字后端概念——MIM cell
  5. [无线]无线传输距离预估计算
  6. rpm -ivh *rpm 是什么意思
  7. 免费可商用图片素材网站,建议收藏
  8. 什么是PID控制中的超调
  9. 容器网络之Kubernetes CNI
  10. 惠普打印机WiFi连接使用