ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:41.71KB ,
资源ID:6934404      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6934404.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生选课系统C++.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生选课系统C++.docx

1、学生选课系统C+一、需求分析选课在大学生活中是必不可少的,为了能让学生们更加便利的查看并选择各种课程,自然就需要一个网络结构,建立一个选课系统,这样可以方便管理学生和课程等内容。二、程序的主要功能1、添加功能:添加课程以及学生的各类信息保存到一个文件中。2、删除功能:能够对一个学生或课程的信息按照编号进行删除。3、浏览功能:可以查看学生信息课程信息以及学生的选课信息。4、选课功能:学生可以通过输入自己的学号进入选择界面,选择各种不同的课程。5、修改功能:用于修改错误的学生信息或者课程信息。三、程序运行平台Windows8.1操作系统VC+6.0四、系统总框架图 系统总框架图五、程序类的说明st

2、udent类的声明class student public:double xuehao; char name100; char major100; char coursename100;course类的声明class coursepublic:double coursenum;char coursename50; char coursetapy50;double xuefen; double xueshi; char courseteacher50; 六、模块分析1. 信息录入模块按照提示输入所需数字,进入添加界面后添加课程以及学生的各类信息,最终保存到一个文件中,用以之后读取。2. 信息浏览

3、模块可以用来查看学生信息和课程信息以及学生的选课信息。3. 修改信息模块用于修改错误的学生信息或者课程信息。4. 删除信息模块能够对一个学生或课程的信息按照编号进行删除。5. 选择课程模块学生可以通过输入自己的学号进入选择界面,选择各种不同的课程。七、比较有特色的函数 void selectCoures()/选课函数 student stu;/用于保存将要选课的那名同学的信息int countCoures=0;/用来统计该学生选了多少门课程int countStudent=0;/用来统计学生的个数loop:coutendlm_xuehao;ifstream is(studentInfo.tex

4、t,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+; cout请输入学号为m_xuehaom_coursenum;ifstream inCourse(courses.text,ios:binary); /用于从courses.text文件中找出该同学想选择的课程信息inCourse.seekg(0,ios:beg);while

5、(!inCourse.eof()/选课的核心代码course cus;/用于此同学将要选择的课程信息inCourse.read(char *)(&cus),sizeof(cus); if(m_coursenum = cus.coursenum) /若找到那门课程则选它countCoures+;strcpy(stu.coursename,cus.coursename);ofstream outStu(selectCourseResult.text,ios:binary|ios:app);/现将选课的同学信息放入选课结果的文件中outStu.write(char *)(&stu),sizeof(s

6、tu);outStu.close();cout学号为m_xuehao成功选了课程号为m_coursenum的课程!2)cout同学:你选择的课程已经超过countCoures门了!endl;break;if(countCoures = 0)cout没有这门课程,还要继续选择其他课程吗y/n?ch;if(y=ch)|(Y=ch)goto loob;elsebreak;inCourse.close();if(countStudent=0)cout没有这个学生,是否重新输入y/n?ch;if(y=ch)|(Y=ch)goto loop;is.close();menu(); 八、存在的不足与对策由于设

7、计者水平有限及时间等方面的原因,该系统的功能比较简单,只能输入较少的课程以及学生信息。些许不足请老师多多谅解。今后会学习更多的编程技巧,不断的提高程序设计水平。九、程序源代码#include #include#include#include #include#include using namespace std; void menu() /主菜单coutendl;cout 学生选课系统 endl;cout 1. 信息录入 endl;cout 2. 信息浏览 endl;cout 3. 选择课程 endl;cout 4. 删除信息 endl;cout 5. 修改信息 endl;cout 6. 退

8、出程序 endl;class student public:double xuehao; char name100; char major100; char coursename100;void set() /学生信息录入student stu;coutendl;coutstu.xuehao;coutstu.name;coutstu.major;ofstream out(studentInfo.text,ios:app|ios:binary);out.write(char *)(&stu),sizeof(stu); out.close(); menu(); void checkstudent(

9、) /查询学生信息student stu;cout学生学号t学生姓名t所学专业endl;ifstream is(studentInfo.text,ios:binary); while(!is.peek()is.read(char *)(& stu),sizeof(stu); cout stu.xuehaottstu.namettstu.majorttendl; is.close();menu();void cancleStudent() /删除学生信息string xueHaoNum,line,xuehao; ifstream fin(studentInfo.text.text); fstre

10、am outfile(studentInfo.text.text,ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除coutendl;coutxueHaoNum; while(!fin.eof() getline(fin,line); istringstream stream(line); /串流输入xueHaoNum = line.substr(0,line.find( ,0);if(xuehao != xueHaoNum) outfilelineendl; outfile.close();fin.close();fstream f(studentInfo.t

11、ext,ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除ifstream outf(studentInfo.text); foutf.rdbuf();outf.close();f.close();coutendl;menu();void changestudent() /修改学生信息student stu;int mark;coutendl;coutxuehao;ifstream is(studentInfo.text,ios:binary); for(int i=0;!is.eof();i+)is.seekg(48*i); /对输入文件定位,第一个参数是偏移

12、量,第二个参数是基地址is.read(char *)(&stu),sizeof(stu); if(stu.xuehao=xuehao)coutstu.name;coutstu.major;cout修改完毕!endlendl;mark=48*i;menu();break;is.close();if(stu.xuehao!=xuehao)cout没有这个学生!endlendl;menu();elseofstream os(studentInfo.text,ios:in|ios:binary); os.seekp(mark);os.write(char *)(&stu),sizeof(stu); o

13、s.close(); ;class course /课程类public:double coursenum; char coursename50; char coursetapy50; double xuefen; double xueshi; char courseteacher50; void set() /课程信息录入course cus; coutcus.coursenum;coutcus.coursename;coutcus.coursetapy;coutcus.xuefen;coutcus.xueshi;coutcus.courseteacher;ofstream os(course

14、s.text,ios:binary|ios:app);os.write(char *)(&cus),sizeof(cus); os.close(); menu();void checkcourse() /浏览课程信息coutendl;ifstream is(courses.text,ios:binary); cout课程编码 课程名称 课程类型 课程学分 课程学时 主讲教师endl;course cus;/临时保存课程信息while(!is.peek() /检测文件结束 is.read(char*)(&cus),sizeof(cus); cout cus.coursenumt cus.cour

15、senamet cus.coursetapyt cus.xuefent cus.xueshi cus.courseteacherendl; /setw()是控制输入的宽度is.close();menu();void canclecourse() /删除课程信息string coursenum,line,course; ifstream fin(courses.text); fstream outfile(courses.text,ios:trunc|ios:out);/ 打开一个文件进行写操作和使同名文件被删除coutendl;coutcoursenum; while(!fin.eof() g

16、etline(fin,line); istringstream stream(line); /串流输入coursenum = line.substr(0,line.find( ,0);if(course != coursenum) outfilelineendl; outfile.close();fin.close();fstream f(courses.text,ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除ifstream outf(courses.text); foutf.rdbuf();outf.close();f.close(); coutendl

17、;menu();void changecourse() /修改课程信息course cus;int mark;coutendl;coutcoursenum;ifstream is(courses.text,ios:binary); for(int i=0;!is.eof();i+)is.seekg(28*i); /对输入文件定位,第一个参数是偏移量,第二个参数是基地址is.read(char *)(& cus),sizeof(cus); if(cus.coursenum=coursenum)coutcus.coursename;coutcus.coursetapy;coutcus.xuefen

18、;coutcus.xueshi;coutcus.courseteacher;cout修改完毕!endlendl;mark=28*i;menu();break;is.close();if(cus.coursenum!=coursenum)cout没有这门课程!endlendl;menu();else ofstream os(courses.text,ios:in|ios:binary); os.seekp(mark);os.write(char *)(& cus),sizeof(cus); os.close();void selectCoures()/选课函数 student stu;int c

19、ountCoures=0;int countStudent=0;loop:coutendlm_xuehao;ifstream is(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+; cout请输入学号为m_xuehaom_coursenum;ifstream inCourse(courses.

20、text,ios:binary); /用于从courses.text文件中找出该同学想选择的课程信息inCourse.seekg(0,ios:beg);while(!inCourse.eof()/选课核心代码course cus;/用于此同学将要选择的课程信息inCourse.read(char *)(&cus),sizeof(cus); if(m_coursenum = cus.coursenum) countCoures+;strcpy(stu.coursename,cus.coursename);ofstream outStu(selectCourseResult.text,ios:bi

21、nary|ios:app);/现将选课的同学信息放入选课结果的文件中outStu.write(char *)(&stu),sizeof(stu);outStu.close();cout学号为m_xuehao成功选了课程号为m_coursenum的课程!2)cout同学:你选择的课程已经超过countCoures门了!endl;break;if(countCoures = 0)cout没有这门课程,还要继续选择其他课程吗y/n?ch;if(y=ch)|(Y=ch)goto loob;elsebreak;inCourse.close();if(countStudent=0)cout没有这个学生,是

22、否重新输入y/n?ch;if(y=ch)|(Y=ch)goto loop;is.close();menu();void scanResult()/查询选课结果student stu;/用于保存将要选课的那名同学的信息cout学生学号t学生姓名t所学专业t选课名称endl;ifstream is(selectCourseResult.text,ios:binary);for(int i=0;!is.peek();i+) is.read(char*)(&stu),sizeof(stu);coutstu.xuehaottstu.namettstu.majorttstu.coursenameendl;

23、 is.close();menu(); void set() /信息录入菜单 coutendl;cout1. 录入学生信息endl;cout2. 录入课程信息endl;cout3. 返回前面菜单endlendl; student stu;course cus;int choose;coutchoose;switch(choose)case 1: stu.set();break; case 2: cus.set();break; case 3: menu();break;default: cout没有这个选项,请重新输入,谢谢!endl; set(); break;void check() /查

24、询信息 coutendl;cout1. 查询学生信息endl;cout2. 查询课程信息endl;cout3. 查询学生选课结果信息endl;cout4. 返回主要菜单endlendl;coutchoose;student stu;course cus;switch(choose)case 1: stu.checkstudent();break; case 2: cus.checkcourse();break; case 3: scanResult();break; case 4: menu();break;void cancle() /删除信息coutendl;cout1. 删除学生信息endl;cout2. 删除课程信息endl;cout3. 返回主要菜单endlendl;cout请输入选项序号 ; stu

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1