面向对象程序设计大作业参考题目及要求教案资料
面向对象程序设计大作业
《面向对象程序设计》期末大作业一、大作业题目二、要求(1)依照学生人数分成原那么上2至3人(少量4人)一组,各小组选择感爱好的题目,也可自拟题目。
(2)解题要求:现面向对象程序设计语言的特点,程序代码很多于400行;利用技术:表现OOP 的抽象、封装、继承、多态等4种关键技术中的两种或多种;程序结构良好,没有明显错误;依照大作业格式,在课程终止最后两周(1六、17周)上交电子稿。
(3)最终提交。
●大作业报告依照原有的系统设计,编码时期的工作,整理书写实验报告,内容包括:①系统说明②实验分析与结论③收成与体会④附程序代码●最后提交材料:①大作业报告(打印稿和电子稿)②源程序代码(CPP文件),执行文件(EXE)③小组内分工说明(人员名单(不超过4人)、学号、角色分工)三、说明假设两人和多人程序大体相同或撰写的报告大体相同的情形下,经认真比较查证属彼此剽窃的,剽窃者和被剽窃者均按“0”分计。
大作业报告样式如下:(1) 大作业的页面设置为上、下、左、右页边距都为厘米,格式段落中行距为固定值20磅。
(2) 中文字体为宋体小四号,英文字体为Times New Roman小四。
补充说明:关于大作业中的程序、类或函数必然要有详细的注释,如下例所示。
关于类包括:类的成员变量说明,类的成员函数说明,功能,基类、继承类、实现进程等等。
/********************************************************************类名:私有成员:公有成员:功能:作为下面要概念派生类的基类实现步骤:(1)概念类名(2)声明私有成员(3)声明必要的函数作为公有成员,其中狗狗找函数用来分派存储空间,对私有对象进行初始化(4)对类进行封装/********************************************************************关于函数包括:先对函数及各参数进行说明,函数功能说明,实现原理及步骤说明,函数中的关键部位也需要进行说明。
《面向对象程序设计》大作业
《面向对象程序设计》大作业项目名称基于C#的一款扫雷游戏班级7B1551组员李豪雄曹启李宁一、开发环境开发环境:vs2010开发语言:C#二、系统功能设计1.创建项目功能实现创建项目,找图片素材2.界面设计介绍关于扫雷游戏界面的设计提出希望在对应级别(初级、中级、高级、自定义)的按钮的显示勾,以表示目前的游戏等级。
3.雷区绘制界面中雷区的绘制方法4.菜单操作有两个时候需要对它进行操作,一个是加载上次游戏设置的时候,一个是在游戏过程中进行设置的时候,设计菜单中的相关方法5.内部实现内部埋雷,放雷,标旗子,标问号的方法6.整体完善写游戏的胜利条件,自定义游戏的初始化及相关调试任务三、实现1、创建项目功能实现玩过扫雷的读者应该知道,扫雷需要用到三种图片素材——地雷、红旗、问号。
当右击一个方块的时候,会插上红旗,表示游戏者认为该方块内有地雷;再次右击该方块,会变成问号,表示不确定该方块内是否有地雷;第三次右击该方块,问号消失,恢复到初始的状态。
我们前往Iconfinder寻找合适的图标,并且通过Photoshop或者Illustrator的处理得到我们所需要的图标。
文章中含有下载地址的图标资源可以使用右键—目标另存为进行下载。
通过一定的搜索以及图片的处理,得到了下面一组素材图标,下载地址:Doubbt、Flag、Mine。
除了这些素材以外,我们还需要找一个图标,使得整个程序看上去更加正式一点,这里使用图标如下,注意程序图标的后缀为ico,下载地址:favicon接下来,我们打开Visual Studio 2013开始创建工程,界面如下:创建好的项目如下图所示。
我们需要对这个窗口的几项属性进行修改,首先通过Text属性将它的标题修改为“Minesweeper”;通过FormBorderStyle属性将它的大小设置为“FixedSingle”,即为不可调节窗口大小;通过MaximizeBox属性将它的最大化按钮设置为“False”,即最大化按钮失效;通过Name属性将它的名称修改为“Form_Main”,修改这个属性主要用于后面书写代码的方便;通过BackColor属性将它的背景修改为“White”。
《面向对象程序设计》课程设计题目及要求
《面向对象程序设计》课程设计题目及要求出题人:刘伟一.设计目的面向对象课程设计是在学生系统地学习了“面向对象程序设计(c++)”课程后,按照面向对象的设计思想,综合运用c++知识点,设计开发一个小型面向对象系统。
通过对一个实际问题的分析、设计与实现,使学生学会将书本知识用于解决实际问题,加强动手能力。
二.设计要求1.课程设计时间为2周。
2.使用任一建模工具画出类关系图3.实现类,以及功能运行完好。
4.完成课程设计报告书(内容要求见四)三、选题:公司工资管理系统设计要求:(1)公司主要有4类人员:经理、技术员、销售员、销售经理。
要求存储这些人的职工号、姓名、月工资、岗位、年龄、性别等信息。
(2)工资的计算办法:经理:固定月薪为8000;技术员:工作时间*小时工资(100元每小时);销售员:销售额*4%提成;销售经理:底薪(5000)+所辖部门销售额总额*0.5%;(3)类的层次结构大体如下:(4)输入数据要求每类人员不能少于4人,并按以下格式输出:及某销售经理所辖部门各销售员的业绩及自己的工资表:(5)总体设计,要有一个菜单,用于选择各项功能,其中数据录入:输入各种数据;数据统计:各销售经理的工资计算及最终按工资进行的冒泡排序;数据打印:打印上述表格;数据备份:把相关数据写入文件;退出:退出本系统;注:各项菜单都调用一个函数来实现。
四、课程设计报告格式包括以下6个部分:1.课程设计题目及功能分析2.UML类图(贴图)3.设计过程中的关键代码以及关键知识点分析4.运行结果展示(截屏)(贴图)5.心得体会,关于本次课程设计的收获以及对面向对象程序设计的理解。
6.附录关键程序代码(打印)7.提交时间:通知。
面向对象程序设计课程设计(要求及参考题目)
面向对象程序设计课程设计一、目的及基本要求1. 因为课程设计主要是锻炼学生,所以应该鼓励学生放手去做,激发他们钻研问题的兴趣。
围绕着书本上的内容重点,学生可以在VC++平台下设计具有各种不同功能的程序,“类”是程序设计的基础,要求要用到类的特性:即类的封装、类的抽象、继承和多态。
2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。
二、课程设计考核方法及成绩评定课程设计成绩分两部分,设计报告占30%,设计作品占70%。
评分标准:(1)程序设计有难度,有创意的――优(2)程序设计正确,有一定的难度――良(3)全部正确,并能正确回答设计中的问题――中(4)程序设计有少许错误,但能回答设计中的问题――及格(5)没有达到要求的-不及格三、课程设计内容及安排1. 上交源程序:学生按照课程设计的具体要求所开发的所有源程序(应该放到一个文件夹中)。
2. 上交程序的说明文件:(保存在.txt中)在说明文档中应该写明上交程序所在的目录,上交程序的主程序文件名,如果需要安装,要有程序的安装使用说明。
3. 课程设计报告:(保存在word 文档中,文件名要求按照"姓名-学号-课程设计报告"起名,如文件名为"张三-001-课程设计报告".doc)按照课程设计的具体要求建立的功能模块,每个模块要求按照如下几个内容认真完成。
其中包括:a)需求分析: 根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?(而不是怎么做?)限制条件是什么?b)概要设计重点对类进行设计,分析设计类的属性和方法。
c)程序编码。
重点功能部分要加上清晰的程序注释.d)调试分析分模块(类)进行,设计好测试数据,测试输出的结果,时间复杂度分析,和每个模块设计和调试时存在问题的思考(问题是哪些问题如何解决 ),算法的改进设想。
《面向对象程序设计》课程设计题目及要求
《面向对象程序设计》课程设计题目及要求一、课程设计总体要求:本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践, 学生确定设计题目后, 要明确本次课程设计所要用到的技术点, 回顾之前学习的这些知识点, 或者到网上搜索以及查阅相关的书籍来搜集资料。
通过编写一个基于JAVA的应用系统综合实例, 来掌握JAVA语言编程技巧。
二、参考题目及要求:学生可选择下面题目或者自定题目, 但要求具有一定难度和复杂度, 是一个较为完整的应用程序。
1.编写一个记事本程序要求:用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。
提示: 使用文件输入输出流。
2.编写一个计算器程序要求:界面模拟Windows中的计算器程序。
实现基本数学运算、函数等功能: 加、减、乘、除、阶乘、正弦、余弦和指数运算。
实现要点: 添加相关组件并进行按钮事件处理和键盘事件处理。
3.模拟龟兔赛跑要求:用图形用户界面实现。
能设置比赛时间, 马匹的数量等等。
在任意时间段内马匹的速度是随机的。
开始比赛之后以动画显示赛马过程。
提示: 使用多线程, 赛马也可换成其他。
4.学生信息管理系统要求:使用图形用户界面用数据库建立1或2个学生信息表。
(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。
5.图书信息管理系统要求:使用图形用户界面用数据库建立1或2个图书信息表。
(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。
6.ATM柜员机模拟程序要求:使用图形用户界面。
当输入给定的卡号和密码(初始卡号和密码为123456)时, 系统能登录ATM柜员机系统, 用户可以按照以下规则进行:(1)查询余额: 初始余额为10000元(2)ATM取款: 每次取款金额为100倍数, 总额不超过5000元, 支取金额不允许透支。
(3)ATM存款: 不能出现负存款。
(4)修改密码:新密码长度不小于6位, 不允许出现6位完全相同的情况, 只有旧密码正确, 新密码符合要求, 且两次输入相同的情况下才可以成功修改密码。
面向对象程序设计教案完整版
01
将对象的属性和行为封装在一起,隐藏内部实现细节,只对外
提供必要的接口。封装提高了代码的安全性和可维护性。
继承(Inheritance)
02
子类可以继承父类的属性和行为,并可以添加新的属性和行为
。继承实现了代码的重用和扩展。
多态(Polymorphism)
03
子类可以重写父类的方法,实现不同的行为。多态使得程序具
构造函数作用及使用方法
构造函数作用
构造函数是一种特殊的方法,用于创建类的实例对象。当使 用`new`关键字创建对象时,会自动调用该类的构造函数。
使用方法
在类中定义构造函数时,需要遵循以下规则:构造函数的名 称必须与类名相同;构造函数没有返回类型;可以使用不同 的参数列表定义多个构造函数,形成构造函数的重载。
类与对象概念及关系
类(Class)是对具有相同属性 和行为的一组对象的抽象描述,
它定义了对象的结构和行为。
对象(Object)是类的实例, 具有类所描述的属性和行为。每 个对象都有其独特的状态和行为
。
类与对象之间的关系是“类型实例”关系,即类是对象的类型
,对象是类的实例。
封装、继承和多态原理
封装(Encapsulation)
类定义
类是面向对象编程的基本单元,它定义了一类事物的共同 属性和行为。在Java中,使用`class`关键字来定义一个类 。
成员变量
成员变量是类的属性,用于描述该类对象的状态。在类中 声明成员变量时,需要指定变量的访问修饰符、数据类型 和变量名。
方法声明
方法是类的行为,用于描述该类对象可以执行的操作。在 类中声明方法时,需要指定方法的访问修饰符、返回类型 、方法名和参数列表。
面向对象程序设计大作业要求
面向对象程序设计大作业
姓名:
班级:
学号:
一、论述(20分)
面向对象程序设计思想的优缺点,并详细举例说明其与C语言程序编程的不同。
答:
二、程序设计(80分)
参考实际生活中图书管理、商品销售、餐饮管理、客房管理、工资管理、人事考勤管理系统、文档管理系统,选取其中之一进行程序设计。
要求:按照选取得系统设计相应的类,设计的类至少包括添加、删除、查看(添加信息、删除信息)、退出四个,每个类至少包括四种数据成员,三种成员函数,实现的功能按照对应类设计,可按照自己设计再酌情添加相关类,同时可保存为文件。
(提示:作业重点是四个类的设计,并在设计作业中说明这四个类应该如何使用,程序具备的功能。
)
时间要求:截至12月5日前完成大作业,作业分纸质报告和程序电子文档。
纸质文档要求:1. 针对所编写的程序设计,重点要求分条(至少三条)写明所采用的课程中概念和思想,及具体使用方法。
2.(1)类的主要功能描述(1页左右),(2)重点函数实现方法描述(1页左右),(3)有简单应用示例(至少四张图),(4)类代码(五号新罗马字体,单倍行间距,建议分栏排版和双面打印,以内容整齐为准,学生自行掌握);
电子文档要求:(1)由类代码文件、main()函数文件及cpp、obj、exe文件组成的文件夹,(2)应用示例(各功能运行结果截图),每人一个文件夹(命名方式:学号_19x班_姓名),班长收齐,集中上交。
大作业程序设计如下:。
《面向对象程序设计(C++)大作业报告模板
《面向对象程序设计(C++)》课程大作业大作业名称年级专业项目成员指导教师2010 年6月1日目录1 需求分析 (1)1.1 开发背景 (1)1.2 项目目标 (1)1.3 运行环境 (1)2 程序分析 (1)2.1 技术要点 (1)2.2 项目任务书 (1)3 技术路线 (1)3.1 总体方案 (1)3.1.1 软件及开发平台 (1)3.1.2 总体方案 (1)3.2 详细设计 (2)4 工程进度 (2)5 测试报告 (2)5.1 阶段性测试 (2)5.2 总体测试 (2)6 个人小结 (2)参考文献 (2)附录程序源代码 (2)1 需求分析1.1 开发背景1.2 项目目标1.3 运行环境2 程序分析2.1 技术要点2.2 项目任务书3 技术路线3.1 总体方案3.1.1 软件及开发平台3.1.2 总体方案3.2 详细设计4 工程进度5 测试报告5.1 阶段性测试5.2 总体测试6 个人小结参考文献[1] 薛华成. 管理信息系统. 第二版. 北京: 清华大学出版社, 1993[2] R K 霍斯尼. 谷物科学与工艺学原理. 李庆龙译. 第2版. 北京: 中国食品出版社, 1989[3] 赵秀珍, 王崇文. 关于计算机学科中几个量和单位用法的建议. 见: 科技编辑学论文集.北京: 北京师范大学出版社, 1997. 125-129附录程序源代码正文文字采用宋体小四,行间距20磅。
正文所有的图表都必须在文中进行引用,图表中的字体用宋体五号,图标号在图的下方,表标号在表的上方,图标号与表标号均采用宋体五号。
图标号。
所有的图按章顺序编号,如第2章的第4个图的编号为“图2-4”,并将图的编号和名称标在图的下方(图中文字、图名称均为宋体五号字),如:图2-4 计算机与数据库表标号。
所有的表按章顺序编号,如第3章的第1个表的编号为“表3-1”,并将表的编号和名称标在表的上方(表中文字、表名称均为宋体五号字),如:所有的数字和字母都采用Times New Roman ,每段段首缩进两格。
(完整版)面向对象程序设计教案(2024)
3
类是对象的抽象描述,而对象是类的具体实现。 类定义了对象的结构和行为,而对象则是类的一 个实例。
2024/1/30
8
封装、继承和多态
2024/1/30
封装(Encapsulation)
封装是面向对象编程的核心思想之一,它将对象的属性和方法封装在类中,隐藏内部实现 细节,只对外提供必要的接口。封装提高了代码的可维护性和安全性。
Java语言的特点
详细阐述Java语言的面向对象、跨平台、安全性等核心特 性。
Java开发环境搭建
指导学生安装和配置Java开发工具包(JDK)和集成开发 环境(IDE)。
12
基本数据类型与运算符
基本数据类型
详细讲解Java中的整数类型( byte、short、int、long)、浮 点类型(float、double)、字符
2024/1/30
35
对未来学习建议
2024/1/30
深入学习面向对象的设计原则和设计模式
01
建议学生继续深入学习面向对象的设计原则和设计模式,掌握
更多的架构和框架。
实践项目经验
02
鼓励学生多参与实际项目,积累项目经验,提高编程能力和解
决问题的能力。
拓展知识面
03
建议学生拓展知识面,学习其他相关的编程语言和技术,如
2024/1/30
17
异常处理机制
异常定义
异常类型
异常处理流程
异常是程序在运行时出现的非正常情 况,如输入错误、文件找不到、网络 中断等。Java使用异常处理机制来处 理程序中的异常情况。
Java中的异常分为两大类,即检查型 异常(Checked Exceptions)和非 检查型异常(Unchecked Exceptions)。检查型异常需要在方 法声明中抛出,并在调用该方法时捕 获处理;非检查型异常则不需要在方 法声明中抛出,可以在任何地方抛出 。
面向对象程序设计(C++)大作业任务书
《面向对象程序设计(C++)》大作业任务书一、题目每组同学(3人一组)可从下列给出的参考题目中任选一题完成,不可以重复。
(1)消费卡支付管理系统(2)驾校学员管理系统(3)网吧上网管理系统(4)超市管理系统(5)网上购物管理系统(6)校园一卡通管理系统(7)家族族谱管理系统(8)银行管理系统(9)个人财务管理系统(10)图书馆管理系统(11)学生成绩管理系统(12)药店进销存管理系统(13) 学生选课管理系统(14)高校招生管理系统(15)公交一卡通管理系统(16)食品安全管理系统(17)机场汽车出入管理系统(18)个人电话簿管理系统(19)建筑公司承包管理系统(20)餐馆营业管理系统其余题目略。
二、对象本学期“面向对象程序设计(C++)”选课班全体同学。
三、目的(1)掌握面向对象程序设计(OOP)的思想,区别传统的过程式程序设计思想,能够使用面向对象的程序设计思想解决实际问题;(2)掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法;(3)独立完成每个程序设计和编码,能够灵活运用各种调试命令修改源程序中可能出现的错误,并能根据问题进行学习、拓广、深化。
(4)学会科学地撰写总结报告,加深对所学知识的理解和掌握,答辩中考察学生的技能,并培养学生的表达和思辨能力。
四、要求(1)根据学生人数分成原则上3人(少量4人)一组,各小组选择感兴趣的题目,在课外完成查找资料、选题、拟大纲、小组讨论、研究写作等各环节;每一环节完成后,在课堂上进行小组之间的讨论、教师点评,最后确定解决问题的方案。
(2)问题规模:体现面向对象程序设计语言的特点,程序代码不少于400行;使用技术:体现OOP的抽象、封装、继承、多态等4种关键技术中的两种或多种;程序结构良好,没有明显错误;按照大作业格式,在课程结束前一周交电子稿和打印稿。
五、内容(1)系统说明书内容包括:①问题描述②类体系设计和程序流程图③各类定义的基本功能,即主要数据和函数功能描述④拟采用开发平台(Visual C++,Borland C++等)(2)大作业报告根据原有的系统设计,编码阶段的工作,整理书写实验报告,内容包括:①系统说明②实验分析与结论③收获与体会④附程序代码(3)最后提交材料:①大作业报告(打印稿和电子稿)②源程序代码(CPP文件),执行文件(EXE)六、评分本次大作业占期末考试总成绩的20%,满分20分。
面向对象程序设计大作业参考题目及要求
面向对象程序设计大作业参考题目1、学生信息管理(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
2、学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
计算器类面向对象程序设计大作业
面向对象程序设计大作业------计算器类、学校人员管理系统学院名称数学与系统科学学院专业班级信息与计算科学2013-2班学生姓名陈涛学号 201301050904 指导教师孙红梅完成时间:2015 年 7月 1 日计算器类目的和要求设计一个计算器类模板,适用各类型表达式的“+、-、×、/”数学四则运算以及“>、>=、<、<=、!=、==”等关系运算。
数学四则运算表达式中可含有加、减、乘、除运算符以及各型数据的运算对象。
程序可以直接输入数学表达式以及关系表达式,不需要任何转换,就可以直接输出数学四则运算和逻辑运算的结果。
并且操作简单、界面清晰、灵活、实用、方便等。
(系统功能可充分自由发挥)。
扩展功能:三角运算、进制转换、开方、幂指数等。
问题描述设计一个简单计算器。
用户输入四则运算表达式,程序输出正确结果。
当表达式中数据格式或运算符输入错误,程序给出错误信息。
要求:(1)表达式的左、右操作数可以为整数或实数。
(2)运算符限制为+,-,*,/(3)输入表达式允许有前导空格,允许在运算符前后嵌入空格。
(4)检测表达式由以下函数完成:void check(char *input, int &a, double &y, int &op, char * &err);其中参数意义如下:input 输入表达式的字符串。
x 返回表达式的左操作数转换结果数值。
此题为简单起见,把数据统一转换成double类型。
y 返回表达式的右操作数转换结果数值。
op 返回对运算式的判断结果。
若输入表达式左、右操作数和运算符都正确,则返回值为1、2、3、4,分别表示做+、-、*、/运算。
若返回-1,表示左操作数错;若返回-2,表示右操作数错;若返回-3,表示操作符错。
err 返回显示错误信息的字符串。
附录(源程序代码)#include "iostream"#include "string"using namespace std;void check(char *input, double &x, double &y, int &op, char * &err); double chage(char *ch);int main(){double x,y;int op;char input[40],*err;double result;gets(input);check(input,x,y,op,err);if(op<0){cout<<err<<endl; return 0;}switch(op){case 1: result=x+y; break;case 2: result=x-y; break;case 3: result=x*y; break;case 4: result=x/y; break;}cout<<input<<"="<<result<<endl;return 0;}void check(char * input, double &x, double &y, int &op, char * &err) {int i=0,j=0,k;int point=0;char leftx[20],righty[20];while(input[i]==' ') i++;j=i;if(input[j]=='0'&&(input[j+1]>='0'&&input[j+1]<='9')){err="左操作数错误!"; op=-1; return;}while((input[j]>='0'&&input[j]<='9')||input[j]=='.'){if(input[j]=='.') point++;if(point>1) {err="左操作数错误!"; op=-1; return;}j++;}k=0;while(i<j) leftx[k++]=input[i++];leftx[k]='\0';x=chage(leftx);while(input[i]==' ') i++;switch(input[i]){case '+': op=1; i++; break;case '-': op=2; i++; break;case '*': op=3; i++; break;case '/': op=4; i++; break;default: op=-3;err="运算符错误!";return;}while(input[i]==' ') i++;j=i;point=0;if(input[j]=='0'&&(input[j+1]>='0'&&input[j+1]<='9')) {err="右操作数错误!"; op=-2; return;}while((input[j]>='0'&&input[j]<='9')||input[j]=='.'){if(input[j]=='.') point++;if(point>1) {err="右操作数错误!"; op=-2; return;}j++;}k=0;while(i<j) righty[k++]=input[i++];righty[k]='\0';y=chage(righty);if(op==4&&y==0){err="除数不能为0"; op=-2; return;}}double chage(char *ch){int i=0,j,f=-1;double result=0,wre;while(ch[i]){if(ch[i]=='.') break;i++;}f=i;for(i=f-1;i>=0;i--){wre=1;j=0;while(j<f-i-1) {wre*=10; j++;}result+=(ch[i]-'0')*wre;}for(i=f+1;ch[f]&&ch[i];i++){wre=1;j=0;while(j<i-f) {wre*=0.1; j++;}result+=(ch[i]-'0')*wre;}return result;}指导教师评语成绩:指导教师(签章):2015年月日目的与要求本程序用于管理一个公司的人员工资,所有雇员类(Employee)有共性的数据成员是:编号、姓名和工资。
面向对象分析与设计(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)学生在选课信息窗口内进行选课某学生要选他所感兴趣的某门课程,只需要点击相应的课程信息记录前的某个方框(每个可选的课程信息前面都提供有一个方框);选择了某个课程后,然后再点击窗口中的“提交”按钮(在窗口的右下端)提交该选课结果即可。
此时将会在“已选课程”的区域中出现所选报的课程名称(如下窗口中的下半部分),表示已经成功地保存了所选的课程,某门课程的选课的过程也就完成了。
面向对象程序设计课程设计题目及要求
面向对象程序设计课程设计要求及题目学期:2010-2011-02 专业:软件工程课程设计选题要求:1、每个学生从下面16个题目中选择3个题目来进行课程设计,3个题目的选择遵循下面的原则:第一个题目从1-3号题目中选,第二个题目从4-9号题目中选,第三个题目从10-16号题目(使用文件)中选。
2、选好题目后,每个学生根据题目的内容填写任务书(课程设计说明书中),其中“已知技术参数和设计要求”项,直接将题目中“要求”部分复制过去。
注意:一个题目对应一份任务书!3、请认真阅读课程设计指导书(附件1),提前做好课程设计准备。
1复数类要求:1)该系统主要处理复数的相关信息。
2)完成以下的操作:初始化复数、求其绝对值、复数的加、减、乘、除、乘方、自加、自减等。
提示:1)建立数据类、复数类2)数据、复数信息的初始化3)复数信息的输出4)求复数的绝对值5)实现复数的加、减、乘、除、乘方、自加、自减等运算2字符串类要求:1)该系统主要处理字符串的相关信息。
2)完成以下的操作:初始化字符串、获得字符串长度、在字符串中查找一个字符、在字符串中查找另一个字符串、字符串连接、字符串比较等。
提示:1)建立数据类、字符串类2)数据、字符串信息的初始化3)字符串信息的输出4)获得字符串长度5)在字符串中查找一个字符6)在字符串中查找另外一个字符串7)比较字符串3日期类要求:1)该系统主要处理时间的相关信息。
2)完成以下的操作:日期的设置、显示、实现在某一个日期上(月、日、年)加减一个天数的功能、计算两个日期间隔天数提示:1)建立日期类2)日期类的初始化3)按某个固定格式(如:yyyy-MM-dd)一次性的设置某个日期对象4)以固定格式显示某个日期5)在日期上加一天6)在日期上减一天7)输入两个日期,然后输出日期的间隔天数4学生成绩管理系统要求:1)该系统主要处理学生的成绩信息。
2)学生信息主要包括:学号、班级、姓名、科目1、科目2、科目3等内容。
《面向对象程序设计》大作业要求和任务书范文
《面向对象程序设计》大作业要求和任务书一、目的和要求检验学生学习《面向对象程序设计》课程后的学习成果,对于软件程序设计主流方法和思想——面向对象程序设计方法和思想的牢固掌握和熟练应用是一个非常重要的检测,是后续实践课程得以顺利进行的必要保证,对学生的程序设计能力培养和软件工程能力的培养具有重要的作用和意义。
要求学生综合应用已学的相关知识,例如程序设计基本思想和方法、C++语言、面向对象程序设计思想和方法,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题。
要求学生针对比较系统的题目进行编码、测试,并进行设计说明书的撰写,从而培养和锻炼学生初步的工程意识和做法。
加深对所学知识的理解和掌握,巩固课程学习的内容,培养学生掌握面向对象程序设计(OOP)的思想,锻炼其使用面向对象的程序设计思想分析和解决实际问题的能力,培养上机动手能力,培养文档报告书面表达和思辨的能力。
要求学生对自己学过的C++知识进行综合运用,要求要用到类的特性:即类的封装、类的抽象、继承和多态,编写一些小型的具有一定应用价值的程序,通过对真实世界的模拟和抽象来解决一些比较简单的实际问题;掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法。
二、任务内容参考后附的大作业题目,规定每位同学完成两道题目(第一个题目是计算机类,第二个题目从第2-4题中任选一题)。
针对所选题目完成如下具体任务:1. 问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么?对功能进行说明;2. 类设计:综合考虑系统功能,对问题描述中涉及的操作对象定义相应的数据类型。
抽象数据类型的实现尽可能做到数据封装,充分运用继承、派生、多态等知识,给出用UML描述的类之间的关系图;3. 详细设计:给出各个主要模块的算法,并画出模块之间的调用关系图;要使得系统结构清晰、合理、简单和易于调试,写出主要函数的算法框架;4. 程序编码:把详细设计的结果进一步求精为程序设计语言程序。
面向对象程序设计(大作业)
一、名词解释(每题4分,共40分)1.面向对象面向对象:相对于面向过程而言的,所谓面向对象就是不在追求其操作的过程而是去实现其中的方法。
2.对象对象:对象就是用来描述客观事物的一个实体,有一组属性和方法构成的。
3.构造函数构造函数:主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new 运算符一起使用在创建对象的语句中,也是一种特殊的方法。
4.析构函数析构函数:是与构造函数相反,当对象结束其生命周期时,系统自动执析构函数。
其主要作用是用delete释放建立对象用new开辟内存空间。
5.继承继承:继承是指一个对象直接使用另一对象的属性和方法6.多态多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性7.引用引用:使用它指向了一个A对象,也可以说它引用了一个A对象8.友元友元:指某些虽然不是类成员却能够访问类的所有成员的函数。
9.模板模板:某种事物所依照的样本10.异常处理异常处理:是编程语言或计算机硬件里的一种机制,用于处理软件或信息系统中出现的异常状况。
二、综合回答题(每小题15分,共60分)1.请介绍运算符重载的意义。
答:所谓重载,就是重新赋予新的含义。
运算符函数重载就是对原有元算符进行赋予新的含义从而实现运算符的重载.可以实现运算符重载的包括:算术运算符:+,-,*,/,%,++,--;位操作运算符:&,,~,^,<<,>>逻辑运算符:!,&&,;比较运算符:<,>,>=,<=,==,!=;赋值运算符:=,+=,-=,*=,/=,%=,&=,=,^=,<<=,>>=;其他运算符:[],(),->,,(逗号运算符),new,delete,new[],delete[],->*不能实现运算符重载的运算符包括:.,.*,::,?:2.谈谈多态的意义。
答:封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了代码重用。
面向对象程序设计大作业
2019级Java面向对象程序设计大作业题目及要求一、作业目的1、掌握用Java实现面向对象程序设计的基本方法。
2、熟练掌握Java程序开发环境的使用。
3、完成一个GUI应用程序的设计、编码、调试,了解程序设计过程,锻炼实际应用能力,为后续课程打下基础。
二、具体要求1、功能调查2、系统功能框架图3、类说明4、系统的包(package)的规划设计面向对象程序设计大作业二○二零年 12 月1.系统功能说明添加,查找,删除和修改学生的信息,管理学生的学号姓名等。
2.3.系统的包(package)Java.Swing 提供“轻量级”图形用户界面组件类有JFrame,JButton 等Java.Sql :访问数据库,类有DriverManager等Java.awt :图形用户界面包,常用类有Frame,Button,Label,TextField等Java.awt.event :事件处理Java.util:实用工具包,提供Arrays,Date,Random,Scanner等类,以及接口4.所用到的表的结构及数据类型Student信息表打开Java文件bighome.java运行后出现菜单1)添加功能输入要添加的学生的学号,学号必须为八位,点击添加按钮,弹出要添加学生的信息输入框,按提示输入学生的信息姓名,性别,专业,年级然后点击确认,提示添加成功。
注:专业不能超过7个字,年级需要在 2000到2020年。
2)查询功能下拉客户信息系统菜单,选择查询学生的学号,后点击确定查询查询按钮;3)修改功能下拉菜单客户信息系统,找到此学生的信息,点击修改按钮,重新输入相应的正确信息,将错误的替换掉,点击确认;4)删除功能下拉菜单客户信息系统,选择删除学生学号,点击删除按钮即可;5)退出系统功能点击页面右上角的关闭窗口的×号即可;6.程序源代码:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class StuManFrame extends JFrame {private static final long serialVersionUID = 10L; //序列化版本号private StuBusinessLogic stuLogic = new StuBusinessLogic(); //关联业务逻辑层private Stu stu = new Stu(); //实体类private StuManFrame thisObj = this; //当前对象private JLabel labelNum = new JLabel("学号:"); //5个标签private JLabel labelName = new JLabel("姓名:");private JLabel labelSex = new JLabel("性别:");private JLabel labelSpecialty = new JLabel("专业:");private JLabel labelYear = new JLabel("年级:");private JTextField textFieldNum = new JTextField(8); //5个只读文本框private JTextField textFieldName = new JTextField(4);private JTextField textFieldSex = new JTextField(1);private JTextField textFieldSpecialty = new JTextField(7);private JTextField textFieldYear = new JTextField(4);private JButton buttonFirst = new JButton("首记录"); //按钮private JButton buttonPre = new JButton("上记录");private JButton buttonNext = new JButton("下记录");private JButton buttonLast = new JButton("尾记录");private JLabel labelInputNum = new JLabel("请输入学号:");private JTextField textFieldInputNum = new JTextField(8);private JButton buttonSearch = new JButton("查找"); //按钮private JButton buttonAdd = new JButton("添加");private JButton buttonUpdate = new JButton("修改");private JButton buttonDelete = new JButton("删除");private JLabel labelBrowse = new JLabel("======== 浏览区========");private JLabel labelTotal = new JLabel(); //记录总数标签private JLabel labelTitle = new JLabel("――学号―姓名―性别―专业―年级――");private JList list; //列表框private JScrollPane scrollPane; //放置列表框的滚动窗格private JButton buttonBrowse = new JButton("浏览"); //按钮private JButton buttonRefresh = new JButton("刷新");private JButton buttonCancelBrowse = new JButton("取消浏览");private JPanel panUp = new JPanel(); //上部面板private GridLayout gridLay = new GridLayout(6, 1); //按6行布局private JPanel panUp1 = new JPanel();private JPanel panUp2 = new JPanel();private JPanel panUp3 = new JPanel();private JPanel panUp4 = new JPanel();private JPanel panUp5 = new JPanel();private JPanel panUp6 = new JPanel();private JPanel panDown = new JPanel(); //下部面板private BorderLayout borderLay = new BorderLayout(); //按边框布局private JPanel panDownSouth = new JPanel();public StuManFrame(){ //构造方法this.setTitle("三层结构学生信息管理程序");this.setBounds(100, 100, 480, 450);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);try{initialize(); //调用初始化方法}catch (Exception e){e.printStackTrace(); //有异常,输出跟踪轨迹}this.setVisible(true);}private void initialize(){ //初始化方法textFieldNum.setEditable(false);textFieldName.setEditable(false);textFieldSex.setEditable(false);textFieldSpecialty.setEditable(false);textFieldYear.setEditable(false);panUp1.add(labelNum);panUp1.add(textFieldNum);panUp2.add(labelName);panUp2.add(textFieldName);panUp2.add(labelSex);panUp2.add(textFieldSex);panUp3.add(labelSpecialty);panUp3.add(textFieldSpecialty);panUp3.add(labelYear);panUp3.add(textFieldYear);panUp4.setBackground(Color.LIGHT_GRAY);panUp4.add(buttonFirst);panUp4.add(buttonPre);panUp4.add(buttonNext);panUp4.add(buttonLast);panUp5.setBackground(Color.GRAY);panUp5.add(labelInputNum);panUp5.add(textFieldInputNum);panUp5.add(buttonSearch);panUp5.add(buttonAdd);panUp5.add(buttonUpdate);panUp5.add(buttonDelete);labelTitle.setVisible(false);labelBrowse.setForeground(Color.WHITE);labelTotal.setForeground(Color.YELLOW);panUp6.setBackground(Color.BLUE);panUp6.add(labelBrowse);panUp6.add(labelTotal);panUp.setLayout(gridLay); //上部面板设置6行1列网格布局panUp.add(panUp1);panUp.add(panUp2);panUp.add(panUp3);panUp.add(panUp4);panUp.add(panUp5);panUp.add(panUp6);panDown.setLayout(borderLay);panDown.add(labelTitle, BorderLayout.NORTH);panDownSouth.setBackground(Color.LIGHT_GRAY);panDownSouth.add(buttonBrowse);panDownSouth.add(buttonRefresh);panDownSouth.add(buttonCancelBrowse);panDown.add(panDownSouth, BorderLayout.SOUTH);stu = stuLogic.getFirstStu();this.displayRecord(stu); //显示一个学生记录list = new JList(StuBusinessLogic.getStus()); //构建学生集列表scrollPane = new JScrollPane(list); //构建滚动窗格panDown.add(scrollPane, BorderLayout.CENTER); //下部面板放置滚动窗格scrollPane.setVisible(false); //暂不显示滚动窗格this.setLayout(new GridLayout(2, 1)); //窗框分上下两部分this.add(panUp);this.add(panDown);//按钮添加动作事件监听器:buttonFirst.addActionListener(new ActionHandler());buttonPre.addActionListener(new ActionHandler());buttonNext.addActionListener(new ActionHandler());buttonLast.addActionListener(new ActionHandler());buttonSearch.addActionListener(new ActionHandler());buttonAdd.addActionListener(new ActionHandler());buttonUpdate.addActionListener(new ActionHandler());buttonDelete.addActionListener(new ActionHandler());buttonBrowse.addActionListener(new ActionHandler());buttonRefresh.addActionListener(new ActionHandler());buttonCancelBrowse.addActionListener(new ActionHandler());buttonRefresh.setEnabled(false);buttonCancelBrowse.setEnabled(false);}//按钮动作事件监听处理类(内部类):class ActionHandler implements ActionListener{public void actionPerformed(ActionEvent e){if(e.getSource()==buttonFirst){ //“首记录”按钮stu = stuLogic.getFirstStu(); //调用业务逻辑层方法获取首记录displayRecord(stu); //显示学生记录}else if(e.getSource()==buttonPre){ //“上记录”stu = stuLogic.getPreviousStu();displayRecord(stu);}else if(e.getSource()==buttonNext){ //“下记录”stu = stuLogic.getNextStu();displayRecord(stu);}else if(e.getSource()==buttonLast){ //“尾记录”stu = stuLogic.getLastStu();displayRecord(stu);}else if(e.getSource()==buttonSearch){ //“查找”:按学号查找String num = textFieldInputNum.getText().trim();if (num.length()==0 || num == null ){JOptionPane.showMessageDialog(null, "请输入学号再查找!");textFieldInputNum.requestFocus();}else{stu = stuLogic.searchStu(num); //调用业务逻辑层查找方法if (stu == null){JOptionPane.showMessageDialog(null,"学号为"+ num + "的记录不存在!");}displayRecord(stu);}}else if(e.getSource()==buttonAdd){ //“添加”:先查找再添加String num = textFieldInputNum.getText().trim();if (num.length()==0 ){JOptionPane.showMessageDialog(null, "请输入要添加的学号!");textFieldInputNum.requestFocus();}else if (! num.matches("[\\d]{8}") ){ //如果学号不是8位数字JOptionPane.showMessageDialog(null, "学号必须是8位数字!");textFieldInputNum.requestFocus();}else{stu = stuLogic.searchStu(num); //调用业务逻辑层查找方法if (stu != null){JOptionPane.showMessageDialog(null, "该学号记录已存在!");}else{ //显示添加记录模式对话框,进行记录添加操作:AddDialog dialog = new AddDialog(thisObj, true, num);stu = dialog.getStu(); //获取添加的学生对象}displayRecord(stu);}}else if(e.getSource()==buttonUpdate){ //“修改”:先查找再修改String num = textFieldInputNum.getText().trim();if (num.length()==0 || ! num.matches("[\\d]{8}") ){JOptionPane.showMessageDialog(null,"请输入要修改的学号!\n学号必须是8位数字!");textFieldInputNum.requestFocus();}else{stu = stuLogic.searchStu(num); //调用业务逻辑层查找方法displayRecord(stu);if (stu == null){JOptionPane.showMessageDialog(null,"该学号的记录不存在,无法修改!");}else{ //显示修改记录模式对话框,进行修改操作:UpdateDialog dialog = new UpdateDialog(thisObj, true, num);stu = dialog.getStu(); //获取修改的学生对象displayRecord(stu);}}}else if(e.getSource()==buttonDelete){ //“删除”:先查找后删除String num = textFieldInputNum.getText().trim();if (num.length()==0 || ! num.matches("[\\d]{8}") ){JOptionPane.showMessageDialog(null,"请输入要删除的学号!\n学号必须是8位数字!");textFieldInputNum.requestFocus();}else{stu = stuLogic.searchStu(num); //调用业务逻辑层查找方法displayRecord(stu);if (stu == null){JOptionPane.showMessageDialog(null,"该学号的记录不存在!");}else{ //显示确认框,选择是否删除:int result =JOptionPane.showConfirmDialog(null,"真的删除该记录吗?");if (result==JOptionPane.YES_OPTION){stuLogic.deleteStu(stu); //调用业务逻辑层删除方法stu = stuLogic.getCurrentStu(); //获取删除后当前学生displayRecord(stu);}}}}else if(e.getSource()==buttonBrowse){ //“浏览”所有记录buttonBrowse.setEnabled(false);buttonRefresh.setEnabled(true);buttonCancelBrowse.setEnabled(true);list = new JList(StuBusinessLogic.getStus()); //获取学生集所有元素scrollPane.setViewportView(list); //设置滚动窗格视图scrollPane.setVisible(true);labelTitle.setVisible(true);labelTotal.setText("记录总数:" + StuBusinessLogic.getTotal());thisObj.setVisible(true);}else if(e.getSource()==buttonRefresh){ //“刷新”浏览buttonBrowse.setEnabled(false);buttonCancelBrowse.setEnabled(true);list = new JList(StuBusinessLogic.reGetDBAllRecords());//重获库记录scrollPane.setViewportView(list); //设置滚动窗格视图scrollPane.setVisible(true);labelTitle.setVisible(true);labelTotal.setText("记录总数:" + StuBusinessLogic.getTotal());thisObj.setVisible(true);}else if(e.getSource()==buttonCancelBrowse){ //“取消浏览”buttonCancelBrowse.setEnabled(false);buttonBrowse.setEnabled(true);buttonRefresh.setEnabled(true);scrollPane.setVisible(false);labelTitle.setVisible(false);labelTotal.setText("");thisObj.setVisible(true);}}}public void displayRecord(Stu stu){ //显示学生记录方法if (stu !=null ){textFieldNum.setText(stu.getNum());textFieldName.setText(stu.getName());textFieldSex.setText(String.valueOf(stu.getSex()));textFieldSpecialty.setText(stu.getSpecialty());textFieldYear.setText(String.valueOf(stu.getYear()));}else {textFieldNum.setText(null);textFieldName.setText(null);textFieldSex.setText(null);textFieldSpecialty.setText(null);textFieldYear.setText(null);}}}import java.sql.*;import java.util.Vector;import javax.swing.JOptionPane;/** 数据层 */public class StuDataAccess { //数据层类private static String driver = "com.mysql.cj.jdbc.Driver"; //驱动程序private static String url ="jdbc:mysql://localhost:3306/studb?useSSL=false&allowPublicKeyRetri eval=true&serverTimezone=UTC"; //数据库源private static Connection conn; //连接private Statement stmt; //预语句private PreparedStatement prpstmt; //预编译语句private ResultSet rs; //结果集private static Connection createConnection(){ //建立连接方法try{if (conn == null || conn.isClosed()) {Class.forName(driver); //加载驱动程序conn = DriverManager.getConnection(url,"root","root"); //建立连接}}catch(Exception e){System.err.println("建立连接异常:"+ e);}return conn;}private static void closeConnection(){ //关闭连接方法try{if(conn != null && ! conn.isClosed()){conn.close();}}catch(SQLException se){JOptionPane.showMessageDialog(null, "关闭库连接异常:" +se.getMessage());}}private void closeResultSet(){ //关闭结果集方法try{if (rs != null ){ rs.close();}}catch(SQLException se){JOptionPane.showMessageDialog(null, "关闭结果集异常:" +se.getMessage());}}private void closeStatement(){ //关闭语句方法try{if (stmt != null ){ stmt.close();}if (prpstmt !=null){ prpstmt.close();}}catch(SQLException se){JOptionPane.showMessageDialog(null, "关闭语句异常:" +se.getMessage());}}public Vector<Stu> getAllRecords(){ //获取所有记录方法Vector<Stu> stus = new Vector<Stu>(); //学生记录集String sql = "select * from Stus";try{createConnection();stmt = conn.createStatement();rs = stmt.executeQuery(sql);while(rs.next()){Stu stu = new Stu(); //学生对象stu.setNum(rs.getString("Num"));stu.setName(rs.getString("Name"));stu.setSex(rs.getString("Sex").charAt(0));stu.setSpecialty(rs.getString("Specialty"));stu.setYear(rs.getInt("Year"));stus.add(stu);}}catch(Exception e){JOptionPane.showMessageDialog(null, "查找所有记录异常:" +e.getMessage());}finally{this.closeResultSet();this.closeStatement();closeConnection();}return stus;}//按学号查找学生记录方法:找到,返回Stu对象,否则,返回null public Stu searchRecord(String num){ //查找学生记录方法Stu stu = null; //学生变量String sql = "select * from Stus where Num = ?";try{createConnection();prpstmt = conn.prepareStatement(sql);prpstmt.setString(1, num); //参数索引从1开始rs = prpstmt.executeQuery();if(rs.next()){ //如果查找到记录stu = new Stu(); //构建学生对象stu.setNum(rs.getString("Num"));stu.setName(rs.getString("Name"));stu.setSex(rs.getString("Sex").charAt(0));stu.setSpecialty(rs.getString("Specialty"));stu.setYear(rs.getInt("Year"));}}catch(Exception e){JOptionPane.showMessageDialog(null, "查找记录异常:" +e.getMessage());}finally{closeStatement();closeConnection();}return stu;}//添加一条学生记录方法:成功,返回1(更新语句数目);不成功,返回0。
2019级Java面向对象程序设计大作业题目及要求
2019级Java面向对象程序设计大作业题目及要求2019级Java面向对象程序设计大作业题目及要求一、作业目的1、掌握用Java实现面向对象程序设计的基本方法。
2、熟练掌握Java程序开发环境的使用。
3、完成一个GUI应用程序的设计、编码、调试,了解程序设计过程,锻炼实际应用能力,为后续课程打下基础。
二、作业题目编写的代码需要体现面向对象的思想,需要根据题意分析创建几个类。
所有的题目都建议实现GUI应用程序,即具有图形用户界面。
建议批量信息的存储使用集合类对象来存储,例如ArrayList,HashMap等,不要用数组。
具体要求可详细阅读题目。
若不想做以上题目的,可以自拟题目,请把题目和详细功能描述发到指导老师邮箱或和指导老师电话联系,由指导老师确认后,可以做自拟的题目。
(一)餐厅点餐系统1、采用图形用户界面,可参考下图设计,需要有餐厅名称、菜式类别导航页面、菜式展示选择页面、点菜单显示区域、操作按钮、菜单栏(添加“系统设置”菜单项,可设置餐厅名称的字体样式)等。
2、系统至少包括以下信息:菜式信息:菜的编号、菜名、菜的类型、菜价、(菜的简介)等客户点菜单信息:本单编号、餐桌编号、用餐人数、日期、点菜列表(菜名、数量、价格)、账单总额等3、系统基本功能要求:(1)点击菜式类别,可展示该分类下的所有菜品(系统中不少于5个菜品分类,每个菜品类别,不少于6个菜)。
(2)选择餐桌编号、用餐人数、菜式等,点击【取消】按钮,取消所有菜式的选择,点击【下单】按钮生成点菜单,计算总金额(需要根据用餐人数计算茶位费),并在界面中显示。
(3)每桌的点菜单同时需要使用文件存储。
(4)点击【加单】按钮,可以在点菜单中追加菜式,更新总金额,更新界面和文件中信息。
(5)点击【结账】按钮,完成结账,清空本餐桌点菜单。
4、扩展功能要求:(1)为菜品添加数量按钮,可选择点菜数量。
(2)计算餐厅的销售总额,添加管理员角色,设置登录功能,能查看所有桌子的点菜单,可计算销售总额等。
面向对象程序设计大作业
面向对象程序设计(C++)大作业(总20页)-CAL-FENGHAI.-(YICAI)-Company One1-CAL-本页仅作为文档封面,使用请直接删除面向对象程序设计(C++)课程大作业设计题目:院系:计算机科学与信息工程学院专业班级: 09软件工程(2)班学号姓名: 0042 刘国松4012 吕秀锦0034 高婉婉指导教师:李源2015 年 1月目录一、成员分工 (1)二、需求分析 (2)三、总体设计 (3)四、详细设计 (8)五、系统测试 (24)六、总结 (30)七、参考文献 (31)一成员分工我们小组成员共有三名,分别是刘国松、吕秀锦、高婉婉,为了能按时圆满的完成这次VC++课程设计,我们小组进行了详细的分工,以确保设计能按时完成。
经过周密的考虑和详细的调查最终确定该俄罗斯方块游戏需要以下几个功能模块:(1)需求分析(2)界面的设计(3)背景色的选择模块(4)游戏随机选择方块模块(5)游戏预览功能模块(6)收埋功能模块(7)记分功能模块(8)鼠标控制功能模块(9)模块联结(10)系统测试经过小组成员的讨论,并根据个人的特长和具体爱好做如下具体分工:刘国松具体完成以下模块的设计与实现:(1)需求分析(2)界面的设计(3)背景色的选择模块吕秀锦具体完成以下模块的设计与实现:(1)游戏随机选择方块模块(2)游戏预览功能模块(3)收埋功能模块(4)记分功能模块高婉婉主要具体完成以下模块的设计与实现:(1)鼠标控制功能模块(2)模块联结(3)系统测试二需求分析1.系统概述该游戏软件在Windows系统为玩家提供传统俄罗斯方块游戏的基本功能,玩家可以通过键盘控制在游戏区中堆积软件随机提供的由四个小方块不同组合的7种类型不同颜色的方块,每个小方格的颜色也是随机的,并且在整个下落的过程中,其颜色也呈动态变化。
游戏过程中,每在游戏区堆满一行后,自动消除并记分。
同时消去的行数越多,那一次性所加的分数也就越多。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1)输入教师信息
(2)插入(修改)教师信息:
(3)删除教师信息:
(4)浏览教师信息:
提示:具体功能及操作参考题1。
B、教师数据处理:
(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。文件的读写操作大家参照书中的有关文件的章节。
2、学生综合测评系统
每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
面向对象程序设计大作业参考题目及要求
面向对象程序设计大作业
参考
1、学生信息管理
(1)问题描述
学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:
系统以菜单方式工作
学生信息录入功能(学生信息用文件保存)---输入
学生信息浏览功能——输出
C、学生综合信息输出
提示:输出学生信息到屏幕。
3、图书管理系统
主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。每一个人的借书信息包括借书证号、姓名、班级、学号等。
查询、排序功能——算法
1、按学号查询
2、按姓名查询
学生信息的删除与修改(可选项)
(2)功能要求
界面简单明了;
有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;
最好用链表的方式实现。
(3)算法分析
首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
(3)删除同学信息:
提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
(4)浏览学生信息:
提示:打开文件,显示该文件的学生信息。
B、学生数据处理:
(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
系统功能包括以下方面:
A、借阅资料管理
要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以随时对其相关资料进行添加、删除、修改、查询等操作。
B、借阅管理
(1)借出操作
(2)还书操作
(3)续借处理
提示:以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。并显示该读者所有至当日内到期未还书信息。
E系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。
4、学校运动会管理系统
问题描述:
(1)初始化输入:N-参赛院系总数,M-男子各项目名次取法有如下几种:
取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;
(3)由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
A、学生信息处理
(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2)插入(修改)同学信息:
提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,
(2)输入功能:可以一次完成若干条信息的输入。
(3)显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)
(4)查找功能:可以按姓名等多种方式查找通讯信息
(5)增加、删除、修改功能:完成通讯录信息的多种更新
6、教师工资管理系统
每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
C、读者管理
读者等级:对借阅读者进行分类处理,例如可分为教师和学生两类。并定义每类读者的可借书数量和相关的借阅时间等信息。
读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。
D、统计分析
随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。
(4)所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
5、个人通讯录管理系统
建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
功能要求
(1)通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。
(2)学生测评数据输入并计算综合测评总分及名次。
提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。
(3)学生数据管理
提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件
(4)学生数据查询:
提示:输入学号或其他信息,即读出所有数据信息,并显示出来。