C++大作业项目原创最新教师课程管理系统.docx
《C++大作业项目原创最新教师课程管理系统.docx》由会员分享,可在线阅读,更多相关《C++大作业项目原创最新教师课程管理系统.docx(14页珍藏版)》请在冰豆网上搜索。
C++大作业项目原创最新教师课程管理系统
项目2:
教师课程管理系统
要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能及设计出比较友好的界面等。
1、问题描述(功能要求):
主要有四类课程:
公共基础课、
专业基础课、
专业课和
公选课。
现在,需要存储这些课程的编号、名称、级别、学时和基本课酬,
以及老师的编号、姓名、所授课班编号、班级数和课酬,并显示全部信息。
其中,
1)课程编号在生成课程信息时同时生成,每输入一个课程信息编号顺序加1。
2)程序对部分课程有提升级别的功能
3)课酬的计算方法是:
老师授公共基础课1的班级数为1~3,课程为基本课酬乘以班级数,当班级数为4~6,课程为基本课酬的1.1倍乘以班级数,当班级数大于6,课程为基本课酬的1.2倍乘以班级数;
老师授专业基础课2和专业课3都按班级数*1.2*基本课酬计算课酬;
老师授公选课4,课酬按基本课酬*班级计算。
4)能按课程名字或者老师编号显示、查找、增加、删除和保存各种课程和老师信息。
代码献上
/*目标:
前期完成简单功能
中期完成漏洞完善
后期引进file输入输出流
*学习MFC进行外观设计*/
/*进度跟进栏:
6/9完成课程类的定义7/2MD终于写出来了*/
#include
usingnamespacestd;
#include
#include
#include
#include
intconstmax=100;
classcl{
//教师信息
intjsid,shu,sal,tagjs;
stringjsname;
intstaticauto_jsid;
//课程类信息
intclid,type,rank,hour,pay,tagcl;
stringclname;
intstaticauto_clid;
public:
//获得教师
intgetjsid(){returnjsid;}
intgetshu(){returnshu;}
intgettagjs(){returntagjs;}
stringgetjsname(){returnjsname;}
//获得课程
intgetclid(){returnclid;}
intgettype(){returntype;}
intgetrank(){returnrank;}
intgethour(){returnhour;}
intgetpay(){returnpay;}
intgettagcl(){returntagcl;}
stringgetclname(){returnclname;}
//教师赋值
voidnumjs(){auto_jsid++;jsid=auto_jsid;}
voidsetshu(inta){shu=a;}
voidsettagjs(inta){tagjs=a;}
voidsetjsname(stringa){jsname=a;}
//课程赋值
voidnumcl(){auto_clid++;clid=auto_clid;}
voidsettype(inta){type=a;}
voidsetrank(inta){rank=a;}
voidsethour(inta){hour=a;}
voidsetpay(inta){pay=a;}
voidsettagcl(inta){tagcl=a;}
voidsetclname(stringa){clname=a;}
//计算教师工资special
intgetsal(){
intsal;
switch(type){
case1:
if(shu>=1&&shu<=3)sal=shu*pay;
if(shu>=4&&shu<=6)sal=shu*pay*1.1;
if(shu>6)sal=shu*pay*1.2;
break;
case2:
case3:
sal=shu*pay*1.2;
break;
case4:
sal=shu*pay;
break;
}
returnsal;
}
//显示类
voiddispcl(){//普通显示课程
cout<<"课程编号:
"<cout<<"课程名:
"<cout<<"课程类型:
";
if(type==1)cout<<"公共基础课"<if(type==2)cout<<"专业基础课"<if(type==3)cout<<"专业课"<if(type==4)cout<<"公选课"<cout<<"课程学时:
"<cout<<"课程等级:
"<cout<<"课程基本课酬:
"<cout<<"任意键继续"<voiddispjs(){//普通显示教师
cout<<"教师编号:
"<cout<<"教师名:
"<if(tagcl!
=1){
cout<<"所教课程编号:
"<cout<<"所教课程名:
"<cout<<"所教课程班级数:
"<cout<<"教师工资:
"<};//类结束
intcl:
:
auto_clid=0;
intcl:
:
auto_jsid=0;
//课程类数据库
classclDB{///////////////////////////////////////////////////////////////////////
intstatictopcl;
cl*r;
clclas[max];
public:
//课程类函数***********************************************************
//查找clid
cl*querycl(intid){
for(inti=0;i<=topcl;i++){
if(clas[i].getclid()==id&&clas[i].gettagcl()==0){
return&clas[i];}}
cout<<"未找到指定的内容!
(任意键返回)";getch();returnNULL;}
//判断
booliscl(intid){
if(querycl(id)!
=NULL){return1;}
elsereturn0;}
//新增
voidaddcl(){
topcl++;
if(topcl>=max){cout<<"超出数据库数量!
"<else{
intblank;
stringb;
cout<"<cin>>b;
clas[topcl].setclname(b);
cout<"<cout<cout<cout<cout<cin>>blank;
while
(1){
if((int)blank!
=1&&(int)blank!
=2&&(int)blank!
=3&&(int)blank!
=4){
cout<<"输入错误!
"<cout<"<cout<cout<cout<cout<cin>>blank;}
elsebreak;}
clas[topcl].settype(blank);
cout<"<cin>>blank;
while
(1){
if(!
((int)blank>=0&&(int)blank<=180)){
cout<<"输入错误!
"<cout<"<cin>>blank;}
elsebreak;}
clas[topcl].sethour(blank);
cout<"<cin>>blank;
while
(1){
if(!
(blank>=0&&blank<=999)){
cout<<"输入错误!
"<cout<"<cin>>blank;}
elsebreak;}
clas[topcl].setpay(blank);
cout<"<cout<cin>>blank;
while
(1){
if(blank!
=1&&blank!
=2&&blank!
=3){
cout<<"输入错误!
"<cout<"<cout<cin>>blank;}
elsebreak;}
clas[topcl].setrank(blank);
clas[topcl].settagcl(0);
clas[topcl].numcl();
cout<<"新的课程编号为:
"<cout<cout<getch();}
}
//更改
voidchangecl(){
cout<<"输入要更改的课程编号:
"<intid,blank;
stringb;
cin>>id;
r=querycl(id);
r->dispcl();
cout<<"更改课程名:
"<cin>>b;
r->setclname(b);
cout<<"更改课程类型:
"<cin>>blank;
r->settype(blank);
cout<<"更改课程等级:
"<cin>>blank;
r->setrank(blank);
cout<<"更改课程学时:
"<cin>>blank;
r->sethour(blank);
cout<<"更改课程课酬:
"<cin>>blank;
r->setpay(blank);}
//删除
voiddelcl(){
cout<<"输入要删除课程的编号:
"<intid;
cin>>id;
r=querycl(id);
cout<<"确定删除课程:
"<'<<"(Y/N)";
chars;
cin>>s;
if(s=='Y'){r->settagcl
(1);cout<<"删除成功!
任意键返回";getch();}
elsecout<<"取消删除"<//显示
voidshowcl()
{cout<<"输入要显示的课程编号:
";
intcid;
cin>>cid;
r=querycl(cid);
cout<r->dispcl();
}
//教师类函数*******************************************************************************
//查找
cl*queryjs(intid){
for(inti=0;i<=topcl;i++){
if(clas[i].getjsid()==id&&clas[i].gettagjs()==0){
return&clas[i];}}
returnNULL;}
//判断
boolisjs(intid){
if(queryjs(id)!
=NULL){return1;}
elsereturn0;}
//新增
voidaddjs(){
stringb;intblank;
cout<<"输入要添加教师的课程编号:
";
cin>>blank;
r=querycl(blank);
r->numjs();//新增了一个教师编号,就当是新建了一个教师,新建之后才能用queryjs
cout<<"输入该教师的名字:
";
cin>>b;
r->setjsname(b);//
cout<<"输入该教师的班级数:
";
intblank2;
cin>>blank2;
r->setshu(blank2);
r->settagjs(0);
cout<<"新的教师编号为:
";
cout<getjsid();}
//删除
voiddeljs(){
cout<<"输入要删除教师的编号:
"<intid;
cin>>id;
r=queryjs(id);
cout<<"确定删除教师:
"<'<<"Y/N";
chars;
cin>>s;
if(s=='Y'){r->settagjs
(1);}
elsecout<<"取消删除";}
//显示
voidshowjs()
{cout<<"输入要显示的教师编号:
";
intjsid;
cin>>jsid;
r=queryjs(jsid);
cout<while
(1){
if(isjs(jsid)){
r->dispjs();
break;}
elsecout<<"没有这个课程,重新输入:
";
cin>>jsid;cout<};
intclDB:
:
topcl=0;
intmain(){
cout<cout<<"TT辛辛苦苦大程序--------------------------泪流满面写出来TT"<cout<<""<cout<<"
TT>"<cout<<""<cout<<"TT辛辛苦苦大程序--------------------------泪流满面写出来TT"<cout<<"*****************************"<cout<<"*感谢使用本教师课程管理系统*"<cout<<"*!
第一次使用请先建立新课程!
*"<cout<<"*工程管理1202班*"<cout<<"*老师:
黄晓涛*"<cout<<"*组长:
杨慧杰*"<cout<<"*组员:
周启瑞、李益、袁正宇*"<cout<<"*****************************"<cout<getch();
system("cls");
charkey;
stringcid,jsid;
clDBclass1;
intentrance=1;
while(entrance)
{system("cls");
cout<cout<<"YO!
HEI!
YO!
HEI!
程序写出来~哦也!
"<cout<<"请选择操作内容:
"<cout<<"A课程管理;"<cout<<"a.增加课程信息;"<cout<<"b.修改课程信息;"<cout<<"c.删除课程信息;"<cout<<"d.显示课程信息;"<cout<<"***********************************"<cout<<"B教师管理;"<cout<<"1.增加教师信息;"<cout<<"2.删除教师信息;"<cout<<"3.显示教师信息;"<cout<<"***********************************"<cout<<"0.退出;"<cout<<"请选择按键:
";
cin>>key;
cout<switch(key)
{
case'a':
class1.addcl();
cout<";
break;
case'b':
class1.changecl();
break;
case'c':
class1.delcl();
break;
case'd':
class1.showcl();
break;
case'1':
//新建教师
class1.addjs();//这个函数要好好写,自动编号教师名字
cout<"<break;
case'2':
class1.deljs();
break;
case'3':
class1.showjs();
break;
case'0':
entrance=0;
cout<<"再见啦~·~~~~";
break;
default:
cout<<"输入错误!
";
break;
}
}
return0;}