C++学生选课管理系统_第1页
C++学生选课管理系统_第2页
C++学生选课管理系统_第3页
C++学生选课管理系统_第4页
C++学生选课管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1、河南城建学院C+程序设计课程设计设计题目:学生选修课程系统设计指导教师:郭力争刘荣辉薛冰专业:数学与应用数学学生班级:1314101学生学号:131410111学生姓名:刘亚欣同组人:李菲马小川数理学院2013年6月目录1、课题目标 .11.1设计要求 .1.1.2选题背景 .1.1.3课题意义 .1.1.4功能需求分析 .2.1.5系统功能分析 .2.2、程序具体实现原理 .32.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.2 课程设计要求的实现 .9.3、调试报告 .143.1遇到的问题及解决办法 .1.43.2程序调试及运行结果 .1.5.4、总结 .195、参考文献 .19附录 .201、课题目标1.1设计要求假定有 n 门课程,每门课程有课程编号,课程名称,课程性质,总学时, 授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学 分不得少于 10)自由选课。试设计一个选修课程系统,使之能提供以下功能:1.系统以菜单方式工作;2.课程信息录入功能(课程信息用文件保存) ;3.课程信息浏览功能;4.查询功能(至少一种查询方式:按学分查询、按课程性质查询) ;5.学生选修课程。1.2选题背

3、景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是 计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够 进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的 提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行 信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本 系统就是为了管理好学生选课信息而设计的。随着高校的多样全面发展,学生的人数和课程的种类急速增加,传统的选 课管理模式已经无法满足当前的实际需求,学生选课作为一种信息资源的集散 地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找

4、。并 且数据处理手工操作工作量大,出错率高,出错后不易更改,造成各种不便, 总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚 未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是学生选课管 理信息系统的开发基本环境背景。1.3课题意义基于以上问题,我们认为有必要建立一个学生选课管理信息系统,使学生 选课信息管理工作规范化、系统化、程序化,以避免学生选课管理的随意性, 提高信息处理的速度和准确性, 能够及时、准确、 有效的查询和修改选课情况系统实现后,极大的方便对学生进行选课和选课后班级的安排管理工作, 学生选课信息的管理。避免在安排课程信息的滞后,减少信息交流的繁琐过

5、程 及其带来的额外开销。促进高校教育的计算机信息化进程,提高高校的工作效 率。并且对于系统本身而言,具有更高的使用性、安全性。能够满足学生选课, 以及学生对选课信息的管理。同时,通过该课程设计,我们可以达到把 C+程序设计理论知识更加的巩固 加深,加强动手操作能力与实践能力,学以致用,与现实生活中的应用充分的 结合起来,也实现了知识的活学活用。1.4 功能需求分析一个完善的学生选课管理信息系统能够极大的提高学生选课信息的管理效 率,具有检索迅速,查找方便,可靠性高,存储量大,更新快,寿命长,成本 低等优点。本系统主要可以实现以下任务目标:1、 系统可以准确的记录和查询学生、老师以及所开设的课程

6、的基本信息2、 学生登录系统后可以根据本专业制定的教学计划进行选课操作,可以查 询个人的基本信息性能需求: 本学生信息管理系统要能够抵御用户可能的各种操作,包括修改、更新、 删除等操作,以保证软件的可行性、稳定性、健壮性,同时要对数据进行检验, 保证数据有效性,可操作性,安全性。同时普通用户登录只有浏览的权限。系 统的非功能性需求:实用性:系统以用户需求为目标,以方便用户为原则。根据用户实际的 需求情况,度身订造一套先进的局域网数据传输,从用户角度出发尽可能的方 便用户使用,满足基本的用户需要,成为学校等通用的网络软件。高可靠性:一个实用的系统同时必须是可靠的,本设计通过合理而先进的 网络设计

7、以及软、硬件的优化选型,可保证系统数据传输的正确性。高安全性:在设计中,将充分利用网络软、硬件提供的各种安全措施,既 可以保证用户共享资源,同时也可保证关键数据的安全性。可扩展性及灵活性:系统的设计以方便未来业务的扩展和系统扩充为目标, 系统要求能够方便的升级,充分保护系统的投资。智能型:系统在设计时,充分考虑系统运行的智能性,在使用系统一段时 间后,系统可以适应于任何局域网。1.5 系统功能分析根据设计要求,我们认为该系统应该包括: ( 1)课程信息输入功能;(2)课 程信息浏览功能;(3)按学分查询功能;(4)按课程性质查询功能; (5)数据 保存功能;(6)正确退出系统功能。其中对于课程

8、信息输入功能可以有两个实 现途径:直接在系统中根据提示输入;根据系统的功能在相应文件下建立 text 文件直接输入课程信息。对于其余四个功能则主要是供学生选课使用。本 程序将课程性质统一规定为考试和考查两种;数据保存功能是为了保证在系统 中直接输入的课程信息顺利保存到 text 文件。2、程序具体实现原理2.1总体方案首先根据设计要求,我们定义了三个类:Class类,Control类,Menu类。Class类用来存放一系列课程的信息,以及一些获取信息的get函数;Control类是用来定义选课类的操作属性,从Control类里面来判断并实现用户所需要执 行的动作;Menu类定义了菜单的操作,其

9、中包括显示菜单,显示提示信息,获 取用户从键盘输入的信息并执行。针对Class类的定义,首先我们定义了一系列的设置相关课程信息的公有函 数,用来将输入的内容传给私有函数,其次定义了常函数,目的是为了防止数 据被其它函数调用时发生改变,同时将学分定义为浮点型,范围在010之间。针对Menu类的定义,我们先定义了一个获取键盘输入的函数getlnput(),用于获取数据,接着定义了界面友好的显示目录函数,使得用户进行操作更加 方便,最后定义了一系列的显示提示信息函数。为了使得在今后的修改中更加 清楚方便,我们将这些函数独立分开。针对Control类的定义,因为它的目的是用于判断并实现用户所要执行的操

10、 作,是学生选课系统的核心。一切从start()函数开始,通过switch语句判断按下了哪个数字键,然后执行对应的操作,在文件录入这一方面,我定义了一个 initlalization()函数,首先建立一个输入流,打开文件,将用户录入的课程信息 放入到变量中,再由变量放入文件中。其中的公有函数即课程设计所要求的功 能部分:添加选课,浏览选课,查询选课,保存文件。私有函数我们用了链表, classList,用来一条一条记录课程信息,方便添加浏览以及查询。两种查询方法 都运用了迭代器的功能,迭代器的作用相当于指针,从链表的头部一个个指向 链表的末尾,用于浏览以及查询部分。最后把迭代器指向的对象每个字

11、段写入 文件中,文件名定义为classSave保存到程序的当前目录下。最后主函数的实现,代码十分简单,先定义一个Control类的对象,ControlClass,再通过 controlClass.start()启动整个程序。2.1.1开发平台操作系统:Win7开发软件:Mirosoft Visual C+ 6.02.1.2基本原理2.1.3数据结构表1数据结构表数据名称数据类型解释classNumstri ng课程编号classNamestri ng课程名称classPropertiesstri ng课程性质totalClassNumberInt总课时curre ntClassNumberIn

12、t授课学时expClassNumberInt上级或实验学时creditDouble学分rightTermstri ng开课学期2.1.4类的UML图表2 Class类的UML图Class-ClassNum: stri ng -ClassName: stri ng -ClassProperties: stri ng -TotalClassNumber: int -curre ntClassNumber: int -ExpClassNumber: int -credit: double -rightTerm: stri ng +setClassNum(classNumTemp: stri ng)

13、+setClassName(classNameTemp: stri ng) +setClassProperties(classPropertiesTemp: string) +setTotalClassNumber(totalClassNumberTemp: int) +setCurre ntClassNumber(curre ntClassNumber: int) +setExpClassNumber(expClassNumberTemp: int) +setCredit(credit: double) +setRightTerm(rightTermTemp: stri ng) +getCl

14、assNum():stri ng +getClassName():stri ng +getTotalClassNumber():i nt vvcon st+getCurre ntClassNumber():i nt vvcon st+getExpClassNumber():i nt c on st+getCredit() :double +getRightTerm() :stri ng表3 Menue类的UML图Menue+getl nput():char +showMe nu(): void +clearScree n(): void +pauseScree n(): void +showA

15、ddClass():void +showBrowseClass():void +showSearchByCredit():void +showSearchByClassProperties():void +showAddClassNum():void vstatic+showAddClassName():void vstatic+showAddClassProperties():void +showAddCurre ntClassNumber():void +showAddExpClassNumber():void static+showLoadi ngSavi ng():void stati

16、c+showSuccessedSav in g():void +showEachClassl nfo(Class classTemp) :void +quit():void表4 Control类的UML图Con trol-classList: list+Co ntrol()+Start():void+i nitlalizatio n( ):void+addClass():void+quit():void+showAIICIass():void+searchByCredit():void+searchByClassProperties():void+saveClass():bool2.1.5模块

17、说明(1)课程信息录入。课程信息录入应包括:课程编号、课程名称、课程性 质、总学时、授课学时、实验学时、学分、开课信息八个成员,为录入以上信 息, 首 先使用 setClassNum、 setClassName、 setClassProperties、 setTotalClassNumbe、setCurrentClassNumbe、setExpCIassNumbe、setCredit、 setRightTerm输出提示信息,其次使用addClass函数添加课程信息。(2)课程信息浏览。该功能主要是读取所有的课程信息,在程序中首先通过 getClassNum、getClassName getCl

18、assProperties getTotalClassNumber、 getCurrentClassNumber getExpCIassNumbe、getCredit、getRightTerm 八个函数 读取课程信息的相关信息,设置为静态成员函数,防止已录入的数据被篡改; 其次使用showclass showeachclassinfo函数显示全部课程信息。(3)按学分查询。首先使用 getCredit函数得到课程的学分信息,其次使用searchByCredit函数输出“按学分查询”的提示信息;接着使用showAddCredit 函数输出“请输入学分”的提示信息;最后使用showSearchBy

19、Credit函数将查询结果输出。(4)按课程性质查询。按照课程性质的查询实现了根据课程的性质对课程的 查询,程序主要通过、showAddCIassProperties、setClassProperties、 getClassProperties searchByCIassProperties showSearchByCIassProperties 来 实现对课程的查询,同样全部设置为静态成员函数,已经录入的数据部能被篡 改,根据提示输入就能得到想要查询的内容。(5) 存储信息。选择存储信息选项之后用 showLoadi ngSav ing函数进行数据 的存储,显示正在存储数据。数据存储完毕后用

20、showSuccessedSavingS数显示 输出数据存储完毕。(6) 退出系统。一个完整的系统应该包括退出系统, 在程序中使用 quit 函数, 在按数字键6后给出提示信息“press any key to continue提示使用者按任意键 退出系统。2.2程序各个功能说明2.2.1 程序结构将class类的属性和行为进行圭寸装:1.Class的圭寸装class Class定义了课程类的一些属性public:void setClassNum(string classNumTemp);/ 课程编号void setClassName(string classNameTemp);/ 课程名称v

21、oid setClassProperties(stri ng classPropertiesTemp);/ 课程性质void setTotalClassNumber(int totalClassNumberTemp);/ 总学时void setCurrentClassNumber(int currentClassNumber);/ 授课学时void setExpClassNumber(int expClassNumberTemp);/ 实验或上机学时void setCredit(double credit);/ 学分void setRightTerm(string rightTermTemp)

22、;/ 开课信息/ 录入函数设为常量函数防止信息被篡改string getClassNum() const;/ 课程编号录入stri ng getClassName() con st;/ 课程名称录入stri ng getClassProperties() con st;/ 课程性质录入int getTotalClassNumber() const;/ 总学时录入int getCurrentClassNumber() const;/ 授课学时录入int getExpClassNumber() const;/ 实验或上机学时录入double getCredit() const;/ 学分录入 str

23、ing getRightTerm() const;/ 开课信息录入/ class 类的私有成员private:stri ng classNum;/ 课程编号stri ng className;/ 课程名称stri ng classProperties;/ 课程性质int totalClassNumber;/ 总学时int currentClassNumber;/ 授课学时int expCIassNumber;/上级或实验学时double credit;/ 学分string rightTerm;/ 开课学期;2.Menu 类的封装/menu 类主要实现系统的主界面class Menupublic

24、:char static getInput();void static showMenu();/ 显示菜单void static clearScreen();/ 清屏void static pauseScreen();/ 暂停void static showAddClass();/ 显示添加课程信息的提示语void static showBrowseClass();/void static showSearchByCredit();/ 显示按学分查询的提示语void static showSearchByClassProperties(); 显示按课程性质查询的提示语void static s

