【一个C++程序】小课设

#include <iostream>
#include <string>
#include <vector>

using namespace std;

//学生类
class student
{
private:
    string name;        //姓名
    int age;            //年龄
    string code;        //学号
    int nianji;         //年纪
    int grade;          //成绩
public:
    //构造函数
    student(){}
    student(string na, int a, string c, int n, int g):name(na), age(a), code(c), nianji(n), grade(g) {}
    string getName() { return name; }
    void setName(string na) { this->name = na; }
    int getAge() {return age;}
    void setAge(int age) { this->age = age; }
    string getCode() { return code; }
    void setCode(string c) { this->code = c;}
    int getNianji() { return nianji; }
    void setNianji(int nj) { this->nianji = nj; }
    int getGrade() { return grade; }
    void setGrade(int g) { this->grade = g; }
	/*
    student& operator = (const student& s)
    {
        name = s.name;        //姓名
        age = s.age;            //年龄
        code = s.code;        //学号
        nianji = s.nianji;         //年纪
        grade = s.grade;          //成绩

        return *this;
    }
	*/
};

//教师类
class teacher
{
private:
    string name;        //姓名
    int age;            //年龄
    int gongHao;         //工号
    int classTime;       //课时
    int money;          //课时费
public:
    //构造函数
    teacher(){}
    teacher(string na, int a, int gh, int ct, int m):name(na), age(a), gongHao(gh), classTime(ct), money(m) {}
    string getName() { return name; }
    void setName(string na) { this->name = na; }
    int getAge() {return age;}
    void setAge(int age) { this->age = age; }
    int getGongHao() { return gongHao; }
    void setGongHao(int gh) { this->gongHao = gh; }
    int getClassTime() { return classTime; }
    void setClassTime(int ct) { this->classTime = ct; }
    int getMoney() { return money; }
    void setMoney(int m) { this->money = m; }
};

//员工类
class employee
{
private:
    string name;        //姓名
    int age;            //年龄
    int gongHao;         //工号
    int money;          //月薪
public:
    //构造函数
    employee(){}
    employee(string na, int a, int gh, int m):name(na), age(a), gongHao(gh), money(m) {}
    string getName() { return name; }
    void setName(string na) { this->name = na; }
    int getAge() {return age;}
    void setAge(int age) { this->age = age; }
    int getGongHao() { return gongHao; }
    void setGongHao(int gh) { this->gongHao = gh; }
    int getMoney() { return money; }
    void setMoney(int m) { this->money = m; }
};

void MaoPao(vector<student> vs, vector<student> &vgai)
{
    student temp1, temp2;
    //根据分数进行排序,然后放入到vector中去,依次找到最小的然后去掉它就可以了
    for(int i = 0 ; vs.size() > 0  ; )
    {
        //每次都取当前的第一个,因为我会一直删里面的类
        temp1=vs[i];
        //和后面的比较
        for(auto j=vs.begin()+1 ; j != vs.end() ; ++j)
        {
            temp2=*j;

            if(temp1.getGrade()<temp2.getGrade())
            {
                //如果第一个是小的,那么就交换,一直到找到最大的
                temp1=temp2;
            }
        }
        //第一层循环完成,找到当前最大的,放入到vgai的第一个
        //cout<<temp1.getGrade()<<" xx "<<endl;
        vgai.push_back(temp1);
        //吧当前的temp1从vs去掉,直到vs被搬空为止
		vector<student>::iterator itr = vs.begin();
		while (itr != vs.end())
		{
			if (itr->getName() == temp1.getName())
			{
				vs.erase(itr);//删除值为3的元素
				break;
			}
			++itr;
		}
    }
}

void print(vector<teacher> vt)
{
	const string NAME1 = "高代老师名字", NAME2 = "数分老师名字", NAME3 = "英语老师名字";

	cout << "各科教师的信息是:" << endl;
	cout << "姓名\t\t年龄\t工号\t课时\t课时费\t" << endl;
	for (auto it = vt.begin(); it != vt.end(); ++it)
	{
		teacher t = *it;
		string s = t.getName();
		if (s == NAME1 || s == NAME2 || s == NAME3)
		{
			cout << t.getName() << "\t"
				<< t.getAge() << "\t"
				<< t.getGongHao() << "\t"
				<< t.getClassTime() << "\t"
				<< t.getMoney() << endl;
		}
	}
}

