C++程序设计课程设计-选课管理系统_第1页
C++程序设计课程设计-选课管理系统_第2页
C++程序设计课程设计-选课管理系统_第3页
C++程序设计课程设计-选课管理系统_第4页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

沈阳工程学院课程设计设计题目: C++程序设计课程设计--选课管理系统 _系别 信息工程系 班级系统本101 学生姓名 张兆甲任志强 学号07号、08号 指导教师代钦张楠职称讲师讲师 起止日期:20n年12月12日起——至201I年12月16日止

沈阳工程学院C++课程逛课程设计成绩评定表系(部): 信息工程系 班级:系统本101 学生姓名:张兆甲指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432「作能ノノ态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统ー,编号齐全,图表完备,书写エ整规范。0.55432指导教师评审成绩(加权分合计乘以!2)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分杏阅文献查阅文献有一定广泛性:有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统ー,编号齐全,图表完备,书写エ整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评阅教师签名:年月日

沈阳工程学院C++课程设计 课程设计成绩评定表系(部): 信息工程系 班级:系统本101 学生姓名:任志强指导教师评审意见评价内容具体要求权重评分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432「作能ノノ态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作,0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统ー,编号齐全,图表完备,书写エ整规范。0.55432指导教师评审成绩(加权分合计乘以!2)分加权分合计指导教师签名:年月日评阅教师评审意见评价内容具体要求权重评分加权分杏阅文献查阅文献有一定广泛性:有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统ー,编号齐全,图表完备,书写エ整规范。0.35432评阅教师评审成绩(加权分合计乘以8)分加权分合计评阅教师签名:年月日沈阳工程な院课程设计任务书课程设计题目: 选课管理系统ー系别信息工程系 班级系统本101学生姓名张兆甲任志强 学号07号、08号指导教师代钦张楠 职称讲师讲师课程设计进行地点: 实训楼F611 任务下达时间: 2011年11月30日起止日期:201I年12月12日起——至2011年12月16日止教研室主任 年月日批准ー、课程设计的原始资料及依据查阅有关资料,进ー步理解面向对象程序设计的思想,并编写•・个简单的windows系统。通过本设计可以加深理解使用面向对象程序设计思想开发ー个系统的方法,提高分析问题、解决问题和实际动手的能力。二、课程设计主要内容及要求设计内容:假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计ー选修课程系统,使之能提供以下功能:(1)课程信息录入功能(课程信息用文件保存)(2)课程信息浏览功能(3)查询功能:(至少…种査询方式).按学分查询.按课程性质查询(4)学生选修课程(可选项)设计要求:(1)要求在设计的过程中建立清晰的类层次,并画出类图;(2)设计功能满足要求、易于操作的友好界面;(3)在系统的设计中,至少要用到面向对象的ー种机制:继承、多态等;(4)在完成该题目时,小组人员进行详细的任务分エ,并要在报告中体现出来。三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括;设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。一般不应少于3000字。2,在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。应做到文理通顺,内容正确完整,书写エ整,装订整齐。.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。.课程设计说明书手写或打印均可。手写要用学校统・的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,・级节标题采用黑体四号字,ニ级节标题采用黑体小四号字,表题与图题采用宋体五号字。.课程设计说明书装订顺序为;封面、任务书、成绩评定表、目录、正文、参考文献。四、设计完成后应提交成果的种类、数量、质量等方面的要求.完成“任务书”中指定的功能,运行结果正确。.课程设计说明书。

五、时间进度安排顺序阶段日期计划完成内容备注1第1天进行设计准备,阅读资料,分析设计任务书,明确设计要求、内容和步骤2第2天需求分析3第3天概要设计4第4天详细设计5第5天编码、调试程序答辩,撰写课程设计报告六、主要参考资料(文献)[1]郑莉董渊张瑞丰编着.《C++语言程序设计》(第4版).北京:清华大学出版社.2010[2]陈维兴,林小茶.《C++高级程序设计教程》.北京:清华大学出版社[3]谭浩强.《C++程序设计教程》.北京:中国科学技术出版社[4I王燕.《面向对象的理论与C++实践》.北京:清华大学出版社[5I马石安,魏文平.主编《VisualC++程序设计与应用教程》.北京:清华大学出版[6]王育坚.主编《VisualC++面向对象编程教程》(第二版).北京:清华大学出版现代科学技术的飞速发展,改变了世界,也改变了人类的生活。作为新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,整自己的知识结构和能力结构,以适应社会发展的需求。C++语言是在国内外使用的ー种计算机语言。C++语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。此题是设计ー个学生选课系统,该系统主要包括录入信息功能,浏览信息功能,查询功能。其中录入信息功能是录入课程信息。浏览功能主要是为了看已录入信息而设计的。查询功能是为了方便用户查看信息而设计的。并且,该系统还设计了文件输入输出流,作用是保存和打开信息。另外,为了美观还需要设计ー个操作界面。最后,该系统是由对象来完成整个程序之间的连接,使得该系统操作简便,容易实现功能。在设计中,首先要学习程序设计课程的目的掌握设计程序的思路,学习怎么样用C++语言编写程序来实现所需要系统的功能。要正确处理算法与语法的关系,算法是程序的核心。编写过程中不能把学习重.点放在语法规则上,虽然语法是重要的,不掌握语法规则就无法编写出正确的程序。•定要把重点放在解题的思路上,通过思考,和大量的阅读,这样来完成ー个好的程序设计。关键词学生选课系统;C++;函数;类的继承目录TOC\o"1-5"\h\z摘要 I第1章绪论 1\o"CurrentDocument"题目背景 1\o"CurrentDocument"设计目的 1\o"CurrentDocument"解决问题 1\o"CurrentDocument"第2章C++语言的运行环境及其特点 3\o"CurrentDocument"VC++概述 3VC++简介 3VC++的适用范围 3VC++的组成 4VC++的特点 4\o"CurrentDocument"VC++集成开发环境窗口 5\o"CurrentDocument"第3章系统分析与设计 7\o"CurrentDocument"系统分析 7\o"CurrentDocument"系统功能 7录入课程信息功能 8信息浏览功能 9查询功能 10\o"CurrentDocument"类图 11第4章系统功能的实现 13主函数 13\o"CurrentDocument"登陆函数 14录入课程信息模块 15\o"CurrentDocument"浏览信息模块 17查询信息管理 18结论 22致谢 23\o"CurrentDocument"参考文献 24题目背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最到好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。学生选课作为・种信息资源的集散地,包含很多的信息数据的管理。由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的学校有计算机,但是尚未用于信息管理,没有发挥它的效カ,资源闲置比较突出,这就是管理信息系统的开发基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。造成了时间上的浪费。基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。设计目的学生选课系统是ー个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生选课系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们都使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外随着时间ー长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。基于网上学分制的选课系统已经在很多高校得到广泛的应用,深得广大师生的称赞,它改变了以往由学校统发课程表到学生手中,然后由学生填好再反馈到学校,而学校还要对结果进行审查,确定有效性,最后オ实施上课计划,这一传统的手工选课不仅复杂,也牵涉了很多的人力,对管理也造成了诸多不变,而借助网上选课系统,学生在规定选课时间段内,可以不受地点和时间的限制完成选修课的申请,而学校也可以方便地对系统进行管理和控制,提高工作效率。解决问题这次设计主要通过运用程序设计模块化的思想,运用平时所学知识和查找到的资料编写ー个学生选课管理系统。在这个程序中管理员可以对学生选课管理系统中的内容进行输入和修改,学生也可以通过该系统后査询课程信息并进行选课,教师通过该系统可以录入学生成绩,使信息管理更具体、更便捷、更电子化。第2章C++语言的运行环境及其特点VC++概述VC++简介VisualC++是ー个功能强大的可视化软件开发工具,它不仅是ー个C++编译器,还是…个基于Windows操作系统的集成开发环境。VisualC++由许多组件组成,包括编辑器、编译器、调试器以及程序向导AppWizard、类向导Classwizard等。这些组件通过ー个名为DeveloperStudio的组件集成为管委会和谐的开发环境。VC作为ー个主流的开发平台一直深受编程爱好者的喜爱,但是很多人却对它的入门感到难于上青天,究其原因主要是大家对他错误的认识造成的,严格的来说VC++不是门语言,虽然它和C++之间有密切的关系,如果形象点比喻的话,可以C++看作为・种“エ业标准”,而VC++则是某种操作系统平台下的“厂商标准”,而“厂商标准”是在遵循“エ业标准”的前提下扩展而来的。VC++是微软公司开发的一个IDE(集成开发环境),换句话说,就是使用C++的ー个开发平台。有些软件就是这个编出来的。另外还有VB,VF,只是使用不同语言,但是,VC++是Windows平台上的C++编程环境,学习VC++要了解很多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。Windows下编程需要了解Windows的消息机制以及冋调(callback)函数的原理;MFC是Win32Api的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等:COM是代码共享的二进制标准,需要掌握其基本原理等等。VC++应用程序的开发主要有两种模式,•种是WINAP!方式,另ー种则是MFC方式,传统的WINAPI开发方式比较繁琐,而MFC则是对WINAPI再次封装,所以MFC相对于WINAPI开发更具备效率优势,但为了对WINDOWS开发有一个较为全面细致的认识,笔者在这里还是以讲解WINAPI的相关内容为主线。VC++基于C,C++语言,主要由是MFC组成,是与系统联系非常紧密的编程工具,它兼有高级,和低级语言的双重性,功能强大,灵活,执行效率高,几乎可说VC++在Windows平台无所不能。最大缺点是开发效率不高。VC++的适用范围VC主要是针对Windows系统,适合一些系统级的开发,可以方便实现ー些底层的调用。在VC里边嵌入汇编语言很简单。VC主要用在驱动程序开发。VC执行效率高,当对系统性能要求很高的时候,可用VC开发。VC主要适用于游戏开发。VC多用于单片机,工业控制等软件开发,如直接对I/O地址操作,就要用C++。VC适用开发高效,短小,轻量级的COM组件,DLL。比如WEB上的控件。VC可以开发优秀的基于通信的程序。VC可以开发高效灵活的文件操作程序。VC可以开发灵活高效的数据库操作程序。VC是编CAD软件的唯一选择!!!包括AUTOCAD,UG的二次开发。VC在多线程、网络通信、分布应用方面,VC++有不可比拟的优势。VC++的组成VisualC++6.0不仅是ー•个C++编译器,而且是ー个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)oVisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。这些组件通过ー•个名为DeveloperStudio的组件集成为和谐的开发环境。VisualC++它大概可以分成三个主要的部分:DeveloperStudio»这是ー个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着“MicrosoftVisualC++”,所以很多人理所当然的认为,那就是VisualC++T〇其实不然,虽然DeveloperStudio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,DeveloperStudio并不是专门用于VC的,它也同样用于VB,VJ,VID等VisualStudio家族的其他同胞兄弟。所以不要把DeveloperStudio当成VisualC++,它充其量只是VisualC++的ー个壳子而已。这一点请切记!MFC-从理论上来讲,MFC也不是专用于VisualC++,BorlandC++,C++Builder和SymantecC++同样可以处理MFC。同保狀isualC++编写代码也并不意味着一定要用MFC,只要愿意,用VisualC++来编写SDK程序,或者使用STL,ATL,ー样没有限制。不过,VisualC++本来就是为MFC打造的,VisualC++中的许多特征和语言扩展也是为MFC而设计的,所以用VisualC++面不用MFC就等于抛弃了VisualC++中很大的一部分功能。但是,VisualC++也不等于MFCoPlatformSDK。这オ是VisualC++和整个VisualStudio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,PlatformSDK是以MicrosoftC/C++编译器为核心(不是VisualC++,看清楚了),配合MASM,辅以其他…些工具和文档资料。上面说到DeveloperStudio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序オ是构成VisualStudio的基石。VC++的特点源程序用C++语言编写,支持面向对象设计方法,使用功能强大的微软基础类库MFC(MicrosoftFoundationClass)〇开发出来的软件稳定性好、可移植性强。可以编制各种各样Windows应用程序,包括对话框程序、文档/视图程序和组合界面程序。作为VisualStudio可视化组件家族中最重要的一个成员,与其它可视化开发工具如VisualJ++、VisualBasic及VisualC#紧密地集成在ー起,适用于特殊、复杂和综合软件项目的开发,乃至ー个系统软件的设计。联机帮助系统MSDN(MicrosoftDeveloperNetworkLibrary)功能强大。它既能与集成开发环境有机地结合在ー起,使得用户在编程时随机查询需要的内容信息,又能脱离集成开发环境而独立地运行。除了VisualC++,其它ー些公司也推出了自己的C++集成开发环境,如Borland的C++Builder和!BM的VisualAgeC++〇迄今为止,VisualC++是功能最强和使用范围最广的软件开发工具。比较VisualBasic、C++Builder和Delphi等编程工具,用VisualC++编写Windows应用程序最富于挑战性和艰巨性。而当熟练掌握VisualC++后,你会感受到作为ー个VisualC++程序员的无比优越性。要想在使用VisualC++编程时做到游刃有余,必须解决四个主要困难:C++语言的面向对象机制MFC类库功能的庞大Windows编程的复杂性向导所建立的应用程序框架的透明性VC++集成开发环境窗口从Windows的“开始I程序”栏选择MicrosoftVisualStudio6.0菜单中的MicrosoftVisualC++6.0菜单项,就启动了VisualC++集成开发环境,出现集成开发环境的主窗口DeveloperStudiooVisualC++通过DeveloperStudio将所有组件集成在开发环境中,用户可以利用DeveloperStudio编写应用程序。例如,利用VisualC++6.0创建・个Windows应用程序Mysdi□.执行FilelNew菜单命令,出现New对话框。在Project页面窗口中选择MFCAppWizard[exe]选项,在ProjectName编辑框中输入项目名称Mysdi,在location编辑框中输入保存项目的路径,如图2-1所小。图2-1创建一个应用程序

.在MFCAppWizard-Stepl对话框中设置应用程序的类型,本例创建一个单文档程序,选择Singledocument项,单击Finish按钮,出现NewProjectInformation对话框,单击OK按钮,将生成应用程序框架文件,并在项目工作区窗口打开生成的应用程序的项目,如图2-2所示。工作区包口编辑窗ロ縞出窗ユ标题栏工作区包口编辑窗ロ縞出窗ユ标题栏菜单栏工具栏图2-2VisualC++6.0集成开发环境第3章系统分析与设计系统分析假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计ー选修课程系统,使之能提供以下功能:(1)课程信息录入功能(课程信息用文件保存)(2)课程信息浏览功能(3)查询功能:(至少…种查询方式).按学分查询.按课程性质查询系统功能本系统主要由一个Course类,Search类及其五个成员函数组成。课题所要求的功能由各个函数分别得以实现。首先,在Course类内定义了一些成员变量,用来保存课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,还对它的成员变量进行了声明。Search类主要实现课程的查询,并继承了Course类的数据成员。然后,在类外,通过作用域运算符将类内声明的成员函数定义,以及进行相应的操作,以实现相应的功能。主要包括功能要求中的三大功能,即信息输入、信息浏览、信息的査询。最后,在主函数中设置目录显示。用switch瓜分不同的功能选项。系统根据用户输入的符号,调用相应的成员函数,完成功能的实现。如图3-1所示:图3-I功能模块图类层次图如图3-2所示:课程课程编号课程名字课程性质总学时授课学时实验或上机学时学分开课学期课程信息录入功能

课程信息浏览功能

按学分查询

按课程性质查询图3-2类层次图录入课程信息功能首先,创建一个文件输出流对象outfile,打开文件,判断文件是否存在。通过while设ー个无限循环,当给出指定条件时退出。在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等等。将需要的课程输入完毕之后,可根据提示再输入“〇”,即可返回主菜单,重新进行功能的选择。录入课程信息流程图如图3-3所示:结束图3-3录入课程信息流程图信息浏览功能该函数首先创建了输入流文件对象infile,使用语句infile,open(file)J然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,用for循环保证保存不止ー•门课程的信息。最后,cout输出显示所有保存的信息。

查询功能查找功能,即按学分查找和按课程性质查找。按课程性质查找:创建输入流文件对象infHe,然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示。流程图如图3-4所示图3-4按课程性质查询流程图按课程学分查找:创建输入流文件对象infile,然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示。流程图如图3-5所示:

图3-5按学分査询流程图类图本程序包括两个类,Course类,Serach类,其中Serach类继承了Course类中的数据成员,类图如图3-6所示:Course+courseNumber:int+courseName:string+courseKind:string+coursePeriod:int+schoolPeriod:int+experimentPeriod:int+credithour:float+courseterm:string+Courselnfolnput():void+CourseInfoOutPut():void A Search+chaozhao():void+SearchByCredithour(incredithour:float):void+SearchByCourseKind(incourseKind:string):void图3-6学生选课系统类图第4章系统功能的实现4.1主函数首先调用事先定义好的函数,用switch函数,返回值整数作开关语句的条件。主要实现项目选择的功能。其优点为程序简单明了,方便阅读。主函数是程序的入口,采用模块化设计,主函数不宜复杂,功能尽量在模块中实现。先声明一些必要的变量,然后做多个函数的调用,该语句的条件值是通过调用主菜单函数得到的返回值,根据该值,调用相应的各功能函数,同时设置ー个出口,即返回值为一定条件时运行退出函数结束程序,以免造成死循环。主函数设计地比较简洁,只调用了一个“登陆界面函数”。[程序]intmain()(CourseExcourse;SearchC;while(1)cout«H******************************************************************************\pj».cout«"・ 学生选课系统*\n";cout « "・ 请 选 择 操 作:*\n";cout«"* ⑴.录入课程信息*\n";cout«"* (2).浏览课程信息*\n";cout«"* ⑶.查询课程信息*\n";cout«"* (0).退出系统*\n";——..X, ”******************************************************************************”.しモcout«endl;inti;J

cin»i;switch(i)(Excourse.Courselnfolnput();break;Excourse.CourselnfoOutPut();break;C.chazhao();break;case0:exit(O);)}return1;)4.2登陆函数登陆函数主要使用了switch语句,以用来作为各个函数的接口。在登陆界面中有4个选项,如图4-2所示。选“ド后,开始录入课程的信息。选“2”后,浏览课程信息。选“3”后,查询课程信息。选“0”后,退出系统。学生选课系统»请选择操作:自5自5自5亠一回ーーa亠=00学生选课系统»请选择操作:自5自5自5亠一回ーーa亠=00く81人^^出肅查退部分代码switch(i)(Excourse.Courselnfolnput();break;Excourse.CourselnfoOutPut();break;C.chazhao();break;case0:exit(O);4.3录入课程信息模块首先,创建一个文件输出流对象outfile»打开文件,判断文件是否存在。通过while设一个无限循环,当给出指定条件时退出。在循环中,调用cout函数来提示用户输入相应的信息,如课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等等。将需要的课程输入完毕之后,可根据提示再输入“〇”,即可返回主菜单,重新进行功能的选择。课程界面如图4-2所示。***“Ir^:2***“Ir^:2體2期ー

编ゆ屉也$子..学ー子覆分课ー课课课总^1子开宀入入入入入入入入f按囈灘息录入XXXXXXXXXXXXXXXXXXXMXXXX图4-2课程信息录入界面部分代码voidCourse::Courselnfolnput() 〃课程信息的录入(ofstreamoutcoursefile; 〃创建,•个文件输出流对象outcoursefile.open(coursefile); 〃打开文件if(!outcoursefile) 〃判断文件是否存在{cout«"文件打开失败!"«endl;return;}while(1) 〃无限循环,给出指定条件退出{cout「ー »»********★********★★★*★★************ スロ イ主 白***********************************\n11*cout«" 按任意键开始信息录入\n";cout«" 输入q退出\n";if(getch()=='q')(break;)coutvv"请输入课程编号:";cin»courseNumber;coutvv"请输入课程名称:";cin»courseName;coutvv"请输入课程性质:";cin»courseKind;coutvv"请输入总学时:";cin»coursePeriod;coutvv"请输入授课学时:";cin»schoolPeriod;cout<<"请输入实践学时:";cin»experimentPeriod;coutvv"请输入学分:";cin»credithour;cout<<"请输入开课学期:";cin»courseterm;outcoursefile«courseNumber«""«courseName«""«courseKind«"16

«coursereriod«""«schoolPeriod«""«experimentPeriod«""«credithour«""«courseterm«endl;}outcoursefile.close(); 〃关闭输出流文件浏览信息模块该函数首先创建了输入流文件对象infile,使用语句infile.open(file),然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,用for循环保证保存不止ー门课程的信息。最后,cout输出显示所有保存的信息。学生界面如图4-3所示。课程编号;课程名称;课程性质;总学时;授课学时;实践学时;学分所课学期・请选择操作:学生选课系统H谭课出為查退・请选择操作:学生选课系统H谭课出為查退图4-3浏览信息界面部分代码如下:〃课程信息的浏览〃创建输入流文件对象〃课程信息的浏览〃创建输入流文件对象〃打开〃判断文件存在ifstreamincoursefile;incoursefile.open(coursefile);if(!incoursefile)cout<<"文件读取失败";return;}cout«"课程编号I课程名称I课程性质I总学时I授课学时I实践学时I学分I开课学期\n";stringarrcourse[100][100l; 〃定义一个string类型的二维数组,用来保存从文本内读取的信息intline=0;memset(arroourse,0,sizeof(arrcourse)):〃将数组清空while(!incoursefile.eof()) 〃文件不为空的条件设置for(intj=0;j<8;j++)(incoursefile»arrcourse[line][j];)line++;for(inti=O;i<line;i++){for(intj=0;j<8;j++)(cout«" "«arrcourse[i][j])cout«endl;}incoursefile.close();}查询信息管理查找功能,即按学分查找和按课程性质查找,具体的实现如下:按课程性质查找:创建输入流文件对象infile,然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示,界面设计操作图4-4所示:图4-4课程性质查询界面部分代码如下:voidSearch::SearchByCourseKind(stringstrtemp)///课程类型查询(ifstreamincoursefile; 〃创建输入流文件对象incoursefile.open(coursefile); 〃打・开if(iincoursefile) 〃判断文件存在{cout«"文件读取失败";return;}stringarrcourse[100][100];intline=0;memset(arrcourse,0,sizeof(arrcourse));while(!incoursefile.eof()){incoursefile»arrcourse[line][0]»arrcourse[line][1]»arrcourse[line][2]»arrcourse[line][3]»arrcourse[line][4]»arrcourse[line][5]»arrcourse[line][6]»arrcourse[line][7];line++;)cout«"课程编号I课程名称I课程性质I总学时I授课学时I实践学时I学分I开课学期\n";for(inti=0;i<line;i++){if(arrcourse[i][2]==strtemp)cout«""«arrcourse[i][0]«"\t"«" "«arrcourse[i][1]«"M"«""«arrcourse[i][2]«"\t"«" "«arrcourse[i][3]«"\t"«" "«arrcourse[i][4]«"\t"«" "«arrcourse[i][5]«"\t"«" "<<arrcourse[i][6]«"\t"«""«arrcourse[i][7]«"\n "«endl;cout«"\n\n";

按课程学分查找:创建输入流文件对象infile,然后定义ー个string类型的二维数组,用来保存从文本内读取的信息,比较用户输入的字符和保存的信息中那些课程的性质相对应,将相应的课程信息进行输出显示,界面设计操作图4-5所示:请输入学分:课程编号!课程名称I课程性质;总学时:授课学时;实践学时I学分;开课学期选择查询方式:〈1>.按课程类型查询<2>.按学分查询<0>.返回图4-5课程学分查询界面部分代码如下:voidSearch::SearchByCredithour(floattempeh)〃创建输入流文件对象〃打开〃判断文件存在〃创建输入流文件对象〃打开〃判断文件存在〃定义ー个string类型的二维数组,用来保存从incoursefile.open(coursefile);if(lincoursefile){cout«"文件读取失败";return;)stringarrcourse[100][100];文本内读取的信息intline=0;memset(arrcourse,0,sizeof(arrcourse));〃将数组清空while(!incoursefile.eof()) //文件不为空的条件设置{incoursefile»arrcourse[line][0]»arrcourse[line][1]»arrcourse[line][2]»arrcourse[line][3]»arrcourse[line][4]»arrcourse[line][5]»arrcourse[line][6]»arrcourse[line][7];〃文件流读取数据line++;cout«"课程编号I课程名称I课程性质I总学时I授课学时I实践学时I学分I开课学期\n";for(inti=0;i<line;i++){if(atof(arrcourse[i][6].c_str())==tempch)〃比较cout«""«arrcourse[i][0]«"\t"«" "«arrcourse[i][1]«'M"«""«arrcourse[i][2]«"\t"«" "«arrcourse[i][3]«"\t"«" "«arrcourse[i][4]«"\t"«" "«arrcourse[i][5]«"\t"«" "«arrcourse[i][6]«"\t"«""«arrcourse[i][7]«"\n "«endl;cout«"\n\n";incoursefile.close();为期一周的C++课程设计很快就要结束了,疲惫之余感到的是胜利的喜悦。这两星期的时间里,我们经过不懈的努力,完成了所选课程设计的编写,能够实现任务书上的基本要求。在程序设计的过程中,我们将C++的知识又重新的温习了一次,使我们的C++知识又稳固了一次。刚开始拿到课程设计题目时,认真看了看要求,一点思路都没有。在刚开始做的时候没有想法,不知道从何做起。于是,到图书馆查看相关资料,看看别人是怎么做的,为了更加详细的了解各部分是如何实现的,自己在电

温馨提示

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

最新文档

评论

0/150

提交评论