版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南城建学院河南城建学院 c+程序设计程序设计课程设计课程设计 设计题目:设计题目: 学生选修课程系统设计学生选修课程系统设计 指导教师:指导教师: 郭力争郭力争 刘荣辉刘荣辉 薛冰薛冰 专专 业:业: 数学与应用数学数学与应用数学 学生班级:学生班级: 1314101 学生学号:学生学号: 131410111 学生姓名:学生姓名: 刘亚欣刘亚欣 同同 组组 人:人: 李菲李菲 马小川马小川 数理学院数理学院 2013 年年 6 月月 目目 录录 1、课题目标、课题目标.1 1.1 设计要求.1 1.2 选题背景 .1 1.3 课题意义 .1 1.4 功能需求分析.2 1.5 系统功能分析.2
2、 2、程序具体实现原理、程序具体实现原理.3 2.1 总体方案 .3 2.1.1 开发平台.3 2.1.2 基本原理.4 2.1.3 数据结构.4 2.1.4 类的 uml 图.5 2.1.5 模块说明.6 2.2 程序各个功能说明 .7 2.2.1 程序结构.7 2.2.2 课程设计要求的实现.9 3、调试报告、调试报告.14 3.1 遇到的问题及解决办法.14 3.2 程序调试及运行结果.15 4 4、总结、总结.19 5、参考文献、参考文献.19 附录附录.20 河南城建学院c程序设计课程设计报告 1 1、课题目标、课题目标 1.1 设计要求设计要求 假定有 n 门课程,每门课程有课程编
3、号,课程名称,课程性质,总学时, 授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学 分不得少于 10)自由选课。试设计一个选修课程系统,使之能提供以下功能: 1.系统以菜单方式工作; 2.课程信息录入功能(课程信息用文件保存) ; 3.课程信息浏览功能; 4.查询功能(至少一种查询方式:按学分查询、按课程性质查询) ; 5.学生选修课程。 1.21.2 选题背景选题背景 当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是 计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够 进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的
4、提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行 信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本 系统就是为了管理好学生选课信息而设计的。 随着高校的多样全面发展,学生的人数和课程的种类急速增加,传统的选 课管理模式已经无法满足当前的实际需求,学生选课作为一种信息资源的集散 地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找。并 且数据处理手工操作工作量大,出错率高,出错后不易更改,造成各种不便, 总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚 未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是
5、学生选课管 理信息系统的开发基本环境背景。 1.31.3 课题意义课题意义 基于以上问题,我们认为有必要建立一个学生选课管理信息系统,使学生 选课信息管理工作规范化、系统化、程序化,以避免学生选课管理的随意性, 提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 系统实现后,极大的方便对学生进行选课和选课后班级的安排管理工作, 学生选课信息的管理。避免在安排课程信息的滞后,减少信息交流的繁琐过程 及其带来的额外开销。促进高校教育的计算机信息化进程,提高高校的工作效 河南城建学院c程序设计课程设计报告 2 率。并且对于系统本身而言,具有更高的使用性、安全性。能够满足学生选课,
6、 以及学生对选课信息的管理。 同时,通过该课程设计,我们可以达到把 c+程序设计理论知识更加的巩固 加深,加强动手操作能力与实践能力,学以致用,与现实生活中的应用充分的 结合起来,也实现了知识的活学活用。 1.41.4 功能需求分析功能需求分析 一个完善的学生选课管理信息系统能够极大的提高学生选课信息的管理效 率,具有检索迅速,查找方便,可靠性高,存储量大,更新快,寿命长,成本 低等优点。 本系统主要可以实现以下任务目标: 1、系统可以准确的记录和查询学生、老师以及所开设的课程的基本信息 2、学生登录系统后可以根据本专业制定的教学计划进行选课操作,可以查 询个人的基本信息 性能需求: 本学生信
7、息管理系统要能够抵御用户可能的各种操作,包括修改、更新、 删除等操作,以保证软件的可行性、稳定性、健壮性,同时要对数据进行检验, 保证数据有效性,可操作性,安全性。同时普通用户登录只有浏览的权限。系 统的非功能性需求: 实用性:系统以用户需求为目标,以方便用户为原则。根据用户实际的 需求情况,度身订造一套先进的局域网数据传输,从用户角度出发尽可能的方 便用户使用,满足基本的用户需要,成为学校等通用的网络软件。 高可靠性:一个实用的系统同时必须是可靠的,本设计通过合理而先进的 网络设计以及软、硬件的优化选型,可保证系统数据传输的正确性。 高安全性:在设计中,将充分利用网络软、硬件提供的各种安全措
8、施,既 可以保证用户共享资源,同时也可保证关键数据的安全性。 可扩展性及灵活性:系统的设计以方便未来业务的扩展和系统扩充为目标, 系统要求能够方便的升级,充分保护系统的投资。 智能型:系统在设计时,充分考虑系统运行的智能性,在使用系统一段时 间后,系统可以适应于任何局域网。 1.51.5 系统功能分析系统功能分析 根据设计要求,我们认为该系统应该包括:(1)课程信息输入功能;(2) 课程信息浏览功能;(3)按学分查询功能;(4)按课程性质查询功能;(5) 数据保存功能;(6)正确退出系统功能。其中对于课程信息输入功能可以有两 个实现途径:直接在系统中根据提示输入;根据系统的功能在相应文件下 建
9、立 text 文件直接输入课程信息。对于其余四个功能则主要是供学生选课使用。 本程序将课程性质统一规定为考试和考查两种;数据保存功能是为了保证在系 统中直接输入的课程信息顺利保存到 text 文件。 河南城建学院c程序设计课程设计报告 3 2、程序具体实现原理、程序具体实现原理 2.12.1 总体方案总体方案 首先根据设计要求,我们定义了三个类: class 类,control 类,menu 类。 class 类用来存放一系列课程的信息,以及一些获取信息的 get 函数;control 类 是用来定义选课类的操作属性,从 control 类里面来判断并实现用户所需要执行 的动作;menu 类定
10、义了菜单的操作,其中包括显示菜单,显示提示信息,获取 用户从键盘输入的信息并执行。 针对 class 类的定义,首先我们定义了一系列的设置相关课程信息的公有函 数,用来将输入的内容传给私有函数,其次定义了常函数,目的是为了防止数 据被其它函数调用时发生改变,同时将学分定义为浮点型,范围在 010 之间。 针对 menu 类的定义,我们先定义了一个获取键盘输入的函数 getinput(), 用于获取数据,接着定义了界面友好的显示目录函数,使得用户进行操作更加 方便,最后定义了一系列的显示提示信息函数。为了使得在今后的修改中更加 清楚方便,我们将这些函数独立分开。 针对 control 类的定义,
11、因为它的目的是用于判断并实现用户所要执行的操 作,是学生选课系统的核心。一切从 start()函数开始,通过 switch 语句判断按 下了哪个数字键,然后执行对应的操作,在文件录入这一方面,我定义了一个 initialization()函数,首先建立一个输入流,打开文件,将用户录入的课程信息 放入到变量中,再由变量放入文件中。其中的公有函数即课程设计所要求的功 能部分:添加选课,浏览选课,查询选课,保存文件。私有函数我们用了链表, classlist,用来一条一条记录课程信息,方便添加浏览以及查询。两种查询方法 都运用了迭代器的功能,迭代器的作用相当于指针,从链表的头部一个个指向 链表的末尾
12、,用于浏览以及查询部分。最后把迭代器指向的对象每个字段写入 文件中,文件名定义为 classsave,保存到程序的当前目录下。 最后主函数的实现,代码十分简单,先定义一个 control 类的对象, controlclass,再通过 controlclass.start()启动整个程序。 2.1.1 开发平台开发平台 操作系统:win7 开发软件:mirosoft visual c+ 6.0 河南城建学院c程序设计课程设计报告 4 2.1.2 基本原理基本原理 开始 进入系统界面 进入主菜单 课程信息浏览按学分查询 退出 课程信息录入信息存储 结束 按课程性质查询 2.1.3 数据结构数据结构
13、 表 1 数据结构表 数据名称数据类型解释 classnumstring课程编号 classnamestring课程名称 classpropertiesstring课程性质 totalclassnumberint总课时 currentclassnumberint授课学时 expclassnumberint上级或实验学时 creditdouble学分 righttermstring开课学期 河南城建学院c程序设计课程设计报告 5 2.1.4 类的类的 uml 图图 表 2 class 类的 uml 图 class -classnum: string -classname: string -cla
14、ssproperties: string -totalclassnumber: int -currentclassnumber: int -expclassnumber: int -credit: double -rightterm: string +setclassnum(classnumtemp: string) +setclassname(classnametemp: string) +setclassproperties(classpropertiestemp: string) +settotalclassnumber(totalclassnumbertemp: int) +setcu
15、rrentclassnumber(currentclassnumber: int) +setexpclassnumber(expclassnumbertemp: int) +setcredit(credit: double) +setrightterm(righttermtemp: string) +getclassnum():string +getclassname():string +getclassproperties():string +gettotalclassnumber():int +getcurrentclassnumber():int +getexpclassnumber()
16、:int +getcredit() :double +getrightterm() :string 表 3 menue 类的 uml 图 menue +getinput():char +showmenu():void +clearscreen():void +pausescreen():void +showaddclass():void +showbrowseclass():void +showsearchbycredit():void +showsearchbyclassproperties():void +showaddclassnum():void 河南城建学院c程序设计课程设计报告 6
17、 +showaddclassname():void +showaddclassproperties():void +showaddcurrentclassnumber():void +showaddexpclassnumber():void +showloadingsaving():void +showsuccessedsaving():void +showeachclassinfo(class classtemp) :void +quit():void 表 4 control 类的 uml 图 control -classlist: list +control() +start():void
18、 +initialization():void +addclass():void +quit():void +showallclass():void +searchbycredit():void +searchbyclassproperties():void +saveclass():bool 2.1.5 模块说明模块说明 (1)课程信息录入。课程信息录入应包括:课程编号、课程名称、课程性 质、总学时、授课学时、实验学时、学分、开课信息八个成员,为录入以上信 息,首先使用 setclassnum、setclassname、setclassproperties、settotalclassnumb
19、er、setcurre ntclassnumber、setexpclassnumber、setcredit、setrightterm 输出提示信息, 其次使用 addclass 函数添加课程信息。 (2)课程信息浏览。该功能主要是读取所有的课程信息,在程序中首先通 过 getclassnum、getclassname、getclassproperties、gettotalclassnumber、getcurr entclassnumber、getexpclassnumber、getcredit、getrightterm 八个函数读取课 程信息的相关信息,设置为静态成员函数,防止已录入的数据被篡
20、改;其次使 用 showclass、showeachclassinfo 函数显示全部课程信息。 (3)按学分查询。首先使用 getcredit 函数得到课程的学分信息,其次使用 searchbycredit 函数输出 “按学分查询”的提示信息;接着使用 showaddcredit 函数输出“请输入学分”的提示信息;最后使用 showsearchbycredit 函数将查询结果输出。 (4)按课程性质查询。按照课程性质的查询实现了根据课程的性质对课程的 河南城建学院c程序设计课程设计报告 7 查询,程序主要通过、 showaddclassproperties、setclassproperties
21、、getclassproperties、searchbyclasspr operties、showsearchbyclassproperties、 来实现对课程的查询,同样全部设置 为静态成员函数,已经录入的数据部能被篡改,根据提示输入就能得到想要查 询的内容。 (5)存储信息。选择存储信息选项之后用 showloadingsaving函数进行数据 的存储,显示正在存储数据。数据存储完毕后用 showsuccessedsaving 函数显示 输出数据存储完毕。 (6)退出系统。一个完整的系统应该包括退出系统,在程序中使用 quit 函数, 在按数字键 6 后给出提示信息:“press any
22、key to continue”提示使用者按任意键 退出系统。 2.22.2 程序各个功能说明程序各个功能说明 2.2.12.2.1 程序结构程序结构 将 class 类的属性和行为进行封装: 1.class 的封装 class class/定义了课程类的一些属性 public: void setclassnum(string classnumtemp);/课程编号 void setclassname(string classnametemp);/课程名称 void setclassproperties(string classpropertiestemp);/课程性质 void settot
23、alclassnumber(int totalclassnumbertemp);/总学时 void setcurrentclassnumber(int currentclassnumber);/授课学时 void setexpclassnumber(int expclassnumbertemp);/实验或上机学时 void setcredit(double credit);/学分 void setrightterm(string righttermtemp);/开课信息 / 录入函数设为常量函数防止信息被篡改 string getclassnum() const;/ 课程编号录入 string
24、 getclassname() const;/课程名称录入 string getclassproperties() const;/课程性质录入 int gettotalclassnumber() const;/总学时录入 int getcurrentclassnumber() const;/授课学时录入 int getexpclassnumber() const;/实验或上机学时录入 double getcredit() const;/学分录入 string getrightterm() const;/开课信息录入 / class 类的私有成员 private: string classnum
25、;/课程编号 string classname;/课程名称 string classproperties;/课程性质 int totalclassnumber;/总学时 int currentclassnumber;/授课学时 河南城建学院c程序设计课程设计报告 8 int expclassnumber;/上级或实验学时 double credit;/学分 string rightterm;/开课学期 ; 2.menu 类的封装 /menu 类主要实现系统的主界面 class menu public: char static getinput(); void static showmenu()
26、;/显示菜单 void static clearscreen();/清屏 void static pausescreen();/暂停 void static showaddclass();/显示添加课程信息的提示语 void static showbrowseclass();/ void static showsearchbycredit();/显示按学分查询的提示语 void static showsearchbyclassproperties();显示按课程性质查询的提示语 void static showaddclassnum();/显示输入课程编号的的提示语 void static s
27、howaddclassname();/显示增加课程名称的提示语 void static showaddclassproperties();/显示输入课程性质的提示语 void static showaddtotalclassnumber();/显示输入总学时的提示语 void static showaddcurrentclassnumber();/显示授课学时的提示语 void static showaddexpclassnumber();/显示输入实验学时的提示语 void static showaddcredit();/显示输入学分的提示语 void static showaddright
28、term();/显示开课学期的提示语 void static showloadingsaving();/显示正在存储信息的提示语 void static showsuccessedsaving();/显示信息已成功存储 void static quit();/退出系统函数 void static showeachclassinfo(class classtemp);/调用 class 类中的对象显示信息 ; 3 .control 类的封装 class control/定义了选课类的操作属性 public: control() void start(); void initialization(
29、); void addclass(); void quit() ; /退出函数 void showallclass(); void searchbycredit(); void searchbyclassproperties(); bool saveclass(); private: list classlist; 河南城建学院c程序设计课程设计报告 9 ; 2.2.2 课程设计要求的实现课程设计要求的实现 /class 类中各成员函数的实现 void class:setclassnum(string classnumtemp) this-classnum = classnumtemp; /
30、设置课程编号的实现 void class:setclassname(string classnametemp) this-classname = classnametemp; /设置课程名称的实现 void class:setclassproperties(string classpropertiestemp) this-classproperties = classpropertiestemp; /设置课程性质的实现 void class:settotalclassnumber(int totalclassnumbertemp) this-totalclassnumber = totalcl
31、assnumbertemp; /设置总学时的实现 void class:setcurrentclassnumber(int currentclassnumber) this-currentclassnumber = currentclassnumber; /设置授课学时的实现 void class:setexpclassnumber(int expclassnumbertemp) this-expclassnumber = expclassnumbertemp; /设置上机或实验学时的实现 void class:setcredit(double credit) this-credit = cr
32、edit; /设置课程学分的实现 void class:setrightterm(string righttermtemp) this-rightterm = righttermtemp; /设置开课学期的实现 string class:getclassnum() const/设置为常函数防止数据改变 return this-classnum; string class:getclassname() const return this-classname; string class:getclassproperties() const return this-classproperties;
33、int class:gettotalclassnumber() const return this-totalclassnumber; int class:getcurrentclassnumber() const return this-currentclassnumber; int class:getexpclassnumber() const 河南城建学院c程序设计课程设计报告 10 return this-expclassnumber; double class:getcredit() const return this-credit; string class:getrightter
34、m() const return this-rightterm; /menu 类各成员函数的实现 char menu: getinput() /获取输入函数金融数学考试大三下 char key = cin.get(); return key; void menu: showmenu() cout 欢迎您进入学生选课管理系统 endl; cout * endl; cout endl; cout 1 课程信息录入 endl; cout 2 课程信息浏览功能 endl; cout 3 根据学分查询 endl; cout 4 按课程性质查询 endl; cout 5 存储信息 endl; cout 6
35、 退出系统 endl; cout endl; cout 请输入操作对应的序号 endl; cout * endl; void menu: clearscreen() system(cls); void menu: pausescreen() /暂停 system(pause); void menu: showaddclass() / 显示增添课程信息 cout 请输入要添加的课程编号,课程名称,课程性质,总 学 时,授课 学时,实验学时,学分,开课学期等信息 endl; void menu: showbrowseclass() cout 所有课程的信息为 endl; void menu: sh
36、owsearchbycredit() cout 按照学分查询的结果为: endl; void menu: showsearchbyclassproperties() cout 按照课程性质查询的结果为: endl; void menu: showaddclassnum() cout n 请输入课程编号 endl; void menu: showaddclassname() cout 请输入课程名称 endl; void menu: showaddclassproperties() cout 请输入课程性质 endl; void menu: showaddtotalclassnumber() 河
37、南城建学院c程序设计课程设计报告 11 cout 请输入总学时 endl; void menu: showaddcurrentclassnumber() cout 请输入授课学时 endl; void menu: showaddexpclassnumber() cout 请输入实验或上机学时 endl; void menu: showaddcredit() cout 请输入学分 endl; void menu: showaddrightterm() cout 请输入开课学期 endl; void menu: showloadingsaving() cout 正在存储数据 endl; void
38、menu: showsuccessedsaving() cout 数据存储完毕 endl; void menu: quit() coutpress any key to continue; void menu: showeachclassinfo(class classtemp) cout 课程编号: classtemp.getclassnum() ; cout 课程名称: classtemp.getclassname(); cout 课程性质: classtemp.getclassproperties() ; cout 总学时: classtemp.gettotalclassnumber()
39、; cout 授课学时: classtemp.getcurrentclassnumber() ; cout 实验学时: classtemp.getexpclassnumber(); cout 课程学分: classtemp.getcredit(); cout 开课学期: classtemp.getrightterm(); cout endl; cout addclass(); cin.get(); cin.get(); break; case 2: 河南城建学院c程序设计课程设计报告 12 menu:clearscreen(); menu:showbrowseclass(); this-sho
40、wallclass(); menu:pausescreen(); break; case 3: menu:clearscreen(); this-searchbycredit(); menu:pausescreen(); break; case 4: menu:clearscreen(); this-searchbyclassproperties(); menu:pausescreen(); break; case 6: menu:clearscreen(); this-quit(); menu:pausescreen(); break; case 5: menu:showloadingsav
41、ing(); if (this-saveclass() menu:showsuccessedsaving(); menu:pausescreen(); menu:pausescreen(); default: break; void control: initialization() ifstream ifs;/文件输入流 ifs 相当于建立一个文件 ifs.open(classsave.txt,ios_base:in); if (!ifs) menu:pausescreen(); return; class classtemp;/class 类的一个对象 classtemp if (ifs.
42、is_open()/系统内置函数 判断文件是否打开 string classnum( );/初始化 string classname( ); string classproperties( ); int totalclassnumber(0); 河南城建学院c程序设计课程设计报告 13 int currentclassnumber(0); int expclassnumber(0); double credit(0.0); string rightterm( ); while(!ifs.eof() ifs classnum classname classproperties totalclas
43、snumber currentclassnumber expclassnumber credit rightterm;/从文件读取的内容放到对应的变量里面 classtemp.setclassnum(classnum); classtemp.setclassname(classname); classtemp.setclassproperties(classproperties); classtemp.settotalclassnumber(totalclassnumber); classtemp.setcurrentclassnumber(currentclassnumber); class
44、temp.setexpclassnumber(expclassnumber); classtemp.setcredit(credit); classtemp.setrightterm(rightterm); classlist.push_back(classtemp);/在末尾添加一个变量 ifs.close(); void control: addclass()/添加例如选课等操作 class classtemp; string classnum(); string classname(); string classproperties(); int totalclassnumber(0);
45、 int currentclassnumber(0); int expclassnumber(0); double credit(0.0); string rightterm(); menu:showaddclassnum(); cin classnum; classtemp.setclassnum(classnum); menu:showaddclassname(); cin classname; classtemp.setclassname(classname); menu:showaddclassproperties(); cin classproperties; classtemp.s
46、etclassproperties(classproperties); menu:showaddtotalclassnumber(); cin totalclassnumber; classtemp.settotalclassnumber(totalclassnumber); menu:showaddcurrentclassnumber(); 河南城建学院c程序设计课程设计报告 14 cin currentclassnumber; classtemp.setcurrentclassnumber(currentclassnumber); menu:showaddexpclassnumber();
47、 cin expclassnumber; classtemp.setexpclassnumber(expclassnumber); menu:showaddcredit(); cin credit; classtemp.setcredit(credit); menu:showaddrightterm(); cin rightterm; classtemp.setrightterm(rightterm); classlist.push_back(classtemp); void control: quit() /退出函数 exit(1); void control: showallclass()
48、 list:iterator iter = classlist.begin(); int number=classlist.size(); for(int i=0; i=number-2;i+) menu:showeachclassinfo(*iter); iter+; 3、调试报告、调试报告 3.13.1 遇到的问题及解决办法遇到的问题及解决办法 程序最开始运行时,7 条信息录入完毕后输出程序本该结束但并没有结束, 而是参照第 6 条的数据局部复制了一条数据从而影响了按照学分查询的结果。 组员之间经过细致的检查和多次的尝试均未能改变程序的结果,自主不能解决 时选择请教老师解答疑难。在郭老师的
49、帮助下,重新编写程序 b 代替原有的程 序 a。 程序 b: list:iterator iter = classlist.begin(); int number=classlist.size(); for(int i=0; i=number-2;i+) menu:showeachclassinfo(*iter); iter+; 程序 a: for (list:iterator iter = classlist.begin();iter!= classlist.end(); +iter) 河南城建学院c程序设计课程设计报告 15 menu:showeachclassinfo(*iter); 在
50、比较这两段程序后,我们发现如果将程序 b 中 for(int i=0; i=number- 2;i+)中的 i 的范围改成 i=number-1,那么和程序 a 的效果是完全一样的。但 是,从正向思维出发我们理解为 i 的上限可以是 number-1,为达到系统要求,我 们采取符合我们要求的 b 程序。在这个过程中,我们认为 c+的强大功能在于 实现市级的操作问题,所编制的程序应该为了解决问题而存在,更应该和实际 相符。 解决完上述问题后,程序运行后的结果中,7 条信息没有空隙使结果看起 来极为拥挤,让程序的使用者感到非常不舒服。为解决这一瑕疵,我们在输出 条信息的完整数据后重复这样的一句代码
51、:cout quit(); menu:pausescreen(); break; 关于结果文本框的显示背景颜色,我们想要选择更符合人们审美和视觉倾 向的蓝色,为此,在程序的最后添加这样一句语句:system(color 1a );使得程 序运行结果的背景颜色由原本的黑色转变为我们想要的蓝色。至此,已基本完 成程序的设计,大致完成我们想要的运行结果。 以上四点就是我们小组在学生选课系统中所遇到的问题,以及面对不同的 问题做出的解决方案。 3.2.2 程序调试及运行结果程序调试及运行结果 河南城建学院c程序设计课程设计报告 16 图 1 系统界面 按数字键 1 后出现课程信息录入界面,根据提示依次
52、输入相关数据,得到 下图二。 图 2 课程信息录入功能的实现 信息录入完毕后选择数字 5 选项进行数据存储得到图三。 图 3 存储信息功能的实现 河南城建学院c程序设计课程设计报告 17 调用 text 文件按数字键 2 选择浏览所有课程信息输出所有课程信息,得到 图四。 图 4 课程信息浏览功能的实现 按数字键 3 选择按学分查询,输入学分为 4 查询到学分为 4 的所有课程的 课程信息得到图五。 河南城建学院c程序设计课程设计报告 18 图 5 按学分查询功能的实现 按数字键 4 选择按课程性质查询,输入课程性质为考试查询到课程性质是 考试的所有课程的课程信息得到图六。 图 6 按课程性质
53、查询功能的实现 最后选择数字键 5 退出学生选课系统,得到图七。 图 7 退出系统功能的实现 河南城建学院c程序设计课程设计报告 19 4 4、心得体会心得体会 虽然仅仅是几天的课堂上机时间,然而我们在课下也为这个课程设计做出 很多的努力,尤其是在紧张的复习周,这足以证明着我们组每一个人对待 c+ 课程设计的态度端正立场坚定。 作为非计算机专业的学生,我对 c+的了解仅限于皮毛,如若仅凭个人能 力,这么短的时间内我想无论如何都是做不出这样一个我自己看来还算是可以 的数据库设计的。能在规定的时间内完成各个步骤要感谢组里的每一位组员, 我们分工明确并且认真完成自己的任务才得以实现了高效率。首先,我
54、把自己 的思路告诉我的组员,他们在肯定我的想法的同时为那些不太完美的地方提出 的不一样的见解,可谓是每一个人的 good 结合在一起就可以形成 perfect。真 正程序运行的时候出现各种问题,需要反反复复的修改,最后在老师的帮助下 我们基本上得到了想要的结果。在和同学交流的时候我发现我的专业知识并不 是那么的牢固,我发挥自己优势的同时向别人学习以弥补自己的不足,正所谓 三人行必有我师。一个人不可能十全十美,但我想要接近完美的自己。 三个人的合作不可能是完美无缺毫无瑕疵的,我们虽有着相同的目标,但 在其中却也有过分歧有过争吵有过埋怨,更多的还是三人同心协力团结一致把 题目完成。往前翻看到那些亲
55、手码上去的文字和截图后的图片还能感受到某一 时刻阶段性完工时自信满满的心理情绪,某一段因为一个小问题卡住的无奈与 思考,某一部分因为意见不合争吵的面红耳赤。所有这些小心情都是我在这次 课程设计途中收获的小幸福,我们面临着一年以后的毕业,即使是吵架的时间 也会觉得难能可贵,本科阶段也许这样的合作机会已经不多了,这期间的种种 情感都必然我的心理财富。 我可能不会走上 c+语言程序设计的专业道路,可能不会让其成为我的职 业,但计算机已经成为现代社会职业人不可或缺的一种工具,这段时间的知识 储备所具有的能量也许会在未来的某一天显现出来。我很感谢能有机会学习这 样一门课程经历这样一次课程设计,并且我在用
56、心对待认真去做,把它当成一 件事情去做,这种心理的成就感我觉得很满足。 5、参考文献、参考文献 1.郑莉,董渊,何江舟.c+语言程序设计m.北京:清华大学出版社,2010. 2.谭浩强. c+程序设计m. 北京:清华大学出版社,2004 3.陈维兴. c+面向对象程序设计第三版m. 北京:清华大学出版社,2010 4.李师贤. c+程序设计实验程序m. 北京:高等教育出版社 河南城建学院c程序设计课程设计报告 20 附录附录 源程序: #include #include #include #include #include #include using namespace std; /clas
57、s 类的封装 class class/定义了课程类的一些属性 public: void setclassnum(string classnumtemp);/课程编号 void setclassname(string classnametemp);/课程名称 void setclassproperties(string classpropertiestemp);/课程性质 void settotalclassnumber(int totalclassnumbertemp);/总学时 void setcurrentclassnumber(int currentclassnumber);/授课学时
58、void setexpclassnumber(int expclassnumbertemp);/实验或上机学时 void setcredit(double credit);/学分 void setrightterm(string righttermtemp);/开课信息 / 录入函数设为常量函数防止信息被篡改 string getclassnum() const;/ 课程编号录入 string getclassname() const;/课程名称录入 string getclassproperties() const;/课程性质录入 int gettotalclassnumber() cons
59、t;/总学时录入 int getcurrentclassnumber() const;/授课学时录入 int getexpclassnumber() const;/实验或上机学时录入 double getcredit() const;/学分录入 string getrightterm() const;/开课信息录入 / class 类的私有成员 private: string classnum;/课程编号 string classname;/课程名称 string classproperties;/课程性质 int totalclassnumber;/总学时 int currentclassn
60、umber;/授课学时 int expclassnumber;/上级或实验学时 double credit;/学分 string rightterm;/开课学期 ; 河南城建学院c程序设计课程设计报告 21 /class 类中各成员函数的实现 void class:setclassnum(string classnumtemp) this-classnum = classnumtemp; / 设置课程编号的实现 void class:setclassname(string classnametemp) this-classname = classnametemp; /设置课程名称的实现 voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 45153-2024老龄化社会照顾人员包容性组织通用要求与指南
- 手术室护士工作小结范文(5篇)
- 我爱读书演讲稿15篇
- 护理督查工作汇报
- 感恩节前的精彩讲话稿(9篇)
- 情感电台广播稿集锦15篇
- 市场营销毕业的实习总结
- 师德师风宣讲活动简报(18篇)
- 初级会计实务-2021年5月16日上午初级会计职称考试《初级会计实务》真题
- 初级会计经济法基础-初级会计《经济法基础》模考试卷817
- 搞笑小品剧本《大城小事》台词完整版
- 《大模型原理与技术》全套教学课件
- 2023年护理人员分层培训、考核计划表
- 《销售培训实例》课件
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解)
- 【经典文献】《矛盾论》全文
- Vue3系统入门与项目实战
- 2024年宁夏回族自治区中考英语试题含解析
- 光伏发电项目试验检测计划
- 房屋建筑工程投标方案(技术方案)
- 2025年高考语文作文备考:议论文万能模板
评论
0/150
提交评论