C++课程设计_ (5)学生选修课选课管理系统

上传人:少*** 文档编号:53515800 上传时间:2022-02-10 格式:DOC 页数:13 大小:176.50KB
收藏 版权申诉 举报 下载
C++课程设计_ (5)学生选修课选课管理系统_第1页
第1页 / 共13页
C++课程设计_ (5)学生选修课选课管理系统_第2页
第2页 / 共13页
C++课程设计_ (5)学生选修课选课管理系统_第3页
第3页 / 共13页
资源描述:

《C++课程设计_ (5)学生选修课选课管理系统》由会员分享,可在线阅读,更多相关《C++课程设计_ (5)学生选修课选课管理系统(13页珍藏版)》请在装配图网上搜索。

1、 程序设计基础课程设计报告程序设计基础课程设计报告学生选修课管理系统学生选修课管理系统专专 业:业: 电子信息工程电子信息工程 班班 级:级: 20072007 级级 1 1 班班 学学 号:号: 20070820242007082024 姓姓 名:名: 孙孙 晓晓 东东 指导教师:指导教师: 常常 耀耀 辉辉 二二 OOOO 八八 年年 六月三十日六月三十日- 1 -目目 录录一、一、 编程目的:1二、二、 设计要求:1三、三、 函数主体说明:.1四、四、 运行结果.9五、五、 流程图:.10六、六、 总结:10参考数目:11一、一、编程目的:编程目的: 建立一学生选修课选课管理系统,并对它

2、进行输入、输出、查询、选课等操作。二、二、设计要求设计要求:1.系统以菜单方式工作2.课程信息录入功能(课程信息用文件保存)输入3.课程信息浏览功能输出4.查询功能:(至少一种查询方式)算法5.按学分查询- 2 -6.按课程性质查询7.学生选修课程(可选项)三、三、函数主体说明函数主体说明:#include#include#include#includeusing namespace std;class Coursepublic: void input()coutnumber; coutcourse_name; coutcourse_kind; couttotal_time; coutlear

3、n_time; couttime; coutcredit_hour; coutcourse_time; void input_1(ifstream &ji) / 输入别名引用输入别名引用jicourse_namecourse_kind total_timelearn_timetimecredit_hourcourse_time; void display()coutnumbersetw(12)course_namesetw(5)course_kindsetw(10)total_timesetw(10)learn_timesetw(10)timesetw(13)credit_hoursetw(1

4、2)course_timeendl;void display(ofstream &jb) / 输出别名引用输出别名引用jbnumbersetw(10)course_namesetw(5)course_kindsetw(5) total_timesetw(5)learn_timesetw(5)timesetw(5)credit_hoursetw(10)course_timeendl; friend class Class_array;- 3 -private:int num; / 学号学号int number; / 编号编号char course_name40; / 课程名称课程名称char c

5、ourse_kind10; / 课程性质课程性质int total_time; / 总学时总学时int learn_time; / 授课学时授课学时int time; / 实验或上机学时实验或上机学时int credit_hour; / 学分学分char course_time40; / 开课学期开课学期;class Studentpublic: void input()coutnum;coutname; void input_1(ifstream &ji)jinumname; void display()cout学号学号:numsetw(14)姓名姓名:nameendl; void disp

6、lay_1(ofstream &jb)jbnum name(pb+i)-num; if(pb+i)-num=-1) break; else ji(pb+i)-name;L+; ji.close(); Class_array(int a) / 建立学生课程建立学生课程 Course 数组数组 int i;L=0;ji.open(course.txt,ios:in);p=new Course30;for(i=0;i+) ji(p+i)-number;if(p+i)-number=-1) break;else (p+i)-input_1(ji); L+; ji.close(); Class_arra

