java课程设计报告_第1页
java课程设计报告_第2页
java课程设计报告_第3页
java课程设计报告_第4页
java课程设计报告_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

程序语言综合课程设计程序语言综合课程设计 设计报告设计报告 学 院 信息工程学院 专业班级 学 号 姓 名 指导老师 完成时间 目录 I 目目 录录 题目一题目一 计算器计算器 1 1 1 题目简介 1 1 2 设计的内容 要求和目标 1 1 3 总体设计 2 1 3 1 系统功能结构图 2 1 3 2 系统总体流程图 2 1 3 3 显示模块设计 3 1 3 4 按键模块设计 3 1 4 详细设计及实现 3 1 4 1 操作界面设计 3 1 4 2 类成员变量及方法设计 4 1 4 3 源代码分析 5 1 5 系统运行及使用说明 6 题目二 学生管理系统 9 2 1 题目简介 9 2 2 设计的内容 要求和目标 9 2 3 总体设计 10 2 3 1 系统功能结构图 10 2 3 2 系统总体流程图 10 2 3 3 登录模块的设计 11 2 3 4 学生信息管理模块的设计 11 2 3 5 部门信息管理模块的设计 12 2 3 6 刷新功能的实现 12 2 4 详细设计及实现 12 2 4 1 操作界面设计 12 2 4 2 类成员变量及方法设计 12 2 4 3 数据库设计 15 目录 II 2 4 4 数据库的物理设计与实现 17 2 4 5 数据库表在 MySQL 数据库的实现 18 2 4 6 源代码分析 19 2 5 系统运行及使用说明 20 题目三 贪吃蛇游戏 25 3 1 题目简介 25 3 2 设计的内容 要求和目标 25 3 3 总体设计 26 3 3 1 系统功能结构图 26 3 3 2 系统总体流程图 26 3 3 3 游戏模块的设计 27 3 3 4 排行版模块的设计 27 3 4 详细设计及实现 27 3 4 1 操作界面设计 27 3 4 2 类成员变量及方法设计 28 3 4 3 数据库设计 30 3 4 4 数据库的物理设计与实现 30 3 4 5 数据库表在 SQL Server 2000 的实现 30 3 4 6 源代码分析 31 3 5 系统运行及使用说明 33 总 结 38 附录 39 A 1 题目一关键源码 39 A 2 题目二关键源码 50 A 3 题目三关键源码 59 计算机 2010 级 程序语言综合课程设计 1 题目一题目一 计算器计算器 1 11 1 题目简介题目简介 本程序采用高级程序语言 JAVA 编写 采用 Myeclipse 工具完成的一个有着 基本运算功能和保存结果功能的计算器 1 21 2 设计的内容 要求和目标设计的内容 要求和目标 设计内容 1 用 java 语言编写 设计一个图形界面的计算器运用程序 2 计算器能够实现基本的算数运算 并在非法输入时有提示 3 计算器要有求这个正弦 余弦 正切 算数平方根 倒数 退格 清零等功能 设计要求 1 单击 计算器 上的数字按钮 0 1 2 3 4 5 6 7 8 9 可以设置参与计算的运算数 2 单击 计算器 上的运算符按钮 可以选择运算 符号 3 单击 计算器 上的函数按钮可以计算出相应的函数值 4 单击 计算器 上的 按钮显示计算结果 5 在一个文本框中显示单前的运算过程 在另一个文本框中显示计 算结果 6 单击菜单下的 复制 菜单项可以复制当前的计算结果 点击此 菜单下的 粘贴 菜单项可以将复制到的结果黏贴到当前运算式中 点击 此菜单下的 保存 菜单项可以将当前的计算过程保存到文件 设计目标 1 使学生掌握软件开发的基本工作流程 2 巩固所学的 java 语言知识 3 学会处理复杂类间的调用和提高解决问题的能力 计算机 2010 级 程序语言综合课程设计 2 1 31 3 总体设计总体设计 1 3 1 系统功能结构图系统功能结构图 系统的总功能结构如图 1 1 所示 计计算算器器功功能能 显显示示功功能能计计算算功功能能 显显示示计计算算过过程程 显显示示计计算算结结果果 三三角角函函数数的的运运算算 对对数数和和指指数数的的运运算算 加加减减乘乘除除和和幂幂的的运运算算 其其他他功功能能 保保存存计计算算结结果果 复复制制计计算算结结果果 非非法法输输入入提提示示 图 1 1 系统功能结构图 1 3 2 系统总体流程图系统总体流程图 系统总体处理流程如图 1 2 所示 计算机 2010 级 程序语言综合课程设计 3 开开始始 结结束束 计计算算器器主主界界面面 加加减减乘乘除除运运算算 三三角角函函数数运运算算 对对数数和和幂幂运运算算 等等号号操操作作 复复制制和和保保存存结结果果 图 1 2 系统总体流程图 1 3 3 显示模块设计显示模块设计 为了能让使用者更好地看到计算过程和结果 这里设计了两个文本框用于 显示 一个用于显示计算过程 另一个用于显示计算结果 显示过程的文本框 要求能看到计算过程的表达式 显示结果的文本框要求在非法输入时能显示相 应的错误提示 1 3 4 按键模块设计按键模块设计 为了按键的美观 给按钮添加了图片 为了方便添加按键 特意设了两个 类 一个我添加数字键 另一个是用来添加操作键 这样做也方便对按钮的管 理 1 41 4 详细设计及实现详细设计及实现 1 4 1 操作界面设计操作界面设计 窗口的大小为距离左上角顶部 180 个像素 下面 140 个像素 总体的长度 和高度为 400 个像素和 300 个像素 不让用户改变窗口的大小 整体的布局采 用的是 BorderLayout 包括上面的显示界面和下侧的操作按钮界面 下面的操 计算机 2010 级 程序语言综合课程设计 4 作键界面中的所有按键和操作符又是用到 GirdLayout 布局 之所以用 GirdLayout 是因为格子布局中所有的格子是一样大小 方便对齐 而且更加的 美观和漂亮 上面的一个面板中有两个文本框 一个文本框显示数值 一个文 本框显示计算的过程 在上面的那个显示过程 下面的显示数值 为了美观 两个文本框都设置没有边框 显示结果得到文本框设置了字体为宋体 加粗 使显示结果更加醒目 1 4 2 类成员变量及方法设计类成员变量及方法设计 函数调用关系如图 1 3 所示 Main HandieNumber HandleOperation HandleSin HandleCos HandleMi HandleEquality HandleDot HabdleClear HandleCopyOrPaste HandleBack 图 1 3 函数调用关系图 计算器的主类包含了界面的设计与分析 主要功能就是实现了布局和组件 的添加 这些功能的实现主要在四个面板上 在上面板中包括了两个文本框和一些菜单项 起到的功能是显示计算过程 和计算结果 在菜单中还有复制 粘贴和保存计算结果的菜单项 实现了对计 算结果的复制和保存 在下面板中包括了一些数字和操作符按钮 在主函数中有两个特殊的类就是 OpreationButton 和 NumberButton 这两个 类之所以特殊是应为这两个类的主要功能分别是为了主界面上的按钮添加图片 并且在调用的时候能够记忆触发的是什么记号 HandleOperation 类主要是对运算符号进行操作 用户通过点击上面的按钮 计算器就能做出相应的计算 其他操作 比如求正弦 余弦 正切 开根号 求倒数 幂运算 求阶乘 等操作分别用类 HandleSin HandleCos HandleTan HandleSqrt HandleDaoshu HandleMi 和 HandleJiechen 来实现 计算机 2010 级 程序语言综合课程设计 5 1 4 3 源代码分析源代码分析 本程序用到了 20 个类 其中界面类 1 个 其他都是提供方法的类 之所以 将方法类划分的这么细 主要是为了以后更好的对程序进行维护 这样也可以 让设计思路更加清晰 两个按钮类是 OpreationButton 和 NumberButton 这两个类的主要功能分别 是为了主界面上的按钮添加图片并且在调用的时候能够记忆触发的是什么记号 功能类有 HandleSin HandleCos HandleTan HandleSqrt HandleMi HandleEquality HandleBack HandleClear HandlePositiveOrNegative HandleCopyOrPaste 它 们分别实现求正弦 求余弦 求正切 求算术平方根 求幂运算 等号操作 退格操作 清零操作 正负号操作和复制保存计算结果的功能 菜单上有几个重要的菜单项 他们是复制 粘贴和保存 是用类 HandleCopyOrPaste 来实现的 在点击某个菜单项时调用类里面的相应的方法来 实现功能 主类是窗口类 实现计算器的整体界面 给用户一个简洁 易懂 易操作 的可视化界面 按钮类是为数字和操作符来提供图片的支持并且对数字和操作符的记忆存 储功能 功能类就是各种不同功能的按键的事件监听和处理 从而达到将操作功能 细分的效果 便于以后的维护 计算机 2010 级 程序语言综合课程设计 6 1 51 5 系统运行及使用说明系统运行及使用说明 程序一运行展现给用户的就是一个计算器的主界面 主界面的效果图如图 1 4 所示 图 1 4 主界面图 点击数字按钮和它右侧的运算符按钮就可以实现加减乘除操作 操作示列 如图 1 5 所示 计算机 2010 级 程序语言综合课程设计 7 图 1 5 基本运算操作图 点击数字键左侧的按钮 可以完成求三角函数和求幂运算等操作 操作示 列如图 1 6 所示 图 1 6 函数的操作图 点击菜单项 可以完成对计算结果的复制 粘贴和保存操作 操作示例如 图 1 7 所示 计算机 2010 级 程序语言综合课程设计 8 图 1 7 菜单项功能图 当使用者有非法输入时 将在文本框报错 实现效果如图 1 8 所示 图 1 8 错误提示图 计算机 2010 级 程序语言综合课程设计 9 题目二题目二 学生管理系统学生管理系统 2 12 1 题目简介题目简介 本系统是应用 JAVA 语言 在 Myeclipse 环境下 调用 MySql 数据库设计 的一个简易学生管理系统 该系统实现了对学生信息的管理和对部门信息的管 理 主要是实现对这些信息的添加 删除 查询和修改操作 2 22 2 设计的内容 要求和目标设计的内容 要求和目标 设计内容 1 用 java 语言实现一个有用户登录验证的学生管理系统 2 要求将学生 学院 专业和班级的信息保存到数据库 3 要将一些重要信息保存到日志文件 并且有刷新功能 设计要求 1 录入学生基本信息功能的界面 用户可以通过菜单选项让程序 呈现 录入学生基本信息 功能的界面 通过该界面可以录入学生的学号 姓 名 性别 年龄 籍贯 所属学院 所属专业 所属班级 电话和邮箱等信息 2 修改学生基本信息功能的界面 用户可以通过菜单项让程序呈现 修改学生基本信息 功能的界面 通过该界面可以对已录入的学生信息进行 修改 3 查询和删除学生信息 可以通过点击查询学生信息和删除学生信 息菜单项来实现对指定学生信息的查询和修改 4 要求给程序添加日志文件 显示程序的执行状况 5 程序要求能在不关闭窗口的情况下更新刚录入的信息 设计目标 对数据库的操作 可以实现对用户的密码进行验证 如果登陆成功 则 进入管理系统的主界面 通过主界面提供的菜单 可以实现对学生信息的基本 添加 查询 删除和修改操作 对学院 专业和班级信息的添加操作 并且在 添加后不关闭窗口就能刷新刚添加的信息 计算机 2010 级 程序语言综合课程设计 10 2 32 3 总体设计总体设计 2 3 1 系统功能结构图系统功能结构图 系统的总功能结构如图 2 1 所示 学学生生管管理理系系统统 登登录录验验证证 添添加加学学生生信信息息 修修改改学学生生信信息息 查查询询学学生生信信息息 删删除除学学生生信信息息 添添加加学学院院信信息息 添添加加专专业业信信息息 添添加加班班级级信信息息 登陆成功 登登录录失失败败 图 2 1 系统功能结构图 2 3 2 系统总体流程图系统总体流程图 系统总体流程图如图 2 2 所示 计算机 2010 级 程序语言综合课程设计 11 开开始始 结结束束 用用户户登登录录 学学生生信信息息学学院院信信息息专专业业信信息息班班级级信信息息 添添加加 删删除除 查查询询和和修修改改操操作作 登登录录失失败败 图 2 2 系统总体流程图 2 3 3 登录模块的设计登录模块的设计 程序一运行就进入了用户登录界面 需要用户输入用户名和密码 用户选 择登录键系统就调用数据库表中的数据对用户进行验证 如果输入的信息和数 据库中的信息一致就可以进入操作界面 否则提示用户名或密码错误 用户点 击取消则会退出系统 2 3 4 学生信息管理模块的设计学生信息管理模块的设计 系统对学生信息的管理包括添加学生信息 删除学生信息 修改学生信息 删除学生信息 实现这四个功能分别到用四个界面 它们是添加学生信息界面 删除学生信息界面 修改学生信息界面和查询学生信息界面 添加学生信息时所属学院 所属专业和所属班级都是用下拉列表来选择的 并且能更新 删除学生信息 修改学生信息 查询学生信息都要用户先输入学 生学号 才能进行下一步操作 计算机 2010 级 程序语言综合课程设计 12 2 3 5 部门信息管理模块的设计部门信息管理模块的设计 这里主要实现了添加学院信息 添加专业信息和添加班级信息 在添加专 业信息时要求能看到刚添加的学院信息 再添加班级信息时要求能看到刚添加 的学院和专业信息 所添加的学院编号 专业编号和班级编号不能重复 2 3 6 刷新功能的实现刷新功能的实现 本系统要求在添加学院后 再添加专业的时候能够选择刚添加的学院 即 要求动态更新 实现这一功能的办法是在点击相应的菜单项 比如录入学生信 息 添加专业信息 添加班级信息 的时候调用该类里的 upDate 函数 就 可以实现立刻更新 2 42 4 详细设计及实现详细设计及实现 2 4 1 操作界面设计操作界面设计 程序首先运行时弹出登陆界面 在登陆界面中提供两个文本框输入用户名 和密码 添加登陆和取消按钮供用户选择是否登录 在登陆成功后就进入主界面中 点击上面菜单下的菜单项就可以实现对学 生信息的管理和对部门信息的管理 登录界面大小为 460 345 界面采用 null 布局 定义一个面板 Lable 将背景 图片加入 然后再在上面添加输入用户名和密码的文本框 两个文本框和按钮 应用 setbounds 定义初始位置和大小 放置在界面的右下角 总体界面采用的 CardLayout 的布局 每一个界面都是一个 panel 点击不 同的菜单项 界面会在原窗口进行切换 这样可以让运行效果更加美观 当用 户输入的信息有误或者需要用户确认操作示 系统都会弹出对话框 2 4 2 类成员变量及方法设计类成员变量及方法设计 函数调用关系如图 2 3 所示 计算机 2010 级 程序语言综合课程设计 13 ManagerWindoe Login InputStudent Delete ModifySituation Inquest AddClass AddMajor AddDepart StudentClunitCl 图 2 3 函数调用关系图 1 Login java 成员变量 1 JLabel username password 标签 用于显示 用户名 密码 2 JTextField userName 单行文本对象 用于输入用户名 3 JButton buttonLogin buttonCancel 单按钮对象 用于设置登录和取消 按钮 4 JPasswordField password 密码输入框 方法 1 Login ManagerWindow 是构造方法 负责完成窗口的初始化 2 checkUser String username String password 是用来验证用户的方法 返 回类型 boolean 3 actionPerformed ActionEvent e 处理用户登录判定事件方法 2 InputStudent java 成员变量 1 JRadioButton 男 女 单选按钮 用于提供选择学生性别 2 JTextField 学号 姓名 年龄 籍贯 电话 邮箱 单行文本对象 用于输入学生学号 姓名 年龄 籍贯 电话和邮箱 计算机 2010 级 程序语言综合课程设计 14 3 JButton 录入 重置 单按钮对象 用于设置确定和取消按钮 4 JComboBox classes major depart 下拉框 用于选择学生所属 学院 专业和班级 方法 1 InputStudent 是构造方法 负责完成窗口的初始化 2 addStudent String sql 是用来添加学生信息的方法 返回类型 boolean 3 actionPerformed ActionEvent e 对两个按钮的监听进行处理 判断是 否录入学生信息 3 Delete java 成员变量 1 JRadioButton 男 女 单选按钮 用于显示学生性别 2 JTextField 学号 姓名 年龄 籍贯 学院 专业 班级 电话 邮箱 单行文本对象 用于显示学生学号 姓名 年龄 籍贯 所属学院 所 属专业 所属班级 电话和邮箱 3 JButton 删除 单按钮对象 用于执行删除学生信息操作 方法 1 Delete 是构造方法 负责完成窗口的初始化 2 delStudent String studentID 是用来删除学生信息的方法 返回类型 boolean 3 actionPerformed ActionEvent e 对删除按钮的监听进行处理 判断是 否删除学生信息 4 ModifySituation java 成员变量 1 JRadioButton 男 女 单选按钮 用于提供选择学生性别 2 JTextField 学号 姓名 年龄 籍贯 电话 邮箱 单行文本对象 用于显示和供修改学生学号 姓名 年龄 籍贯 电话和邮箱 3 JComboBox classes major depart 下拉框 用于修改时选择学 生所属学院 专业和班级 4 JButton 修改 单按钮对象 用于执行修改学生信息的操作 方法 1 ModifySituation 是构造方法 负责完成窗口的初始化 2 updateStudent String sql 是用来删除学生信息的方法 返回类型 boolean 计算机 2010 级 程序语言综合课程设计 15 3 actionPerformed ActionEvent e 对修改按钮的监听进行处理 判断是 否修改学生信息 5 Inquest java 成员变量 1 JRadioButton 男 女 单选按钮 用于显示学生性别 2 JTextField 学号 姓名 年龄 籍贯 学院 专业 班级 电话 邮箱 单行文本对象 用于显示学生学号 姓名 年龄 籍贯 所属学院 所 属专业 所属班级 电话和邮箱 3 JButton 查询 单按钮对象 用于执行查询学生信息操作 方法 1 Inquest 是构造方法 负责完成窗口的初始化 2 searchStudent String studentID 是用来查询学生信息的方法 返回类 型 boolean 3 actionPerformed ActionEvent e 对查询按钮的监听进行处理 6 AddDepart java 成员变量 1 JTextField 学院编号 学院名称 单行文本对象 用于添加学院编 号和学院名称 3 JButton 添加 重置 按钮对象 用于执行添加学院信息操作 方法 1 AddDepart 是构造方法 负责完成窗口的初始化 2 addDepart String sql 是用来添加学院信息的方法 返回类型 boolean 3 actionPerformed ActionEvent e 对添加和重置按钮的监听进行处理 2 4 3 数据库设计数据库设计 这里使用的数据库是 MySQL 数据库名是 studentSys 里面共建了五张表 classinfo majorinfo departinfo studentinfo 和 userinfo 1 depart1 depart 学院信息登记 学院信息登记 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 departID学院代码 varchar 255 否是 departName学院名称 varchar 255 可否 departID 两位编码 不许重复 计算机 2010 级 程序语言综合课程设计 16 2 2 majorinfomajorinfo 专业信息登记 专业信息登记 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 majorID专业代码 varchar 255 否是 majorName专业名称 varchar 255 可否 departID学院代码 varchar 255 可外键 majorID 四位编码 不许重复 输入时学院代码用下拉框选择 必须是 学院信息表里存在的学院名称 保存到数据库中时存学院的代码 3 3 classinfoclassinfo 班级信息登记 班级信息登记 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 classID班号 varchar 255 否是 className班级名称 varchar 255 可否 classDate入学时间 year 4 可否 majorID专业代码 varchar 255 可外键 departID学院代码 varchar 255 可外键 classID 编码由 年 3 位序号 组成 不许重复 输入时专业代码和学院代 码用下拉框选择 必须是专业信息和学院信息表里存在的专业名称和学院 名称 保存到数据库中时分别存专业和学院的代码 4 4 studentinfostudentinfo 学生个人信息登记 学生个人信息登记 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 studentID学号 varchar 255 否是 name姓名 varchar 255 可否 sex性别 varchar 255 可否 age年龄 int 11 可否 province籍贯 varchar 255 可否 classID班号 varchar 255 否外键 majorID专业 varchar 255 否外键 departID学院 varchar 255 否外键 phone电话 varchar 255 可否 email邮箱 varchar 255 可否 studentID 编码由 年 班号 2 位序号 组成 不许重复 输入时班级 专 业和学院用下拉框选择 必须是班级 专业信息和学院信息表里存在的专 业名称和学院名称 保存到数据库中时分别存班级 专业和学院的代码 5 5 userinfouserinfo 登录帐号和密码 登录帐号和密码 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 username用户名 varchar 255 否是 password密码 varchar 255 可否 计算机 2010 级 程序语言综合课程设计 17 2 4 4 数据库的物理设计与实现数据库的物理设计与实现 1 数据库建立数据库建立 drop database if exists studentsys create database studentsys 2 数据库表的建立数据库表的建立 1 班级信息表的建立 DROP TABLE IF EXISTS classinfo CREATE TABLE classinfo classID varchar 255 NOT NULL className varchar 255 DEFAULT NULL classDate year 4 DEFAULT NULL majorID varchar 255 DEFAULT NULL departID varchar 255 DEFAULT NULL PRIMARY KEY classID KEY majorID majorID KEY departID departID CONSTRAINT classinfo ibfk 1 FOREIGN KEY majorID REFERENCES majorinfo majorID CONSTRAINT classinfo ibfk 2 FOREIGN KEY departID REFERENCES departinfo departID 2 专业信息表的建立 DROP TABLE IF EXISTS majorinfo CREATE TABLE majorinfo majorID varchar 255 NOT NULL majorName varchar 255 DEFAULT NULL departID varchar 255 DEFAULT NULL PRIMARY KEY majorID KEY departID departID CONSTRAINT majorinfo ibfk 1 FOREIGN KEY departID REFERENCES departinfo departID 3 学院信息表的建立 DROP TABLE IF EXISTS departinfo CREATE TABLE departinfo departID varchar 255 NOT NULL departName varchar 255 DEFAULT NULL 计算机 2010 级 程序语言综合课程设计 18 PRIMARY KEY departID ENGINE InnoDB DEFAULT CHARSET utf8 4 学生信息表的建立 DROP TABLE IF EXISTS studentinfo CREATE TABLE studentinfo studentID varchar 20 NOT NULL name varchar 255 DEFAULT NULL sex varchar 255 DEFAULT NULL age int 11 DEFAULT NULL province varchar 255 DEFAULT NULL classID varchar 255 DEFAULT NULL majorID varchar 255 DEFAULT NULL departID varchar 255 DEFAULT NULL phone varchar 255 DEFAULT NULL email varchar 255 DEFAULT NULL PRIMARY KEY studentID KEY classID classID KEY majorID majorID KEY departID departID ENGINE InnoDB DEFAULT CHARSET utf8 5 用户信息表的建立 DROP TABLE IF EXISTS usersinfo CREATE TABLE usersinfo userName varchar 255 NOT NULL password varchar 255 DEFAULT NULL PRIMARY KEY userName ENGINE InnoDB DEFAULT CHARSET utf8 2 4 5 数据库表在数据库表在 MySQL 数据库的实现数据库的实现 classinfo 表表 majorinfo 表表 departinfo 计算机 2010 级 程序语言综合课程设计 19 studentinfo 表表 usersinfo 表表 2 4 6 源代码分析源代码分析 本程序共有 17 个类 其中 10 个是界面类 另外七个是提供方法的类 界面类有 AddClass java AddDepart java AddMajor java Delete java InputStudent java Inquest java Login java ManagerWindow java 和 ModifiSituation java 它们 为用户提供可视化的操作界面 来实现对学生信息的增加 删除 查询和修改 还有添加学院信息 专业信息和班级信息 方法类有 classes java depart java getCon java major java Student java StudentCl java 和 unitCl java 它们是对数据库表的映射和提供操 作方法 添加日志文件的方法 public void message log String msg try java util Date RightNow Calendar getInstance getTime java text SimpleDateFormat LOG FILENAME SDF new java text SimpleDateFormat yyyyMMdd java text SimpleDateFormat SMS LOG DETAIL TIME new 计算机 2010 级 程序语言综合课程设计 20 java text SimpleDateFormat yyyy MM dd HH mm ss get the Log File Location FileOutputStream fos fos new FileOutputStream F LOG FILENAME SDF format RightNow 学生管理系统 log true PrintWriter pw new PrintWriter fos pw print SMS LOG DETAIL TIME format RightNow pw println msg pw close fos close catch Exception ex System out println msg System out println SMSMsgLog Error r n ex getMessage ex printStackTrace 更新函数示例 更新学院信息 public void upDate try con new getCon getConnection ps con prepareStatement select departName from departinfo res ps executeQuery while res next depart addItem res getString 1 catch Exception e e printStackTrace 计算机 2010 级 程序语言综合课程设计 21 2 52 5 系统运行及使用说明系统运行及使用说明 本程序使用的是数据库操作 用到的是 MySQL 数据库 所以在运行前要 先把数据库建好 再把表建好 连接好数据库 系统一运行进入的就是一个用户登录界面 用户要输入用户名和密码后才 能登录 点击取消则退出系统 登录界面如图 2 4 所示 图 2 4 登录界面 登录成功后就进入系统的主界面 主界面效果如图 2 5 所示 计算机 2010 级 程序语言综合课程设计 22 图 2 5 主界面 添加学院信息界面如图 2 5 所示 图 2 5 添加学院信息 添加专业信息界面如图 2 6 所示 计算机 2010 级 程序语言综合课程设计 23 图 2 6 添加专业信息 添加学生信息界面如图 2 7 所示 图 2 7 添加学生信息 输入学生学号就可以修改指定学生信息 修改学生信息界面如图 2 8 所示 计算机 2010 级 程序语言综合课程设计 24 图 2 8 修改学生信息 输入学生学号就可以查询指定学生信息 查询学生信息界面如图 2 9 所示 图 2 9 查询学生界面 计算机 2010 级 程序语言综合课程设计 25 输入学生学号就可以删除指定学生信息 删除学生信息界面如图 2 10 所示 图 2 10 删除学生界面 计算机 2010 级 程序语言综合课程设计 26 题目三题目三 贪吃蛇游戏贪吃蛇游戏 3 13 1 题目简介题目简介 本程序采用高级程序语言 JAVA 编写 采用 Myeclipse 和 SQL Server 2000 工 具完成的一个有排行版功能的贪吃蛇游戏 3 23 2 设计的内容 要求和目标设计的内容 要求和目标 设计内容 1 用 java 语言设计一个带排行榜功能的小游戏 2 进入游戏前要先有个开机动画 3 排行版只显示前三名的成绩 在每盘游戏结束后能将新的成绩更 新到排行榜中 设计要求 1 要实现游戏的基本功能 在游戏结束的时候对玩家有所提示 2 可以实时现在分数 并且中途可以暂停游戏 3 玩家游戏结束后可以将自己的成绩加入排行版 并且可以在查 看排行榜的时候更新排行榜的信息 4 程序一开始启动的时候要有一个开机动画 然后用菜单项或者 按钮让玩家选择是否开始游戏 设计目标 1 动画要与游戏相关 画面和谐 2 游戏界面要求简洁 易懂 易操作 玩家对游戏的功能和操作可 以一目了然 3 排行榜要求只显示前三名 并且在玩家游戏结束添加了新的成绩 后 排行榜会自动更换新 4 玩家一旦违反游戏规则则停止游戏 同时停止计分 屏幕显示 游戏结束 计算机 2010 级 程序语言综合课程设计 27 3 33 3 总体设计总体设计 3 3 1 系统功能结构图系统功能结构图 系统总体功能结构如图 3 1 所示 贪贪吃吃蛇蛇游游戏戏 主主界界面面 开开始始新新游游戏戏 暂暂停停游游戏戏 查查看看排排行行榜榜 开开机机动动画画 图 3 1 系统功能结构图 3 3 2 系统总体流程图系统总体流程图 系统总体流程图如图 3 2 所示 开开始始 结结束束 开开机机动动画画 开开始始游游戏戏查查看看排排行行榜榜 图 3 2 系统总体流程图 计算机 2010 级 程序语言综合课程设计 28 3 3 3 游戏模块的设计游戏模块的设计 游戏玩家点击菜单下的开始游戏菜单项就可以进入游戏界面 然后点击界 面上的开始游戏按钮游戏正式开始 屏幕上的小蛇开始移动 小蛇每吃一个食 物面板上显示的分数就增加 游戏中途如果点击 暂停游戏 小蛇静止不动 游戏处于暂停状态 每局游戏结束后会弹出一个对话框 玩家可以选择是否保存当前游戏的成 绩 玩家可以点击查看排行版菜单项 查看当前排行榜 在增加新的成绩后排 行榜会自动更新 3 3 4 排行版模块的设计排行版模块的设计 排行版要求只显示前三名的成绩 并且在添加新的成绩进去后 如果新的 成绩可以进入前三名 再次点击 查看排行版 菜单项就可以看到更新后的排 行版 而不需要重新开启窗口 3 43 4 详细设计及实现详细设计及实现 3 4 1 操作界面设计操作界面设计 程序首先运行时弹出的是一个开机动画 用户只要点击 开始游戏 菜单 项就可以进入游戏界面 点击 查看排行榜 菜单项就可以查看游戏排行榜 排行榜一对话框的形式弹出 界面采用 435 485 大小 总体界面采用的 CardLayout 的布局 每一个界面 都是一个 panel 点击不同的菜单项 界面会在原窗口进行切换 这样可以让运 行效果更加美观 当游戏结束时会弹出一个对话框 玩家可以输入名字保存成绩 同时游戏 界面出现 游戏结束 四个字 字体设置为宋体 加粗 字体颜色为红色 计算机 2010 级 程序语言综合课程设计 29 3 4 2 类成员变量及方法设计类成员变量及方法设计 函数调用关系如图 3 3 所示 Main snakeWindow Record showRecord snakeAct users usersCl 图 3 3 函数调用关系图 1 Main java 成员变量 1 JLabel label 标签 用于添加背景图片 2 JPanel pCenter 面板 用于添加界面 3 JMenuBar bar 菜单对象 用于添加菜单 4 JMenuItem startGame showRank welcome 菜单项 用于添加 菜单项 方法 1 Main 是构造方法 负责完成窗口的初始化 2 actionPerformed ActionEvent e 处理菜单项的事件监听 在点击 查 看排行榜 菜单项时调用更新函数 2 snakeWindow java 成员变量 1 JButton start exit 按钮对象 用于控制游戏的开始和退出 方法 1 snakeWindow Main main 是构造方法 负责对话框的初始化 2 limit int x int y 总体判断蛇身是否可以移动的函数 返回类型 计算机 2010 级 程序语言综合课程设计 30 boolean 如果返回 false 则表示蛇不可以移动 3 isCanMove int x int y 具体判断蛇所要走的下一个位置是否可以 走 返回类型 boolean 如果返回 true 表示可以移动 返回 false 则表示不可以 移动 4 eat 处理蛇吃掉食物的函数 具体是实现蛇身长一节 分数增加 的效果 5 otherMove 处理蛇头移动后 蛇身的移动 返回类型 void 6 actionPerformed ActionEvent e 处理 开始游戏 和 退出游戏 两个按钮的事件监听 3 Record java 成员变量 1 JLabel label 标签 用于添加说明文字 2 JTextField textName 文本框对象 用于输入玩家的名字 3 JButton 确定 取消 按钮对象 处理是否保存玩家成绩 方法 1 Record 是构造方法 负责完成窗口的初始化 2 setScore int score 设置游戏的得分 返回类型 void 3 actionPerformed ActionEvent e 处理按钮事件监听 判断是否保存玩 家成绩 3 showRecord java 成员变量 1 JLabel label 第一 label 第二 label 第三 标签 用于添加排 行榜 显示前三名的成绩 方法 1 showRecord 是构造方法 负责完成窗口的初始化 2 update 刷新排行榜 即在添加了新的成绩后在去查看排行榜 会 把新的记录添加进去 返回类型 void 4 snakeAct java 成员变量 1 x y 整形变量 用于显示蛇头的坐标位置和显示蛇头下次要出现的位置 方法 1 getX setX 分别是获取蛇头的 x 轴的坐标和设置蛇头下一个 要经过的 x 轴的坐标 计算机 2010 级 程序语言综合课程设计 31 2 getY setY 分别是获取蛇头的 y 轴的坐标和设置蛇头下一个 要经过的 y 轴的坐标 3 4 3 数据库设计数据库设计 这里使用的数据库是 SQL Server 2000 数据库名是 heros 里面建了一张表 result Result 数据库表如图 3 4 所示 字段名称字段名称字段说明字段说明字段类型字段类型可否为空可否为空主键主键 username玩家名字 varchar 50 否是 Score成绩 int 4 可否 图 3 4 result 数据库表 3 4 4 数据库的物理设计与实现数据库的物理设计与实现 1 数据库建立数据库建立 drop database if exists heroes create database heroes 2 数据库表的建立数据库表的建立 create table result username varchar 30 primary key identity score int 5 3 4 5 数据库表在数据库表在 SQL Server 2000 的实现的实现 resultresult 表表 计算机 2010 级 程序语言综合课程设计 32 3 4 6 源代码分析源代码分析 函数调用关系如图 3 5 所示 Main snakeWindow Record showRecord snakeAct users usersCl 图 3 5 函数调用关系图 本程序共包括 8 个类 其中有四个是界面类 另外四个是功能类 方法类 界面类有 Main java snakeWindow java Record java 和 ShowRecord java 它们分别是主界面 游戏界面 录入成绩界面和显示排行榜 的界面 功能类有 snakeAct java getCon java users java 和 usersCl java 它们分 别是用来提供蛇头的坐标 获得与数据库的链接 和数据库表的映射和提供录 入玩家信息 查看排行榜的方法 录入玩家成绩的方法 public boolean addPlayer String sql boolean b false try con new getCon getConnection ps con prepareStatement sql int number ps executeUpdate if number 1 b true catch Exception e 计算机 2010 级 程序语言综合课程设计 33 e printStackTrace TODO handle exception finally this close return b 查看排行榜用到的方法 public ArrayList getResultByScore ArrayList a new ArrayList try con new getCon getConnection ps con prepareStatement SELECT top 3 from result order by score desc res ps executeQuery while res next users u new users u setUsername res getString 1 u setScore Integer parseInt res getString 2 a add u catch Exception e e printStackTrace TODO handle exception finally this close return a 计算机 2010 级 程序语言综合课程设计 34 3 53 5 系统运行及使用说明系统运行及使用说明 本程序用到了数据库操作 用到的是 SQL Server 2000 数据库 所以在运行 前要先把数据库建好 再把表建好 连接好数据库 程序一运行 我们看到的就是一个开机动画 效果如图 3 6 所示 图 3 6 开机动画 计算机 2010 级 程序语言综合课程设计 35 点击菜单下的 查看排行榜 菜单项 就可以看到已经保存的成绩排行 排行榜只显示三名玩家的成绩 效果如图 3 7 所示 图 3 7 游戏排行榜 计算机 2010 级 程序语言综合课程设计 36 点击菜单下的 开始游戏 菜单项 就可以进入游戏界面 在点击界面上 的开始游戏按钮 游戏正式开始 如图 3 8 所示 图 3 8 开始游戏图 计

温馨提示

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

评论

0/150

提交评论