Java课程设计实验报告及全部源码流程图
- 格式:doc
- 大小:714.87 KB
- 文档页数:72
Java课程设计报告记事本源代码有流程图Java课程设计报告题目:简单记事本程序的设计年级专业:计算机科学与技术学号:学生姓名:指导老师:完成时间:2010年 6月 8 日第 1 页共 11 页目录摘要 ..................................................................... . (1)前言 ..................................................................... . (2)1需求分析 ..................................................................... ............................................................ 2 1.1需求分析 ..................................................................... ......................................................... 2 1.2功能设计 .............................................................................................................................. 3 2.概要设计 ..................................................................... ............................................................ 3 2.1程序设计思路 ..................................................................... ................................................. 3 2.2程序运行界面 ..................................................................... ................................................. 3 2.3模块说明图 ..................................................................... ..................................................... 4 2.4程序流程图 ..................................................................... ..................................................... 5 2.5程序相关说明 ..................................................................... ................................................. 6 3.程序详细设计与分析 ..................................................................... ......................................... 6 3.1.初始化组件 ..................................................................... ..................................................... 6 3.2.构建菜单栏及其下拉菜单 ..................................................................... .............................. 6 3.3.“文件”菜单的事件监听 ..................................................................... .............................. 7 3.4.“编辑”菜单的事件监听 ................................................................................................... 8 3.5.异常处理 ..................................................................... ......................................................... 9 4(测试分析 ..................................................................... ....................................................... 10 5(源程序清单 ..................................................................... ................. 错误~未定义书签。
java语言程序设计实验报告
《Java语言程序设计实验报告》
实验目的:通过本次实验,学生将学会使用Java语言进行程序设计,掌握Java
语言的基本语法和编程技巧,并能够编写简单的Java程序。
实验内容:本次实验主要包括以下内容:1. Java语言的基本语法和数据类型;2. Java程序的输入输出;3. Java程序的流程控制;4. Java程序的函数和类的定义;
5. Java程序的异常处理等。
实验步骤:1. 阅读相关的Java语言教材和资料,了解Java语言的基本概念和
语法规则;2. 编写简单的Java程序,包括输入输出、流程控制、函数和类的定
义等;3. 调试和运行编写的Java程序,查看程序的运行结果;4. 对程序进行优
化和改进,提高程序的效率和性能。
实验结果:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,能够编写简单的Java程序,并能够运用Java语言解决实际的问题。
实验总结:通过本次实验,学生将对Java语言有了更深入的了解,掌握了Java
语言的基本概念和编程技巧,能够独立编写简单的Java程序。
同时,学生也将
培养了良好的编程习惯和解决问题的能力,为今后的学习和工作打下了良好的
基础。
结语:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,
为今后的学习和工作打下了良好的基础。
同时,也希望学生能够在今后的学习
和工作中不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。
计算机系课程大作业实验报告实验项目名称银行ATM系统的设计与实现所属课程名称Java程序设计实验类型综合设计姓名提交时间2012-5-10班级学号成绩计算机实验室System.exit(0);7 查询利率设计用户可查询利率,利率可在程序中修改,但不允许用户自己修改。
JOptionPane.showMessageDialog(null,"您的利率是: " + rate);8文件设计存取款记录都可以在文件中体现。
存款记录只要代码如下:try {FileWriter fw = new FileWriter( "d:\\atm.txt ",true);PrintWriter out = new PrintWriter(fw);out.println("存款: "+money);out.close();fw.close();}catch (IOException e) {System.out.println( "Write file error! ");e.printStackTrace();}取款代码与存款相似。
实验步骤、测试数据及实验结果1.登陆界面(1)输入正确的帐号和密码(2)输入密码错误如上再次输入错误,则出现如下界面。
程序被退出。
2.登陆正确进入选择界面3.输入选项1,出现查询余额界面4.输入选项2,出现存款界面(1)如输入不是整百的金额则不能存入金额(2)输入整百的金额则存入5.存入金额后,查询余额为本金加利息6.输入选项3,出现取款界面(1)如输入不是整百的金额则不能取款(2)输入整百的金额则取款成功7.输入选项4,出现利率界面8.输入选项5,出现退出界面9.记录文件内容。
java类的设计实验报告Java 类的设计实验报告一、实验目的本次实验的主要目的是深入理解和掌握 Java 类的设计原则、方法和技巧,通过实际的编程实践,提高对面向对象编程思想的应用能力,培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容1、设计一个简单的学生类(Student),包含学生的姓名(name)、年龄(age)、学号(studentId)等属性,并提供相应的构造方法、getter 和 setter 方法。
2、设计一个课程类(Course),包含课程名称(courseName)、课程编号(courseId)、授课教师(teacher)等属性,同样提供构造方法和相关的访问方法。
3、设计一个学生选课类(StudentCourse),用于关联学生和课程,包含学生对象(student)、课程对象(course)、选课时间(selectTime)等属性,并实现相应的方法来获取和设置这些属性。
四、实验步骤(一)学生类(Student)的设计```javapublic class Student {private String name;private int age;private String studentId;//无参构造方法public Student(){}//有参构造方法public Student(String name, int age, String studentId) {thisname = name;thisage = age;thisstudentId = studentId;}// getter 和 setter 方法public String getName(){return name;}public void setName(String name) {thisname = name;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}public String getStudentId(){return studentId;}public void setStudentId(String studentId) {thisstudentId = studentId;}}```(二)课程类(Course)的设计```javapublic class Course {private String courseName;private String courseId;private String teacher;//无参构造方法public Course(){}//有参构造方法public Course(String courseName, String courseId, String teacher) {thiscourseName = courseName;thiscourseId = courseId;thisteacher = teacher;}// getter 和 setter 方法public String getCourseName(){return courseName;}public void setCourseName(String courseName) {thiscourseName = courseName;}public String getCourseId(){return courseId;}public void setCourseId(String courseId) {thiscourseId = courseId;}public String getTeacher(){return teacher;}public void setTeacher(String teacher) {thisteacher = teacher;}}```(三)学生选课类(StudentCourse)的设计```javapublic class StudentCourse {private Student student;private Course course;private String selectTime;//无参构造方法public StudentCourse(){}//有参构造方法public StudentCourse(Student student, Course course, String selectTime) {thisstudent = student;thiscourse = course;thisselectTime = selectTime;}// getter 和 setter 方法public Student getStudent(){return student;}public void setStudent(Student student) {thisstudent = student;}public Course getCourse(){return course;}public void setCourse(Course course) {thiscourse = course;}public String getSelectTime(){return selectTime;}public void setSelectTime(String selectTime) {thisselectTime = selectTime;}}```(四)测试类```javapublic class Test {public static void main(String args) {//创建学生对象Student student1 = new Student("张三", 20, "001");//创建课程对象Course course1 = new Course("Java 编程","001","李老师");//创建学生选课对象StudentCourse studentCourse1 = new StudentCourse(student1,course1, "2023-09-01");//输出学生选课信息Systemoutprintln("学生姓名:"+ studentCourse1getStudent()getName());Systemoutprintln("学生年龄:"+ studentCourse1getStudent()getAge());Systemoutprintln("学生学号:"+ studentCourse1getStudent()getStudentId());Systemoutprintln("课程名称:"+ studentCourse1getCourse()getCourseName());Systemoutprintln("课程编号:"+ studentCourse1getCourse()getCourseId());Systemoutprintln("授课教师:"+ studentCourse1getCourse()getTeacher());Systemoutprintln("选课时间:"+studentCourse1getSelectTime());}}```五、实验结果与分析通过运行测试类,成功输出了学生选课的相关信息,包括学生的姓名、年龄、学号,课程的名称、编号、授课教师以及选课时间。
实验1 Java基本程序设计一、实验目的1.掌握设置Java 程序运行环境的方法;2.了解Java 的数据类型;3.掌握变量的声明方式;4.理解运算符的优先级;5.掌握Java 基本数据类型、运算符与表达式;6.掌握Java基本输入输出方法。
二、实验环境1.PC微机;2.DOS操作系统或 Windows 操作系统;3.Java sdk程序开发环境、eclipse集成环境。
三、实验内容1.货币转换在控制台下输入任意一个美元数值,将其转换成等价的人民币数值(假设100美元=636.99人民币)后在消息框中输出。
2.输出两个数的较大值分别在两个对话框中输入两个任意的数值,显示其较大的数值。
四、实验步骤1.新建Java项目,并创建package ;2.创建两个java类文件,分别命名为 CurrencyConversion.java 和valueCompare.java ;3.在 CurrencyConversion.java 中写入代码:package FirstExperiment;import java.util.Scanner;import javax.swing.JOptionPane;public class CurrencyConversion {public static void main(String[] args) {// TODO Auto-generated method stubSystem.out.println("Please input the money(dollar): ");Scanner input = new Scanner(System.in);double moneyOfDollar = input.nextDouble();double moneyOfRMB = moneyOfDollar * 6.3699 ;String output = "$" + moneyOfDollar + "=" + "¥" + moneyOfRMB ;JOptionPane.showMessageDialog(null, output);}}4.在 valueCompare.java 中写入代码:package FirstExperiment;import javax.swing.JOptionPane;public class valueCompare {public static void main(String[] args) {String stringNumber1 =JOptionPane.showInputDialog("Please input the first number") ;double number1 = Double.parseDouble(stringNumber1) ;String stringNumber2 =JOptionPane.showInputDialog("Please input the second number") ;double number2 = Double.parseDouble(stringNumber2);if(number1 > number2)JOptionPane.showMessageDialog(null, number1 + " is bigger");elseJOptionPane.showMessageDialog(null, number2 + " is bigger");}}5.分别编译并且调试五、实验结果1.题目1实验结果:输入100后:2.题目2实验结果:六、实验总结这是我第一次做java实验,配置环境的过程比较麻烦,但是好在自己比较细心,所以配置环境的过程相对比较顺利。
实验报告java程序设计一、引言本次实验是针对Java程序设计的实践性活动。
Java是一种广泛应用于各种平台的编程语言,具有跨平台、面向对象、安全性高等特点。
通过本次实验,我们将学习如何利用Java语言进行程序设计,并进一步熟悉Java的基本语法和面向对象的思想。
二、实验目的1. 掌握Java的基本语法和面向对象的思想;2. 熟悉Java程序的编写和运行过程;3. 学会利用Java进行简单的程序设计。
三、实验内容3.1 实验环境为了进行本次实验,我们需要安装以下工具和环境:- JDK(Java Development Kit):Java开发工具包,包含了编译器和相关工具;- IDEA(Integrated Development Environment for Java):一种常用的Java集成开发环境。
3.2 实验步骤1. 安装JDK和IDEA,并完成相应的配置工作;2. 创建一个Java项目,并创建一个名为`HelloWorld`的Java类;3. 在`HelloWorld`类中编写代码,实现输出`Hello, World!`的功能;4. 编译和运行程序,观察结果。
四、实验过程和结果4.1 实验过程首先,我们需要安装JDK和IDEA,并完成相应的配置工作。
然后,我们打开IDEA,创建一个新的Java项目。
接着,在该项目中创建一个名为`HelloWorld`的Java类。
在`HelloWorld`类中,我们编写以下代码:javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}完成代码编写后,我们点击IDEA工具栏上的编译按钮,对代码进行编译。
编译成功后,我们点击运行按钮,运行程序。
4.2 实验结果在IDEA的控制台窗口上,我们可以看到以下输出:Hello, World!这就是我们期望的输出结果,说明我们成功地使用Java编写并运行了一个程序。
课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
java实验报告代码Java 实验报告代码引言:Java 是一种面向对象的编程语言,广泛应用于软件开发领域。
本实验报告将介绍我在学习 Java 过程中的实验代码,并对其进行分析和总结。
一、实验背景在学习 Java 编程语言时,实验是一种非常重要的学习方式。
通过实验,我们可以将理论知识应用于实际项目中,提升自己的编程能力和解决问题的能力。
二、实验目的本次实验的目的是通过编写 Java 代码,实现一些基本的功能,包括输入输出、条件语句、循环语句、数组和函数等。
三、实验过程1. 输入输出在 Java 中,可以使用 Scanner 类来实现输入输出操作。
下面是一个示例代码:```javaimport java.util.Scanner;public class InputOutputExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数:");int num = scanner.nextInt();System.out.println("您输入的整数是:" + num);}}```上述代码中,我们使用 Scanner 类的 nextInt() 方法来读取用户输入的整数,并使用 System.out.println() 方法将结果输出到控制台。
2. 条件语句条件语句是根据条件判断来执行不同的代码块。
下面是一个示例代码:```javapublic class ConditionalStatementExample {public static void main(String[] args) {int num = 10;if (num > 0) {System.out.println("这个数是正数");} else if (num < 0) {System.out.println("这个数是负数");} else {System.out.println("这个数是零");}}}```上述代码中,我们使用 if-else 语句来判断一个数是正数、负数还是零,并根据不同的条件输出不同的结果。
java实验报告含源代码学生实验报告开课实验室:年月日年级、专业、班姓名学号实验课程名称JAVA语言程序设计实验成绩实验项目名称实验一:Java语言面向对象编程技术指导老师一、实验目的:1.熟悉Java程序运行环境。
2.学习Windows系统中设置JDK 5.0的运行路径的方法。
3.熟悉JDK 5.0工作环境。
4.学习在DOS环境下,如何运行Java Application和Java Applet 程序。
5.掌握JDK 5.0 提供的工具javac、Java、appletviewer的使用方法6.在Eclipse中编译和运行Java程序二、实验内容1.在Windows系统的环境变量中设置JDK 5.0的运行路径。
2.使用任意文本编辑器编辑一个Java Application程序,在控制台中输出Hello World,并在DOS环境下编译和运行该程序。
3.使用任意文本编辑器编辑一个Java Applet程序,在Applet显示窗口中显示Welcome to Java!!,并在DOS 环境下编译和运行该程序。
4.在Eclipse中编译和运行Java程序三、实验环境Windows XP JA V A JDK 6.0Esclipse四、实验步骤1.安装JDK安装好JDK 5.0后,如果想在系统的任意目录下编译和运行编写好的Java程序,需要先设置环境变量。
本实验将在Windows系统下的环境变量中设置JDK运行路径(本实验中JDK的安装路径均使用安装程序的默认路径:C:\Program Files\Java\ jdk1.5.0_06)。
(1)鼠标右键单击“我的电脑”,选择“属性”,在弹出对话框中选择“高级”下的“环境变量”(2)在“系统变量”中选择Path,单击“编辑”按钮,在弹出对话框中的“变量值”文本框中添加;C:\Program Files\ Java\jdk1.5.0_06\bin (如果前一个变量值后已有“;”则将路径信息加入即可),单击“确定”按钮。
《程序设计实践III》实验报告题目贪吃蛇成绩二○一五年六月一日《程序设计实践III》实验报告题目___贪吃蛇___目录一、程序设计目标 (2)二、开发和运行环境 (2)三、系统流程图 (2)四、程序类模块及其更能 (2)五、数据库设计框架 (8)六、程序设计框架 (9)七、问题分析及解决方案 (10)八、实验总结 (12)九、源文件 (12)一、程序设计目标《贪吃蛇》游戏已经问世多年,有PC 版4的,也有手机版的。
本次游戏开发再一次指向了PC 版上,为了能够让多玩家进行PK ,本次设计中,添加了网络排名一项,有助于玩家在自己玩的时候,又可以与网络玩家进行比较。
二、开发和运行环境Windows 7 中文版Java(TM) SE Runtime Environment (build 1.8.0_40-b26) eclipse J2EE三、系统流程图四、程序类模块及其更能(一)、程序运行状态展示:开始结束游戏运行状态游戏速度调节游戏成绩排名游戏暂停 显示游戏成绩游戏退出 游戏合法判断YN游戏信息显示游戏控制(二)、程序整体代码结构图(三)、程序各类模块分解:1、Bottom类Bottom类public Bottom()此类主要定义了主窗体中底部提示信息位置的内容,其继承了JTextArea类,由一个JTextArea域完成底部提示信息功能。
最终完成的界面如下:2、Constant类Constant类public static final int FRAME_HEIGHT;public static final int FRAME_WIDTH;public static final int MAIN_HEIGHT;public static final int MAIN_WIDTH;public static final int SNAKE_l_SPEED;public static final int SNAKE_m_SPEED;public static final int SNAKE_h_SPEED;public static final int REFRESH_HEIGHT;public static final int SNAKE_SIZE;public static final int FOOD_SIZE;public static final ImageIcon icon1;public static final ImageIcon icon2;public static final ImageIcon icon3;此类是一个常量类,类中定义了许多类程序中使用的较为频繁的,且值较为固定的几个变量。
JAVA程序设计实验报告院系:信息工程系专业:计算机应用技术班级:11计算机01班姓名:Civen任课教师:XXX实验题目:JA V A简单记事本程序设计目录目录 (1)一、引言 (2)1.1 课程设计目的 (2)1.2 题目说明 (2)1.3 开发工具介绍 (2)二、总体设计 ..............................................错误!未定义书签。
2.1系统开发平台...................................错误!未定义书签。
2.2 系统流程图 (4)2.3功能结构图.......................................错误!未定义书签。
2.4数据库设计.......................................错误!未定义书签。
三、详细说明 (4)3.1 系统实施..........................................错误!未定义书签。
四、系统的调试和运行 (9)五、课程设计总结 (9)六、参考文献 (9)附录(源程序代码) (10)一、引言1.1 课程设计目的1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2) 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;3) 培养学生在项目开发中团队合作精神,创新意识及能力。
1.掌握窗口、菜单等高级组件的应用。
2.掌握Java Swing的使用方法。
3.了解GUI应用程序的创建过程与方法。
1.2 题目说明课题:学生成绩管理4.功能要求: 编写一个简单记事本程序,要求包含以下菜单项文件新建、打开、保存、退出编辑剪切、拷贝、粘贴、查找帮助关于5.实现文件和编辑菜单里的功能1.3 开发工具介绍Eclipse是一种可扩展的开放源代码IDE。
java课程设计画图完整源码一、教学目标本章节的教学目标是使学生掌握Java编程语言的基本知识,能够使用Java编写简单的图形用户界面程序。
具体目标如下:1.知识目标:–了解Java编程语言的基本语法和结构。
–掌握面向对象编程的基本概念和方法。
–了解Java图形用户界面编程的基本原理和常用组件。
2.技能目标:–能够使用Java编写简单的控制台程序。
–能够使用Java编写简单的图形用户界面程序。
–能够阅读和理解Java代码。
3.情感态度价值观目标:–培养学生的编程兴趣和自信心,使其能够主动学习编程知识。
–培养学生的问题解决能力和创新精神,使其能够通过编程解决实际问题。
二、教学内容本章节的教学内容主要包括Java编程语言的基本语法和结构、面向对象编程的概念和方法、Java图形用户界面编程的基本原理和常用组件。
具体内容如下:1.Java编程语言的基本语法和结构:–数据类型、变量和常量–运算符和表达式–控制语句(条件语句、循环语句)–函数和数组2.面向对象编程的概念和方法:–类和对象的概念–构造函数和析构函数–封装、继承和多态的概念和应用3.Java图形用户界面编程的基本原理和常用组件:–图形用户界面编程的基本原理和框架–常用组件(按钮、文本框、标签等)的使用和属性设置–事件处理和用户输入三、教学方法本章节的教学方法采用讲授法和实验法相结合的方式。
首先通过讲授法向学生介绍Java编程语言的基本语法和结构、面向对象编程的概念和方法、Java图形用户界面编程的基本原理和常用组件。
然后通过实验法让学生亲自动手编写代码,实践所学的知识,并通过实验过程中遇到的问题引导学生思考和解决问题。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于提供理论知识和编程技巧,多媒体资料用于辅助讲解和演示,实验设备用于学生动手实践。
教师需要根据学生的实际情况和教学要求选择和准备相应的教学资源,以支持教学内容和教学方法的实施,丰富学生的学习体验。
java实验报告代码《Java实验报告代码》在当今信息技术快速发展的时代,Java作为一种广泛应用的编程语言,在各个领域都有着重要的地位。
为了更好地了解和掌握Java编程语言的特性和应用,我们进行了一系列的实验,并在此撰写实验报告,以便总结和分享我们的实验成果。
实验一:基础语法和数据类型在这个实验中,我们学习了Java的基础语法和数据类型,包括变量的声明和赋值、数据类型的转换、算术运算符和逻辑运算符等。
通过编写简单的程序,我们深入理解了Java语言的基本特性,并通过实际操作加深了对其语法和数据类型的理解。
实验二:流程控制和数组在这个实验中,我们学习了Java的流程控制语句,包括if-else语句、for循环、while循环和switch语句等。
同时,我们也学习了Java中数组的定义和使用,包括一维数组和多维数组。
通过编写相关的程序,我们熟悉了Java中流程控制和数组的使用方法,并掌握了相应的编程技巧。
实验三:面向对象编程在这个实验中,我们学习了Java的面向对象编程特性,包括类的定义和对象的创建、封装、继承和多态等。
我们通过编写简单的类和对象,并实现它们之间的交互,深入了解了Java中面向对象编程的基本概念和原则。
实验四:异常处理和文件操作在这个实验中,我们学习了Java中异常处理的机制,包括try-catch语句、throw和throws关键字等。
同时,我们也学习了Java中文件操作的方法,包括文件的读写和关闭等。
通过编写相关的程序,我们掌握了Java中异常处理和文件操作的技巧,提高了程序的健壮性和可靠性。
通过以上一系列的实验,我们深入了解了Java编程语言的基本特性和应用,掌握了相关的编程技巧和方法。
我们相信,通过不断的实践和学习,我们将进一步提高自己的编程能力,为今后的工作和学习打下坚实的基础。
希望我们的实验报告能够对其他学习者和开发者有所帮助,共同进步。
java实验报告-Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念以及常用类库的使用方法。
同时,培养自己的编程思维和解决实际问题的能力。
二、实验环境操作系统:Windows 10开发工具:IntelliJ IDEAJDK 版本:18三、实验内容及步骤(一)实验题目 1:简单的 Java 程序设计1、题目描述编写一个 Java 程序,实现输出“Hello, World!”。
2、实验步骤(1)打开 IntelliJ IDEA 开发工具,创建一个新的 Java 项目。
(2)在项目中创建一个新的 Java 类,命名为“HelloWorld”。
(3)在“HelloWorld”类中编写以下代码:```javapublic class HelloWorld {public static void main(String args) {Systemoutprintln("Hello, World!");}}```(4)运行程序,查看控制台输出结果。
(二)实验题目 2:数据类型与变量1、题目描述定义不同数据类型的变量,并进行赋值和运算操作。
2、实验步骤(1)在同一个 Java 项目中创建一个新的 Java 类,命名为“DataTypeAndVariable”。
(2)在“DataTypeAndVariable”类中编写以下代码:```javapublic class DataTypeAndVariable {public static void main(String args) {int num1 = 10;int num2 = 20;int sum = num1 + num2;double price = 125;String name ="张三";boolean isTrue = true;Systemoutprintln("num1 + num2 ="+ sum);Systemoutprintln("价格:"+ price);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否为真:"+ isTrue);}}```(3)运行程序,查看控制台输出结果。
Java课程设计实验报告实验题目:打字游戏小程序专业: 计算机科学与技术系班级: 1202班成员:Java 课程设计打字游戏小程序一、课程设计目的经过一学期的java学习,能灵活运用书中和实验中所学习的各类知识和技巧,并且能在程序开发中得以很好的运用和发挥;在以后的学习和工作中,可以从中获取很好的经验,并且锻炼自己开发程序和创新的意识;二、课程设计内容1.课程设计简介设计的是一个打字的小游戏,屏幕上不断地有英文字母下落,键盘输入字母,屏幕上与输入的字母形同的就会消失,并计分,如果有没有消去的字母掉到屏幕底,将扣分;2.设计说明因为要进行键盘操作,所以引用了event包,还要注册事件监听;字母是随机产生的,又要用Math.random;注册了线程;还要对窗口定义坐标,防止字母出现在同一位子;并且通过一位数组来给随机出现的字母做坐标定义;主要通过一位数组来控制字母的坐标,并且通过字母坐标的改变来对整个游戏的流程进行控制;3.设计流程图4.实现功能随机产生字母,运用了键盘操作当按对屏幕中出现的字母时,该字母全部消失,并且在分数上相应的增加或减少;5.详细设计源代码1)CharEntity.javapackage DownCharGame;/下落的字母实体类author shenbf/public class CharEntity {//定义字母的x、yprivate int x;private int y;//字母的值private char ch;//字母下落的"速度"private int speed;//颜色private Color color;//字体private Font font;public void drawGraphics g{//设置字体g.setFontfont;//设置画笔颜色g.setColorColor.white;g.fillOvalgetX-9, getY-24, 30, 30;g.setColorcolor;g.drawStringch+"", x, y;}//下落的方法public void down{y=y+speed;}//快速生成getters和setters方法:alt+shift+s---->r---->select all---->ok public void setXint x{this.x=x;}public int getX{return this.x;}public int getY{return y;}public void setYint y{this.y=y;}public char getCh {return ch;}public void setChchar ch {this.ch = ch;}public int getSpeed {return speed;}public void setSpeedint speed {this.speed = speed;}public Color getColor {return color;}public void setColorColor color {this.color = color;}public Font getFont {return font;}public void setFontFont font {this.font = font;}}2)DownCharFrame.javapackage DownCharGame;public class DownCharFrame {public static void mainString args{JFrame frame=new JFrame;frame.setTitle"打字母游戏V1.2";frame.setBounds200,100,640,480;frame.setResizablefalse;frame.setDefaultCloseOperationJFrame.EXIT_ON_CLOSE;DownCharPanel panel=new DownCharPanel;frame.addpanel;frame.addKeyListenerpanel;panel.addKeyListenerpanel;panel.startDown;frame.setVisibletrue;}}3DownCharPanel.javapackage DownCharGame;public class DownCharPanel extends JPanel implements KeyListener{C harEntity chs=new CharEntity10;//消除字母4,定义统计的变量//正确率i nt accuracy = 0;//正确数i nt rightNum = 0;//打错的个数i nt errorNum = 0;//遗漏的个数i nt loseNum = 0;//初始总分i nt sum = 1000;p ublic DownCharPanel{//为数组中的每一个子科目实例化forint i=0;i<chs.length;i++{CharEntity ce = new CharEntity;int fontSize=intMath.random10+20;ce.setFontnew Font"宋体",Font.BOLD,fontSize;ce.setXintMath.random580+30;ce.setY0;ce.setSpeedintMath.random3+1;ce.setColornew ColorintMath.random256, //0,255intMath.random256,intMath.random256;ce.setChchar65+intMath.random26;chsi=ce;}}p ublic void paintGraphics g{super.paintg;//设置背景图Image bgimg;try {bgimg = ImageIO.readnew File"Picture/238.jpg";g.drawImagebgimg, 0, 0, null;} catch IOException e {e.printStackTrace;}//消除字母5,绘制统计数字g.setFontnew Font"宋体",Font.BOLD,20;g.setColorColor.yellow;g.drawString"正确数:"+rightNum, 10, 40;g.setColorColor.red;g.drawString"错误数:"+errorNum, 10, 60;g.setColorColor.green;g.drawString"遗漏数:"+loseNum, 10, 80;//绘制下落的字母forint i=0;i<chs.length;i++{chsi.drawg;}//显示成绩g.setColorColor.white;g.drawString"您当前的成绩是:"+sum, 165, 23;//Game OveriferrorNum>50||loseNum>100{g.setColorColor.red;g.setFontnew Font"宋体",Font.BOLD,100;g.drawString"Game Over", 50, 250;}}p ublic void startDown{new Thread{public void run{whileloseNum>100||errorNum>50{try {Thread.sleep40;} catch InterruptedException e {e.printStackTrace;}forint i=0;i<chs.length;i++{ifchsi.getY>=480{//消除字母6,遗漏数++loseNum++;sum -= 100;chsi.setXintMath.random580+30;chsi.setY0;chsi.setColornew ColorintMath.random256,intMath.random256,intMath.random256;chsi.setChchar65+intMath.random26;}chsi.down;}repaint;//}}}.start;}p ublic void keyTypedKeyEvent e {}p ublic void keyPressedKeyEvent e {}p ublic void keyReleasedKeyEvent e {//消除字母7,实现具体的方法//7.1获取到键盘按下的字母char key = e.getKeyChar;//和当前按下字母key相同字母y值最大对应的下标int maxYindex = -1;//7.2使用按下的字母和chs数组中所有的字母去比较forint i=0; i<chs.length; i++{ifkey==chsi.getCh||key==chsi.getCh+32{//按下的字母key和下标对应的字母“相同”ifmaxYindex==-1{//说明第一次找到maxYindex = i;}else{//说明不是第一次找到ifchsmaxYindex.getY<chsi.getY{maxYindex = i;}}}}//判断正确还是错误ifmaxYindex==-1{//一个相同的字母都没有找到errorNum++;sum -= 100;}else{//至少找到一个相同的字母rightNum++;sum += 10;chsmaxYindex.setXintMath.random580+30;chsmaxYindex.setY0;chsmaxYindex.setChchar65+intMath.random26;}}}三、运行结果截图:四、实验总结:此程序运用了一维数组,且随机性;并且把键盘事件与电脑随机的功能相联系;有它的可取之处,值得我们学习;但也有不足之处,该程序不能自动结束;这点还有待完善;该程序比较基础;可以让自己先打好深刻了解理论基础;通过这次的课程设计,给自己增加了很多有用的经验,希望在以后的基础上可以接触些更有深度和技巧型的程序;让自己能更好的运用java的功能;。
Java程序设计报告年级专业信息管理与信息系统学号学生姓名指导教师二○一四年六月一、所用到的表的结构及数据类型customer顾客表操作人员表列名说明数据类型约束用户名用户登录名nchar(10) 主码密码登录密码nchar(3) 非空职位担任职务nchar(10)1、登录功能打开Java文件Login.java运行后输入错误的用户名后出现:输入用户名Lucy 密码:123点击登录进入操作界面:2、添加功能下拉顾客信息系统菜单,选择添加客户信息添加信息前数据库客户表的内容:没有编号0000013添加客户0000013:数据库内表变为:注:0000015号是截图之前添加进去的3、查询功能下拉客户信息系统菜单,选择查询客户信息,输入客户编码0000013后点击确定查询此顾客:4、修改功能下拉菜单客户信息系统,选择修改客户信息,重新输入相应的正确信息,将错误的覆盖掉,此处将0000013张蔷年龄改为32:数据库表内内容:5、删除功能下拉菜单客户信息系统,选择删除客户信息,输入客户编码0000013点击确认:数据库信息变为:0000013号信息已经删除6、退出系统功能下拉菜单客户信息管理选择退出:然后就退出了界面。
三、程序源代码package LoginSystem;import java.sql.*;import java.io.*;import javax.swing.*;import java.awt.*;//登录界面public class Login extends JFrame{private TextField nameField = new TextField(10);private JPasswordField passwordField = new JPasswordField(15); private JButton loginButton = new JButton("登录");private JButton exitButton = new JButton("退出");private JLabel titleLabel = new JLabel("梦之路时尚天堂商品管理系统"); private JLabel userLabel = new JLabel("用户名");private JLabel pwdLabel = new JLabel("密码");private String user = null;private char[] pwd = null;public static void main(String args[]){Login frame = new Login();frame.setTitle("系统登录");frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);frame.setResizable(false);frame.setLocation(600,300);frame.pack();frame.setVisible(true);}public Login(){JPanel titlePanels = new JPanel();titlePanels.add(titleLabel);titleLabel.setForeground(Color.red);JPanel labelPanels = new JPanel();labelPanels.setLayout(new GridLayout(2,1,10,40));labelPanels.add(userLabel);labelPanels.add(pwdLabel);JPanel textFieldPanels = new JPanel();textFieldPanels.setLayout(new GridLayout(2,1,10,40));textFieldPanels.add(nameField);textFieldPanels.add(passwordField);JPanel buttonPanels = new JPanel();buttonPanels.add(loginButton);buttonPanels.add(exitButton);JPanel picturePanels = new JPanel();JLabel lb = new JLabel(new ImageIcon("A.png"));picturePanels.add(lb);JPanel dialogPanels = new JPanel();dialogPanels.setLayout(new BorderLayout());dialogPanels.add(titlePanels,BorderLayout.NORTH);dialogPanels.add(labelPanels,BorderLayout.WEST);dialogPanels.add(textFieldPanels,BorderLayout.CENTER);dialogPanels.add(buttonPanels,BorderLayout.SOUTH);dialogPanels.add(picturePanels,BorderLayout.EAST);add(dialogPanels);exitButton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){System.exit(0);}});loginButton.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent event){Connection con=Login.getConnection();try{Statement state=con.createStatement();user = nameField.getText();pwd = passwordField.getPassword();String pwds = new String(pwd);String sql = "select 密码from 操作人员where 用户名='"+user+"'";ResultSet rs = state.executeQuery(sql);rs.next();if(pwds.equals("")||user.equals("")){JOptionPane.showMessageDialog(null,"用户名或密码不能为空!","错误",JOptionPane.ERROR_MESSAGE);}else if(!(rs.getString("密码").equals(pwds))){JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);}else{new Goods();dispose();}Login.closeConn(con);Login.closeState(state);Login.closeRs(rs);}catch(SQLException e){JOptionPane.showMessageDialog(null,"用户名或密码错误!","错误",JOptionPane.ERROR_MESSAGE);}}});}public static void closeConn(Connection conn){try {if(conn != null){conn.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeState(Statement state) {try {if(state != null){state.close();}} catch (SQLException e) {e.printStackTrace();}}public static void closeRs(ResultSet rs) {try {if(rs != null){rs.close();}} catch (SQLException e) {e.printStackTrace();}}//连接数据库public static Connection getConnection(){String userName = "sa";String userPwd = "123";Connection conn=null;try {Class.forName(driverName);conn = DriverManager.getConnection(dbURL, userName, userPwd);}catch (Exception e){e.printStackTrace();}return conn;}}//菜单界面class Goods{private static final long serialVersionUID=1L;static final int WIDTH=760;static final int HEIGHT=510;JPopupMenu pop;JMenuItem item2;JFrame f;JMenuItem item1;JPanel p;JTabbedPane tp;public Goods(){f=new JFrame("梦之路时尚天堂商品管理系统");JMenuBar menubar1=new JMenuBar();tp=new JTabbedPane();p=new JPanel();f.setJMenuBar(menubar1);f.add(p);p.add(tp);JMenu menu1=new JMenu("顾客信息系统");menu1.setMnemonic('Z');menubar1.add(menu1);JMenuItem item1=new JMenuItem("添加客户信息");JMenuItem item2=new JMenuItem("修改客户信息");JMenuItem item3=new JMenuItem("查询客户信息");JMenuItem item4=new JMenuItem("删除客户信息");JMenuItem item5=new JMenuItem("退出");menu1.add(item1);menu1.add(item2);menu1.add(item3);menu1.add(item4);menu1.add(item5);f.add(p);JLabel lb = new JLabel(new ImageIcon("SC.jpg"));p.add(lb);f.setVisible(true);f.setSize(WIDTH,HEIGHT);Toolkit kit=Toolkit.getDefaultToolkit();Dimension screenSize=kit.getScreenSize();int width=screenSize.width;int height=screenSize.height;int x=(width-WIDTH)/2;int y=(height-HEIGHT)/2;f.setLocation(x,y);item1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Add con1=new Add();tp.addTab("添加客户信息",con1);tp.setEnabledAt(0,true);tp.setTitleAt(0,"添加客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Update con2=new Update();tp.addTab("修改客户信息",con2);tp.setEnabledAt(0,true);tp.setTitleAt(0,"修改客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item3.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Select con3=new Select();tp.addTab("查询客户信息",con3);tp.setEnabledAt(0,true);tp.setTitleAt(0,"查询客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item4.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){Delect con4=new Delect();tp.addTab("删除客户信息",con4);tp.setEnabledAt(0,true);tp.setTitleAt(0,"删除客户信息");tp.setPreferredSize(new Dimension(500,200));tp.setTabPlacement(JTabbedPane.TOP);tp.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);}});item5.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){System.exit(0);}});menu1.addMenuListener(new MenuListener(){public void menuSelected(MenuEvent event){item2.setEnabled(!item1.isSelected());}public void menuDeselected(MenuEvent event){}public void menuCanceled(MenuEvent event){}});}}//信息添加class Add extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Add(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定");JButton clear=new JButton("清空");JButton c=new JButton("关闭");JLabel name=new JLabel("姓名");JLabel phone=new JLabel("电话号码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("客户编码");JLabel years=new JLabel("年龄");Font font=new Font("Serief", Font.BOLD, 22);final JTextField nameinput=new JTextField(10);final JTextField phoneinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);JLabel title=new JLabel("顾客基本信息");title.setFont(font);title.setForeground(Color.blue);JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(title,constraints,0,0,4,1);add(num,constraints,0,4,1,1);add(name,constraints,0,1,1,1);add(phone,constraints,0,5,1,1);add(sex,constraints,0,3,1,1);add(years,constraints,0,2,1,1);add(nameinput,constraints,1,1,1,1);add(phoneinput,constraints,1,5,1,1);add(sexinput,constraints,1,3,1,1);add(numinput,constraints,1,4,1,1);add(yearsinput,constraints,1,2,1,1);add(ok,constraints,3,1,1,1);add(clear,constraints,3,3,1,1);add(c,constraints,3,5,1,1);c.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){removeAll();}});ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String nametext=nameinput.getText();String phonetext=phoneinput.getText();String sextext=sexinput.getText();String numtext=numinput.getText();String yearstext=yearsinput.getText();try{Connection con= DriverManager.getConnection(url,user,password);prestmt=con.prepareStatement("INSERT INTO customer顾客VALUES(?,?,?,?,?)" );prestmt.setString(5,phonetext);prestmt.setString(2,nametext);prestmt.setString(4,sextext);prestmt.setString(1,numtext);prestmt.setString(3,yearstext);prestmt.executeUpdate();con.close();JOptionPane.showMessageDialog(null,"信息添加成功","OK",RMATION_MESSAGE);}catch(SQLException ex) {}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){nameinput.setText("");phoneinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}//信息修改class Update extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Update(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定");JButton clear=new JButton("清空");JButton c=new JButton("关闭");JLabel name=new JLabel("姓名");JLabel phone=new JLabel("电话号码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("客户编码");JLabel years=new JLabel("年龄");final JTextField nameinput=new JTextField(10);final JTextField phoneinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);JLabel title=new JLabel("修改基本信息");Font font=new Font("Serief", Font.BOLD, 22);title.setFont(font);title.setForeground(Color.blue);//设置标签前景色JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(title,constraints,0,0,4,1);add(name,constraints,0,1,1,1);add(phone,constraints,0,5,1,1);add(sex,constraints,0,3,1,1);add(num,constraints,0,4,1,1);add(nameinput,constraints,1,1,1,1);add(phoneinput,constraints,1,5,1,1);add(sexinput,constraints,1,3,1,1);add(numinput,constraints,1,4,1,1);add(years,constraints,0,2,1,1);add(yearsinput,constraints,1,2,1,1);add(ok,constraints,3,1,1,1);add(clear,constraints,3,3,1,1);add(c,constraints,3,5,1,1);c.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){removeAll();}});ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event) {try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String nametext=nameinput.getText();String phonetext=phoneinput.getText();String sextext=sexinput.getText();String numtext=numinput.getText();String yearstext=yearsinput.getText();try{Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("update customer顾客set cname=?,csex=?,ctelephone=?,cage=? WHERE cno=?");prestmt.setString(1,nametext);prestmt.setString(2,sextext);prestmt.setString(5,numtext);prestmt.setString(4,yearstext);prestmt.setString(3,phonetext);prestmt.executeUpdate();prestmt.close();conn.close();JOptionPane.showMessageDialog(null,"信息修改成功","OK",RMATION_MESSAGE);}catch(SQLException ex) {ex.printStackTrace();}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){nameinput.setText("");phoneinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}//信息删除class Delect extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Delect(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定删除此顾客!");JButton clear=new JButton("清空");JLabel c=new JLabel("客户编码");Font font=new Font("Serief", Font.BOLD, 22);c.setFont(font);c.setForeground(Color.blue);//设置标签前景色final JTextField d=new JTextField(16);JLabel title=new JLabel("识别信息");JButton additionbutton=new JButton("添加");GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=6;add(c,constraints,0,1,1,1);add(d,constraints,1,1,1,1);add(ok,constraints,0,2,1,1);add(clear,constraints,1,2,1,1);ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;try{ Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("DELETE FROM customer顾客WHERE cno=?");prestmt.setString(1,d.getText());prestmt.executeUpdate();prestmt.close();conn.close();JOptionPane.showMessageDialog(null,"该顾客记录已删除","OK",RMATION_MESSAGE);}catch(SQLException ex) {}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){d.setText("");}});}}//顾客信息查询class Select extends JPanel{public void add(Component c,GridBagConstraints constraints,int x,int y,int w,int h){constraints.gridx=x;constraints.gridy=y;constraints.gridwidth=w;constraints.gridheight=h;add(c,constraints);}Select(){GridBagLayout lay=new GridBagLayout();setLayout(lay);JButton ok=new JButton("确定查询此顾客");JButton clear=new JButton("清空");JLabel c=new JLabel("客户编码");final JTextField d=new JTextField(16);JLabel title=new JLabel("识别信息");JButton additionbutton=new JButton("添加");JLabel name=new JLabel("姓名");JLabel id=new JLabel("客户编码");JLabel sex=new JLabel("性别");JLabel num=new JLabel("电话号码");JLabel years=new JLabel("年龄");final JTextField nameinput=new JTextField(10);final JTextField idinput=new JTextField(10);final JTextField sexinput=new JTextField(10);final JTextField numinput=new JTextField(10);final JTextField yearsinput=new JTextField(10);GridBagConstraints constraints=new GridBagConstraints();constraints.fill=GridBagConstraints.NONE;constraints.weightx=4;constraints.weighty=7;add(c,constraints,0,1,1,1);add(d,constraints,1,1,1,1);add(ok,constraints,0,2,1,1);add(clear,constraints,1,2,1,1);add(id,constraints,0,3,1,1);add(name,constraints,0,4,1,1);add(sex,constraints,0,5,1,1);add(num,constraints,0,7,1,1);add(years,constraints,0,6,1,1);add(idinput,constraints,1,3,1,1);add(nameinput,constraints,1,4,1,1);add(sexinput,constraints,1,5,1,1);add(numinput,constraints,1,7,1,1);add(yearsinput,constraints,1,6,1,1);ok.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){{try{}catch(ClassNotFoundException ex) {}String user="sa";String password="123";Statement stmt;ResultSet rs;PreparedStatement prestmt;String dtext=d.getText();try{Connection conn= DriverManager.getConnection(url,user,password);prestmt=conn.prepareStatement("Selectcno,cname,csex,ctelephone,cage FROM customer顾客WHERE cno=?");prestmt.setString(1,d.getText());rs=prestmt.executeQuery();if(rs.next()){idinput.setText(rs.getString(1));nameinput.setText(rs.getString(2));sexinput.setText(rs.getString(3));numinput.setText(rs.getString(4));yearsinput.setText(rs.getString(5));}else{JOptionPane.showMessageDialog(null,"未查到该顾客记录","ERROR",RMATION_MESSAGE);}conn.close();}catch(SQLException ex) {}}}});clear.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent Event){d.setText("");idinput.setText("");nameinput.setText("");sexinput.setText("");numinput.setText("");yearsinput.setText("");}});}}。
java课程设计设计实验报告一、教学目标本课程旨在通过Java编程语言的学习,让学生掌握Java编程的基本语法、流程控制、数据结构、面向对象编程等基本知识,培养学生运用Java语言解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解Java编程语言的基本语法和编程规范;(2)掌握Java中的基本数据类型、运算符、表达式;(3)了解Java的流程控制语句,如if、for、while等;(4)熟悉Java数组、字符串、集合等数据结构的使用;(5)理解面向对象编程的基本概念,如类、对象、封装、继承、多态等;(6)掌握Java异常处理机制和文件操作。
2.技能目标:(1)能够使用Java编写简单的程序,实现基本的功能;(2)能够运用面向对象编程思想,设计并实现具有一定复杂度的程序;(3)具备阅读Java代码的能力,能够理解并修改他人编写的程序;(4)掌握使用Java开发工具,如Eclipse、IntelliJ IDEA等;(5)了解Java程序的调试和性能优化方法。
3.情感态度价值观目标:(1)培养学生对编程语言的兴趣,激发学生主动学习的动力;(2)培养学生团队合作精神,提高学生沟通协作能力;(3)培养学生面对挑战、解决问题的信心和勇气;(4)培养学生具有良好的代码规范和编程习惯。
二、教学内容本课程的教学内容主要包括Java编程语言的基本语法、流程控制、数据结构、面向对象编程等。
具体安排如下:1.第一章:Java入门,介绍Java编程语言的基本概念、环境搭建和基本语法;2.第二章:基本数据类型和运算符,学习Java中的整数、浮点数、字符、布尔等数据类型以及运算符;3.第三章:流程控制语句,学习if、for、while等流程控制语句的使用;4.第四章:数组和字符串,学习数组的声明、初始化和使用,字符串的创建、操作和转换;5.第五章:集合框架,学习List、Set、Map等集合接口及其实现类的使用;6.第六章:面向对象编程,学习类、对象、封装、继承、多态等概念及应用;7.第七章:异常处理和文件操作,学习Java异常处理机制和文件读写方法;8.第八章:Java编程实践,通过案例分析法和实验法,巩固所学知识,提高实际编程能力。
课程设计一、实验目的1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。
2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。
二、实验要求1.问题描述准确、规范。
2.程序结构合理,调试数据准确、有代表性.。
3.界面布局整齐,人机交互方便。
4.输出结果正确。
5.正确撰写实验报告。
三、实验内容编写一个GUI程序实现日历的功能。
一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。
可以实现显示时钟,时钟能进行整点报时。
可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。
四、实验步骤1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。
2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。
3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。
4. 根据实验结果,写出合肥工业大学实验报告。
实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。
5.详细的上机实验步骤见任务分工及程序设计进度表。
五、实验结果经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。
日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。
另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。
整体程序运行流畅、功能齐全、符合操作习惯。
下面是程序运行效果截图:日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):备忘录主界面(实现备忘录的添加,及当前日历的显示):备忘录主界面(实现备忘录的显示,及对当前备忘录的修改删除等):时钟主界面(显示当前时间,实现报整点报时功能):六、实验总结两周的课程设计结束了,在这其中历尽酸甜苦辣咸各种滋味,不过收获颇丰。
从学习C语言、数据库等等计算机编程类课程开始,自己始终有种感觉,那就是太理论化了、缺少实践。
而这次的Java程序设计可以说与以往大不相同,先是在课堂上老师讲述了有关的基础理论、基本语法知识,而后再加上这两周的课程设计,可以说是真正能够体会到程序编程的乐趣,也第一次发现自己原来对程序设计是如此的感兴趣。
尤其是由于课程时间较紧,课上时间老师只是简单给我们讲述了一下Java Swing的基础知识,并没有去深入,而在此次课程设计中大量用到的监听事件的有关知识需要自己去查标准文档,去网上找相关系料,这无疑对自己是一个挑战。
但是两周下来,我做到了,我独立完成了对备忘录程序的编写,累积下来这部分共涉及到包括Action Listener,Mouse Listener,Menu Listener,Document Listener 等各种各类监听18个监听,分为6个类,累计完成程序千余行。
而给我印象最深刻的便监听了,可以说是整个备忘录的大部分代码都是与监听相关,这也是让我我学会了对程序监听的运用,当然只是学会远远谈不上精通。
我编写的类有Test、MainWin、MyMenuListener1、PoliceListen、PoliceListen2、MyWindowListener。
其中Test类主要是用来定义备忘录主窗口的各种组件以及在相关组件上添加监听以实现备忘录添加、修改、删除等功能。
MainWin类主要是用来创建Test对象,用以显示窗口的。
MyMenuListener1主要是给今日待办菜单定义菜单监听,从而使其选中后能显示今日待办的备忘记事,而当未被选中时相关的文字、按钮又都会隐藏掉。
PoliceListen主要是用来定义日历日期按钮事件的监听,用以监听当点击相关日期时会弹出相应日期的备忘记事的窗口来。
PoliceListen2主要是定义备忘录窗口中添加按钮的时间监听,使其被点击后能够显示添加备忘记事功能的相关功能按钮和相关文本区。
MyWindowListener主要是定义备忘录窗口的窗口监听,和PoliceListen共同使用来对窗口的激活状态进行监听,以保证窗口能够按照预定计划弹出和关闭。
在实验过程中遇到了大大小小各种困难,通过自己查资料、询问老师、同学讨论基本解决了这些困难。
下面我就说一说在这次课程设计中遇到的问题有哪些,以及自己的解决办法和从中得出的经验心得。
首先在对备忘录窗口的布局问题上,一开始采用流式布局,按钮少的时候效果还算说得过去,但是当按钮一多整个布局就不那么好控制了了。
为了实现预期的效果,最终采用了null布局,在该种布局下,需要为每个组件指定坐标,否则组件将不会显示。
首先我的想法是,根据窗口的高度和宽度来对按钮进行布局,我相信这种方法肯定是正规程序设计中在布局是采用的方法,但是摆在眼前的问题是时间比较紧,没有大量的时间来进行这种比较精确地布局。
因此,最终是通过不断地尝试来给组件赋予坐标值,最终效果是肉眼感觉起来是不错的,如果时间充足当然可以做的更精确一点。
第二个问题也是一个比较简单的问题,因为刚开始不熟悉监听,因此遇到了弹出一个窗口后,再点击这个按钮本来按照效果不应该在弹出窗口的,但是依旧能弹出。
为了解决这个问题,自己想了一个办法那就是标记,当有窗口弹出时,将标记值变成1,而当标记值为1的时候,点击此按钮将不会触发监听事件,只有当标记值为0的时候该监听事件才能起到作用,然后当此窗口的状态为关闭时,又会将该标记值变成0,这样的效果主要是通过PoliceListen和MyWindowListen两个类来完成的,其中PoliceListen是鼠标监听,而MyWindowListen则是窗口监听。
这是这一个监听最终在自己的努力下成功了,才使自己对监听事件产生了浓厚的兴趣,以至于后来加了那么多监听虽然困难很多也没有退缩。
自己也从中体会到平时的程序之所以能够相应操作的原理,那就是对命令、对动作进行监听。
而且,有时候看起来非常简单的功能实现起来也不是很容易,就像本例中的所说的那样。
在完成了第一个监听以后,又在Test里面加入了N多个监听,这些监听大部分是ActionListener监听,也即最常有的一类监听。
为了避免类过多,我大多采用了匿名类的方式内嵌于Test类中。
这些监听的设计中,大部分没有遇到问题,有少数是因为自己的逻辑顺序不对而没有达到预期的效果,最后都能调整过来。
遇到的问题是读取选中日期,以及在那三个下拉框中怎么根据年份和月份来添加后面的日期(如此叙述可能不太明了,老师可以对照程序截图中的备忘录主窗口中的那个日期下拉框来看),其实最后解决了就会发现,其实这些也并不难,在日期处理上只要监听年份和月份。
年份判断该年是否为闰年,月份判断是那个月,最终可以确定该月应该添加多少item到下拉框中。
而读取选中日期则是将日历主窗口文本框中的年份、下拉框中的月份以及点击按钮上的数字读取出来将他们分别设置成下拉框中的默认年月日则可。
另外为了使得后面的备忘记事文件名称长度一致,在进行加入的时候会先比对一下该数字是否为两位数,如果不是两位数则将前面加0后再导入。
下一个问题则是在监听文本框的问题上,因为课本上对DocumentListener也是简单介绍了下,为了实现预想的效果,即在文本框有文字的时候下面的确定键可用,没有文字的时候下面的确定键不可用而只有取消键可用,通过查阅标准文档和询问老师,最终弄清楚了每个抽象方法的含义,顺利的实现了该功能。
最后,在如何保存每日记事的问题上,解决这一问题可以有两种思路,一种是搭建一个数据库,两一种是通过保存文件的形式。
毫无疑问,通过写入数据库的方式更有难度、更有挑战性,但是考虑到在备忘录方面一直都是我一个人在做,精力方面可能不够,最后我采用了写文件的形式来保存,每日的记事。
后来发现有的组使用数据库实现的,最后他们组得分B+,我们得分B,其实有时候输在了不敢尝试上、或者说分工更明确一点更好(毕竟有些东西一个人做了,别人或许有帮忙的心也差不上手了)。
当然虽然写文件的形式比较简单一点,这中间也要做好相关逻辑的设计。
在写文件的时候采用选中日期为文件名的方式进行保存,在读文件时候则读取以选中日期文件命名的文件,将其显示在文本区中。
另外在修改了当天记事后,炫耀对文件以同样的方式进行保存。
最后该程序还有不足,比如说未能实现相关的时间提醒的功能、有些细节处理的不够使得部分地方缺少人性化。
对于代码这部分,自己第一次编写者这些代码有些地方还需要锻炼,比如说对类的划分、对相关语句进行打包成一个函数来重复调用提高代码的重用性等等,因为有些语句(像设置组件可见不可见的语句)在大量的地方都用到了,但是我写的时候只是把他们复制下来,这部分代码应该做成一个函数,或者抽象成类效果能更好点。
验收结束的那一刻所有的压力、所有的因遇到而尝到的苦涩最终都化成满满的喜悦,或者在某种程度上更是一种成就感。
七、附件1.程序流程图、类结构图(1)程序流程图该程序可以分为三个部分,即日历主程序和时钟、备忘录两个程序。
其中时钟程序是通过日历主界面上的按钮触发事件来启动并创建相应的窗口,备忘录程序是通过日历上按钮事件触发的。
日历主窗口可以实现分页显示、上下翻动、为每月选定背景等功能,时钟窗口可以实现指针和数字时钟显示、整点报时功能,备忘录程序可以通过创建、修改、删除已选定日期为文件名的文件来实现添加、修改、删除多条记事的功能。
整个程序流程如下图(由于整个流程图较大,为了使其在听一个版面中显现出来,因此有些字体可能偏小,老师如若看不清,可以用Visio打开放大查看)所示:(2)类图日历程序类图:时钟主程序主要包含四个类,其中OurCalender、MainWin、ACalender 三个类是都是JFrame的子类。
OurCalender里包含程序的入口,Mainwin主要用来创建窗口对象,ACalender主要用来创建日历对象,NongLi主要用来进行农历的显示。
日历程序类图如下所示:。
时钟类图:时钟类主要包含DrawClock和Clock类,其中DrawClock类主要是用来创建时钟对象,而Clock类主要是用来创建窗口对象和时钟监听来进行整点报时。