学生选课系统C++Word文件下载.docx
- 文档编号:19955892
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:20
- 大小:41.71KB
学生选课系统C++Word文件下载.docx
《学生选课系统C++Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生选课系统C++Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
{
doublecoursenum;
charcoursename[50];
charcoursetapy[50];
doublexuefen;
doublexueshi;
charcourseteacher[50];
六、模块分析
1.信息录入模块
按照提示输入所需数字,进入添加界面后添加课程以及学生的各类信息,最终保存到一个文件中,用以之后读取。
2.信息浏览模块
可以用来查看学生信息和课程信息以及学生的选课信息。
3.修改信息模块
4.删除信息模块
5.选择课程模块
七、比较有特色的函数
voidselectCoures()//选课函数
studentstu;
//用于保存将要选课的那名同学的信息
intcountCoures=0;
//用来统计该学生选了多少门课程
intcountStudent=0;
//用来统计学生的个数
loop:
cout<
<
endl<
"
请输入你的学生学号:
"
;
doublem_xuehao,m_coursenum;
//利用学号和课程号分别找出哪位同学选了哪门课
cin>
>
m_xuehao;
ifstreamis("
studentInfo.text"
ios:
:
binary);
is.seekg(0,ios:
beg);
while(!
is.peek())
is.read((char*)(&
stu),sizeof(stu));
//从“studentInfo.text”文件中一次读取学生的信息
if(m_xuehao==stu.xuehao)
loob:
countStudent++;
请输入学号为"
m_xuehao<
的学生想要选择的课程编码(1001-9999):
m_coursenum;
ifstreaminCourse("
courses.text"
//用于从"
文件中找出该同学想选择的课程信息
inCourse.seekg(0,ios:
inCourse.eof())
{//选课的核心代码
coursecus;
//用于此同学将要选择的课程信息
inCourse.read((char*)(&
cus),sizeof(cus));
if(m_coursenum==cus.coursenum)
{//若找到那门课程则选它
countCoures++;
strcpy(stu.coursename,cus.coursename);
ofstreamoutStu("
selectCourseResult.text"
binary|ios:
app);
//现将选课的同学信息放入选课结果的文件中
outStu.write((char*)(&
outStu.close();
学号为"
成功选了课程号为"
m_coursenum<
的课程!
endl;
}
if(countCoures>
2)
同学:
你选择的课程已经超过"
countCoures<
门了!
break;
if(countCoures==0)
没有这门课程,还要继续选择其他课程吗y/n?
charch;
ch;
if(('
y'
==ch)||('
Y'
==ch))
gotoloob;
else
inCourse.close();
if(countStudent==0)
没有这个学生,是否重新输入y/n?
gotoloop;
is.close();
menu();
}
八、存在的不足与对策
由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,只能输入较少的课程以及学生信息。
些许不足请老师多多谅解。
今后会学习更多的编程技巧,不断的提高程序设计水平。
九、程序源代码
#include<
iostream>
ctype.h>
string>
iomanip>
fstream>
sstream>
usingnamespacestd;
voidmenu()//主菜单
学生选课系统"
1.信息录入"
2.信息浏览"
3.选择课程"
4.删除信息"
5.修改信息"
6.退出程序"
voidset()//学生信息录入
请输入学生学号:
stu.xuehao;
请输入学生姓名:
stu.name;
请输入学生专业:
stu.major;
ofstreamout("
app|ios:
out.write((char*)(&
out.close();
voidcheckstudent()//查询学生信息
学生学号\t学生姓名\t所学专业"
stu),sizeof(stu));
stu.xuehao<
\t\t"
stu.name<
stu.major<
voidcancleStudent()//删除学生信息
stringxueHaoNum,line,xuehao;
ifstreamfin("
studentInfo.text.text"
);
fstreamoutfile("
trunc|ios:
out);
//打开一个文件进行写操作和使同名文件被删除
请输入您要删除学生的学号:
xueHaoNum;
fin.eof())
getline(fin,line);
istringstreamstream(line);
//串流输入
xueHaoNum=line.substr(0,line.find("
0));
if(xuehao!
=xueHaoNum)
outfile<
line<
outfile.close();
fin.close();
fstreamf("
ifstreamoutf("
f<
outf.rdbuf();
outf.close();
f.close();
voidchangestudent()//修改学生信息
intmark;
请输入需要修改信息的学生学号"
xuehao;
for(inti=0;
!
is.eof();
i++)
is.seekg(48*i);
//对输入文件定位,第一个参数是偏移量,第二个参数是基地址
if(stu.xuehao==xuehao)
请输入要修改的学生姓名"
请输入要修改的学生专业"
修改完毕!
mark=48*i;
if(stu.xuehao!
=xuehao)
没有这个学生!
ofstreamos("
in|ios:
os.seekp(mark);
os.write((char*)(&
os.close();
};
classcourse//课程类
voidset()//课程信息录入
请输入课程编码:
cus.coursenum;
请输入课程名称:
cus.coursename;
请输入课程类型:
cus.coursetapy;
请输入课程学分:
cus.xuefen;
请输入课程学时:
cus.xueshi;
请输入主讲教师:
cus.courseteacher;
voidcheckcourse()//浏览课程信息
课程编码课程名称课程类型课程学分课程学时主讲教师"
//临时保存课程信息
is.peek())//检测文件结束
is.read((char*)(&
cus.coursenum<
\t"
cus.coursename<
cus.coursetapy<
cus.xuefen<
cus.xueshi<
cus.courseteacher<
//setw()是控制输入的宽度
voidcanclecourse()//删除课程信息
stringcoursenum,line,course;
//打开一个文件进行写操作和使同名文件被删除
请输入您要删除课程的编码:
coursenum;
coursenum=line.substr(0,line.find("
if(course!
=coursenum)
voidchangecourse()//修改课程信息
请输入要修改课程信息的编码"
is.seekg(28*i);
cus),sizeof(cus));
if(cus.coursenum==coursenum)
请输入要修改的课程名称"
请输入要修改的课程类型"
请输入要修改的课程学分"
请输入要修改的课程学时"
请输入要修改的主讲教师"
mark=28*i;
if(cus.coursenum!
=coursenum)
没有这门课程!
else
voidselectCoures()//选课函数
inCourse.eof())//选课核心代码
voidscanResult()//查询选课结果
学生学号\t学生姓名\t所学专业\t选课名称"
is.peek();
i++)
stu.coursename<
voidset()//信息录入菜单
﹌﹌﹌﹌﹌﹌1.录入学生信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌2.录入课程信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌3.返回前面菜单﹌﹌﹌﹌﹌﹌"
intchoose;
请输入选项序号:
choose;
switch(choose)
case1:
stu.set();
case2:
cus.set();
case3:
menu();
default:
cout<
没有这个选项,请重新输入,谢谢!
set();
break;
voidcheck()//查询信息
﹌﹌﹌﹌﹌﹌1.查询学生信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌2.查询课程信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌3.查询学生选课结果信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌4.返回主要菜单﹌﹌﹌﹌﹌﹌"
请输入选项序号"
stu.checkstudent();
cus.checkcourse();
scanResult();
case4:
voidcancle()//删除信息
﹌﹌﹌﹌﹌﹌1.删除学生信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌2.删除课程信息﹌﹌﹌﹌﹌﹌"
﹌﹌﹌﹌﹌﹌3.返回主要菜单﹌﹌﹌﹌﹌﹌"
stu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课 系统 C+
![提示](https://static.bdocx.com/images/bang_tan.gif)