⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 find.cpp

📁 大二时做的课程设计
💻 CPP
字号:
// Find.cpp: implementation of the CFind class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Find.h"
#include "Student.h"
#include "ManageStudent.h"
#include <iostream>
#include<iomanip>
#include<sstream>
#include<fstream>
#include<vector>
#include <string>
#include "Oncredit.h"
using namespace std;

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
ostream&operator<<(ostream&os,const CStudent&st);

extern CManageStudent*pBase;
void CFind::ShowMenu(){
	cout<<endl;
	cout<<"*************************查找*************************\n";
	cout<<"1 按名字查找\t2 查找高分\t3 查找低分\t4学分查找\t0 退出\n";
	cout<<"******************************************************\n";
}

void CFind::DoEvent(int ID)
{
	switch(ID)
	{
	case 1:
		OnFindName();
		break;
	case 2:
		OnFindHighScore();
		break;
	case 3:
		OnFindLowScore();
		break;
    case 4:
		OnFindcredit();
		break;
	case 0:
		cout<<"退出查找菜单\n";
		pBase=parent;
		delete this;
		break;
	default:
        OnInvalidateInput("输入1,2,3,0");
		break;
	}
}

void CFind::OnFindName()
{
	string name;
	cout<<"输入要查找的学生姓名:";
	cin>>name;
	vector<CStudent>::iterator it=data.begin();
	string tmp;
	bool first=true;
	while(it!=data.end())
	{
		if((*it).Name()==name)
		{
			if(first)
			{
				for(int i=0;i<8;i++)
					cout<<setw(wid[i])<<title[i];
				cout<<endl;
				first=false;
			}
		cout<<*it<<endl;
		}
		it++;
	}
}


void CFind::OnFindHighScore()
{
	string score_name;
	cout<<"输入课程名:";
	cin>>score_name;
	int num=0,index=3;
	while(index<8)//算出用户输入的是第几门课程
	{
		if(title[index]==score_name)
			break;
		index++;
	}
	vector<CStudent>::iterator it=data.begin();
	if(index>=8)
	{
		cout<<"课程名不对\n";
		return;
	}
	int score;
	cout<<"输入成绩:";
	cin>>score;
	bool first=true;
	while(it!=data.end())
	{
		if((*it)[index-3]>=score)
		{
			if(first)
			{
				first=false;
				for(int i=0;i<8;i++)
					cout<<setw(wid[i])<<title[i];
				cout<<endl;
			}
			cout<<*it<<endl;
			num++;
		}
		it++;
	}
	cout<<"\n共有"<<num<<"位同学的《"<<score_name<<"》的成绩不低于"<<score<<endl;
}
void CFind::OnFindLowScore()
{
	string score_name;
	cout<<"输入课程名:";
	cin>>score_name;
	int num=0,index=3;
	while(index<8)//算出用户输入的是第几门课程
	{
		if(title[index]==score_name)
			break;
		index++;
	}
	vector<CStudent>::iterator it=data.begin();
	if(index>=8)
	{
		cout<<"课程名不对\n";
		return;
	}
	int score;
	cout<<"输入成绩:";
	cin>>score;
	bool first=true;
	while(it!=data.end())
	{
		if((*it)[index-3]<=score)
		{
			if(first)
			{
				first=false;
				for(int i=0;i<8;i++)
					cout<<setw(wid[i])<<title[i];
				cout<<endl;
			}
			cout<<*it<<endl;
			num++;
		}
		it++;
	}
	cout<<"\n共有"<<num<<"位同学的《"<<score_name<<"》的成绩不高于"<<score<<endl;
}   
    
    void CFind::OnFindcredit(){
      CFind*pBase=0;
    
	pBase=new COncredit(pBase);
    pBase->ShowMenu();
	int ID;
	cin>>ID;
	pBase->DoEvent(ID);

}






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -