📄 managestudent.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 + -