学生选课系统(c++).docx

上传人:罗晋 文档编号:7195956 上传时间:2020-11-05 格式:DOCX 页数:32 大小:33.87KB
返回 下载 相关 举报
学生选课系统(c++).docx_第1页
第1页 / 共32页
学生选课系统(c++).docx_第2页
第2页 / 共32页
学生选课系统(c++).docx_第3页
第3页 / 共32页
学生选课系统(c++).docx_第4页
第4页 / 共32页
学生选课系统(c++).docx_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《学生选课系统(c++).docx》由会员分享,可在线阅读,更多相关《学生选课系统(c++).docx(32页珍藏版)》请在三一文库上搜索。

1、首先声明此选课系统为win32 console application 上运行, 如果在其他环境下运行的话只要改一下各自的头文件就OK了一、课程类(1)课程类的声明#include#include#include#include using namespace std; #define C 100struct courseschar cName20;/课程名字int cNumber;/课程编号int SlecMax;/选课人数上限int cCount;/已选课人数char Teacher10;/上课老师char Place10;/上课地点char Time10;/上课时间;class cour

2、sepublic:static courses couC;void CourPutin();/课程录入 void CourView();/课程信息浏览 int CourSearch(char c);/课程查找void CourEdit();/课程信息修改 void CourDele();/课程删除 void cReadFile();/读入文件void cWriteFile();/写入文件 friend void PrintCour(courses &cou);static int cNO;/已记录课程数course();(2)、课程类的定义#include stdafx.h#includeme

3、nu.h#include course.h#include#include#include#include#include using namespace std; #define C 100int course:cNO=0;courses course:couC;void PrintCour(courses &cou)coutcou.cNametcou.cNumbertcou.SlecMaxtcou.cCounttcou.Teachertcou.Placetcou.Timetendl;void course:CourDele()system(cls);if(cNO=0)cout课程记录个数为

4、零!;menu:isback();return ;coutn请选择要删除的课程.n;int i=CourSearch(1);/根据课程编号查找课程;i等于-1时没有找到相关课程if(i!=-1)coutn是否删除此课程信息?n1.删除tt2.否t3.退出系统;if(choose(3)=1) coutn正在删除中.n;while(1)for(int j=i;jcNO-1;j+)couj=couj+1;cNO=cNO-1;break;menu:isback();void course:CourPutin()while(1)system(cls);coutn现在开始输入信息!nn请输入:nn;cou