int main()
{
    vector<student> vs, vgai;
    student s1("myName1", 19, "20130901001", 2, 98);        //自己是第一个,内定了
    student s2("myName2", 19, "20130901002", 2, 94);
    student s3("myName3", 19, "20130901003", 2, 33);
    student s4("myName4", 19, "20130901004", 2, 45);
    student s5("myName5", 19, "20130901005", 2, 75);
    student s6("myName6", 19, "20130901006", 2, 12);
    student s7("myName7", 19, "20130901007", 2, 77);
    student s8("myName8", 19, "20130901008", 2, 33);
    student s9("myName9", 19, "20130901009", 2, 55);
    student s10("myName10", 19, "20130901010", 2, 78);
    student s11("myName11", 19, "20130901011", 2, 28);
    student s12("myName12", 19, "20130901012", 2, 58);
    student s13("myName13", 19, "20130901013", 2, 8);
    student s14("myName14", 19, "20130901014", 2, 58);
	//1-----------------------------------------------------------------------
    cout<<"我的信息是:"<<endl;
    cout<<"姓名\t\t年龄\t学号\t\t年级\t成绩\t"<<endl;
    cout<<s1.getName()<<"\t\t"
        <<s1.getAge()<<"\t"
        <<s1.getCode()<<"\t"
        <<s1.getNianji()<<"\t"
        <<s1.getGrade()<<endl;

    //输出最近的10位,不会数据库只能用这种蠢方法
    vs.push_back(s1); vs.push_back(s2); vs.push_back(s3); vs.push_back(s4);
    vs.push_back(s5); vs.push_back(s6); vs.push_back(s7); vs.push_back(s8);
    vs.push_back(s9); vs.push_back(s10); vs.push_back(s11); vs.push_back(s12);
    vs.push_back(s13); vs.push_back(s14);
    vector<student>::iterator it = vs.begin();
    int count = 1;  //计数10个
	//2-----------------------------------------------------------------------
    cout<<"后面10位的信息"<<endl;
    while(it != vs.end() && count <= 11)
    {
        cout<<it->getName()<<"        "
        <<it->getAge()<<"\t"
        <<it->getCode()<<"\t"
        <<it->getNianji()<<"\t"
        <<it->getGrade()<<endl;
        ++it;
        ++count;
    }

	//3-----------------------------------------------------------------------
    MaoPao(vs, vgai);
    cout<<endl;
        cout<<"排序后:"<<endl;
    vector<student>::iterator it2 = vgai.begin();
    //int count2 = 1;  //计数10个

    while(it2 != vgai.end())
    {
        cout<<it2->getName()<<"        "
        <<it2->getAge()<<"\t"
        <<it2->getCode()<<"\t"
        <<it2->getNianji()<<"\t"
        <<it2->getGrade()<<endl;
        ++it2;
    }

	//4-----------------------------------------------------------------------
	vector<teacher> vt;
	teacher t1("高代老师名字", 60, 001, 30, 7000), t2("数分老师名字", 60, 002, 30, 9980),
		t3("英语老师名字", 998, 003, 2, 700), t4("牛逼老师名字", 60, 004, 30, 7000);

	vt.push_back(t1), vt.push_back(t2), vt.push_back(t3), vt.push_back(t4);

	print(vt);

	char c;
	cin>>c;

    return 0;
}

一个小题,同学叫我帮忙,我就很快的写了一些,确实很乱,不过要是连上数据库还是有点意思的

时间: 2024-12-20 22:11:34

【一个C++程序】小课设的相关文章

【C++探索之旅】第一部分第三课:第一个C++程序

 内容简介 1.第一部分第三课:第一个C++程序 2.第一部分第四课预告:内存的使用 第一个C++程序 经过上两课之后,我们已经知道了什么是编程,编程的语言,编程的必要软件,C++是什么,我们也安装了适合自己的一个IDE(Integrated Development Environment,就是"集成开发环境"的意思). 如果你真的要开始在Linux下编写程序,除了使用IDE之外(IDE集成了文本编辑器,编译器,调试器,运行程序等),也可以选择另一种难一些的方式:自己用某一种文本编辑

