C++课程设计_ (5)学生选修课选课管理系统.doc_第1页
C++课程设计_ (5)学生选修课选课管理系统.doc_第2页
C++课程设计_ (5)学生选修课选课管理系统.doc_第3页
C++课程设计_ (5)学生选修课选课管理系统.doc_第4页
C++课程设计_ (5)学生选修课选课管理系统.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序程序设计设计基基础课础课程程设计报设计报告告 学生选修课管理系统学生选修课管理系统 专专 业业: : 电电子信息工程子信息工程 班班 级级: : 2007 级级 1 班班 学学 号:号: 2007082024 姓姓 名:名: 孙孙 晓晓 东东 指指导导教教师师: : 常常 耀耀 辉辉 二二 oo 八八 年年 六月三十日六月三十日 - 1 - 目目 录录 一、一、 编程目的: 1 二、二、 设计要求: 1 三、三、 函数主体说明:.1 四、四、 运行结果.9 五、五、 流程图: .10 六、六、 总结:10 参考数目: 11 一、一、编程目的:编程目的: 建立一学生选修课选课管理系统,并对它进行输入、输出、查询、选课等操 作。 二、二、设计要求设计要求: 1.系统以菜单方式工作 2.课程信息录入功能(课程信息用文件保存)输入 3.课程信息浏览功能输出 4.查询功能:(至少一种查询方式)算法 5.按学分查询 6.按课程性质查询 7.学生选修课程(可选项) - 2 - 三、三、函数主体说明函数主体说明: #include #include #include #include using namespace std; class course public: void input() coutnumber; coutcourse_name; coutcourse_kind; couttotal_time; coutlearn_time; couttime; coutcredit_hour; coutcourse_time; void input_1(ifstream void display() coutnumbersetw(12)course_namesetw(5)course_kindsetw(1 0) total_timesetw(10)learn_timesetw(10)timesetw(13)credit_hour setw(12)course_timeendl; void display(ofstream friend class class_array; private: int num; / 学号学号 - 3 - int number; / 编号编号 char course_name40; / 课程名称课程名称 char course_kind10; / 课程性质课程性质 int total_time; / 总学时总学时 int learn_time; / 授课学时授课学时 int time; / 实验或上机学时实验或上机学时 int credit_hour; / 学分学分 char course_time40; / 开课学期开课学期 ; class student public: void input() coutnum; coutname; void input_1(ifstream void display() cout学号学号:numsetw(14)姓名姓名:namenum=-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_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+; ji.close(); - 5 - void display() / 输出输出 student 数组数组 int i; for(i=0;idisplay(); void display_1() / 输出输出 course 数组数组 int i; cout编号编号 课程名称课程名称 课程性质课程性质 总学时总学时 授课学时授课学时 实验或上机学实验或上机学 时时 学分学分 开课学期开课学期input(); / 在数组最后增加数据在数组最后增加数据 l+; void find_credit_hour() / 按学分查询按学分查询 int k,i; coutk; for(i=0;icredit_hour=k) (p+i)-display(); void find_course_kind() / 按课程性质查询按课程性质查询 char a20; int i; couta; for(i=0;icourse_kind,a)=0) (p+i)-display(); void find(class_array course *b=c.p; coutk; for(i=0;inum=k) (pb+i)-display(); cout编号编号 课程名称课程名称 课程性质课程性质 总学时总学时 授课学时授课学时 实验或上机学时实验或上机学时 学分学分 开课学期开课学期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 course p1; couti; b.display_1(); for(;) p1=b.find_number(); / 选课选课 p1.num=i; / 将学号填到数据中将学号填到数据中 pl=p1; / 将节点填到将节点填到 c 链表中链表中 l+; k=total_credit(i); / 计算学号为计算学号为 i 的总学分的总学分 if(k=8) cout请继续选课请继续选课; - 7 - else cout你的学分已超过你的学分已超过 8 分分!endl; break; void save() / student.txt保存文件函数保存文件函数 int i,k=-1; jb.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(course1.txt,ios:out); if(!jb) cout错误错误endl; exit(1); for(i=0;il;i+) jbnumdisplay(jb); - 8 - 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 新课程信息输入新课程信息输入 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=2) cout-课程性质查询课程性质查询-endl; b.find_course_kind(); else if(j=3) cout-学生选修课程学生选修课程-endl; a.find(c); - 9 - 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 - 开始 选择功能 课程信息浏览 选课查询功能课程录入结束 输入课程信息 浏览 以选课程信息浏览进行选课 1 2 34 5 5 5 5 5 六、六、总结总结: 刚开始选题的时候就觉得这题有点难度,觉得不怎么好入手。首先是 以菜单方式展开,就觉得怎么这么难。做的时候,就觉得更难了。其次是 把一些以前分开再的小题目合起来,就觉得又难了许多。从未编过这样的 程序,就觉得仅这个就挺吓人的。其中,有些函数就没应用过,比如那输 入/输出引用函数,见都没见过,幸好有师兄们的帮忙,才能把程序弄完, 这也觉得自己什么也没学懂,也是我觉得自己与别人的差距,通过这次的 设计我也觉得自己又有一点新的收获,也了解了为什么学这门课程了,对 其有了新认识。在做程序设计前还必须把书本上的基本知识搞懂,程序设 - 12 - 计会用到书中的类做,对类的理解也不是很到位,一些概念的知识还没有 很好的理解,

温馨提示

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

评论

0/150

提交评论