您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《面向对象程序设计》课程设计要求和任务书
《面向对象程序设计》课程设计任务书课程设计名称:面向对象程序设计指导老师:王淮亭课程设计周(时)数:2周课程设计授课单位:计算机基础教学部指导方式:集体辅导与个别辅导相结合课程设计适用专业:计算机科学与技术课程设计教材及主要参考资料:《C++程序设计》谭浩强编著,清华大学出版社《C++程序设计教程学习辅导》谭浩强编著,清华大学出版社服务课程名称:面向对象程序设计一、课程设计的目的要求《面向对象程序设计课程设计》是计算机专业及相关专业学生的一门实践课程。本课程对于检验学生学习面向对象程序设计课程后的学习成果,对于软件开发主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。本课程设计要求学生综合应用已学的计算机相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。课程要求学生针对一个比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。二、课程设计内容及安排1.问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?2.逻辑设计:对问题描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;3.详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对数据结构和基本操作作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架;4.程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;5.程序调试与测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;6.结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析。7.编写课程设计报告三、设计报告的内容1、实习报告题头给出题目、班级、姓名、学号和完成日期2、目的和要求本实验的主要目的是锻炼我们的实战经验,运用自己所学的编程语言编写一些小型的项目。同时熟悉自己学过的知识3、问题描述说明程序设计的任务。在这里应明确:(1)输入的形式和输入值的范围;(2)输出的形式;(3)程序所能达到的功能;(4)测试数据:具有典型和代表性的数据,包括正确的输入及其输出结果和含有错误的输入和输出结果。4.开发环境和工具(1)程序设计环境,主要描述硬件配置,包括计算机的外存、内存、CPU、显示器的分辨率以及完成该实习必备的外部设备(2)软件工具,包括操作系统平台,程序设计工具5.设计过程描述根据实习的目的、要求与问题描述,构思程序的构架与设计方案。具体地应说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系,画出流程图。6、小结(1)说明调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;(2)算法的时空分析和改进设想(3)经验和体会等7、附录(源程序代码)源程序代码书写要求规范化,开始要有规范化的说明,如程序名、功能、环境与工具、函数(方法)间的调用(引用)关系、设计者、设计时间与修改时间等;代码书写要采用缩格、函数(方法)和关键语句与变量要加注释等,且书写时应采用c(c++)的现代风格,如函数原型、enum、typedef、void、main等8、测试结果以问题描述中所列出的测试数据进行测试,列出测试结果,包括输入和输出。9.参考文献列出参考的相关资料和书籍。四、课程设计考核方法及成绩评定课程设计结束时,要求学生写出课程设计报告,可运行的源程序。课程设计成绩分两部分,设计报告占30%,设计作品占70%。按照优秀、良好、中、及格,不及格五级给予成绩。五、进度安排整体设计和详细设计3天编代码3天调试和测试2天设计论文书写1天演示软件和答辩1天附课程设计题目:1.学校人员管理系统本程序用于管理一所学校的人员,所有人员类(Record)有共性的数据成员是:姓名、性别、身份证号码、生日、地址和年龄。学生类(Student)的数据人员包括共性的数据成员以及学号、宿舍号、专业和年级。员工类(Staff)的数据成员包括共性的数据成员以及工号、公寓、每天的工作时间和薪水(每月)。教授类(Professor)的数据成员包括员工的数据成员以及教授授课专业、教授所从事的科研名称和教授所带研究生的数目。普通员工类(Worker)的数据成员包括员工的数据成员以及工作类别。各类之间的关系如下图:类Record类Student类Staff类Professor类Worker程序要求:1、先创建一个菜单,让用户选择是对哪一类对象进行操作。2、确定好对哪一类对象进行操作后,程序又创建一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3、输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如a:\\example.dat下。注意一条记录相当于一个对象。输入的学号不能重复,输入的工号不能重复。输入的数据作有效性检测。4、显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5、修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。6、删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件(a:\\example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到a:\\example.dat下。7、程序执行结果部分演示如下图:第一屏:1、学生2、教授3、普通员工4、退出请选择功能号(1-4):1第二屏:1、输入记录2、显示记录3、修改记录4、删除记录5、退出请选择功能号(1-5):1请输入姓名:王名性别:男身份证号码:1312980273888生日:1979/1/1地址:BGD100BEIJING年龄:20学号:12345宿舍号:8-3-225专业:COMPUTERSCIENCE年级:5按任意键继续……6、输入记录7、显示记录8、修改记录9、删除记录10、退出请选择功能号(1-5):2请输入记录号(1-4):1注意第二屏的退出退到第一屏,第一屏退出退出整个程序。编写此程序至少要用三个以上的下列面向对象工具:1、继承与派生2、友元函数3、运算符重载4、构造函数5、虚函数6、模板7、文件输入输出注意:工具用的越多越好,但要用的恰当。不同的类对象存放在不同的文件中。2.公司人员工资管理系统本程序用于管理一个公司的人员工资,所有雇员类(Employee)有共性的数据成员是:编号、姓名和工资。技术员类(Technician)的数据成员包括共性的数据成员以及工作时间(每月的)、每小时的工资。销售员类(Salesman)的数据成员包括共性的数据成员以及销售额(本月)、提成。经理类(Manager)的数据成员包括共性的数据成员以及月工资。销售员兼经理类(Salesmanager)的数据成员包括销售员类和经理类的数据成员。各类之间的关系如下图:类Employee类Technician类Manager类Salesman类Salesmanager程序要求:1.先创建一个菜单,让用户选择是对哪一类对象进行操作。2.确定好对哪一类对象进行操作后,程序又创建一个菜单让用户选择对此类对象进行如何操作。操作包括:输入记录、显示记录、修改记录和删除记录。3.输入记录时提示用户输入每一条记录的各个字段,输入的每一条记录都要保存到文件如(C:\\example.dat)下。注意一条记录相当于一个对象。输入的工号不能重复,输入的数据字段作有效性检测。4.显示记录时,先提示用户输入要显示哪一个记录号的记录,如记录号在不超出范围则显示要访问的记,否则告诉用户记录号超出范围。5.修改记录时,先要求用户输入要修改的记录关键字内容,如学生的关键字段学号、员工的关键字段是工号。输入好关键字后进行查找所要修改的记录,找到了重新输入该记录的数据成员内容,否则告诉用户找不到此记录。6.删除记录时,先要求用户输入要修改的记录关键字内容,)输入好关键字后进行查找所要删除的记录,找到了把它删除掉,否则告诉用户找不到此记录。提示:删除的方法先创造一个临时的文件C:\\example.tmp),一条一条记录查找过去,把非要删除的记录一条一条写到临时文件下,然后把临时文件复制到C:\\example.dat下。7.程序执行结果部分演示如下图:第一屏:5、技术员6、销售员7、经理8、销售员兼经理9、退出请选择功能号(1-5):1第二屏:11、输入记录12、显示记录13、修改记录14、删除记录15、退出请选择功能号(1-5):1请输入编号:0001姓名:王名工作时数:160每小时工资:20按任意键继续……1、输入记录2、显示记录3、修改记录4、删除记录5、退出请选择功能号(1-5):2请输入记录号(1-4):1编号姓名工资(元)0001王名3200.00注意第二屏的退出退到第一屏,第一屏退出退出整个程序。编写此程序至少要用三个以上的下列面向对象工具:1.继承与派生2.友元函数3.运算符重载4.构造函数5.虚函数6.模板7.文件输入输出注意:工具用的越多越好,但要用的恰当。不同类对象存放在不同的文件内。3.栈操作一.定义一个栈类(采用类模板),实现下列操作(1)编写进栈、出栈、显示栈中全部元素的程序;(2)编写一个二进制、八进制、十进制、十六进制相互转换的应用程序;二.要求:(1)采用类模板定义一个栈类实现上述关于栈的操作(2)设计一个选择式菜单,实现进位制之间转换。三.编写此程序至少要用二个以上的下列面向对象工具:1.类2.继承与派生3.友元函数4.虚函数5.构造函数6.模板7.文件输入输出4.二叉操作一.定义一个二叉树类(采用类模板),实现下列操作(3)生成二叉树。(4)对二叉前序、中序、后序遍历。(5)求每个结点层次(高度)。(6)求每个结点的子孙个数。设计一个选择式菜单,以菜单方式选择上述操作。二.要求:定义二叉树元素类和二叉树类,实现对二叉树进行创建、三种遍历、求高度、求结点总数等操作。三.编写此程序至少要用二个以上的下列面向对象工具:1.类2.继承与派生3.友元函数4.虚函数5.构造函数6.模板7.文件输入输出5.教务信息管理系统一.基本表:教师基本信息:如教师工号、姓名、性别、职称、课程编号、课程名称等。学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。如果重修,需要考虑重修学期、重修成绩。并且要考虑多次重修的情况。二.功能与要求(1)各种基本数据的录入。如:学生基本情况录入(2)各种基本数据的修改。即:允许对以及录入的数据重新进行编辑、修改。(3)各种基本数据的插入。如:在学生选修课程基本信息中插入一条新信息。(4)各种基本数据的删除。如:假设某同学转学或出国深造,删除该生的相关信息。(5)基于各种数据的查询。
本文标题:《面向对象程序设计》课程设计要求和任务书
链接地址:https://www.777doc.com/doc-6363918 .html