?? 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 + -