【C语言探索之旅】 第一部分第八课:第一个C语言小游戏

? 内容简介 1.课程大纲 2.第一部分第八课:第一个C语言小游戏 3.第一部分第九课预告: 函数 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文

阿拉丁小程序生态课7月开课,解读小程序的“前世今生”

阿拉丁小程序生态课·北京站将于7月8日13:30-17:30在北京京粮大厦四层方糖小镇举行,开课前期工作正在紧锣密鼓筹备中.会务方透露,本次生态课将从小程序对O2O商业带来的变革.小程序未来的发展.以及小程序如何实现商业化等方面进行探讨.目前已邀约到多位早期小程序应用者以及在小程序上玩出花样的企业负责人进行现场交流. 众多与会行业大咖中有首个标杆微信小程序腾讯自选股小程序负责人张坤.京东到家产品总监练燕杰.险峰长青投资副总裁吴炳见.原极客公园CEO阿禅.花帮主创始人赵继强等,届时将围绕小程序商业

一个Java恶搞小程序

运用Java程序控制某个应用程序的运行(以网易云音乐为例),步骤如下 1.建立bat文件分别是start.bat(控制程序的运行)和kill.bat(控制程序的结束): start.bat 的内容如下,功能是运行程序: cmd /c start F:\\00网易云音乐\\CloudMusic\\cloudmusic.exe exit 具体情况可以视具体情况改写你的应用的安装路径即可 kill.bat的内容如下,功能是结束程序进程: taskkill /f /im "cloudmusic.exe&

需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次,超过5次提示:游戏试玩结束,请付费。

package cn.idcast4; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.Properties; /* * 需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次, *

输出多行字符的一个简单JAVA小程序

1 public class JAVA 2 { 3 public static void main(String[] args) 4 { 5 System.out.println("----------------------"); 6 System.out.println("|| 我要学会 ||"); 7 System.out.println("|| JAVA语言 ||"); 8 System.out.println("-------

一个python爬虫小程序

起因 深夜忽然想下载一点电子书来扩充一下kindle,就想起来python学得太浅,什么“装饰器”啊.“多线程”啊都没有学到. 想到廖雪峰大神的python教程很经典.很著名.就想找找有木有pdf版的下载,结果居然没找到!!CSDN有个不完整的还骗走了我一个积分!!尼玛!! 怒了,准备写个程序直接去爬廖雪峰的教程,然后再html转成电子书. 过程 过程很有趣呢,用浅薄的python知识,写python程序,去爬python教程,来学习python.想想有点小激动…… 果然python很是方便,5

手把手教你构建一个音视频小程序

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯视频云终端团队发表于云+社区专栏 腾讯云提供了全套技术文档和源码来帮助您快速构建一个音视频小程序,但是再好的源码和文档也有学习成本,为了尽快的能调试起来,我们还提供了一个免费的一键部署服务:您只需轻点几下鼠标,就可以在自己的账号下获得一个音视频小程序,同时附送一台拥有独立域名的测试服务器,让您可以在 5 分钟内快速构建出自己的测试环境. 通过微信公众平台授权登录腾讯云 打开 微信公众平台 注册并登录小程序,按如下步骤操作: 单

逆向第二课(逆向第一个.NET程序)

注:本文只演示如何破解,并不讲解原理,原理以及具体名词将在后续文章中详细讲解 一.编写第一个.NET程序(HelloWorld.exe) 既然要逆向.NET程序,我们就首先要有这个.NET程序,通过以下的步骤,将详细介绍如何编写一个.NET程序,并逆向分析其内部实现原理! 1.首先在开始编写程序前,需要安装.NET 2.0框架,框架下载地址:http://www.cr173.com/soft/25219.html 2..NET2.0框架安装完成之后,打开一个记事本,在里面写入如下代码,并且保存为