




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_hourse
4、tw(12)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; / 课程名称课程
5、名称char course_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)姓名姓名:nameend
6、l; void display_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.clo
7、se(); Class_array(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() / 输
8、出输出 Course 数组数组 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(); voi
9、d find_course_kind() / 按课程性质查询按课程性质查询 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; fo
10、r(i=0;inum=k) (b+i)-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 调用调用
11、int i,k; Course p1; couti; 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.
12、open(student.txt,ios:out);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(c
13、ourse1.txt,ios:out);if(!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-学生选修课课程系统设计学生选修课
14、课程系统设计-endl;for(;)cout1 新课程信息输入新课程信息输入 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
15、_credit_hour();else if(j=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 -开始选择功能课程信息浏览选课查询功能课程录入结束输入课程信息浏览以
16、选课程信息浏览进行选课123455555六、六、总结总结: 刚开始选题的时候就觉得这题有点难度,觉得不怎么好入手。首先是以菜单方式展开,就觉得怎么这么难。做的时候,就觉得更难了。其次是把一些以前分开再的小题目合起来,就觉得又难了许多。从未编过这样的程序,就觉得仅这个就挺吓人的。其中,有些函数就没应用过,比如那输入/输出引用函数,见都没见过,幸好有师兄们的帮忙,才能把程序弄完,这也觉得自己什么也没学懂,也是我觉得自己与别人的差距,通过这次的设计我也觉得自己又有一点新的收获,也了解了为什么学这门课程了,对其有了新认识。在做程序设计前还必须把书本上的基本知识搞懂,程序设- 12 -计会用到书中的类做,对类的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农村个人房屋售卖合同范本
- 买卖注册公司合同范本
- 出租钢琴合同范例
- 倒板合同范本
- 出口经营合同范本
- 个人租车协议合同范本
- 医疗器械借用合同范本
- 制做安装合同范本
- 别墅门订购合同范本
- 二手机械车位转让合同范本
- GB/T 7631.5-1989润滑剂和有关产品(L类)的分类第5部分:M组(金属加工)
- GB/T 41326-2022六氟丁二烯
- GB/T 19470-2004土工合成材料塑料土工网
- GB/T 18913-2002船舶和航海技术航海气象图传真接收机
- 高中教师先进事迹材料范文六篇
- 烹饪专业英语课件
- 3d3s基本操作命令教程课件分析
- 人教版三年级语文下册晨读课件
- 传染病防治法培训讲义课件
- 河南大学版(2020)信息技术六年级下册全册教案
- 法律方法阶梯实用版课件
评论
0/150
提交评论