25、howAddClassNum();/ 显示输入课程编号的的提示语 void static showAddClassName();/ 显示增加课程名称的提示语 void static showAddClassProperties();/ 显示输入课程性质的提示语 void static showAddTotalClassNumber();/ 显示输入总学时的提示语 void static showAddCurrentClassNumber();/ 显示授课学时的提示语 void static showAddExpClassNumber();/ 显示输入实验学时的提示语 void static s

26、howAddCredit();/ 显示输入学分的提示语 void static showAddRightTerm();/ 显示开课学期的提示语 void static showLoadingSaving();/ 显示正在存储信息的提示语 void static showSuccessedSaving();/ 显示信息已成功存储 void static quit();/ 退出系统函数void static showEachClassInfo(Class classTemp);/ 调用 class 类中的对象显示信息 ;3 .Control 类的封装class Control/ 定义了选课类的操作

27、属性public:Control()void start();void initIalization();void addClass();void quit() ;/ 退出函数void showAllClass();void searchByCredit();void searchByClassProperties();bool saveClass();private:list classList;2.2.2课程设计要求的实现/Class 类中各成员函数的实现void Class:setClassNum(string classNumTemp) this-classNum = classNum

28、Temp;/ 设置课程编号的实现void Class:setClassName(string classNameTemp) this-className = classNameTemp;/ 设置课程名称的实现void Class:setClassProperties(string classPropertiesTemp) this-classProperties = classPropertiesTemp;/ 设置课程性质的实现void Class:setTotalClassNumber(int totalClassNumberTemp) this-totalClassNumber = tot

29、alClassNumberTemp;/ 设置总学时的实现void Class:setCurrentClassNumber(int currentClassNumber) this-currentClassNumber = currentClassNumber;/ 设置授课学时的实现void Class:setExpClassNumber(int expClassNumberTemp) this-expClassNumber = expClassNumberTemp;/ 设置上机或实验学时的实现void Class:setCredit(double credit)this-credit = cr

30、edit;/ 设置课程学分的实现void Class:setRightTerm(string rightTermTemp) this-rightTerm = rightTermTemp;/ 设置开课学期的实现string Class:getClassNum() const/ 设置为常函数防止数据改变 return this-classNum;string Class:getClassName() constreturn this-className;string Class:getClassProperties() constreturn this-classProperties;int Cl

31、ass:getTotalClassNumber() const return this-totalClassNumber;int Class:getCurrentClassNumber() const return this-currentClassNumber;int Class:getExpClassNumber() const return this-expClassNumber;double Class:getCredit() constreturn this-credit; string Class:getRightTerm() constreturn this-rightTerm;

32、 /Menu 类各成员函数的实现 char Menu: getInput() / 获取输入函数金融数学考试大三下 char key = cin.get();void Menu: clearScreen() system(cls);void Menu: pauseScreen()/ 暂停system(pause);void Menu: showAddClass() / 显示增添课程信息 cout 请输入要添加的课程编号,课程名称,课程性质,总学 时,授课学时,实验学时,学分,开课学期等信息 endl;void Menu: showBrowseClass()cout 所有课程的信息为 endl;v

33、oid Menu: showSearchByCredit()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

34、() cout 请输入总学时 endl;void Menu: showAddCurrentClassNumber() cout 请输入授课学时 endl;void Menu: showAddExpClassNumber()cout 请输入实验或上机学时 endl;void Menu: showAddCredit()cout 欢迎您进入学生选课管理系统 endl;cout * endl;cout endl;cout 1 课程信息录入 endl;cout 2 课程信息浏览功能 endl;cout 3 根据学分查询 endl;cout 4 按课程性质查询 endl;cout 5 存储信息 endl;

35、cout 6 退出系统 endl;cout endl;cout 请输入操作对应的序号 endl;return key;void Menu: showMenu()cout * endl;,判cout 请输入学分 endl;void Menu: showAddRightTerm()cout 请输入开课学期 endl;void Menu: showLoadingSaving()cout 正在存储数据 endl;void Menu: showSuccessedSaving()cout 数据存储完毕 endl;void Menu: quit()coutpress any key to continue;

36、void Menu: showEachClassInfo(Class classTemp)cout 课程编号 : classTemp.getClassNum() ;cout 课程名称 : classTemp.getClassName();cout 课程性质 : classTemp.getClassProperties() ; cout 总学时 : classTemp.getTotalClassNumber();cout 授课学时 : classTemp.getCurrentClassNumber() ; cout 实验学时 : classTemp.getExpClassNumber();cou

37、t 课程学分 : classTemp.getCredit();cout 开课学期 : classTemp.getRightTerm();cout endl;cout addClass();cin.get();cin.get();break;case 2:Menu:clearScreen();Menu:showBrowseClass();this-showAllClass();Menu:pauseScreen(); break;case 3:Menu:clearScreen(); this-searchByCredit(); Menu:pauseScreen(); break;case 4:Me

38、nu:clearScreen(); this-searchByClassProperties(); Menu:pauseScreen();break;case 6:Menu:clearScreen();this-quit();Menu:pauseScreen(); break;case 5:Menu:showLoadingSaving();if (this-saveClass()Menu:showSuccessedSaving();Menu:pauseScreen();Menu:pauseScreen();default: break;void Control: initIalization(

39、)ifstream ifs;/ 文件输入流 ifs 相当于建立一个文件 ifs.open(classSave.txt,ios_base:in);if (!ifs)Menu:pauseScreen();return;Class classTemp;/class 类的一个对象 classTemp if (ifs.is_open()/ 系统内置函数 判断文件是否打开 string classNum( );/ 初始化 string className( );string classProperties( );int totalClassNumber(0);int currentClassNumber(

40、0);int expClassNumber(0);double credit(0.0);string rightTerm( );while(!ifs.eof()ifs classNum className classProperties totalClassNumber currentClassNumber expClassNumber credit rightTerm;/ 从文件读取的内容放到对应的变量里面 classTemp.setClassNum(classNum); classTemp.setClassName(className); classTemp.setClassPropert

41、ies(classProperties); classTemp.setTotalClassNumber(totalClassNumber); classTemp.setCurrentClassNumber(currentClassNumber); classTemp.setExpClassNumber(expClassNumber); classTemp.setCredit(credit); classTemp.setRightTerm(rightTerm);classList.push_back(classTemp); 在末尾添加一个变量ifs.close();void Control: a

42、ddClass()/添加例如选课等操作Class classTemp;string classNum();string className();string classProperties();int totalClassNumber(0);int currentClassNumber(0);int expClassNumber(0);double credit(0.0);string rightTerm();Menu:showAddClassNum();cin classNum;classTemp.setClassNum(classNum);Menu:showAddClassName();c

43、in className;classTemp.setClassName(className); Menu:showAddClassProperties();cin classProperties; classTemp.setClassProperties(classProperties); Menu:showAddTotalClassNumber();cin totalClassNumber; classTemp.setTotalClassNumber(totalClassNumber); Menu:showAddCurrentClassNumber();cin currentClassNum

44、ber;classTemp.setCurrentClassNumber(currentClassNumber);Menu:showAddExpClassNumber();cin expClassNumber;classTemp.setExpClassNumber(expClassNumber);Menu:showAddCredit();cin credit;classTemp.setCredit(credit);Menu:showAddRightTerm();cin rightTerm;classTemp.setRightTerm(rightTerm); classList.push_back

45、(classTemp);void Control: quit()/退出函数exit(1);void Control: showAllClass()list:iterator iter = classList.begin();int number=classList.size();for(int i=0; i=number-2;i+)Menu:showEachClassInfo(*iter);iter+;3、调试报告3.1 遇到的问题及解决办法程序最开始运行时, 7 条信息录入完毕后输出程序本该结束但并没有结束, 而是参照第 6 条的数据局部复制了一条数据从而影响了按照学分查询的结果。 组员之间

46、经过细致的检查和多次的尝试均未能改变程序的结果,自主不能解决 时选择请教老师解答疑难。在郭老师的帮助下,重新编写程序 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) Menu:showEa

47、chClassInfo(*iter); 功询 白真柱摹 亠H H互孟:家12 12 3 3 4 4 5 5 6 6在比较这两段程序后,我们发现如果将程序B中for(int i=0; i=number-2;i+)中的i的范围改成i=number-1,那么和程序A的效果是完全 一样的。但是,从正向思维出发我们理解为i的上限可以是number-1,为达到系统要求,我们采取符合我们要求的B程序。在这个过程中,我们认为C+的强大功能在于实现市级的操作问题,所编制的程序应该为了解决问题而存在,更 应该和实际相符。解决完上述问题后,程序运行后的结果中,7条信息没有空隙使结果看起来极为拥挤,让程序的使用者感到

48、非常不舒服。为解决这一瑕疵,我们在输出 条信息的完整数据后重复这样的一句代码:cout quit();Men u:pauseScree n();break;关于结果文本框的显示背景颜色,我们想要选择更符合人们审美和视觉倾向的蓝色,为此,在程序的最后添加这样一句语句:system(color 1A);使得程序运行结果的背景颜色由原本的黑色转变为我们想要的蓝色。至此,已基本完 成程序的设计,大致完成我们想要的运行结果。以上四点就是我们小组在学生选课系统中所遇到的问题,以及面对不同的 问题做出的解决方案。3.2程序调试及运行结果CUmin(stratarDe5ktnpCUmin(stratarDe5

49、ktnp莊曲番5&5&盅0?0?分JTJT幄序ynynF FH HI I gCppgCpp .PVP-欢迎腔避八字生选评管理乎统图1系统界面誕勲 監入总学时性质图2课程信息录入功能的实现信息录入完毕后选择数字5选项进行数据存储得到图三5 5 * * CC XDociiaeikl:XDociiaeikl: s s UEHIUEHII I SetSet t t irigirig A AI II IJBXJBXnstnst i i #1#1 DTDT l l臭面 SkSk 姥艾件夫fclufclu e-M-e-M- exeexe- -TT u u rr n_R=n_R= u u u u n_wn_w

50、uuy y T*T* * * * u u * ixix inin irTiirTijojo m m n nm-m-誹功询 入普直 息貝令性息练 信莓齋摞 毘咛曙霑亠1 1 2 2 4 4 b b 6 6按数字键1后出现课程信息录入界面,根据提示依次输入相关数据,得到 下图二。| |: C:C: DodcuMenlrsDodcuMenlrs andand S SE EHI:XnHI:Xn匡EX.jlLdtokEX.jlLdtok:L:rij.L:rij.:fitfit Xci:LXci:L桌面 IDmbuCppIDmbuCpp l.l. es:ees:e请输.人揀作对应的序号睛接铉意挺地鋼.-图

51、3存储信息功能的实现辐入实脸武上机学时怦頃课律95信息为实验学时:加课程騙号:松验密脸単引鳞严计争横:数学分析縣翱霁下報瀚型上总学时:e e 课程编号咱画: : W W课程编号呵 实验空町油賓叢=公共关系龍彗:潜理论垛程性匝匕考查 开俅学覇:大三下人二下总字时M0M0总学时=b=b投農学比:toto保栓编号油囲 实验孚屮W W课程编号:力0606去验壬叶汨粼高竽数学傑程性顾匕若查 开傑孕期二大三下垛程性质二考试 开慄学期:大一上下总学时:3 30 0总学时:辭披侠学肘:2U2U调用text文件按数字键2选择浏览所有课程信息输出所有课程信息,得到 图四。:人 *Cs*Cs XDocmenlzsX

52、Docmenlzs andand Seli:Seli: ingsj!Ldla3.M3LiB!-tTa.tingsj!Ldla3.M3LiB!-tTa.t orJ&orJ& W W 8f8fVDebngVc-M.VDebngVc-M. eseese情技芒惫键继续-图4课程信息浏览功能的实现按数字键3选择按学分查询,输入学分为4查询到学分为4的所有课程的 课程信息得到图五。图5按学分查询功能的实现按数字键4选择按课程性质查询,输入课程性质为考试查询到课程性质是 考试的所有课程的课程信息得到图六。图6按课程性质查询功能的实现最后选择数字键5退出学生选课系统,得到图七图7退出系统功能的实现4、心得体会

53、虽然仅仅是几天的课堂上机时间,然而我们在课下也为这个课程设计做出 很多的努力,尤其是在紧张的复习周,这足以证明着我们组每一个人对待 C+ 课程设计的态度端正立场坚定。作为非计算机专业的学生,我对 C+勺了解仅限于皮毛,如若仅凭个人能 力,这么短的时间内我想无论如何都是做不出这样一个我自己看来还算是可以 的数据库设计的。能在规定的时间内完成各个步骤要感谢组里的每一位组员, 我们分工明确并且认真完成自己的任务才得以实现了高效率。首先,我把自己 的思路告诉我的组员,他们在肯定我的想法的同时为那些不太完美的地方提出 的不一样的见解,可谓是每一个人的 good 结合在一起就可以形成 perfect 。真

54、 正程序运行的时候出现各种问题,需要反反复复的修改,最后在老师的帮助下 我们基本上得到了想要的结果。在和同学交流的时候我发现我的专业知识并不 是那么的牢固,我发挥自己优势的同时向别人学习以弥补自己的不足,正所谓 三人行必有我师。一个人不可能十全十美,但我想要接近完美的自己。三个人的合作不可能是完美无缺毫无瑕疵的,我们虽有着相同的目标,但 在其中却也有过分歧有过争吵有过埋怨,更多的还是三人同心协力团结一致把 题目完成。往前翻看到那些亲手码上去的文字和截图后的图片还能感受到某一 时刻阶段性完工时自信满满的心理情绪,某一段因为一个小问题卡住的无奈与 思考,某一部分因为意见不合争吵的面红耳赤。所有这些

55、小心情都是我在这次 课程设计途中收获的小幸福,我们面临着一年以后的毕业,即使是吵架的时间 也会觉得难能可贵,本科阶段也许这样的合作机会已经不多了,这期间的种种 情感都必然我的心理财富。我可能不会走上C+语言程序设计的专业道路,可能不会让其成为我的职 业,但计算机已经成为现代社会职业人不可或缺的一种工具,这段时间的知识 储备所具有的能量也许会在未来的某一天显现出来。我很感谢能有机会学习这 样一门课程经历这样一次课程设计,并且我在用心对待认真去做,把它当成一 件事情去做,这种心理的成就感我觉得很满足。5、参考文献1 .郑莉,董渊,何江舟.C+语言程序设计M.北京:清华大学出版社,2010.2 .谭

56、浩强.C+程序设计M.北京:清华大学出版社,20043 .陈维兴.C+面向对象程序设计第三版M.北京:清华大学出版社,20104 .李师贤.C+程序设计实验程序M.北京:高等教育出版社附录源程序:#include #include #include #include #include #include using namespace std;/class 类的封装class Class定义了课程类的一些属性public:void setClassNum(string classNumTemp);/ 课程编号 void setClassName(string classNameTemp);/ 课

57、程名称 void setClassProperties(stri ng classPropertiesTemp);/ 课程性质 void setTotalClassNumber(int totalClassNumberTemp);/ 总学时 void setCurrentClassNumber(int currentClassNumber);/ 授课学时 void setExpClassNumber(int expClassNumberTemp);/ 实验或上机学时 void setCredit(double credit);/ 学分void setRightTerm(string right

58、TermTemp);/ 开课信息/ 录入函数设为常量函数防止信息被篡改string getClassNum() const;/ 课程编号录入 stri ng getClassName() con st;/ 课程名称录入 stri ng getClassProperties() con st;/ 课程性质录入 int getTotalClassNumber() const;/ 总学时录入 int getCurrentClassNumber() const;/ 授课学时录入 int getExpClassNumber() const;/ 实验或上机学时录入 double getCredit() c

59、onst;/ 学分录入 string getRightTerm() const;/ 开课信息录入/ class 类的私有成员private:stri ng classNum;/ 课程编号stri ng className;/ 课程名称stri ng classProperties;/ 课程性质int totalClassNumber;/ 总学时int currentClassNumber;/ 授课学时int expCIassNumber;/上级或实验学时 double credit;/ 学分 string rightTerm;/ 开课学期;/class类中各成员函数的实现void Class:

60、setClassNum(string classNumTemp)this-classNum = classNumTemp;/ 设置课程编号的实现 void Class:setClassName(string classNameTemp) this-className = classNameTemp;/ 设置课程名称的实现 void Class:setClassProperties(string classPropertiesTemp) this-classProperties = classPropertiesTemp;/ 设置课程性质的实现void Class:setTotalClassNu

温馨提示

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

评论

0/150

提交评论