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

📄 managestudent.cpp

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

#include "stdafx.h"
#include <ctime>
#include <conio.h>

#include "ManageStudent.h"
#include "Brower.h"
#include "Find.h"
#include "Student.h"
#include"iostream"
#include<sstream>
#include<fstream>
#include<iomanip>
using namespace std;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

vector<CStudent> CManageStudent::data;
extern CManageStudent*pBase;

string CManageStudent::title[8]={"学号", "序号","姓名","高等数学", "普通物理", "离散数学", "计算机","英语"};
int CManageStudent::wid[8]={12,6,8,10,10,10,8,6};
ostream&operator<<(ostream&os,CStudent st);

void CManageStudent::ShowMenu(){
     time_t t;
    time(&t);
	cout<<endl;
    system("cls");
	cout<<"******welcome!当前系统时间:"<< ctime(&t)<< endl;
	cout<<"*******************学生成绩管理系统*****************\n";
	cout<<"1 预览\t2 查找\t3 添加\t4 保存\t0 退出\n";
	cout<<"****************************************************\n";
}

void CManageStudent::OnBrower(){
	pBase=new CBrower(pBase);
}

void CManageStudent::OnFind()
{
	pBase=new CFind(pBase);
}
void CManageStudent::OnInvalidateInput(char*str){
	cout<<str<<endl;
}
bool CManageStudent::InitialData()//变量data进行初始化
{
	ifstream fin("JK05.txt");
	if(fin.fail()){
		cout<<"找不到数据文件"<<endl;
		return false;
	}
	string s;//定义一个读取文件每一行的string对象
	getline(fin,s);//将标题行读出,不用
	while(getline(fin,s))
	{
		istringstream istr(s);
		CStudent st;
		istr>>st.ID() ;
		istr>>st.SN() ;
		istr>>st.Name() ;
		for(int i=0;i<5;i++)
			istr>>st[i] ;
		data.push_back(st);
	}
	fin.close();

	return true;
}


void CManageStudent::OnAddData()
{
	char ch;
	do{
		CStudent st;
		st.ID()=data[data.size ()-1].ID() ;
		st.ID()[st.ID().size()-1]++;
		st.SN() =data[data.size()-1].SN() ;
		st.SN()[st.SN().size()-1]++;
		cout<<"请输入学生姓名:";
		cin>>st.Name();
		for(int i=0;i<5;i++)
		{
			cout<<"请输入"<<title[i+3];//高等数学成绩:";
			cin>>st[i];
		}
		cout<<"输入正确吗?y表示确定;r表示重新输入;n表示放弃\n";
		cin>>ch;
		if(ch=='y')
			data.push_back(st);
	}while(ch=='r');
}

bool CManageStudent::OnSave()
{
	ofstream fout("JK05.txt");
	if(fout.fail()){
		cout<<"无法保存"<<endl;
		return false;
	}
	for(int i=0;i<8;i++)
		fout<<title[i]<<" ";
	fout<<endl;
	vector<CStudent>::iterator it=data.begin();
	while(it!=data.end()){
		CStudent st=*it;
		fout<<st.ID() ;
		fout<<" "<<st.SN();
		fout<<" "<<st.Name();
		for(int i=0;i<5;i++)
			fout<<" "<<st[i];
		fout<<endl;
		it++;
	}
	fout.close();
	return true;
}



void CManageStudent::DoEvent(int ID) {
	switch(ID)
	{
	case 1:
		OnBrower();
		break;
	case 2:
		OnFind();
		break;
	case 3:
		OnAddData();
		break;
	case 4:
		OnSave();
		break;
	case 0:
		cout<<"Good By\n";
		exit(0);
	default:
        OnInvalidateInput("输入1,2,3,4,0");
		break;
	}
}



⌨️ 快捷键说明

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