欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生选课系统C++(共15页).doc

    • 资源ID:13519304       资源大小:54.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生选课系统C++(共15页).doc

    精选优质文档-倾情为你奉上目 录一、需求分析选课在大学生活中是必不可少的,为了能让学生们更加便利的查看并选择各种课程,自然就需要一个网络结构,建立一个选课系统,这样可以方便管理学生和课程等内容。二、程序的主要功能1、添加功能:添加课程以及学生的各类信息保存到一个文件中。2、删除功能:能够对一个学生或课程的信息按照编号进行删除。3、浏览功能:可以查看学生信息课程信息以及学生的选课信息。4、选课功能:学生可以通过输入自己的学号进入选择界面,选择各种不同的课程。5、修改功能:用于修改错误的学生信息或者课程信息。三、程序运行平台Windows8.1操作系统VC+6.0四、系统总框架图主 函 数信息录入信息浏览选择课程删除信息修改信息退出程序 系统总框架图五、程序类的说明· student类的声明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. 修改信息模块用于修改错误的学生信息或者课程信息。4. 删除信息模块能够对一个学生或课程的信息按照编号进行删除。5. 选择课程模块学生可以通过输入自己的学号进入选择界面,选择各种不同的课程。七、比较有特色的函数void selectCoures()/选课函数 student stu;/用于保存将要选课的那名同学的信息int countCoures=0;/用来统计该学生选了多少门课程int countStudent=0;/用来统计学生的个数loop:cout<<endl<<"请输入你的学生学号: "double m_xuehao,m_coursenum;/利用学号和课程号分别找出哪位同学选了哪门课cin>>m_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_xuehao<<"的学生想要选择的课程编码(1001-9999): "cin>>m_coursenum;ifstream inCourse("courses.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:binary|ios:app);/现将选课的同学信息放入选课结果的文件中outStu.write(char *)(&stu),sizeof(stu);outStu.close();cout<<"学号为"<<m_xuehao<<"成功选了课程号为"<<m_coursenum<<"的课程!"<<endl;if(countCoures>2)cout<<"同学:你选择的课程已经超过"<<countCoures<<"门了!"<<endl;break;if(countCoures = 0)cout<<"没有这门课程,还要继续选择其他课程吗y/n?"<<endl;char ch;cin>>ch;if('y'=ch)|('Y'=ch)goto loob;elsebreak;inCourse.close();if(countStudent=0)cout<<"没有这个学生,是否重新输入y/n?"<<endl;char ch;cin>>ch;if('y'=ch)|('Y'=ch)goto loop;is.close();menu(); 八、存在的不足与对策由于设计者水平有限及时间等方面的原因,该系统的功能比较简单,只能输入较少的课程以及学生信息。些许不足请老师多多谅解。今后会学习更多的编程技巧,不断的提高程序设计水平。九、程序源代码#include<iostream> #include<ctype.h>#include<string>#include<iomanip> #include<fstream>#include<sstream> using namespace std; void menu() /主菜单cout<<endl;cout<<" 学生选课系统 "<<endl;cout<<" 1. 信息录入 "<<endl;cout<<" 2. 信息浏览 "<<endl;cout<<" 3. 选择课程 "<<endl;cout<<" 4. 删除信息 "<<endl;cout<<" 5. 修改信息 "<<endl;cout<<" 6. 退出程序 "<<endl;class student public:double xuehao; char name100; char major100; char coursename100;void set() /学生信息录入student stu;cout<<endl;cout<<"请输入学生学号: "cin>>stu.xuehao;cout<<"请输入学生姓名: "cin>>stu.name;cout<<"请输入学生专业: "cin>>stu.major;ofstream out("studentInfo.text",ios:app|ios:binary);out.write(char *)(&stu),sizeof(stu); out.close(); menu(); void checkstudent() /查询学生信息student stu;cout<<"学生学号t学生姓名t所学专业"<<endl;ifstream is("studentInfo.text",ios:binary); while(!is.peek()is.read(char *)(& stu),sizeof(stu); cout<<" "<<stu.xuehao<<"tt"<<stu.name<<"tt"<<stu.major<<"tt"<<endl; is.close();menu();void cancleStudent() /删除学生信息string xueHaoNum,line,xuehao; ifstream fin("studentInfo.text.text"); fstream outfile("studentInfo.text.text",ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除cout<<endl;cout<<"请输入您要删除学生的学号: " cin>>xueHaoNum; while(!fin.eof() getline(fin,line); istringstream stream(line); /串流输入xueHaoNum = line.substr(0,line.find(" ",0);if(xuehao != xueHaoNum) outfile<<line<<endl; outfile.close();fin.close();fstream f("studentInfo.text",ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除ifstream outf("studentInfo.text"); f<<outf.rdbuf();outf.close();f.close();cout<<endl;menu();void changestudent() /修改学生信息student stu;int mark;cout<<endl;cout<<"请输入需要修改信息的学生学号 "double xuehao;cin>>xuehao;ifstream is("studentInfo.text",ios:binary); for(int i=0;!is.eof();i+)is.seekg(48*i); /对输入文件定位,第一个参数是偏移量,第二个参数是基地址is.read(char *)(&stu),sizeof(stu); if(stu.xuehao=xuehao)cout<<"请输入要修改的学生姓名 "cin>>stu.name;cout<<"请输入要修改的学生专业 "cin>>stu.major;cout<<"修改完毕!"<<endl<<endl;mark=48*i;menu();break;is.close();if(stu.xuehao!=xuehao)cout<<"没有这个学生!"<<endl<<endl;menu();elseofstream os("studentInfo.text",ios:in|ios:binary); os.seekp(mark);os.write(char *)(&stu),sizeof(stu); os.close(); ;class course /课程类public:double coursenum; char coursename50; char coursetapy50; double xuefen; double xueshi; char courseteacher50; void set() /课程信息录入course cus; cout<<"请输入课程编码: "cin>>cus.coursenum;cout<<"请输入课程名称: "cin>>cus.coursename;cout<<"请输入课程类型: "cin>>cus.coursetapy;cout<<"请输入课程学分: "cin>>cus.xuefen;cout<<"请输入课程学时: "cin>>cus.xueshi;cout<<"请输入主讲教师: "cin>>cus.courseteacher;ofstream os("courses.text",ios:binary|ios:app);os.write(char *)(&cus),sizeof(cus); os.close(); menu();void checkcourse() /浏览课程信息cout<<endl;ifstream is("courses.text",ios:binary); cout<<"课程编码 课程名称 课程类型 课程学分 课程学时 主讲教师"<<endl;course cus;/临时保存课程信息while(!is.peek() /检测文件结束 is.read(char*)(&cus),sizeof(cus); cout<<" "<<cus.coursenum<<"t "<<cus.coursename<<"t "<<cus.coursetapy<<"t "<<cus.xuefen<<"t "<<cus.xueshi<<" "<<cus.courseteacher<<endl; /setw()是控制输入的宽度is.close();menu();void canclecourse() /删除课程信息string coursenum,line,course; ifstream fin("courses.text"); fstream outfile("courses.text",ios:trunc|ios:out);/ 打开一个文件进行写操作和使同名文件被删除cout<<endl;cout<<"请输入您要删除课程的编码: " cin>>coursenum; while(!fin.eof() getline(fin,line); istringstream stream(line); /串流输入coursenum = line.substr(0,line.find(" ",0);if(course != coursenum) outfile<<line<<endl; outfile.close();fin.close();fstream f("courses.text",ios:trunc|ios:out); /打开一个文件进行写操作和使同名文件被删除ifstream outf("courses.text"); f<<outf.rdbuf();outf.close();f.close(); cout<<endl;menu();void changecourse() /修改课程信息course cus;int mark;cout<<endl;cout<<"请输入要修改课程信息的编码 "double coursenum;cin>>coursenum;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)cout<<"请输入要修改的课程名称 "cin>>cus.coursename;cout<<"请输入要修改的课程类型 "cin>>cus.coursetapy;cout<<"请输入要修改的课程学分 "cin>>cus.xuefen;cout<<"请输入要修改的课程学时 "cin>>cus.xueshi;cout<<"请输入要修改的主讲教师 "cin>>cus.courseteacher;cout<<"修改完毕!"<<endl<<endl;mark=28*i;menu();break;is.close();if(cus.coursenum!=coursenum)cout<<"没有这门课程!"<<endl<<endl;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 countCoures=0;int countStudent=0;loop:cout<<endl<<"请输入你的学生学号: "double m_xuehao,m_coursenum;/利用学号和课程号分别找出哪位同学选了哪门课cin>>m_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_xuehao<<"的学生想要选择的课程编码(1001-9999): "cin>>m_coursenum;ifstream inCourse("courses.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:binary|ios:app);/现将选课的同学信息放入选课结果的文件中outStu.write(char *)(&stu),sizeof(stu);outStu.close();cout<<"学号为"<<m_xuehao<<"成功选了课程号为"<<m_coursenum<<"的课程!"<<endl;if(countCoures>2)cout<<"同学:你选择的课程已经超过"<<countCoures<<"门了!"<<endl;break;if(countCoures = 0)cout<<"没有这门课程,还要继续选择其他课程吗y/n?"<<endl;char ch;cin>>ch;if('y'=ch)|('Y'=ch)goto loob;elsebreak;inCourse.close();if(countStudent=0)cout<<"没有这个学生,是否重新输入y/n?"<<endl;char ch;cin>>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);cout<<stu.xuehao<<"tt"<<stu.name<<"tt"<<stu.major<<"tt"<<stu.coursename<<endl; is.close();menu(); void set() /信息录入菜单 cout<<endl;cout<<"1. 录入学生信息"<<endl;cout<<"2. 录入课程信息"<<endl;cout<<"3. 返回前面菜单"<<endl<<endl; student stu;course cus;int choose;cout<<"请输入选项序号: "cin>>choose;switch(choose)case 1: stu.set();break; case 2: cus.set();break; case 3: menu();break;default: cout<<"没有这个选项,请重新输入,谢谢!"<<endl;set();break;void check() /查询信息 cout<<endl;cout<<"1. 查询学生信息"<<endl;cout<<"2. 查询课程信息"<<endl;cout<<"3. 查询学生选课结果信息"<<endl;cout<<"4. 返回主要菜单"<<endl<<endl;cout<<"请输入选项序号 "int choose;cin>>choose;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() /删除信息cout<<endl;cout<<"1. 删除学生信息"<<endl;cout<<"2. 删除课程信息"<<endl;cout<<"3. 返回主要菜单"<<endl<<endl;cout<<"请输入选项序号 " student stu;course cus;int choose;cin>>choose;switch(choose)case 1: stu.cancleStudent();break; case 2: cus.canclecourse();break; case 3: menu();break;default: cout<<"没有这个选项,请重新输入,谢谢!"<<endl;break;void change() /修改信息cout<<endl;cout<<"1. 修改学生信息"<<endl;cout<<"2. 修改课程信息"<<endl;cout<<"3. 返回主要菜单"<<endl<<endl;cout<<"请输入选项序号 "student stu;course cus; int choose;cin>>choose;switch(choose)case 1: stu.changestudent();break; case 2: cus.changecourse();break; case 3: cout<<endl;menu();break;default: cout<<"没有这个选项,请重新输入,谢谢!"<<endl;change();int main() /主函数system("color 3f");menu();do cout<<endl<<"请输入所选择的菜单项序号: "int choose;cin>>choose;switch(choose)case 1: set();break; case 2: check();break; case 3: selectCoures();break; case 4: cancle();break; case 5: change();break; case 6: exit(1);while(1);return 0;专心-专注-专业

    注意事项

    本文(学生选课系统C++(共15页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开