📄 mian.cpp
字号:
#define _DEBUG_
#include <Windows.h>
#include <WinCon.h>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
#include <assert.h>
#include "person.h"
#include "teacher.h"
#include "student.h"
#include "course.h"
#include "class.h"
using namespace std;
typedef list<Class>::iterator cls_iter;
typedef list<Course>::iterator crs_iter;
typedef list<Student>::iterator stu_iter;
bool loginSession();
void loginInterface();
void setColor(int);
void setCursorPosition(int,int);
void mainWin();
void mulClsMgt();
void mulCrsMgt();
void sglClsMgt(Class &);
void sglCrsMgt(Course &);
void lstStuIn( Class &);
void addStuIn(Class &);
void fndStuIn(Class &);
void mdfStuIn(Class &);
void delStuIn(Class &);
void lstStu(Class &);
void addStu(Class &);
void fndStu(Class &);
void mdfStu(Class &);
void delStu(Class &);
void lstCrs();
void addCrs();
void fndCrs();
void mdfCrs();
void delCrs();
void saveClasses();
void saveCourses();
void loadClasses();
void loadCourses();
void lstAllClsBase();
void lstAllCrsBase();
void lstSglStuCrs(int,Class &);
void clsCourseInfo(Class &);
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
ifstream inClass;
ofstream outClass;
ifstream inCourse;
ofstream outCourse;
list<Class> classes; //所有班级
list<Course>courses; //所有课程
int classesNumber;
int coursesNumber;
int main_()
{
const teaNum=6;
string teaName[teaNum]={"H.M.Deitel","Kuth","James F.Kurose","Bruce Eckel","Kobe","候捷"};
int teaId[teaNum]={101,102,103,104,105,106};
Sex teaSex[teaNum]={MALE,MALE,MALE,MALE,MALE,MALE};
Teacher teas[teaNum];
for (int i=0;i<teaNum;i++)
{
teas[i]=Teacher(teaName[i],teaId[i]);
cout<<teas[i].id<<" "<<teas[i].name<<" "<<teas[i].sex<<endl;
}
const crsNum=teaNum;
string crsName[crsNum]={"C++程序设计","软件工程","计算机网络","Thinking in Java","篮球(一)","Word排版艺术"};
int crsId[crsNum]={201,202,203,304,205,206};
float crsScore[crsNum]={90,85,93,98,89,87};
Course cours[crsNum];
for (int i=0;i<crsNum;i++)
{
cours[i]=Course(crsName[i],crsId[i],crsScore[i]*0);
cout<<crsName[i]<<" "<<crsId[i]<<" "<<crsScore[i]<<endl;
cours[i].setTeacher(teas[i]);
courses.push_back(cours[i]);
}
coursesNumber=crsNum;
const stuNum=12;
string stuName[stuNum]=
{
"Susan","Fall","Fengcool","Jana","大伟","Tea",
"Caption","Bill","竹子","小米","Linus","SHE"
};
int stuId[stuNum]=
{
301,302,303,304,305,306,
307,308,309,310,311,312
};
Sex stuSex[stuNum]=
{
FEMALE,MALE,FEMALE,FEMALE,MALE,FEMALE,
MALE,MALE,FEMALE,FEMALE,MALE,FEMALE
};
Student stus[stuNum];
srand( (unsigned)time( NULL ) );
for (int i=0;i<stuNum;i++)
{
stus[i]=Student(stuName[i],stuId[i],stuSex[i]);
for (int j=0;j<crsNum;j++)
{
float f=rand()*45/32767+55.0;
cours[j].setScore(f);
stus[i].addCourse(cours[j]);
}
}
int k=0;
Class cs0401("cs0401",401);
for(;k<stuNum/3;k++)
{
cs0401.addStudent(stus[k]);
}
Class cs0402("cs0402",402);
for(;k<2*stuNum/3;k++)
{
cs0402.addStudent(stus[k]);
}
Class cs0403("cs0403",403);
for(;k<stuNum;k++)
{
cs0403.addStudent(stus[k]);
}
classes.push_back(cs0401);
classes.push_back(cs0402);
classes.push_back(cs0403);
classesNumber=3;
/*Teacher marry("Marry",201,MALE);
Teacher jack("Jack",202);
Teacher bill("Bill",203);
Teacher kobe("Kobe",204);
Course math("高等数学",301);
Course cs("计算机基础",302);
Course database("数据库",303);
Course pe("体育",304);
math.setTeacher(bill);
cs.setTeacher(marry);
database.setTeacher(jack);
pe.setTeacher(kobe);
courses.push_back(math);
courses.push_back(cs);
courses.push_back(database);
courses.push_back(pe);
coursesNumber=4;
Student susan("Susan",101,FEMALE);
Student jana("Jana",102,FEMALE);
Student fall("Fall",103,MALE);
Student fengcool("Fengcool",104,FEMALE);
susan.addCourse(math);
susan.addCourse(pe);
jana.addCourse(math);
jana.addCourse(pe);
//math.setScore(59);
fall.addCourse(database);
fall.addCourse(cs);
fengcool.addCourse(database);
fengcool.addCourse(cs);
Class cs0403("CS0403",403);
Class cs0404("CS0404",404);
cs0403.addStudent(susan);
cs0403.addStudent(jana);
cs0404.addStudent(fall);
cs0404.addStudent(fengcool);
classes.push_back(cs0403);
classes.push_back(cs0404);
classesNumber=2;
*/
saveClasses();
saveCourses();
//classes.front().printClass();
classes.clear();
courses.clear();
loadClasses();
loadCourses();
cout<<"\n~~~~~~~~\n";
courses.front().printCourse();
return 0;
}
int main()
{
cout.setf(ios::left);
SetConsoleTitle("I LOVE YOU!");
loginSession();
mainWin();
return 0;
}
bool loginSession()
{
loginInterface();
return true;
}
void loginInterface()
{
setColor(10);
setCursorPosition(32,5);
cout<<"学生学籍管理系统";
setCursorPosition(34,8);
cout<<"华中科技大学";
setCursorPosition(0,23);
//cout.setf(ios::left);
//cout<<"按任意健继续......";
cin.get();
}
void mainWin()
{
loadClasses();
loadCourses();
int chs=0;
do{
system("cls");
setCursorPosition(0,4);
cout<<setw(20)<<"(1) 班级管理";
cout<<" 共 "<<setw(2)<<classesNumber <<" 个班"<<endl;
cout<<'\n';
cout<<setw(20)<<"(2) 课程管理";
cout<<" 共 "<<setw(2)<<coursesNumber <<" 课程"<<endl;
setCursorPosition(0,23);
cout<<"请选择管理项(1~2),退出(0):";
cin>>chs;
//cin.ignore();//跳过换行?
switch(chs)
{
case 1:
mulClsMgt();
break;
case 2:
mulCrsMgt();
default: ;
}
}while(chs!=0);
saveClasses();
saveCourses();
}
void mulClsMgt()
{
system("cls");
//cout.setf(ios::left);
cout<<setw(20)<<"班级编号"<<setw(20)<<"班级名"<<setw(20)<<"班级人数"<<endl;
lstAllClsBase();
setCursorPosition(0,23);
cout<<"请选择要管理的班级(班级编号):";
int classId;
cin>>classId;
cin.ignore();
cls_iter iter = classes.begin();
while (iter!=classes.end())
{
if(classId==(*iter).getId())
{
Class &cl=(*iter);
sglClsMgt(cl);
break;
}
iter++;
}
}
void sglClsMgt(Class &cl)
{
int chs =0;
do {
system("cls");
cout<<"欢迎光临"<<cl.getName();
setCursorPosition(0,5);
cout<<setw(40)<<"(0) 返回上级会话"<<endl;
cout<<setw(40)<<"(1) 查看学生信息"<<endl;
cout<<setw(40)<<"(2) 添加学生信息"<<endl;
cout<<setw(40)<<"(3) 查找学生信息"<<endl;
cout<<setw(40)<<"(4) 修改学生信息"<<endl;
cout<<setw(40)<<"(5) 删除学生信息"<<endl;
cout<<setw(40)<<"(6) 查看班级课程"<<endl;
setCursorPosition(0,23);
cout<<"请选择(0~6): ";
cin>>chs;
switch(chs)
{
case 1:
lstStu(cl);
break;
case 2:
addStu(cl);
break;
case 3:
fndStu(cl);
break;
case 4:
mdfStu(cl);
break;
case 5:
delStu(cl);
break;
case 6:
clsCourseInfo(cl);
break;
default: ;
}
}while(chs!=0);
}
void mulCrsMgt()
{
system("cls");
cout<<setw(20)<<"课程号"<<setw(20)<<"课程名"<<setw(20)<<"选课人数"<<endl;
lstAllCrsBase();
setCursorPosition(0,23);
cout<<"按任意键继续.....";
cin.ignore();//跳过换行
cin.get();
int chs=0;
do
{
system("cls");
setCursorPosition(0,5);
cout<<setw(40)<<"(1) 查看课程信息"<<endl;
cout<<setw(40)<<"(2) 添加课程信息"<<endl;
cout<<setw(40)<<"(3) 查找课程信息"<<endl;
cout<<setw(40)<<"(4) 修改课程信息"<<endl;
cout<<setw(40)<<"(5) 删除课程信息"<<endl;
cout<<setw(40)<<"(6) 返回上级会话"<<endl;
setCursorPosition(0,23);
cout<<"请选择(1~6):";
cin>>chs;
switch(chs) {
case 1:
lstCrs();
break;
case 2:
addCrs();
break;
case 3:
fndCrs();
break;
case 4:
mdfCrs();
break;
case 5:
delCrs();
break;
default:;
}
}while(chs!=6);
}
void lstStuIn( Class &cl)
{
list<Student>::iterator iBegin= cl.students.begin();
list<Student>::iterator iEnd= cl.students.end();
while (iBegin!=iEnd)
{
(*iBegin).printBase();
cout<<endl;
iBegin++;
}
}
void lstStu(Class & cl)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -