面向对象2011作业要求
面向对象技术大作业要求
《面向对象技术》课程大作业任务书一、大作业基本要求(1)要求利用面向对象的方法以及c++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义两个类,每个类中要有各自的属性和方法;(4)用VC++6.0及MFC开发软件;(5)程序要自己完成,不可抄袭。
二、大作业参考题目(任选一题,或经过批准自选题目)题目一:学生信息管理系统要求完成以下功能:1)从屏幕上输入学生信息并保存数据,例如采用文件方式保存。
学生信息包括地址、出生日期、学科成绩(语文,英语,数学,物理)、个人信息(姓名,性别,民族,国籍,学历)、联系方式(手机,家庭电话,学校电话)等。
2)从文件中删除一个学生信息。
3)显示所有学生信息。
4)能够按编号或姓名对学生的信息进行检索并将检索结果显示在屏幕上。
5)能够对单个学生进行编辑。
6)可以统计全部学生的总成绩,及其在班上的排名。
7)能够统计各科的平均成绩及及格率。
8)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
9)如果检索不到相应的信息应提示用户。
10)要求利用菜单的形式进行管理。
提示:可以用单链表每个节点存储一个学生的信息。
可以采用文件存储。
需要创建链表类,操作类,地址类,链表结点类,学生类,分数类,电话号码类等题目二:图书管理系统设计要求完成以下功能:1)借书。
图书借阅信息:借阅人、借阅人所在单位、借书证号、所借书名、借阅日期、归还日期、逾期罚款等。
借阅期限为一个月,逾期1天,罚款1角。
2)还书。
3)图书维护:删除图书,增加图书等。
图书基本信息:图书编号、书名、作者(要考虑多个作者情况)、出版社、出版日期、定价、馆藏数、借阅数等。
4)读者维护:包括新增读者、更改读者信息、查找读者、读者信息删除、读者信息输出。
5)要求利用菜单的形式进行管理。
提示:建议对读者和图书都使用类进行管理。
需要创建类●读者类包括读者编号、读者姓名、所借图书等,实现对读者的信息的描述●图书类包括图书的编号、书名、是否借出等,实现对图书的描述。
《三、面向对象的程序设计简介》作业设计方案-高中信息技术人教版选修1
《面向对象的程序设计简介》作业设计方案(第一课时)一、作业目标本课时作业的目标为让学生掌握面向对象程序设计的基本概念和初步运用方法。
学生需要了解并熟悉程序设计的抽象、分类和组织原理,初步建立编程思想,为后续的深入学习打下基础。
二、作业内容1. 基础知识学习:学生需阅读教材,理解面向对象程序设计的基本概念,如对象、类、属性、方法等,并了解其在实际编程中的应用。
2. 视频教学:观看面向对象程序设计的在线教学视频,要求每位学生按照学习内容认真做好笔记。
3. 实例解析:结合视频和教材中的示例代码,进行小组讨论。
要求每组成员对实例进行分析,并讨论其体现的面向对象程序设计思想。
4. 编程实践:根据所学知识,编写一个简单的面向对象程序设计实例,如设计一个简单的图形界面或一个简单的游戏程序等。
要求程序能够体现面向对象程序设计的特点。
三、作业要求1. 作业需在规定时间内完成,并按时提交至教师邮箱或在线作业系统。
2. 笔记内容需清晰、完整,能反映出学生对知识的理解程度。
3. 小组讨论时,每位学生需积极参与,并能够清晰表达自己的观点和看法。
4. 编程实践部分需遵循编程规范,代码要清晰易读,且能够正常运行。
四、作业评价1. 教师将对笔记内容进行评价,重点在于学生是否理解了面向对象程序设计的基本概念和思想。
2. 小组讨论的参与程度和讨论结果将作为评价的重要依据,看学生是否能够积极参与到讨论中并表达自己的观点。
3. 编程实践部分将根据代码的规范性、可读性以及程序的运行情况进行评价。
五、作业反馈1. 教师将对作业进行批改,并给出详细的评价和建议。
对于错误或不足的地方,教师将给出指导性意见,帮助学生改正和提高。
2. 对于优秀的学生或小组,教师将给予表扬和鼓励,以增强学生的学习信心和动力。
3. 作业反馈将作为后续教学的重要依据,教师将根据学生的作业情况调整教学计划和教学方法,以更好地满足学生的学习需求。
通过上述作业设计方案,旨在帮助学生全面掌握面向对象程序设计的基础知识,并初步建立编程思想。
《面向对象分析与设计(UML)》课程大作业大纲
《面向对象分析与设计(UML)》课程大作业大纲一、课程简介《面向对象分析与设计(UML)》是一门是软件工程专业重要的、实践性很强的一门必修课。
UML是一种定义良好、易于表达、功能强大且适用于各种应用领域的建模语言,已被OMG采纳为标准。
目前UML已成为面向对象技术领域内占主导地位的标准建模语言。
掌握UML 语言,不仅有助于理解面向对象的分析与设计方法,也有助于对软件开发全过程的理解。
通过该课程的学习,使学生能基本掌握面向象技术基本概念和面向对象分析与设计方法,能够使用UML 语言来进行初步的系统分析与设计。
二、课程目标结合专业培养目标,本课程大作业要达到的目标如下:1.知识与技能目标通过本课程的学习,使学生掌握面向对象分析与设计基本理论和使用统一建模语言(UML)实现软件生命周期模型的六大阶段(需求分析,概要设计,详细设计,编码,测试,维护)的一般性原理、主要思想、关键技术;了解和掌握各阶段的规范文档书写格式,通过实验项目实践活动,培养学生理解和应用相关的知识技能,开发软件项目。
2.过程与方法目标了解面向对象分析与设计的发展历史及趋势,掌握运用UML 理论及方法解决实际问题的分析步骤。
通过具体方法的学习与运用,理解它们的优势与不足,从而锻炼和提高思维分析能力(归纳能力,演绎能力,对比分析能力,变通能力,总结能力,抽象能力)。
3.软件工程文档写作目标通过面向对象程序设计实践,培养作为一个软件工程技术人员必须具备的文档写作能力,严谨治学的科学研究态度,为未来的学习、工作和科研奠定良好的理论基础和实践基础。
通过本课程的大作业的训练,使学生在分析问题、解决问题等方面得到锻炼,增强学生调查研究、查阅技术文献、资料、手册以及编写技术文献的能力。
三、作业设计任务由指导教师向学生提供一定数量的设计题目,每一题目所用到的知识至少要覆盖《面向对象分析与设计(UML)》教学大纲中的大部分内容,主要包括利用UML2进行面向对象分析与设计的方法,运用面向对象的一般原则和模式进行应用系统的分析和设计建模。
《面向对象编程与设计(Java)》课后作业及任务要求
《面向对象编程与设计(Java)》课后作业及任务要求(参考解答请见《面向对象编程与设计(Java)》课后作业及参考解答)1.1.1第一周课程(9月4日)的课后作业1、本周作业任务(1)在本机器中安装并配置出本次教学中推荐的IDE工具开发环境(Eclipse + MyEclipse)插件环境(当然,也可以采用其它形式的IDE)(2)请用Java程序示例说明什么是面向过程的程序设计方法、什么是面向对象的程序设计方法?(3)请定义出下面图中的“人”、“中国人”、“美国人”、“培训教师”、“学员”等类目的:熟悉类的定义语法及成员定义,并注意类是有层次的(4)谈谈你对开源的理解(可以是任何方面的主题),你熟悉J2EE平台中的哪些开源框架、对这些开源框架的熟悉程度怎样(包括在项目中的具体应用)注:本题是对大家的技术水平进行摸底和调查,从而调整以后各周的课程深度。
(5)对“面向对象编程与设计(Java)”结课后的项目大作业”进行需求收集和整理2、本周的作业提交的时间:本周的作业在(9月11日)第2周上课时由本课程的课代表收集并交给授课教师。
提交的作业的内容:只需要提交src目录下的源程序及主要的*.xml配置文件(以后需要时),并将执行过程截屏拷贝到Word文档中以便能够观察项目的执行状态的结果正确与否。
并按照每个同学的学号和姓名作为文件名称------如“12XXXXX张三.doc”形式(以后每次提交的作业也都采用此方式,不要采用Word 2007中的*.docx格式)。
3、作业收集的方式:各班的班长或者课程代表将本班的各个同学的作业收集并打包为*.zip或者*.rar文件交给授课教师。
1.1.2第二周课程(9月11日)的课后作业1、本周作业任务(1)为第一周(9月4日)的课后作业中的“人”问题中的类提供一个“工作”接口1)并在该“工作”接口中应该包含有如下的行为定义●沟通●职位升迁●完成任务指标2)并对该“工作”的接口加以具体的实现(2)请用Java程序示例说明什么是Java中的静态多态性和动态多态性?(3)软件业一直在探讨,如何使软件实现如同传统产业一样的大规模生产。
面向对象
《面向对象程序设计》课程设计报告报告题目:所在院系:所在班级:姓名:2011年12月29日目录一、课程设计目的 (3)二、课程设计要求 (3)三、课程设计内容 (3)四、类层次图 (3)五、程序代码 (5)六、调试过程 (24)七、总结 (26)八、参考书目 (26)一、课程设计目的:1、熟练掌握C++的基本知识和技能。
2、掌握面向对象程序设计的基本思路和方法。
3、能够利用所学的知识和技能,解决面向对象程序设计实际应用问题。
二、课程设计要求:1、利用面向对象的方法和C++的编程思想完成设计。
2、在设计过程中要求建立清晰的类层次。
3、在定义和实现类过程中,每个类都要有各自的成员变量和成员函数。
4、注意运用面向对象的机制(继承、派生及多态)来实现课程设计。
三、课程设计内容:设计一个计算图形面积、体积的类库:它的顶层是一个抽象类Shape,第二层是二维图形(TwoDimShape)和三维图形(ThreeShape),第三层是由第二层派生出来的具体图形类,圆、椭圆、矩形、三角形;球体、圆柱体、长方体。
本程序完成的主要功能有:(1)计算二维图形的面积(2)计算三维图形的体积四、类层图:派生关系:基类:Shape基类派生出:二维图形(TwoDimShape)和三维图形(ThreeShape)二维图形派生:圆、椭圆、矩形、三角形三维图形派生:球体、圆柱体、长方体程序内容:定义一个抽象类形状(Shape),包含输入基本图形的信息函数input()、显示基本图形信息函数show(),它们均是纯虚函数。
通过继承派生出二维图形和三维图形,二维图形类中包含输入基本图形的信息函数input()、显示基本图形信息函数show()、计算面积的函数 area(),其中area()函数是虚函数;三维图形类中包含输入基本图形的信息函数input()、显示基本图形信息函数show()、计算体积的函数volume(),其中volume()函数是虚函数;进而,通过继承二维图形类和三维图形类分别派生出具体的图形类,圆、椭圆、矩形、三角形;球体、圆柱体、长方体。
《三、面向对象的程序设计简介》作业设计方案-高中信息技术人教版选修1
《面向对象的程序设计简介》作业设计方案(第一课时)一、作业目标本作业设计旨在通过面向对象的程序设计基础知识的介绍,使学生能够初步理解面向对象编程的基本概念、特性和优势,掌握基本的类与对象、属性和方法的定义与使用。
通过实践操作,培养学生分析问题和解决问题的能力,激发学生对信息技术课程的兴趣。
二、作业内容1. 理论学习:学生需认真阅读教材中关于面向对象程序设计的基本理论部分,包括类与对象的概念、特性及关系,掌握属性和方法的定义与使用。
2. 案例分析:选取典型的面向对象程序设计案例,如简单的图形绘制程序或学生信息管理系统等,通过案例分析,让学生了解如何将现实问题转化为计算机可执行的程序。
3. 编程实践:学生需选择一个与日常生活相关的主题,设计一个简单的面向对象程序,包括定义类、创建对象、设置属性和方法等基本操作。
在编程过程中,学生需注意代码的规范性和可读性。
4. 代码调试:学生需对编写的程序进行调试,确保程序能够正常运行并实现预期功能。
在调试过程中,学生需学会使用调试工具,了解常见的程序错误及解决方法。
三、作业要求1. 理论学习部分需学生自行阅读教材并做好笔记,以便于后续的复习和巩固。
2. 案例分析需学生结合教材内容,对案例进行详细的分析和讨论,理解其背后的编程思想和实现方法。
3. 编程实践部分需学生独立完成,鼓励学生在编程过程中相互讨论和交流,但禁止抄袭他人代码。
4. 代码调试部分需学生认真对待,确保程序的正确性和稳定性。
如遇问题,可向老师或同学请教。
四、作业评价1. 教师将根据学生理论学习的笔记和课堂表现进行评价。
2. 案例分析部分将根据学生的分析报告和课堂讨论情况进行评分。
3. 编程实践部分将根据学生提交的代码质量、实现功能和代码规范性等方面进行评价。
4. 代码调试部分将根据程序运行结果和学生的调试记录进行评价。
五、作业反馈1. 教师将对每位学生的作业进行仔细批改,指出存在的问题和不足之处,并给出改进意见。
面向对象程序设计大作业要求
面向对象程序设计大作业
姓名:
班级:
学号:
一、论述(20分)
面向对象程序设计思想的优缺点,并详细举例说明其与C语言程序编程的不同。
答:
二、程序设计(80分)
参考实际生活中图书管理、商品销售、餐饮管理、客房管理、工资管理、人事考勤管理系统、文档管理系统,选取其中之一进行程序设计。
要求:按照选取得系统设计相应的类,设计的类至少包括添加、删除、查看(添加信息、删除信息)、退出四个,每个类至少包括四种数据成员,三种成员函数,实现的功能按照对应类设计,可按照自己设计再酌情添加相关类,同时可保存为文件。
(提示:作业重点是四个类的设计,并在设计作业中说明这四个类应该如何使用,程序具备的功能。
)
时间要求:截至12月5日前完成大作业,作业分纸质报告和程序电子文档。
纸质文档要求:1. 针对所编写的程序设计,重点要求分条(至少三条)写明所采用的课程中概念和思想,及具体使用方法。
2.(1)类的主要功能描述(1页左右),(2)重点函数实现方法描述(1页左右),(3)有简单应用示例(至少四张图),(4)类代码(五号新罗马字体,单倍行间距,建议分栏排版和双面打印,以内容整齐为准,学生自行掌握);
电子文档要求:(1)由类代码文件、main()函数文件及cpp、obj、exe文件组成的文件夹,(2)应用示例(各功能运行结果截图),每人一个文件夹(命名方式:学号_19x班_姓名),班长收齐,集中上交。
大作业程序设计如下:。
11级《面向对象程序设计课程设计》任务书
11级C++语言程序设计课程设计任务书(适应于11级软件工程-8,-12)一、课程设计的目的与要求1.教学目的在《面向对象程序设计》课程理论与实验教学的基础上,根据软件工程的方法与流程,在相对集中的实训教学时间内,通过一个功能较完整的小型应用系统,复习与深入掌握面向对象的程序设计思想与技术方法。
同时,作为整个实践教学体系一部分,系统培养学生采用面向对象的方法分析问题与解决问题的能力及团体组织与协作能力。
2.教学要求从课程设计的目的出发,通过设计工作的各个环节,达到以下教学要求:1)根据实现的功能,划分出合理的对象类,明确对象类间的关系。
2) 为每个对象类设计正确的域和方法,为每个方法设计合理的方法体。
同时,为对象类及内部的域和方法运用正确的修饰符,如访问控制符等。
3)编程简练,程序功能齐全,能正确运行。
4)说明书、流程图要清楚,规范。
5)课题完成后必须按要求提交课程设计报告,格式规范,内容详实。
二、课程设计的内容与安排1、题目安排1.有理数运算问题描述2有理数是一个可以化为一个分数的数,例如2/3,533/920,-12/49都是有理数,而就为无理数。
在C++中,并没有预先定义有理数,需要时可以定义一个有理数类,将有理数的分子和分母分别存放在两个整型变量中。
对有理数的各种操作都可以用重载运算符来实现。
基本要求定义并实现一个有理数类,通过重载运算符+、-、*、/对有理数进行算术运算,通过重载运算符==实现判定两个有理数是否相等。
写一个优化函数,它的作用是使有理数约去公分母,也即是使保存的有理数分子和分母之间没有公约数(除去1以外)。
此外,还要定义一个将有理数转换为实数的函数,再加上构造函数和有理数输出函数。
测试数据在应用程序中,创建若干有理数对象,通过带参数的构造函数使得各有理数对象值各不相同,然后分别进行各类运算,输出运算结果,检验其正确性。
实现提示设有两个有理数a/b和c/d,则有:(1)有理数相加分子=a*d+b*c;分母=b*d(2)有理数相减分子=a*d-b*c;分母=b*d(3)有理数相乘分子=a*c;分母=b*d(4)有理数相除分子=a*d;分母=b*c优化函数在创建有理数对象时应执行,在执行其它各种运算之后也需执行它,这样可保证所存储的有理数随时都是最优的。
《 面向对象程序设计》课程考核提交作业
} }
} }
答:输出 BC' constructor DC' constructor DC' destructor BC' destructor 创建子类对象首先创建基类对象调用基类构造函数, 然后调用自
己的构造函数,释放时先析构自己对象最后析构父类对象,有父才有 子。 2. 下面程序的执行结果是什么?为什么? class Sample{ int n; public: Sample(){}; Sample(int i){n=i;}; Sample & operator=(Sample); void disp(){cout<<"n="<<n<<endl;} }; Sample &Sample::operator=(Sample s) { Sample::n=s.n; return *this;} void main() {Sample s1(10),s2; s2=s1; s2.disp(); } 答:结果: n=10 Sample 重载了赋值操作符,可以用 Sample 的一个对象去初使化 另一个对象,s2 对象被已经初始化的 s1 所初始化。 3. 下面程序的执行结果是什么?为什么? class Sample { public: int x; int y; void disp(){ cout<<x<<y<<endl; } };
return x + y; } }; class three : public base { private: float z; public: float Add(float x,float y) { return x + y; } }; int main() { tow m; base * wo = &m;
面向对象系统分析与设计方案上机作业及其格式规范
《面向对象系统分析与设计》课程的上机作业要求:(1)根据教师上课的进度,分别在每周的上机课程中练习下面的题目;(2)每道题目所涉及的图形都应采用Rational XDE完成;(3)小作业的格式按照本文档最后一页的形式给出;(4)每一章的小作业都在这一章授课完成之后的一两周上机课中上交,具体上交时间由教师指定。
(5)上交的小作业不用包含本文档的前9页。
第2章(1)绘制某学校网上选课系统的用例图管理员通过系统管理界面进入系统,建立本学期要开设的各种课程,将课程信息保存到系统中,并可以对课程进行改动和删除。
学生通过客户机浏览器进入系统,选择课程:可以查询课程,选择课程,支付课程费用。
(2)为下图的增加课程用例编写用例描述(3)绘制宾馆客房业务管理用例图,并为每一用例编写用例描述宾馆客房业务管理提供客房预订、预订变更、客房入住、退房结帐、旅客信息查询几个方面的功能。
(4)对图书馆的图书借阅进行用例分析①确定图书管理的参与者;②参与者所看到的图书管理功能;③把这些功能分解为用例;④确定用例之间的关系;⑤画用例图;⑥优化用例图;⑦完成用例描述。
(5)对宾馆客房管理进行用例分析。
①确定宾馆客房管理的参与者;②参与者所看到的客房管理功能;③把这些功能分解为用例;④确定用例之间的关系;⑤画用例图;⑥完成用例描述。
(6)完成电梯系统的用例图及每个用例的描述(7)给出在线拍卖系统的用例图及每个用例的描述(8)书P116试题7.1,7.2(9)书P126试题8.1~8.3(10)请仔细阅读下图,描述该图的基本含义(11)根据下面的陈述,请你分析出参与者和用例,绘制出用例图,并给出每个用例的描述在医生的办公室里接待员、护士和医生使用病人记录和计划安排系统。
当病人第一次来这里看病时,接待员使用该系统来输入病人信息,并且他们安排所有的预约。
护士使用系统来跟踪病人每次看病的结果并输入护理病人的信息,如医疗和诊断。
护士也可以访问这些信息以打印病人诊断结果或病人看病历史。
面向对象分析与设计(UML)课程大作业题目及要求
《面向对象分析与设计(UML)课程大作业》题目一、课程大作业目的和要求1.初步了解UML语言的概念、结构、语义与表示方法;2.掌握UML建模工具Rational Rose的使用方法;3.给出某个简单系统的模型,能够熟练地使用Rose工具表达;二、课程大作业主要内容及要求课程设计的主要任务:1.根据所收集的简单需求,利用UML和Rational Rose工具对系统进行建模;2.根据前述需求的分析,进行需求建模,绘制系统的用例图和活动图;3.根据用例模型,进行架构建模,绘制系统的时序图,状态图,类图和交互图;4.绘制系统中某些重要功能的对象图;5.绘制系统的组件图和部署图;6.程序实现(选做)选题如下:1.网上选课系统主要包括如下功能:管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。
学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。
同样,通过业务层,这些操作结果存入到数据库中。
2.设计运动会的计分系统本运动会在若干各会场进行,每个会场进行若干个项目。
有若干支运动队参赛,每支运动队有数名运动员。
各赛事分预决赛,预赛成绩部分带入决赛。
成绩由裁判员给出,计分员记录。
要求在比赛结束后,产生各队排名表及运动员的详细成绩表。
3. 试题管理系统其中试题分正式试题和临时试题,出题人设置课程名和试卷难度等内容后,系统自动出卷。
对试题要进行管理,并提供查询功能。
4. 工资管理系统一个公司下分若干部门,每个部门有若干名职员和经理,每个部门经销若干种产品。
工资由基本工资、产品销售业绩、若干种保险的扣除等组成。
其中的销售业绩:职员按其完成额5%提成,经理按该部门的完成额的1%提成。
每个月要生成一个工资表,每年末再按个人的总销售额发放1%的奖金。
5.宿舍楼管理系统该系统涉及到的事物有:宿舍楼、楼层、房间、家具;室长、楼长、保洁员、学生;学生所属的系。
《面向对象编程与设计(Java)》期末项目实训大作业及作业任务要求
《面向对象编程与设计(Java)》期末项目实训大作业及作业任务要求1.1.1蓝梦教育集团课程选课系统1、任务要求利用在“面向对象编程与设计(Java)”的8周课程所学习到各个方面的知识设计并实现一个C/S架构的J2SE的应用程序(应用Matisse4MyEclipse设计Swing GUI的窗口界面)作为本课程的结课后的项目大作业,该作业的成绩也将作为本课程的结课时的考试成绩(由于本课程是开发类的技术课程,不进行常规的闭卷考试),希望大家加以重视。
2、“蓝梦教育集团课程选课系统”项目的背景某著名教育企业蓝梦教育集团(Blue Dream Group),为了能够在中国迅速地开展与教育产品和IT技能培训有关的各个方面的业务、并期望能够取得比较好的效益和提高各项教育产品的质量以迎接新的挑战,需要全面地提升本土化的信息化项目建设的进度、拟计划开发出蓝梦教育集团课程选课系统,提高教学管理的工作效率,和使选课管理工作规范化、系统化、程序化,避免选课管理的随意性,提高信息处理的速度和准确性,并使得学生能够及时、准确、有效地查询和修改选课情况。
3、“蓝梦教育集团课程选课系统”主要的界面需求示图(1)学生登录窗口内的参考界面其中的“用户名”是学生学号(可以自己规定,或者参考学校的学号规则),登录初始密码也为学号(假定系统管理人员已经分配了帐号和初始密码),身份选择“学生”类型,然后再点击其中的“登录”按钮进行系统身份验证。
身份验证成功后,该登录的学生就可进入他的个人选课的信息窗口。
(2)学生在选课信息窗口内进行选课某学生要选他所感兴趣的某门课程,只需要点击相应的课程信息记录前的某个方框(每个可选的课程信息前面都提供有一个方框);选择了某个课程后,然后再点击窗口中的“提交”按钮(在窗口的右下端)提交该选课结果即可。
此时将会在“已选课程”的区域中出现所选报的课程名称(如下窗口中的下半部分),表示已经成功地保存了所选的课程,某门课程的选课的过程也就完成了。
面向对象程序设计2011秋行考作业2答案
2011秋行考作业(java)2试卷总分:100注:请20分钟以内保存一次。
每大题完成后请先保存再更换大题,试卷试题全部完成后提交。
第1大题单选题,共40题,每题2.5分(总分100.00)1.下列关于类和对象的描述中,不正确的一项是(2.00分)A. 一个类只能实例化一个对象B. 现实世界中,可以把每件事物都看做是一个对象C. 有共同属性的对象可以抽象为一个类D. 一组对象构成一个程序,对象之间通过发消息通知彼此该做什么2.现在有一个int类型的变量a 和一个char类型的变量b ,关于它们之间类型转换的说法中,正确的一个是(2.00分)A. a 可以自动转换为bB. 它们不可以相互转换C. b必须强制转换为aD. a必须性制转换为b3.下列语句中,错误的Java语句是(2.00分)A. try......catch 语句B. 连续出现多个分号C. switch语句D. include 语句4.下列有关抽象类及抽象方法的叙述错误的是(2.00分)A. 使用abstract修饰的方法是抽象方法B. 抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类C. 抽象类必须被继承才能使用,抽象类不可能有实例D. 使用final修饰的类是抽象类5.short i=10,j,k=20;j=k+i++;System.out.print(j);程序代码的输出结果是(2.00分)A. 出错B. 31C. 11D. 306.定义主类的类头时可以使用的访问控制符是(2.00分)A. protectedB. publicC. private protectedD. private7.下列有关Java的叙述错误的是(2.00分)A. 强类型语言B. 不检查数组下标越界C. 可以使用汉字变量名D. 与平台无关8.下语句不能通过编译的是(2.00分)A. int[] a={1,2,3,4};B. int b[];C. int d=new int[];D. int c[]=new int[3];9.在Java 中,能实现多重继承效果的方式是(2.00分)A. 同步B. 适配器C. 内部类D. 接口10.下面哪些是合法的标识符(2.00分)A. thisB. 12345C. personsD. *point11.有关在Java中定义实例方法和类方法的叙述正确的是(2.00分)A. 前者没有public修饰,后者有public修饰B. 前者有static修饰,后者没有static修饰C. 前者没有static修饰,后者有static修饰D. 前者有public修饰,后者没有public修饰12.对于类的说法中,不正确的一项是(2.00分)A. Java程序中可以有多个类,但是公共类只有一个B. 类中的每个方法都由方法头和方法体构成C. java程序可以有多个公共类D. 一般类体的域包括常最、变量、数组等独立的实体13.下列有关数组的叙述错误的是(2.00分)A. 对于多维数组,从最高维开始,可以对每一维分配不等长的空间B. 在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用C. 在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值D. 数组是将一组相同类型的数据顺序存储,组成一种复合数据类型14.正确定义一个初始值为20的float类型的变量的语句是(2.00分)A. float value=20;B. float _value=20f;C. float value#=20;D. float #value=20f;15.int x=100;System.out.println("5.5"+x%8);程序代码的输出结果是()(2.00分)A. 18B. 5.54C. 5.512D. 5.512.516.下说法正确的是(2.00分)A. 一个可直接运行的Java源文件中可以没有public类B. 一个可直接运行的Java源文件中可以有多个public类,其中必须有一个和文件同名C. 一个可直接运行的Java源文件中只能有一个且和文件同名的public类D. 一个可直接运行的Java源文件中可以有多个public类,且可以没有和文件同名的类17.在Java程序中定义一个类,类中有一个没有访问权限修饰的方法,则此方法(2.00分)A. 以上都不是B. 访问权限默认为是privateC. 访问权限默认为是protectedD. 访问权限默认为是public18.Java中实现输入/输出操作的类库在(2.00分)A. java.output包中B. java.io包中C. java.input包中D. ng.io包中19.现有2个byte类型的变量bb=126、bb2=5,当执行bb=(byte)(bb+bb2);语句之后,bb的值应该是(2.00分)A. -125B. 语句在编泽中出错C. 131D. -12820.下列叙述中,正确的是(2.00分)A. Java语言的标识符是区分大小写的B. 源文件名与public类名可以不相同C. 源文件名其扩展名为.jarD. 源文件中public类的数目不限21.System.out.println(100/8);程序代码的输出结果是(2.00分)A. 12.5B. 12C. 4D. 022.在Java语言中执行如下语句后,int i=10;int j=++i;i和j的值分别为(2.00分)A. 10和11B. 10和10C. 11和11D. 11和1023.int x= 8, y=2, z;x=++x*y;z=x/y++;程序代码,在执行完后x和y的值是多少(2.00分)A. x=18, y=3B. x=16, y=4C. x=16, y=2D. x=18, y=224.Java中,负责对字节代码解释执行的是(2.00分)A. 多线程机制B. 虚拟机C. 垃圾回收器D. 编译器25.在以下供选择的概念中,不属于...面向对象语言概念的是(2.00分)A. 消息B. 多态性C. 继承D. 模块26.在Java程序中有定义:int x[][]=new int[4][5];则x.length和x[3].length 的值分别是(2.00分)A. 4和3B. 5和4C. 5和3D. 4和527.在下述字符串中,不属于...Java语言关键字的是(2.00分)A. javaB. floatC. returnD. new28.在下述Java语言语句中,错误..的创建数组的方法是(2.00分)A. int intArray [ ]=new int[5];B. int intArray [ ];intArray=new int[5];C. int [ ] intArray ={1,2,3,4,5};D. int intArray [5]={1,2,3,4.5};29.按运算符操作数的数目划分,运算符?:的类型是(2.00分)A. 三目B. 四目C. 单目D. 双目30.采用缓冲式输出时,如果又想立即写入到文件,则需要调用的方法是(2.00分)A. write()B. read()C. flash()D. flush()31.有Java语句如下,int []a,b=new int[3];则说法正确的是()(2.00分)A. 此语句是错误的B. a.length的值为3C. b.length的值为3D. a.length和b.length的值都为332.能够支持 javadoc 命令的文档注释形式是(2.00分)A. /*...*/B. /**...*/C. /**...//D. //33.于Java语言的内存回收机制,下列选项中最正确的一项是(2.00分)A. Java程序允许用户使用指针来释放内存B. 内存回收线程不能释放内存对象C. Java程序要求用户必须手工创建一个线程来释放内存D. 内存回收线程负责释放无用内存34.在 Java 中,表示换行符的转义字符是()(2.00分)A. DB. CC. BD. ‘\n’35.下列代码中,错误的Java整型常量是(2.00分)A. 0x3AAB. 008C. 007D. 0x3AB36.在java中定义常量的正确语法为(2.00分)A. final int VALUE=20;B. const int VALUE=20;C. int value=20;D. int VALUE=20;37.Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为(2.00分)A. byte→short→int→long→float→doubleB. byte→int→short→long→float→doubleC. byte→short→int→float→long→doubleD. short→byte→int→long→float→double38.在Java程序中声明一个数组,错误的是(2.00分)A. int a[][];B. int a[];C. float a[10];D. float []a[];39.接口的所有变量和方法分别默认为是(2.00分)A. public static和public abstractB. public static和public finalC. final static和public finalD. final static和public abstract40.已知类关系如下:class Employee;class Manager extends Employee;class Director extends Employee;则以下关于数据的语句正确的是(2.00分)A. Manager m=new Director();B. Director d=new Employee();C. Director d=new Manager();D. Employee e=new Manager();。
面向对象程序设计作业要求及模板
交作业注意事项1.电子版作业以“班级+姓名+四位数代码+实验题目”为主题发送至2451308236@.2.请将代码复制粘贴在邮件正文中,以图片形式附上运行程序结果的截图(多个程序的运行结果也可放在一个截图中来显示)。
如有多个附件,请不要用压缩包,一个一个附上即可。
3.此外,附件中还需要提交所要求的某个程序的实验报告,格式见相应的文件模板。
4.实验报告中请统一字体、格式等,保证整个文档的页面美观。
5.若需要交纸质版实验报告,将会另行通知。
6.不符合上述要求的作业会酌情减分。
7.实验报告请如实填写,如发现雷同,抄袭者和被抄袭者都记为0分。
8.第一次电子版作业:9月12日上机课上的4个程序的代码(正文)及运行结果的截图(附件);需填写实验报告的程序:第一章例2(People).截止时间:9月23日。
9.如果在上机课上已经展示过运行结果,则只需要发送所要求的实验报告。
实验四类和对象1、实验目的与要求:1) 设计类的属性和行为2) 定义对象3)创建对象4)使用对象2、实验内容:1)设计point类用来定义平面上的一个点,用构造函数传递坐标位置编写测试类在该类中实现point类的2个对象并输出相应的坐标位置。
2)设计长方形类,成员变量包括长方形的长和宽。
类中有计算面积和周长的方法,并有相应的set和get方法设置和获得长方形的长和宽。
编写测试类是否达到预定功能(要求分别通过一个无参构造函数和一个有参数的构造函数初始化两个对象并打印输出其长和宽,面积和周长。
3)研究如下代码并运行之,体会在方法中传递对象参数Class testpassingobject{ public static void main(String args[]){ circle mycircle=new circle(5.0);Printcircle(mycircle);//引用传递}Public static void printcircle(circle c){System.out.println(“the area of the circle ofradius”+c.radius+”is”+c.findarea());}}class circle{ double radius;circle() { radius = 1.0;}circle(double r) { radius = r; }double findArea(){ return radius*radius*3.14159; }}3、实验步骤请查阅相关的网上资料或与教材配套的实验指导书。
物联网11级《面向对象技术》上机作业
《面向对象技术》上机作业一、设计目的和时间安排●掌握面向对象程序设计的基本思路和方法。
●利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
二、内容及要求自学《教材》前14章,学习Java界面开发基础知识。
利用所学到的Java 编程知识和编程技巧,设计一个实际的应用软件,初步认识软件设计的基本方法,提高进行工程设计的基本技能及分析、解决实际问题的能力,为后续课程和以后的工程实践打下良好的基础。
三、考核方式请在考试前将代码打包,并编写实验报告电子版(格式参考以前的其他课程实验报告),命名为“学号_姓名.rar”,发送到guokehua@,注意,千万不能发错,否则后果自负。
四、时间、地点安排见 csu_xxxy_jsj@ 邮箱。
五、题目(根据你的学号尾数除以5的余数,选1题。
)0. 设计一个类Sorter,能够对一个数组内的数字进行插入排序、选择排序、冒泡排序和快速排序。
编好之后,打包。
然后编写另一个类Main,从文本文件读取一些数字,调用Sorter内的排序算法。
但是具体从哪里读数字,调用哪个算法,由配置文件决定。
比如配置文件这样写:<sort from=a.txt to=b.txt method=选择>表示从a.txt读数字,使用选择排序,结果存到b.txt中。
1. 设计一个类Drawer,能够在界面上画圆形和矩形。
但是圆形或者矩形由配置文件决定,比如配置文件这样写:<draw circle cx=10 cy=20 r=50> 表示圆心坐标为(10,20),半径为50画圆;<draw rectangle x=10 y=20 w=50 h=100>表示画一个方形,左上角坐标为(10,20),宽度为50,高度为100。
配置文件中允许出现多行,支持画多个图形。
2. 设计一个类Drawer,能够在界面上画扇形,并配置界面参数。
一切由配置文件决定,比如配置文件这样写:<back w=100 h=200 color=red> 表示界面宽度为100,高度为200,背景颜色为红色。
面向对象程序设计大作业参考题目及要求
⾯向对象程序设计⼤作业参考题⽬及要求⾯向对象程序设计⼤作业参考题⽬1、学⽣信息管理(1)问题描述学⽣信息包括:学号,姓名,年龄,性别,出⽣年⽉,地址,电话,E-mail等。
试设计⼀学⽣信息管理系统,使之能提供以下功能:●系统以菜单⽅式⼯作●学⽣信息录⼊功能(学⽣信息⽤⽂件保存)---输⼊●学⽣信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学⽣信息的删除与修改(可选项)(2)功能要求●界⾯简单明了;●有⼀定的容错能⼒,⽐如输⼊的成绩不在0~100之间,就提⽰不合法,要求重新输⼊;●最好⽤链表的⽅式实现。
(3)算法分析⾸先,⼀个学⽣包括这么多的属性,应该考虑定义⼀个结构,其次,我们应该考虑数据的存储形式:是定义⼀个数组来存储,还是定义⼀个链表呢?在这⾥假如我们以数组的⽅式来存储,当然可以,但是我们知道,假如我们定义⼀个数组的话,我们⾸先必须知道学⽣⼈数⼤概是多少,以便我们确定数组的⼤⼩,但是题⽬中没有给出,⽽且题⽬要求中有⼤量的删除、插⼊操作,所以⽤链表的⽅式⽐较⽅便。
对于菜单的实现,其实也⽐较简单,⾸先我们⽤printf语句把程序的功能列出来,然后等待⽤户输⼊⽽执⾏不同的函数,执⾏完了⼀个功能后⼜回到菜单。
⽂件的读写操作⼤家参照书中的有关⽂件的章节。
2、学⽣综合测评系统每个学⽣的信息为:学号、姓名、性别、家庭住址、联系电话、语⽂、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学⽣信息处理(1) 输⼊学⽣信息、学号、姓名、性别、家庭住址、联系电话,按学号以⼩到⼤的顺序存⼊⽂件中。
提⽰:学⽣信息可先输⼊到数组中,排序后可写到⽂件中。
(2) 插⼊(修改)同学信息:提⽰:先输⼊将插⼊的同学信息,然后再打开源⽂件并建⽴新⽂件,把源⽂件和输⼊的信息合并到新⽂件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提⽰:输⼊将删除同学号,读出该同学信息,要求对此进⾏确认,以决定是否删除将删除后的信息写到⽂件中。
《面向对象程序设计》大作业要求和任务书范文
《面向对象程序设计》大作业要求和任务书一、目的和要求检验学生学习《面向对象程序设计》课程后的学习成果,对于软件程序设计主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续实践课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
要求学生综合应用已学的相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。
要求学生针对比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。
加深对所学知识的理解和掌握,巩固课程学习的内容,培养学生掌握面向对象程序设计(OOP)的思想,锻炼其使用面向对象的程序设计思想分析和解决实际问题的能力,培养上机动手能力,培养文档报告书面表达和思辨的能力。
要求学生对自己学过的C++知识进行综合运用,要求要用到类的特性:即类的封装、类的抽象、继承和多态,编写一些小型的具有一定应用价值的程序,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题;掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法。
二、任务内容参考后附的大作业题目,规定每位同学完成两道题目(第一个题目是计算机类,第二个题目从第2-4题中任选一题)。
针对所选题目完成如下具体任务:1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?对功能进行说明;2. 类设计:综合考虑系统功能,对问题描述中涉及的操作对象定义相应的数据类型。
抽象数据类型的实现尽可能做到数据封装,充分运用继承、派生、多态等知识,给出用UML描述的类之间的关系图;3. 详细设计:给出各个主要模块的算法,并画出模块之间的调用关系图;要使得系统结构清晰、合理、简单和易于调试,写出主要函数的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
面向对象分析与建模课程结业要求
“面向对象分析与建模”课程
结业要求
1、每位同学的三次作业交电子文档word2003版要求(要求每位
同学各不相同)
(1) 第一次作业包括两部分(至少两个用例):
1) 用例描述:需要有步骤描述,能做到书上的要求最好;
2) 用例图:要求参与者、系统边界和用例图形规范、清晰;
(2) 第二次作业包括两部分(至少两个类图):
1) 类图:需要类名、属性和操作名等以及类之间的关系等,画得
要规范、清晰;要有简略的类规约。
2) 顺序图:和用例对应,要求有参与者、对象、生命线和消息,
图形规范、清晰和美观;
(3) 第三次作业包括两部分:
1) 包图(小组总体包图可相同):需要根据整体类图来对类进行划
分和打包,包中类图关系合理;
2) 用户界面(至少一个):要求和参与者、用例相对应;
2、纸质课程结业报告要求:
(1) 要有规范简洁的封面,不局合理
封面内容包括:1) 标题(小初、宋体),如:
“面向对象分析与建模”
课程结业报告
2) 交报告者的班级、学号和姓名;
3) 小组成员单列,只需要学号和姓名,可横排,尽量占少的空间;
4)交报告的日期。
(2) 正文页数5页,宋体,最小字体为小五号,最多不超过6页。
内容是三次作业的浓缩和精炼,排版要求整齐、规范和美观,内容要求充实。
温馨提示:
1、word作业可以最后一次对前面两次的作业按照要求加以修改、整理,以提高平时成绩(与考勤等一起占总成绩的40%);
2、报告一定是作业的精华体现,要基本反映电子作业的内容,整齐、美观和内容充实(占总成绩的60%)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象编程技术作业题要求与说明:●作业成绩总分40分,各题目如无特别声明,起评分均为30分,在此基础上根据实际完成情况、设计文档情况、特色等方面浮动,满分40分;自选题目起评分根据题目难易具体确定;●所有作业要求使用Visual studio(各个版本)编程工具实现;●所有题目都要求具有完整的图形用户界面、输入/出接口,功能要完备;●题目涉及的算法实现方法不限(同一个问题可以使用不同的算法实现);●要求撰写设计报告(内容包括:问题分析、算法选择、方案设计、编程实现),设计报告以Word文档形式与作业程序源代码压缩到一起提交;●任何上交的作业(包括:设计报告、程序源代码)仅作为作业看待,不承担任何版权问题,而且必须是独立完成;●提交作业时,请将程序目录下的debug和release目录及其下所有内容删除,并统一用WinRAR压缩,压缩文件名的命名格式:学号-姓名-所在院系名称例如:2090001-姓名-学院命名不规范将在起评分基础上扣2分!!!●作业要求在本课程结束一周内上交,即在2011年12月9日前必须提交作业,提交地址如下:h_lionstar@或hlionstar@一、开关盒布线问题(35分起)开关盒布线问题是这样的:给定一个矩形布线区域,其外围有若干针脚。
两个针脚之间通过布设一条金属线路而实现互连。
这条线路被称为电线,被限制在矩形区域内。
如果两条电线发生交叉,则会发生电流短路。
所以,不允许电线间的交叉。
每对互连的针脚被称为网组。
我们的目标是要确定对于给定的网组,能否合理地布设电线以使其不发生交叉。
图1-1a给出了一个布线的例子,其中有八个针脚和四个网组。
四个网组分别是(1,4),(2,3),(5,6)和(7,8)。
图1-1b给出的布线方案有交叉现象发生((1,4)和(2,3)之间),而图1-1c则没有交叉现象发生。
由于四个网组可以通过合理安排而不发生交叉,因此可称其为可布线开关盒(routable switch box)。
(在具体实现时,还需要在两个相邻的电线间留出一定的间隔。
我们要解决的问题是,给定一个开关盒布线实例,确定它是不是一个可布线的。
图1-1图1-1b和1-1c中的电线都是由平行于x轴和y轴的垂直线段构成的,当然也可以使用不与x轴和y轴平行的线段。
解决的思想:为了解决开关盒布线问题,我们注意到,当两个针脚互连时,其电线把布线区分成两个分区。
例如,当(1,4)互连时,就得到了两个分区,一个分区包含针脚2和3,另一个分区包含针脚5-8。
现在如果有一个网组,其两个针脚分别位于这两个不同的分区,那么这个网组是不可以布线的,因而整个电路也是不可布线的。
如果没有这样的网组,则可以继续判断每个独立的分区是不是可布线的。
为此,可以从一个分区中取出一个网组,利用该网组把这个分区又分成两个子分区,如果任一个网组的两个针脚都分布在同一个子分区之中(即不会出现两个针脚分别位于两个子分区的情形),那么这个分区就是可布线的。
为了实现上述策略,可以按顺时针或反时针方向沿着开关盒的外围进行遍历,可从任意一个针脚开始。
例如,如果按顺时针方向从针脚1开始遍历图3-1a中的针脚,那么将依次检查针脚1, 2, ...,8。
针脚1和4属于同一个网组,那么在针脚1至针脚4之间出现的所有针脚构成了第一个分区,而在针脚4至针脚1之间出现的所有针脚构成了第二个分区。
把针脚1放入堆栈,然后继续处理,直至遇到针脚4。
这个过程使我们仅在处理完一个分区之后才能进入下一个分区。
下一个针脚是针脚2,它与针脚3同属一个网组,它们又把当前分区分成两个子分区。
与前面的做法一样,把针脚2放入堆栈,然后继续处理直至遇到针脚3。
由于针脚3与针脚2属同一个网组,而针脚2正处在栈顶,这表明已经处理完一个子分区,因此可将针脚2从栈顶删除。
接下来将遇到针脚4,由于与之互连的针脚1正处在栈顶,因此当前的分区已经处理完毕,可从栈顶删除针脚1。
按照这种方法继续进行下去,直至检查完八个针脚,堆栈变空,所创建的分区都已处理完毕为止。
那么,对于不可布线的开关盒将会出现什么样的情况呢?假定图3-1a中的网组是:(1,5),(2,3),(4,7)和(6,8)。
初始时,针脚1和2被放入堆栈。
在检查针脚3时,将针脚2从栈顶删除。
接下来针脚4被放入堆栈,因为针脚4与栈顶的针脚不能构成一个网组。
在检查针脚5时,它也被放入堆栈。
尽管已经遇到了针脚1和针脚5,但还不能结束由这两个针脚所定义的第一个分区的处理过程,因为针脚4的布线将不得不跨越这个分区的边界。
因此,当完成对所有针脚的检查时,堆栈不会变空。
作业要求:1、画出给定矩形布线区域(包括需要连同的线网组),针脚和线网组在数据库中存放,通过数据库接口读出。
2、在自动布线的每一步,用图形标示其状态。
3、自动布线的过程可以通过定时器或多线程的方法,每一次布线的时间间隔可以自定,以人眼观察比较舒服为宜,每一次的布线过程如能实现动画最好。
4、如需要,请定义相关的描述类。
5、在程序中,请使用对话框设定需要的各种参数。
6、布线完成后,请将结果存入数据库中。
7、统计算法耗时。
二、数据阿伦方差计算显示问题在科学研究实验中,经常遇到对大量的实验数据的处理问题。
其处理方法有很多种,但其基本的处理一般包括:求均值、方差等。
今假设有一检测量,其实验测量值服从正态概率密度分布,分布范围:3±,分布概率100%,其中avg是其数学期望,σ是avgσ该测量样本的方差,样本基本采样频率为10ms。
作业要求:1、根据概率分布函数生成一个不少于20000个采样值的样本,其均值和方差通过程序界面指定。
如有类似的实际检测数据样本,也可以使用实际样本。
2、 对该采样样本,根据给定的时间间隔t 0,对样本数据分段,总共(T ÷t 0)=n 段,T 为整个样本对应的采样时间。
每一段内的数据求平均,得到n 个平均值avg(n ),然后将这n 个平均值组成的数组求()22(1)n avg avg n n σ-=-∑∑,即该样本的t 0间隔平滑方差。
3、t 0的取值为:10ms ,20ms ,50ms ,100ms ,200ms ,500ms ,1s ,2s ,5s ,10s ,20s ,50s ,100s ,等等,就得到一系列的t 0间隔平滑方差。
4、以t 0为横坐标,σ为纵坐标,画双对数坐标的函数曲线 5、所绘制的曲线应采用逻辑坐标系,保证双对数曲线的所见即所得。
6、 支持打印、打印预览。
三、旅行商(TSP )问题1、设计TSP 问题的算法模型。
2、建立VC++程序框架。
3、根据指定的城市规模(数量),自动生成城市模型,并图形化显示,城市之间的距离可以采用正态随机分布。
4、动态显示求解过程。
5、支持暂停功和继续的功能(在求解过程中中可以暂停,并继续)。
6、停止后,可以将当前的状态保存(城市模型、求解状态)。
7、可以从7中保存的文件中读出某个状态,并继续求解。
四、残缺棋盘问题残缺棋盘(defective chessboard)是一个有2k×2k个方格的棋盘,其中恰有一个方格残缺。
图4-1给出k≤2时各种可能的残缺棋盘,其中残缺的方格用阴影表示。
注意当k=0时,仅存在一种可能的残缺棋盘(如图4-1a所示)。
事实上,对于任意k,恰好存在22k种不同的残缺棋盘。
残缺棋盘的问题是:要求用三格板(triominoes)覆盖残缺棋盘(如图4-2所示)。
在此覆盖中,两个三格板不能重叠,三格板不能覆盖残缺方格,但必须覆盖其他所有的方格。
在这种限制条件下,所需要的三格板总数为(22k-1)/3。
可以验证(22k-1)/3是一个整数。
k为0的残缺棋盘很容易被覆盖,因为它没有非残缺的方格,用于覆盖的三格板的数目为0。
当k=1时,正好存在3个非残缺的方格,并且这三个方格可用图4-2中的某一方向的三格板来覆盖。
解决的思想:用分而治之方法可以很好地解决残缺棋盘问题。
这一方法可将覆盖2k×2k残缺棋盘的问题转化为覆盖较小残缺棋盘的问题。
2k×2k棋盘一个很自然的划分方法就是将它划分为如图4-3a所示的4个2k-1×2k-1棋盘。
注意到当完成这种划分后,4个小棋盘中仅仅有一个棋盘存在残缺方格(因为原来的2k×2k棋盘仅仅有一个残缺方格)。
首先覆盖其中包含残缺方格的2k-1×2k-1残缺棋盘,然后把剩下的3个小棋盘转变为残缺棋盘,为此将一个三格板放在由这3个小棋盘形成的角上,如图4-3b所示,其中原2k×2k棋盘中的残缺方格落入左上角的2k-1×2k-1棋盘。
可以采用这种分割技术递归地覆盖2k×2k残缺棋盘。
当棋盘的大小减为1×1时,递归过程终止。
此时1×1的棋盘中仅仅包含一个方格且此方格残缺,所以无需放置三格板。
图4-1图4-2图4-3作业要求:1、在窗口中画出初始时的残缺棋盘(棋盘的格数可以指定或在某个范围内随机生成,残缺格的位置随机生成)。
2、自动进行残缺棋盘的覆盖,覆盖的过程可以通过定时器或多线程的方法,每一次移动的时间间隔可以自定,以人眼观察比较舒服为宜。
3、请定义棋盘描述类和三格板描述类。
4、支持暂停功和继续的功能(在自动覆盖过程中可以暂停,并继续)。
5、暂停后,可以将当前的状态保存。
6、可以从5中保存的文件中读出某个状态,并继续覆盖。
五、图片浏览器作业要求:1、程序界面自定义。
2、能够显示Bmp、JPeg、Gif图片3、支持图片文件的重命名、拷贝、粘贴功能。
4、支持删除功能,删除时有提示。
附加要求:支持打印、打印预览功能,并保持图片所见即所得。
六、资源浏览器具体要求:其所有功能要求参见Windows下的资源管理器功能。
七、画笔程序作业要求:1、程序界面参考Microsoft画图程序。
2、能够支持画直线、自由连线(随鼠标移动连线)、实体圆形、实体矩形、实体椭圆3、支持区域选中(通过鼠标拖拽方框选中),并删除选中区域内所画的形状。
4、支持各种笔形画图时的前景和背景色。
5、支持图擦功能,选中图擦时,随着图擦的移动,根据图擦的大小,将图擦经过的区域中的形状相关部分清除。
6、支持打印、打印预览功能,并保持图片所见即所得。
支持将所画的内容保存为文件,格式为BMP格式。
八、聊天系统创建一个聊天系统,该系统由服务器程序和客户端程序两部分构成。
其简单的工作原理如下图所示。
当服务器程序运行时,首先启动一个监听器,负责监听服务器的某个端口,当客户端要进行聊天时,首先要对服务器的特定端口进行连接请求,即客户端试图连接服务器被监听的端口时,服务器的监听器可以选择接受或拒绝连接请求。
如果接受客户端的连接请求,则由监听器为客户端分配一个对应的“套接字”对象,这样在服务器和某个客户端之间就建立了一条数据管道,可以聊天了。