5、tcoucNO.cName;for(int i=0;icNO;i+)if(strcmp(coucNO.cName,coui.cName) coutcoucNO.cName; i=-1;/使 i 至零,继续判断新输入的名字 cout课程编号:t;coucNO.cNumber=isnumber();for(int j=0;jcNO;j+)/判断输入的课程 编号是否已经存在 if(coucNO.cNumber=couj.cNumber) cout该课程编号已经存在!请重新输入:;coucNO.cNumber=isnumber(); j=-1;/使 i 至零,继续判断新输入的名字 cout人数上限:t

6、;coucNO.SlecMax=isnumber();cout已选课人数:t(初始)cCount=0;n;coucNO.cCount=0;coutcoucNO.Teacher;coutcoucNO.Place;coutcoucNO.Time;cNO+;coutn是否继续录入课程?nnt1.是tt2.否t3.退出系统请选择:;/判断是否继续录入课程 if(choose(3)=2)break;menu:isback(); void course:CourView()/课程信息浏览函数 system(cls);if(cNO=0)cout没有记录课程信息!;menu:isback();return ;

7、coutn课程信息如下:nn;cout课程名tt编号t上限t已选人数t教师t教室t时间tnn;for(int i=0;icNO;i+)coutcoui.cNametcoui.cNumbertcoui.SlecMaxtcoui.cCounttcoui.Teachertcoui.Placetcoui.Timetendl; int course:CourSearch(char c)/课程查找,返回课程序号if(cNO=0)cout没有记录课程信息!;return 0; int i;switch(c)case1:coutn请输入课程编号:t;int cnumber=isnumber();for(i=0

8、;icNO;i+)if(cnumber=coui.cNumber)PrintCour(coui);return i;if(i=(cNO-1) coutn没有找到相关课程!n;return -1; break;case2:string cname;coutcname;for(i=0;icNO;i+)if(cname=coui.cName)PrintCour(coui);break;if(i=(cNO-1) coutn没有找到相关课程!n; break;case3:int temp=0;string cteacher;coutcteacher;for(i=0;icNO;i+)if(cteacher

9、=coui.Teacher)PrintCour(coui);temp+;if(temp=0&i=(cNO-1) coutn没有找到相关课程!n; break;case4:int temp=0;string ctime;coutctime;for(i=0;icNO;i+)if(ctime=coui.Time)PrintCour(coui);temp=1;if(temp=0&i=(cNO-1) coutn没有找到相关课程!n; menu:isback(); return i;return i=0;void course:CourEdit()system(cls);if(cNO=0)cout没有记录

10、课程信息!;menu:isback();return ;coutn请输入你要修改的课程编号:n;int number=isnumber();int k;for(k=0;kcNO;k+)if(number=couk.cNumber)break;else if(k=(cNO-1)coutn没有找到相关课程信息n;menu:isback();coutn当前课程信息为n;PrintCour(couk);cout现在开始输入更改信息:n;coutcouk.cName;for(int i=0;(icNO)&(i!=k);i+)if(couk.cName=coui.cName) coutcouk.cName

11、; i=-1;/使 i 至零,继续判断新输入的名字 cout课程编号:t;couk.cNumber=isnumber();for(int j=0;(jcNO)&(j!=k);j+)/判断输入的课程 编号是否已经存在 if(couk.cNumber=couj.cNumber) coutcoucNO.cNumber; j=-1;/使 i 至零,继续判断新输入的名字 cout人数上限:t;couk.SlecMax=isnumber(); coutcouk.cCount;coutcouk.Teacher;coutcouk.Place;coutcouk.Time;cout修改后课程信息为:n;Print

12、Cour(couk); menu:isback(); void course:cWriteFile()ofstream ocoufile(course.dat,ios:binary);if(ocoufile.fail()cout写入文件时打开课程文件失败!endl; exit(0); /退出程序for(int i=0;icNO;i+)ocoufile.write(char*)&coui,sizeof(coui);coutn课程文件保存成功!n;ocoufile.close();void course:cReadFile()ofstream ocoufile(course.dat,ios:bin

13、ary|ios:app);ocoufile.close();ifstream icoufile(course.dat,ios:binary);if(icoufile.fail()cout读取文件时打开课程文件失败!endl; exit(0); /退出程序for(;icoufile.peek()!=EOF;cNO+)icoufile.read(char*)&coucNO,sizeof(coucNO);icoufile.close();course:course()2、 学生类(1) 学生类的声明#include#include#include#include using namespace st

14、d; #define N 100struct students int snumber;/学生学号 char sname10;/学生名字 int spassword;/学生登入密码 char sex;/学生性别 int age; /学生年龄 char banji20;/学生班级 int sc;/已选课程数 int selcour4;/选课编号;class studentpublic:static int count;/已记录学生数 static int current;/当前学生序号 static students stuN;int pass();/学生登入 void StuEdit(char

15、 c);/学生信息修改 void ShowSelf(int i)const;/显示学生自己信息 void sReadFile();/读取文件内容 void sWriteFile();/写入文件 int StuSearch(char c);/学生信息查询void StuPutin();/学生信息录入 void StuDelete();/学生信息删除 void StuView();/学生信息浏览student();(2) 学生类的定义#include stdafx.h#include student.h#includemenu.h#includecourse.h#include#include#i

16、nclude #includeusing namespace std;students student:stuN;int student:current=0;int student:count=0;void student:StuPutin()system(cls);docoutn开始录入学生信息!n请输入:n;cout学生学号:;stucount.snumber=isnumber();for(int k=0;kcount;k+)if(stucount.snumber=stuk.snumber)coutstucount.snumber;k=-1;coutstucount.sname;cout学

17、生初始密码为:123456n;stucount.spassword=123456;coutstucount.sex;while(stucount.sex!=m&stucount.sex!=w)coutstucount.sex;cout学生年龄:;int Age=isnumber();stucount.age=Age;coutstucount.banji;cout初始选课编号为空!n;stucount.selcour4=0;cout已选课程数初始为零!n;stucount.sc=0;count+;cout是否继续录入学生信息?n1.是tt2.否t3.退出系统n请选择:;if(choose(3)=

18、2)if(menu:shenfen=管理员)break;pass();while(1);menu:isback(); void student:StuDelete()system(cls);int i=StuSearch(1);if(i!=-1)cout确定删除?n1.是t2.否t3.退出系统n请选择:t;if(choose(3)=1)for(int j=i;jcount-1;j+)stuj=stuj+1;coutn删除成功!即将返回!n;count-;menu:isback();int student:StuSearch(char c)if(count=0)cout学生记录个数为零!;men

19、u:isback();return 0;int i;switch(c)case1:coutn请输入学生学号:t;int NO=isnumber();for(i=0;icount;i+)if(NO=stui.snumber)ShowSelf(i);break;if(i=(count-1)coutn没有找到该学生!;return -1;return i;case2:couttemp;for(i=0;icount;i+)if(temp=stui.sname)ShowSelf(i);break;if(i=(count-1)coutn没有找到该学生!n;break; case3:coutn请输入要查询的

20、学生年龄:t;int a=isnumber();int Sign=0;/标志 for(i=0;icount;i+)if(a=stui.age)ShowSelf(i);Sign=1;if(i=(count-1)&Sign=0)coutn没有找到该学生!n;break;case4:couttemp;for(i=0;icount;i+)if(temp=stui.banji)ShowSelf(i);Sign=1;if(i=(count-1)&Sign=0)coutn没有找到该学生!n;break;case5:couttemp;while(temp!=m&temp!=w) couttemp; for(i

21、=0;icount;i+)if(temp=stui.sex)ShowSelf(i);Sign=1;if(i=(count-1)&Sign=0)coutn没有找到该学生!n;break;case6:cout即将返回学生菜单!n;break; menu:isback();return i; int student:pass() system(cls);while(count=0)cout该系统还未记录学生信息!不能登入,请录入你的信息!n;system(pause);StuPutin();while(1)system(cls); couttttt登入系统nn; for(int a=0;a80;a+

22、) cout*; for(int b=0;b=5;b+) coutendl; couttttt1.学号:; int number=isnumber(); for(int k=0;kcount;k+)/循环判断输入的学号是否正确 /检验学号是否正确if(number=stuk.snumber)/如果学号正确 couttttt2.密码:;int password=isnumber();if(password=stuk.spassword)/如果密码正确 system(cls);coutnnnnnnnnnn;couttttt登录成功!;/提示登入成功current=k;/记录当前的学生序号 syst

23、em(pause);menu:StuMenu(); return k;else/如果密码不正确while(password!=stuk.spassword)/如果密码错误,一直输入密码直至正确为止system(cls);coutnnnnnnnnnn;couttttt密码错误!重新输入:;password=isnumber();system(cls);coutnnnnnnnnnn;couttttt登录成功!;system(pause);current=k;/记录当前的学生序号menu:StuMenu(); return k;elseif(k=count-1)/当所有学生学号对比完之后,没有匹配的

24、学号,提示重新输入 system(cls);coutnnnnnnn; coutttt学号错误!请从新输入!n; coutttt;system(pause);continue;return 0;void student:StuView()system(cls);if(count=0)cout学生记录个数为零!n是否输入学生信息?n1.是t2.返回t3.退出n;char c=choose(3);if(c=1)StuPutin();if(c=2)menu:isback();cout学号t密码t名字t性别t年龄t班级tnn;for(int i=0;icount;i+)ShowSelf(i);menu:

25、isback(); void student:ShowSelf(int i)const/学生查看自己的信息 coutstui.snumbertstui.spasswordtstui.snametstui.sext stui.agetstui.banjinn;void student:StuEdit(char c)system(cls);int Sign=0;switch(c)case7:Sign=1;c=1;case 1: coutn当前学号为:stucurrent.snumbern; cout请输入学号:; int num=isnumber(); for(int i=0;icount;i+)

26、/判断输入的学号是否已经存在 if(num=stui.snumber) coutnum; i=-1;/使 i 至零,继续判断新输入的学号 stucurrent.snumber=num;if(Sign=0)break;c=2; case 2: coutn当前密码为:stucurrent.spasswordn; cout请输入密码:; int pword=isnumber(); stucurrent.spassword=pword; if(Sign=0)break; c=3;case 3: coutn当前名字为:stucurrent.snamen; coutstucurrent.sname; if

27、(Sign=0)break; c=4;case 4: coutn当前年龄为:stucurrent.agen; int Age; while(1) Age=isnumber(); if(Age=15) break; cout年龄应在(1535)!重新输入:; stucurrent.age=Age; if(Sign=0)break; c=5; case 5: coutn当前性别为:stucurrent.sexnn; cout请选择性别:n1.男t2.女n请选择:; if(choose(2)=1) stucurrent.sex=m; else stucurrent.sex=w; if(Sign=0)

28、break; c=6; case 6: coutn当前班级为:stucurrent.banjin; coutstucurrent.banji;coutn修改后的学生信息为:n; ShowSelf(current);menu:isback();void student:sWriteFile()ofstream ostufile(student.dat,ios:binary);if(ostufile.fail()cout写入文件时打开学生文件失败!endl; exit(0); /退出程序for(int i=0;icount;i+)ostufile.write(char*)&stui,sizeof(

29、stui);coutn学生文件保存成功!;ostufile.close();void student:sReadFile()ofstream ostufile(student.dat,ios:binary|ios:app);ostufile.close();ifstream istufile(student.dat,ios:binary);if(istufile.fail()cout读取文件时打开学生文件失败!endl; exit(0); /退出程序for(;istufile.peek()!=EOF;count+)istufile.read(char*)&stucount,sizeof(stu

30、count);istufile.close();3、 选课类(1) 选课类声明#include course.h#include student.hclass SelCourse : public student, public course public:void SelectCour();/选课void DeleteCour();/退选void SelCourView();/浏览已选课程virtual SelCourse();(2) 选课类定义#include stdafx.h#include SelCourse.h#includemenu.h#include#includeusing namesp

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1