7、y(int a,int b) / 建立学生已选课的建立学生已选课的 Course1 数组数组 int i;L=0;ji.open(course1.txt,ios:in);p=new Course20;for(i=0;i+)ji(p+i)-num;if(p+i)-num=-1) break;else ji(p+i)-number;(p+i)-input_1(ji);L+;- 5 -ji.close(); void display() / 输出输出 Student 数组数组 int i;for(i=0;idisplay(); void display_1() / 输出输出 Course 数组数组

8、int i; cout编号编号 课程名称课程名称 课程性质课程性质 总学时总学时 授课学时授课学时 实验或上机学实验或上机学时时 学分学分 开课学期开课学期endl; for(i=0;idisplay(); void input() / course 课程信息录入功能课程信息录入功能,b 调用调用 (p+L)-input(); / 在数组最后增加数据在数组最后增加数据 L+; void find_credit_hour() / 按学分查询按学分查询 int k,i;coutk;for(i=0;icredit_hour=k)(p+i)-display(); void find_course_ki

9、nd() / 按课程性质查询按课程性质查询 char a20;int i;couta; for(i=0;icourse_kind,a)=0) (p+i)-display(); void find(Class_array &c) / 按学生选修课程查询按学生选修课程查询 int k,i;- 6 -Course *b=c.p;coutk;for(i=0;inum=k)(pb+i)-display(); cout编号编号 课程名称课程名称 课程性质课程性质 总学时总学时 授课学时授课学时 实验或上机学时实验或上机学时 学分学分 开课学期开课学期endl; for(i=0;inum=k) (b+i)-

10、display(); Course find_number() / 按课程编码查询按课程编码查询,b 调用调用 int k,i;coutk;for(i=0;inumber=k) break; return *(p+i); int total_credit(int i) / 计算某学生的总学分计算某学生的总学分,c 调用调用 int k,j=0;for(k=0;kL;k+) if(pk.num=i) j=j+pk.credit_hour;return j; void choose(Class_array &b) / 选课程序选课程序,c 调用调用 int i,k; Course p1; cout

11、i; b.display_1(); for(;) p1=b.find_number(); / 选课选课p1.num=i; / 将学号填到数据中将学号填到数据中pL=p1; / 将节点填到将节点填到 c 链表中链表中L+; k=total_credit(i); / 计算学号为计算学号为 i 的总学分的总学分- 7 - if(k=8) cout请继续选课请继续选课;else cout你的学分已超过你的学分已超过 8 分分!endl; break; void save() / student.txt保存文件函数保存文件函数 int i,k=-1;jb.open(student.txt,ios:out

12、);if(!jb) cout错误错误endl;exit(1); for(i=0;idisplay_1(jb); jbk; jb.close(); void save_1() / course.txt保存文件函数保存文件函数 int i,k=-1;jb.open(course.txt,ios:out);if(!jb) cout错误错误endl;exit(1); for(i=0;idisplay(jb); jbk; jb.close(); void save_2() / course1.txt保存函数保存函数 int i,k=-1;jb.open(course1.txt,ios:out);if(!

13、jb) cout错误错误endl;exit(1); for(i=0;iL;i+)- 8 - jbnumdisplay(jb); jbk; jb.close(); private: Course *p; / Course 数组地址数组地址 Student *pb; / Student 数组地址数组地址 ifstream ji; / 输入流输入流 ofstream jb; / 输出流输出流 int L; / 长度长度;int main() Class_array a,b(1),c(1,2); int i,j;cout-学生选修课课程系统设计学生选修课课程系统设计-endl;for(;)cout1

14、新课程信息输入新课程信息输入 2 课程信息浏览课程信息浏览 3 查询功能查询功能 4 选课选课 5 结束结束endl;couti;if(i=1)cout-新课程信息输入新课程信息输入-endl;b.input();else if(i=2)cout-课程信息浏览课程信息浏览-endl; b.display_1();else if(i=3)cout-查询功能查询功能-endl;cout1 学分查询学分查询 2 课程性质查询课程性质查询 3 学生选修课程学生选修课程endl;coutj;if(j=1) cout-学分查询学分查询-endl;b.find_credit_hour();else if(j

15、=2) cout-课程性质查询课程性质查询-endl;b.find_course_kind();else if(j=3) - 9 -cout-学生选修课程学生选修课程-endl;a.find(c);else if(i=4)c.choose(b);else if(i=5)break;else cout无效输入无效输入endl; a.save(); b.save_1(); c.save_2();return 0;四、四、运行结果运行结果- 10 - 五、五、流程图:流程图:- 11 -开始选择功能课程信息浏览选课查询功能课程录入结束输入课程信息浏览以选课程信息浏览进行选课123455555六、六、

16、总结总结: 刚开始选题的时候就觉得这题有点难度,觉得不怎么好入手。首先是以菜单方式展开,就觉得怎么这么难。做的时候,就觉得更难了。其次是把一些以前分开再的小题目合起来,就觉得又难了许多。从未编过这样的程序,就觉得仅这个就挺吓人的。其中,有些函数就没应用过,比如那输入/输出引用函数,见都没见过,幸好有师兄们的帮忙,才能把程序弄完,这也觉得自己什么也没学懂,也是我觉得自己与别人的差距,通过这次的设计我也觉得自己又有一点新的收获,也了解了为什么学这门课程了,对其有了新认识。在做程序设计前还必须把书本上的基本知识搞懂,程序设- 12 -计会用到书中的类做,对类的理解也不是很到位,一些概念的知识还没有很好的理解,所以还需要借助书中的知识来加深对类的理解。 通过对其的编程,也理解了类这个新名词在程序中的重要性。也知道了C 与 C+的重大区别,C+更使编程人员有了一个好的工具进行编程。总之,此次的程序设计是我们对系统(程序)设计的技巧、系统分析和类等许多知识的综合应用,大大提高思维了能力,为毕业设计和以后的工作打下了一个良好的基础。工程完成时间:2008-6-28 孙晓东 电信 07参考数目参考数目 【1】谭浩强, C+程序设计 ,清华大学出版社,2006 年。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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