Java程序的设计实验报告.docx
Java程序设计实验报告(可打印修改)
Java程序设计实验报告班级:10060641X 学号:34 姓名:李树明实验题目:猜拳小游戏实验要求:用java编写一个人机对战的猜拳小游戏。
人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。
有简单的操作界面。
实验内容:1、问题分析过程:游戏名称:悟空猜拳游戏类型:益智类平台:java编程语言:java操作:鼠标游戏规则:游戏为单人模式,玩家控制己方出拳,对方为电脑随机出拳,有3种胜出模式(三局两胜制、五局三胜制和七局四胜制),双方只要先胜出2、3、4局游戏结束程序框架设计:Menu类,Game类,Npc类,Player类游戏界面设计:登录界面:游戏主界面胜利界面2、主要实现代码:Menu类:package Game_guessFist;import java.awt.Color;import java.awt.FlowLayout;import java.awt.Font;import bel;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;public class Menu extends JFrame implements ActionListener{JMenuBar menuBar;JMenu setting;JMenuItem item1,item2,item3;JButton start,about,exit;Label l;int model =2;public Menu(){//窗口super("悟空猜拳");//设置窗口宽高以及位置this.setSize(500,400);this.setLocationRelativeTo(null);//不可修改this.setResizable(false);//设置可见this.setVisible(true);//创建布局FlowLayout f = new FlowLayout();f.setAlignment(FlowLayout.CENTER);f.setHgap(500);f.setVgap(40);//设置布局this.setLayout(f);//菜单//实例化控件menuBar = new JMenuBar();setting = new JMenu("设置");item1 = new JMenuItem("三局两胜制");item2 = new JMenuItem("五局三胜制");item3 = new JMenuItem("七局四胜制");//添加监听器item1.addActionListener(this);item2.addActionListener(this);item3.addActionListener(this);//向窗口添加元素setting.add(item1);setting.add(item2);setting.add(item3);menuBar.add(setting);//按钮start = new JButton("开始游戏");about = new JButton("关于游戏");exit = new JButton("退出游戏");start.addActionListener(this);about.addActionListener(this);exit.addActionListener(this);l = new Label(" 悟空猜拳" +"");Font ff = new Font(null,1, 20);l.setFont(ff);l.setBackground(Color.RED);this.add(l);this.add(start);this.add(about);this.add(exit);this.setJMenuBar(menuBar);this.validate();}public static void main(String[] args){//程序入口new Menu();}// 按钮监听器@Overridepublic void actionPerformed(ActionEvent e){//菜单按钮判断if(e.getSource()==item1){model = 2;}else if(e.getSource()==item2){model = 3;}else if(e.getSource()==item3){model = 4;}//游戏流程按钮判断if(e.getSource()==start){this.dispose();new Game(model);}else if(e.getSource()==about){JOptionPane.showMessageDialog(null, "您好,本游戏有网络工程专业李树明制作", "关于", RMATION_MESSAGE);}else if(e.getSource()==exit){System.exit(0);this.dispose();}}}Game类:package Game_guessFist;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;public class Game extends JFrame implements ActionListener { private JLabel npc_score, player_score, npc_sign, player_sign, label;private JButton btnReturn, btn_scissore, btn_stone, btn_cloth;private JPanel panel1, panel2, panel3, panel4, panel5;private Npc npc;private Player player;int model = 2;Game(int model) {// 窗口super("悟空猜拳");this.setSize(500,400);this.setLocationRelativeTo(null);this.setResizable(false);this.setVisible(true);FlowLayout ff = new FlowLayout(FlowLayout.CENTER, 400, 10);FlowLayout f1 = new FlowLayout(FlowLayout.CENTER, 250, 10);ff.setAlignment(FlowLayout.CENTER);ff.setHgap(500);ff.setVgap(30);this.setLayout(ff);npc = new Npc();player = new Player();setVisible(true);npc_sign = new JLabel("出拳");player_sign = new JLabel("出拳");npc_score = new JLabel("悟空胜:0"); player_score = new JLabel("八戒胜:0");btn_cloth = new JButton("布");btn_scissore = new JButton("剪刀");btn_stone = new JButton("石头"); btnReturn = new JButton("返回");btn_cloth.addActionListener(this);btn_scissore.addActionListener(this); btn_stone.addActionListener(this); btnReturn.addActionListener(this);"); label = new JLabel(" panel1 = new JPanel();panel2 = new JPanel();panel3 = new JPanel();panel4 = new JPanel();panel5 = new JPanel();panel1.setLayout(f1);panel4.setLayout(f1);panel1.add(npc_score);panel1.add(btnReturn);panel2.add(npc_sign);panel3.add(player_sign);panel4.add(player_score);panel4.add(label);panel5.add(btn_cloth);panel5.add(btn_scissore);panel5.add(btn_stone);add(panel1);add(panel2);add(panel3);add(panel4);add(panel5);this.model = model;}// 按钮监听@Overridepublic void actionPerformed(ActionEvent e) {int id = 0;if (e.getSource() == btnReturn) {this.dispose();new Menu();} else {//设置两个字符串对象,接受npc以及player的出拳String player_quan = null;String npc_quan = npc.shouFist();//按照玩家点击的按钮,判断用户出拳if (e.getSource() == btn_scissore) {player_quan = player.shouFist(0);} else if (e.getSource() == btn_stone) {player_quan = player.shouFist(1);} else if (e.getSource() == btn_cloth) {player_quan = player.shouFist(2);}//设置出拳到界面npc_sign.setText(npc_quan);player_sign.setText(player_quan);//判断胜负id = guess(npc_quan, player_quan);}//判断何时结束游戏switch (id) {case 0://平局不做处理break;case 1://玩家胜利player.score++;player_score.setText("八戒胜:" + player.score);if (player.score >= model) {JOptionPane.showMessageDialog(null, "八戒获得了胜利", "提示", RMATION_MESSAGE);init();}break;case 2://npc胜利npc.score++;npc_score.setText("悟空胜:" + npc.score);if (npc.score >= model) {JOptionPane.showMessageDialog(null, "悟空取得了胜利", "提示", RMATION_MESSAGE);init();}break;}}// 比较结果方法public int guess(String npc, String player){int id = 0;if((npc.equals("剪刀")&&player.equals("布"))||(npc.equals("石头")&&player.equals("剪刀"))||(npc.equals("布")&&player.equals("石头"))){id = 2;}else if(npc.equals(player)){id = 0;}else{id = 1;}return id;}public void init()// 初始化数据方法{npc.score = 0;player.score = 0;npc_score.setText("悟空胜:0");player_score.setText("八戒胜:0");npc_sign.setText("出拳");player_sign.setText("出拳");}}Npc类:package Game_guessFist;import java.util.Random;class Npc{private Random r;Npc(){r = new Random();}public int score;public int score1;public String shouFist(){int id = Math.abs(r.nextInt())%3;String fist = null;switch (id){case 0:fist = "剪刀";break;case 1:fist = "石头";break;case 2:fist = "布";break;}return fist;}}Player类:package Game_guessFist;public class Player{public int score;public String shouFist(int id){String fist = null;switch (id){case 0:fist = "剪刀";break;case 1:fist = "石头";break;case 2:fist = "布";break;}return fist;}}3、实验心得体会:通过这次试验,发现了学习的不足。
java类的设计实验报告
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());}}```五、实验结果与分析通过运行测试类,成功输出了学生选课的相关信息,包括学生的姓名、年龄、学号,课程的名称、编号、授课教师以及选课时间。
实验报告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编写并运行了一个程序。
java语言程序设计实验报告
java语言程序设计实验报告篇一:Java实验八报告《Java语言程序设计》实验报告学生姓名:郭倩班级:信息112学号:201152275208实验地点:经管实验中心证券实验室指导教师:赵利平实验日期:实验环境:Windows 2000+JDK1.61. 实验目的(1)理解子类派生的概念(2)学习创建子类对象(3)掌握方法覆盖的使用2.实验内容(1)设计三个类:完成实验教材P52页程序清单4-2;(2)通过编制一个程序来加深对嵌套类、内部类和局部类的理解:完成实验教材P56页程序清单4-3;2. 实验过程报告撰写具体要求:上述实验内容要求写出源代码及运行结果。
实验内容(1)://Polymorphism.abstract class Student{final static int CourseNo=3;String name;String type;int[] courses;String courseGrade;public Student(String name){=name;courses=new int[CourseNo];courseGrade=null;}public abstract void calculateGrade();public String getName(){return name;}public String getType(){return type;}public String getCourseGrade(){return courseGrade;}public int getCourseScore(int courseNumber){return courses[courseNumber];}public void setName(String name){=name;}public void setType(String type){this.type=type;}public void setCourseScore(int courseNumber,int courseScore){this.courses[courseNumber]=courseScore;}}class Undergraduate extends Student{public Undergraduate(String name){super(name);type="本科生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=80&&average<100) coursegrade="优秀" else="" average="">=70&&average<80) coursegrade="良好" else="" average="">=60&&average<70) coursegrade="一般" else="" average="">=50&&average<60) courseGrade="及格";else courseGrade="不及格";}}class Postgraduate extends Student{public Postgraduate(String name){super(name);type="研究生";}public void calculateGrade(){int total=0;double average=0;for(int i=0;i<CourseNo;i++){total+=courses[i];};average=total/CourseNo;if(average>=90&&average<100) coursegrade="优秀" else="" average="">=80&&average<90) coursegrade="良好"else="" average="">=70&&average<80) coursegrade="一般" else="" average="">=60&&average<70) courseGrade="及格";else courseGrade="不及格";}}public class Polymorphism{public static void main(String[] args){Student[] students=new Student[5];students[0]=new Undergraduate("陈建平");students[1]=new Undergraduate("鲁向东");students[2]=new Postgraduate("匡晓华");students[3]=new Undergraduate("周丽娜");students[4]=new Postgraduate("梁欣欣");for(int i=0;i<5;i++){students[i].setCourseScore(0,87);students[i].setCourseScore(1,90);students[i].setCourseScore(2,78);}for(int i=0;i<5;i++){students[i].calculateGrade();}System.out.println("姓名"+" 类型"+" 成绩");}}System.out.println("-------------------------"); for(int i=0;i<5;i++){ System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade()); }(1) 都有(2) Student[] students=new Student[5];(3) Student是抽象的,不能用new操作符创建抽象类的实例。
《Java程序设计》实验报告 --实验3
else if(e.getSource()==buttontwo){//按键2操作
tf.setText(tf.getText()+"2");
flag1=Double.parseDouble(tf.getText());
}
else if(e.getSource()==buttonthree){//按键3操作
buttondevision=new JButton("/");
buttonsin=new JButton("sin");
buttontozero=new JButton(">0");
paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列
//将操作按钮"+""-""*""/""sin"">0"添加到西边的面板中
JButton buttonplus,buttonminus,buttonmultiple,buttondevision,
buttonsin,buttontozero;//新建按钮"+""-""*""/""sin"和归零按钮
JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,
panelcenter.add(buttonthree);
panelcenter.add(buttonfour);
panelcenter.add(buttonfive);
java实验报告完整版
实验报告(计算机与信息工程学院实验中心)学期:2014-2015课程名称:《Java程序设计实验》班级:信息1202姓名:方逸梅学号:1212100231指导老师:费玉莲《Java程序设计》独立实验教学安排一、实验的教学方式、安排及实验环境(一)教学方式对照本课程的实验教材,实验一至实验十一,由教师提示实验原理、方法、步骤等内容,在教师的指导下,学生独立完成程序设计及调试工作。
实验十二的内容由学生自行设计完成。
(二)教学安排学时数:30课时学时安排:每次实验3学时,从学期第五周开始,共十次上机实验。
(三)实验环境实验环境为JDK 1.6。
(四)具体安排地点:信息大楼实验室。
辅导:每个班次一名辅导老师,原则上由任课老师担任。
登记:实验完成,由辅导老师登记实验纪录。
学生:实验做完,完成实验报告内容,并在学期末上交实验册。
老师:批改实验,成绩与平时成绩一起占期末的30%。
二、实验的具体内容和要求见实验报告。
浙江工商大学计算机与信息工程学院实验报告(1)日期:地点:成绩:━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━实验目的、实验原理和内容:一、实验目的:熟悉Java开发环境及简单程序Java设计。
二、实验原理:SDK 的下载与安装,设置环境变量,安装java 虚拟机,使用Eclipse,编译Java 源程序,运行Java 程序。
三、实验内容及要求:1.下载、安装并设置Java SDK 软件包。
2.熟悉Eclipse编辑软件。
3.掌握运行Java 程序的步骤。
4.分别编写Application和Applet程序,显示字符串”Hello Java!欢迎使用!”。
要求:请同学把预备知识、步骤、程序框图、调试好的程序及存在的问题写在下面(不够可以附页)。
程序一public class hello {public static void main(String[] args) {for(int i=0;i<=4;i++){System.out.println("Hello java! 欢迎使用!");}}}结果示意图1存在的问题1、JA VA 存在大小写,因为system没有区分大小写所以出现编译错误。
东北石油大学Java程序设计学生实验报告.doc
东北石油大学学生实验报告实验课程名称_______________实验一 java 概述一、 实验目的1. 掌握如何下载Java 安装软件包并了解和使用JDK 环境;2. 熟悉JDK 集成环境的基本命令、功能和基本用法,并学会配置Java 环境变量;3. 简述JDK, JRE 的区别并简述path 和classpath 环境变量的作用;4. 学习并熟练掌握使用JDK 环境进行Java 程序开发的全过程(包括:源程序的编 辑、编译、调试、运行和结果查看);二、实验内容 1. JDK 开发包的下载与安装(JDK 版本可选); 2. 根据要求写出统环境变量的配置; 3. 编写一个JAVA 程序进行调试,掌握在JDK 开发包支持下编译和运行的过程; 三、 实验记录1. JDK 开发包的下载与安装(1)从Oracle 官网下载安装包安装,安装路径:C:\Program Files\Javagpa SE D<*volo|^m<*r>r Kit 8 LJpdRo* 131 (G-4QX 立0 M 丘人E H B I. WRn 皿"MIK ■内毛F. OVW1 您 心 9 MK Mteg *31变星值CV):2.配置系统环境变量path和classpath3. 编写java 程序,并编译、运行: 程序如下:public class Students{public static void main(String[] args){System, out. printin(,z 这是我编写的第一个Java 程序! “);}}运行结果:变里名(N):变重值(V):实验二运算符、流程控制语句}运行结果:2.课堂案例2:键盘录入x的值,计算出y的并输出x>=3, y二2*x +l;-l〈x〈3, y 二 2 *x; x<=-l , y 二 2 * x - 1程序如下:import java. util. Scanner; class ExamplelO{public static void main(String[] args){Scanner sc=ncw Scanner (Systom. in); System, out. print In (〃请输入x 的值:〃);int x二sc. nextlnt ();int y=0;if (x>3) {y二2*x+l;}else if (x>~l){y二2*x;}else {y二2*x-l;}System, out. printIn (〃y二〃+y);}}3.实验题1:编程实现1! +2! +3!+・・・..+10!的结果并输出结果。
Java程序设计实验报告
(此文档为word格式,下载后您可任意编辑修改!)Java程序设计实验报告实验一 JDK开发环境和结构化程序设计实验学时:2 实验类型:综合性一、实验目的1.熟悉JDK开发环境。
2.熟悉UltraEditNotePad等编辑器编写、编译、运行Java程序。
3.掌握Java Application的程序结构和开发过程。
4.掌握Eclipse工具的使用。
5.结构化程序设计二、实验内容1.JDK开发环境(1)J2sdk开发环境安装。
假设JDK的安装路径为C:\JDK;(2)设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设置)。
如SET PATH=C:\JDK\BIN;%PATH%SET CLASSPATH=.; %CLASSPATH%;d:\test_java (自己的工作目录) 2.UltraEditNotepad编辑器练习使用UltraeditNotepad创建Java源程序的方法。
3.掌握Java Application程序开发过程(1)编辑源程序,如下程序:import java.io.*;public class HelloWorld1{public static void main(String arg[]){System.out.println("Hello World!");}}(2)保存文件,(注意大小写)。
可将文件保存在“D:\test_java\”目录中,注意文件名为HelloWorld1.java。
(3)进入命令行(MS-DOS)方式,设定当前目录为“D:\test_java\”,运行Java 编译器:D:\test_java>javac HelloWorld1.java(4)如果输出错误信息,则根据错误信息提示的错误所在行返回EditPlus编辑器进行修改。
常见错误是类名与文件名不一致、当前目录中没有所需源程序、标点符号全角等。
Java程序的设计实验报告.docx
信息科学与工程学院课程设计题目:图书管理系统姓名:晓雨颖学号: ************201312140120班级: 13 级本科四班物联网课程: Java 程序设计任课教师梦琳2014 年 12 月 20 日课程设计任务书及成绩评定题目图书管理系统课程设计的任务及要求任务 :设计一个功能齐全,实用的XXX软件。
软件设计合理、界面设计美观。
具体要求 :写明该软件完成了哪些功能课程设计所需的软件、硬件等硬件环境: Iterl(R) Core(TM)2 Duo CPU,主频 2.31GHz;存3G;硬盘 320G 以上; 1024× 768 显示分辨率软件环境:JDK6.0 以上、 eclipse等设计报告:1、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。
3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。
4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5、源程序清单和执行结果:清单中应有足够的注释。
任课教师评语成绩:教师签名:日期:目录1前言 (3)1.1设计目的 (4)1.2设计任务 (4)1.3运行环境 (4)2总体设计 (5)2.1设计原理 .............................................错误 ! 未定义书签。
3详细设计实现 . . (5)3.1代码 (5)3.2登陆后事件处理 (12)4心得体会 ................................................错误 ! 未定义书签。
1 前言Java 的前身是 Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大围的Internet上。
1995年, Java 语言的名字从Oak编程了 Java。
1997 年 J2SE1.1 发布。
1998 年 J2SE1.2 发布,标志 Java2 的诞生。
《JAVA程序设计》实验报告
实验报告
课程名称Java程序设计
实验学期2012至2013学年第1学期
学生所在系部计算机学院
年级2010专业班级计科B1XX
学生姓名XXXXX学号**********XX
任课教师白磊
实验成绩
计算机学院制
《Java程序设计》课程综合性实验报告
开课实验室:基础实验室2012年12月13日
打开功能,文件中可以打开新的文件,如下图所示:
另存为功能,可以对文件另存为,可以实现文件的另存功能,截图如下:
2.文件菜单中各项功能的实现
①新建功能设计
主窗口的实现:
//创建窗口对象,并设置相关属性
finalJFrame jf=newJFrame("记事本——JAVA的综合实验");
jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
实验题目
简易写字板软件设计
一、实验目的
通过编写Java的应用系统综合实例,通过编写程序来掌握Java语言编程技巧,将学习到的知识融会贯通,同时提高调试程序的能力,养成良好的编程习惯,并增强对程序设计整体思路的把握。
二、设备与环境
硬件:多媒体计算机
软件:Windows 2000以上的操作系统、JDK开发包、集成开发环境
具体界面如下图所示:
“文件”菜单:“编辑”菜单:
“格式”菜单:“帮助”菜单:
保存功能,当需要进行保存时,可以在点击文件中的保存,弹出保存对话框,进行文件的保存,如下图所示:
②编辑区设计(主要以文件菜单为例介绍)
“文件”菜单
新建功能,当写字板中有输入内容时,弹出保存现有信息的对话框。选择是或否之后,进入新建的页面。如下图所示:
Java程序设计实验报告_2
Java程序设计实验报告姓名:学号:班级:课题名称(附程序名):JAVA计算器(Calculator.java)一、实验目的通过JAVA图形接口的应用,编写出一图形界面的科学计算器;熟悉JAVA程序开发的一般步骤,掌握事件驱动,并能掌握一定的Java 编程能力,在实践中能感受Java的奥秘!同时检验自己的学习成果。
二、实验任务具有加减乘除的计算器,可以延伸到开方等其他的一些计算。
三、开发工具与平台Microsoft Visual Studio 2005四、设计思路:1)界面设计2)逻辑设计首先明确该实验设计的要求实现的基本功能,其次设计布局,将空间划分为由行和列组成的网格单元,每个单元放一个组件,网格单元大小可以不同,尽量将相同属性的按钮放在一个区域,方便操作。
3)软件调试与测试经过调试之后,能实现基本的四则运算,并能实现开方和消除错误的数。
4)软件设计优化该软件的界面应该更加流畅,同时我相信随着自己只是的日益丰富,开发软件的速度更快,效率更高,功能更加全面!5)实验总结不足:没有实现Mc,MR,MS,M+以及菜单栏几个功能,有待进一步完善。
这样才能够完成自己的第一个应用软件设计!优点:通过本次实验设计,大体了解了Java图形接口的应用,并在过程中增强了对程序的调试能力。
对JAVA有了更深一步的理解,学会如何解决问题,如何坚持对程序的调试,同时也增强了自己学习Java的信心。
五、附录源程序如下:import java.awt.BorderLayout;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;public class Calculator extends JFrame implements ActionListener { boolean init = true;boolean isMath = false;boolean clear = true;boolean clickable = true;double qian;String fuhao;int all = 0;JTextField text = new JTextField(25);JButton bM = new JButton();JButton bMC = new JButton("MC");JButton bMR = new JButton("MR");JButton bMS = new JButton("MS");JButton bMADD = new JButton("M+");JButton b0 = new JButton("0");JButton b1 = new JButton("1");JButton b2 = new JButton("2");JButton b3 = new JButton("3");JButton b4 = new JButton("4");JButton b5 = new JButton("5");JButton b6 = new JButton("6");JButton b7 = new JButton("7");JButton b8 = new JButton("8");JButton b9 = new JButton("9");JButton bNOP = new JButton("+/-");JButton bDot = new JButton(".");JButton bDiv = new JButton("/");JButton bMul = new JButton("*");JButton bSub = new JButton("-");JButton bAdd = new JButton("+");JButton bSprt = new JButton("sprt");JButton bMod = new JButton("%");JButton bDao = new JButton("1/x");JButton bEqual = new JButton("=");JButton bBackspace = new JButton("Backspace"); JButton bCE = new JButton("CE");JButton bC = new JButton("C");public Calculator() {this.setTitle("计算器");JMenuBar mainMenu = new JMenuBar();setJMenuBar(mainMenu);JMenu editMenu = new JMenu("编辑");JMenu viewMenu = new JMenu("查看");JMenu helpMenu = new JMenu("帮助");mainMenu.add(editMenu);mainMenu.add(viewMenu);mainMenu.add(helpMenu);JPanel jpDisplay = new JPanel();JPanel jpInput = new JPanel();JPanel jpLeft = new JPanel();JPanel jpRight = new JPanel();text.setText("0.");text.setHorizontalAlignment(JTextField.RIGHT); jpDisplay.add(text);bM.addActionListener(this);bMC.addActionListener(this);bMS.addActionListener(this);bMR.addActionListener(this);bMADD.addActionListener(this);jpLeft.setLayout(new GridLayout(5, 1)); jpLeft.add(bM);jpLeft.add(bMC);jpLeft.add(bMR);jpLeft.add(bMS);jpLeft.add(bMADD);JPanel jpInnerN = new JPanel();JPanel jpInnerS = new JPanel();bBackspace.addActionListener(this);bCE.addActionListener(this);bC.addActionListener(this);jpInnerN.setLayout(new GridLayout(1, 3)); jpInnerN.add(bBackspace);jpInnerN.add(bCE);jpInnerN.add(bC);b0.addActionListener(this);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);b5.addActionListener(this);b6.addActionListener(this);b7.addActionListener(this);b8.addActionListener(this);b9.addActionListener(this);bNOP.addActionListener(this);bDot.addActionListener(this);bDiv.addActionListener(this);bMul.addActionListener(this);bSub.addActionListener(this);bAdd.addActionListener(this);bSprt.addActionListener(this);bMod.addActionListener(this);bDao.addActionListener(this);bEqual.addActionListener(this);jpInnerS.setLayout(new GridLayout(4, 5));jpInnerS.add(b7);jpInnerS.add(b8);jpInnerS.add(b9);jpInnerS.add(bDiv);jpInnerS.add(bSprt);jpInnerS.add(b4);jpInnerS.add(b5);jpInnerS.add(b6);jpInnerS.add(bMul);jpInnerS.add(bMod);jpInnerS.add(b1);jpInnerS.add(b2);jpInnerS.add(b3);jpInnerS.add(bSub);jpInnerS.add(bDao);jpInnerS.add(b0);jpInnerS.add(bNOP);jpInnerS.add(bDot);jpInnerS.add(bAdd);jpInnerS.add(bEqual);jpRight.setLayout(new BorderLayout());jpRight.add(jpInnerN, BorderLayout.NORTH);jpRight.add(jpInnerS, BorderLayout.CENTER);jpInput.setLayout(new BorderLayout());jpInput.add(jpLeft, BorderLayout.WEST);jpInput.add(jpRight, BorderLayout.CENTER);Container pane = this.getContentPane();pane.setSize(333, 208);this.setLocation(300, 200);this.setLayout(new BorderLayout());pane.add(jpDisplay, BorderLayout.CENTER);pane.add(jpInput, BorderLayout.SOUTH);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.pack();this.setVisible(true);}public void actionPerformed(ActionEvent e) {if (init)this.text.setText("0.");init = false;Object source = e.getSource();if (source == bBackspace) {String s = text.getText();text.setText("");for (int i = 0; i < s.length() - 1; i++) { char a = s.charAt(i);text.setText(text.getText() + a);}System.out.println("backspace");}if (source == bCE) {text.setText("0.");clear = true;init = true;System.out.println("CE");}if (source == bC) {text.setText("0.");clear = true;init = true;System.out.println("C");}if (source == bM) {System.out.println("M");}if (source == bMC) {System.out.println("MC,功能末实现");}if (source == bMR) {System.out.println("MR,功能末实现");}if (source == bMS) {System.out.println("MS,功能末实现");}if (source == bMADD) {System.out.println("M+,功能末实现");}if (source == b0) {System.out.println("0");if (clear == false)// 判断是否点击了符号位text.setText("");text.setText(text.getText() + "0");}if (source == b1) {if (clear == false)text.setText("");text.setText(text.getText() + "1");clear = true;// 第二次不在清空(前二句)}if (source == b2) {System.out.println("2");if (clear == false)text.setText("");text.setText(text.getText() + "2");clear = true;}if (source == b3) {System.out.println("3");if (clear == false)text.setText("");text.setText(text.getText() + "3");clear = true;}if (source == b4) {System.out.println("4");if (clear == false)text.setText("");text.setText(text.getText() + "4");clear = true;}if (source == b5) {System.out.println("5");if (clear == false)text.setText("");text.setText(text.getText() + "5");clear = true;}if (source == b6) {System.out.println("6");if (clear == false)text.setText("");text.setText(text.getText() + "6");clear = true;}if (source == b7) {System.out.println("7");if (clear == false)text.setText("");text.setText(text.getText() + "7");clear = true;}if (source == b8) {System.out.println("8");if (clear == false)text.setText("");text.setText(text.getText() + "8");clear = true;}if (source == b9) {System.out.println("9");if (clear == false)text.setText("");text.setText(text.getText() + "9");clear = true;}try{if (source == bNOP) {System.out.println("+/-");boolean isNumber = true;String s = text.getText();for (int i = 0; i < s.length(); i++)if (!(s.charAt(i) >= '0' && s.charAt(i) <= '9'|| s.charAt(i) == '.' || s.charAt(i) == '-')) {isNumber = false;break;}if (isNumber == true) {// 如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {text.setText("");for (int i = 1; i < s.length(); i++) {char a = s.charAt(i);text.setText(text.getText() + a);}}// 如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetext.setText('-' + s);}}if (source == bDot) {System.out.println(".");clickable = true;for (int i = 0; i < text.getText().length(); i++)if ('.' == text.getText().charAt(i)) {clickable = false;break;} // 第一层判断是否里面含有小数点;if (clickable == true)// 第二层判断text.setText(text.getText() + ".");}if (source == bDiv) {System.out.println("/");qian = Double.parseDouble(text.getText());fuhao = "/";clear = false;}if (source == bMul) {System.out.println("*");qian = Double.parseDouble(text.getText());fuhao = "*";clear = false;}if (source == bSub) {System.out.println("-");qian = Double.parseDouble(text.getText());fuhao = "-";clear = false;}if (source == bAdd) {System.out.println("+");qian = Double.parseDouble(text.getText());fuhao = "+";clear = false;}if (source == bSprt) {System.out.println("sprt");String s = text.getText();if (s.charAt(0) == '-') {text.setText("负数不能开根号");} elsetext.setText(Double.toString(ng.Math.sqrt(Double.parseDouble(text.getText()))));clear = false;}if (source == bMod) {System.out.println("%,功能末实现");}if (source == bDao) {System.out.println("1/x");if (text.getText().charAt(0) == '0'&& text.getText().length() == 1) {text.setText("除数不能为零");} else {boolean isDec = true;int i, j, k;String s= Double.toString(1 / Double.parseDouble(text.getText()));for (i = 0; i < s.length(); i++)if (s.charAt(i) == '.')break;for (j = i + 1; j < s.length(); j++)if (s.charAt(j) != '0') {isDec = false;break;}if (isDec == true) {String stemp = "";for (k = 0; k < i; k++)stemp += s.charAt(k);text.setText(stemp);} elsetext.setText(s);}clear = false;}if (source == bEqual) {System.out.println("=");Double ss=Double.parseDouble(text.getText());text.setText("");if (fuhao == "+")text.setText(qian + ss + "");if (fuhao == "-")text.setText(qian - ss + "");if (fuhao == "*")text.setText(qian * ss + "");if (fuhao == "/")text.setText(qian / ss + "");clear = false;// 要清空前一次的数据;}}catch (Exception ee) {System.out.println("请正确输入");text.setText("运算出错,给您带来不便,sorry");clear = false;}}public static void main(String[] args) {new Calculator();}}11。
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实验报告
Java程序设计实验报告实验一Java开发环境的安装与配置一实验目的与要求1.熟悉安装和配置JDK开发环境2.熟悉安装和配置IDE开发工具3.掌握Java程序编辑、编译和运行的过程4.掌握Java程序的构成特点5.总结在调试过程中的错误。
二实验环境应用软件:Jdk1.5.0 , jcreator操作系统:window2000以。
三实验思考1 什么是JVM, 它的作用是什么?答:JVM是Java虚拟机,它是编译后的Java程序和硬件系统之间的接口。
我们可以把JVM 看做一个虚拟的处理器。
它不仅解释执行编译后的Java指令,而且还对其进行安全检查。
2 简单总结一下一个Java程序的基本结构。
答:(1)一个包的声明(2)任意数量的引入语句(3)类的声明和接口的声明。
四实验内容1按照下面的步骤设置环境变量path(1) 找到机器上已安装的jdk的所在路径。
C:\j2sdk1.4.2_14(2) 找到它的子目录bin,在该目录下应该包含java.exe,javac.exe,appletviewer 等应用程序。
记录下bin的完整路径。
C:\j2sdk1.4.2_14\bin(3)切换到windows的命令行方式,在默认的目录下,输入命令java ,记录结果。
关闭命令行方式。
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.(4)右键点击“我的电脑”,打开“属性”->“高级”->“环境变量”,找到Path变量,点击编辑按钮,在弹出的编辑对话框里,将步骤2的路径添加到尾部。
(5)重新打开命令行方式,输入java –version ,如果正确显示java的版本号,则说明环境设置成果。
Microsoft Windows XP [版本 5.1.2600](C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\user>java -versionjava version "1.4.2_14"Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_14-b05)Java HotSpot(TM) Client VM (build 1.4.2_14-b05, mixed mode)C:\Documents and Settings\user>(6)将以上过程以及你设置的path变量值填写到实验报告中,并解释一下为什么一定要设置该环境变量。
JAVA程序设计实验报告
JA V A程序设计实验报告学号:姓名:班级:指导老师:陈业斌实验一、面向对象编程实验一、实验目的⒈掌握接口的编写及使用⒉理解继承、多态⒊掌握包的编写以及如何使用包中的类二、预习内容java的基本语法知识三、实验设备与环境装有JA V A语言工具软件(JCreator )的微机若干四、实验内容⒈接口的编写(1)编辑Interfaceclass.java,设保存在D:\myjava目录下。
interface Interfaceclass{int i=4;int k=5;void func1();int func2(int x);}(2)编辑UseInterface.java,设保存在D:\myjava目录下。
class UseInterface implements Interfaceclass{int j;public void func1() //在使用接口的类中一定要实现接口中的所有抽象方法{System.out.println("func1="+1);}public int func2(int i){System.out.println("func2="+1);return i;}public static void main(String srgs[ ]){//Interfaceclass.class x=new Interfaceclass.class();不能对接口进行实例化UseInterface x=new UseInterface();x.func1();x.func2(k);}}⒉多态在工资系统中的应用下面给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。
Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。
(完整版)Java程序设计实验报告
Java程序设计实验报告实验一实验题目:从键盘上读入10个字符串存入数组a中,然后输出这10个字符串中最大字符串和最小字符串。
实验代码:public class StrPro {public static void main(String[] args) {String str[] = new String[5];System.out.println("Please input 10 strings:");int i;String max,min;for(i=0;i<5;i++){System.out.print("Please input the "+(i+1)+" string:");Scanner sc = new Scanner(System.in);str[i] = sc.nextLine();}max = str[0];min = str[0];for(i=0;i<str.length;i++){if(pareTo(str[i])<0){max = str[i];}if(pareTo(str[i])>0){min = str[i];}}System.out.println("最大的字符串为:"+max);System.out.println("最小的字符串为:"+min);}}实验结果:实验心得体会:掌握了java的基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。
实验二实验题目:自定义一个矩形类(Rectangle),包含的属性有:长(length),宽(width),包含的方法有:关于属性的setter和getter方法,即setLength,getLength,setWidth,getWidth,计算矩形面积的方法(getArea)。
java程序设计实验报告
Java程序设计实验报告学号:姓名:座位号:实验日期:【实验名称】:JDK配置与开发工具的使用【实验目的】:1.熟悉JDK开发环境。
2.熟悉EditPlus编辑器或Eclipse等开发环境的使用。
3.掌握Java Application的程序结构和开发过程。
【实验内容及要求】:1.JDK安装。
2.设置环境变量。
3.分别运用EditPlus和Eclipse编写并运行一个简单的“Hello World!”应用程序。
【程序输出结果与结果分析】:Helloworld【自评分及理由,自己的体会和收获】:主要是熟悉jdk的开发环境,环境变量的设置。
Editplus需要设置环境变量,eclipse不用Path的环境变量设置C:\EditPlus\jdk1.6.0\binClasspath的环境变量的设置.;C:\EditPlus\jdk1.6.0\bin【程序代码】:Editplus:class Helloworld{public static void main(String[] args){System.out.println("Helloworld");}}Eclipse:public class HelloWorld {public static void main(String[] args){System.out.println("Helloworld");}}Java程序设计实验报告学号:姓名:座位号:实验日期:【实验名称】:类和对象的应用【实验目的】:1.掌握各种数据类型及其使用方法。
2.掌握分支语句if、switch和循环语句for、while、do-while的应用。
3.掌握类的声明和对象的创建。
4.掌握方法的定义、调用和构造器的使用。
【实验内容及要求】:1.分别使用if-else-if语句和switch语句编程,确定某一月在哪个季节。
2.分别使用while、do-while和for语句编程,求1~100的和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息科学与工程学院课程设计题目:图书管理系统姓名:晓雨颖学号: ************201312140120班级: 13 级本科四班物联网课程: Java 程序设计任课教师梦琳2014 年 12 月 20 日课程设计任务书及成绩评定题目图书管理系统课程设计的任务及要求任务 :设计一个功能齐全,实用的XXX软件。
软件设计合理、界面设计美观。
具体要求 :写明该软件完成了哪些功能课程设计所需的软件、硬件等硬件环境: Iterl(R) Core(TM)2 Duo CPU,主频 2.31GHz;存3G;硬盘 320G 以上; 1024× 768 显示分辨率软件环境:JDK6.0 以上、 eclipse等设计报告:1、设计目的和任务2、总体设计:包括程序设计组成框图、流程图。
3、详细设计:包括模块功能说明:函数功能、入口及出口参数说明,函数调用关系描述等。
4、调试与测试:包括调试方法,测试结果分析与讨论,测试过程中遇到的主要问题及采取的解决措施。
5、源程序清单和执行结果:清单中应有足够的注释。
任课教师评语成绩:教师签名:日期:目录1前言 (3)1.1设计目的 (4)1.2设计任务 (4)1.3运行环境 (4)2总体设计 (5)2.1设计原理 .............................................错误 ! 未定义书签。
3详细设计实现 . . (5)3.1代码 (5)3.2登陆后事件处理 (12)4心得体会 ................................................错误 ! 未定义书签。
1 前言Java 的前身是 Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大围的Internet上。
1995年, Java 语言的名字从Oak编程了 Java。
1997 年 J2SE1.1 发布。
1998 年 J2SE1.2 发布,标志 Java2 的诞生。
十多年来, Java 编程语言及平台成功地运用在网络计算及移动等各个领域。
Java 的体系结构由 Java 语言、 Java class 、Java API 、Java 虚拟机组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java 支持多线程编程, Java 运行时系统在多线程同步方面具有成熟的解决方案。
Java 的平台标准有 Java ME,Java SE 和 JavaEE。
Java 发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java 的开发工具中主要的7 有 Java DevelopmentKit ,NetBeans,Jcreator ,JBuilder ,JDeveloper 和 Eclipse等。
其中 Java Development Kit简称JDK是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发容和软硬件环境等因素来选择一种合适的开发工具。
1.1 设计目的为了方便学校图书管理,加强师生之间的信息共享,图书管理系统是必不可少的一环。
随着我国教育不断的发展知识不断的增多与多元化,图书信息处理日趋信息化,安全化。
若继续使用传统的手工方式进行图书的管理,工作不但繁琐复杂,而且效率低下缺乏科学性以及合理性。
随着计算机的应用的普及和深入,对图书进行统一管理,将成为管理学生的必要一环,也可以减少图书馆工作人员的工作量,真正实现图书管理的系统化、规化、自动化达到提高图书信息查询效率提高的目的。
充分利用计算机为辅助工具,实现从传统化向信息化的迈进,实现全面的办公自动化,为图书管理工作带来方便。
1.2 设计任务制作一款图书管理系统,是图书借阅,管理信息等更加方便快捷,改变传统方式的繁琐效率低下的特点。
1.3 运行环境环境是在个人笔记本上搭建的,根据运行情况得出本系统的运行环境至少为:硬件环境: Iterl(R) Core(TM)2 Duo CPU,主频 2.31GHz;存3G;硬盘 320G以上; 1024× 768 显示分辨率软件环境: JDK6.0 以上、 eclipse等2总体设计2.1 设计原理利用 Java 语言及数据库知识,将 JAVA与数据库,形成动态查询,便于对信息的进行更加清晰的查询。
3详细设计实现3.1 代码其他代码由于数量原因省略此为main 方法代码。
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MainWindow extends JFrame implements ActionListener {JPanel panel1 ;Container c ;JMenuBar MenuB;JMenu SystemMenu, BookMGRMenu, BorrowBookMenu,ReturnBookMenu , InfoBrowseMenu , UserMGRMenu;JMenuItem UserLoginMenuItem , UserAddMenuItem , UserModifyMenuItem , UserDeleteMenuItem , ExitMenuItem , BookAddMenuItem , BookModifyMenuItem , BookDeleteMenuItem ,BorrowBookMenuItem , BorrowInfoMenuItem , ReturnBookMenuItem , ReturnInfoMenuItem ,BookListMenuItem , BorrowBookListMenuItem , UserListMenuItem ; JLabel titleLabel ,AuthorLabel , DateLabel ;public MainWindow(){super ( " 图书馆管理系统" );//--系统管理菜单--MenuB=new JMenuBar();SystemMenu=new JMenu( " 系统管理 " );UserMGRMenu=new JMenu( " 用户管理 " );UserLoginMenuItem =new JMenuItem( " 用户登录 " );UserAddMenuItem =new JMenuItem( " 添加用户 " );UserModifyMenuItem=new JMenuItem( " 修改用户 " );UserDeleteMenuItem=new JMenuItem( " 删除用户 " );ExitMenuItem =new JMenuItem( " 退出 " );SystemMenu.add( UserLoginMenuItem );UserMGRMenu.add( UserAddMenuItem );UserMGRMenu.add(UserModifyMenuItem); UserMGRMenu.add(UserDeleteMenuItem);SystemMenu.add( UserMGRMenu);SystemMenu.add( ExitMenuItem );UserLoginMenuItem.addActionListener(this); UserAddMenuItem .addActionListener(this); UserModifyMenuItem.addActionListener(this); UserDeleteMenuItem.addActionListener(this); ExitMenuItem .addActionListener(this);MenuB.add( SystemMenu);//---书籍管理菜单 --BookMGRMenu=new JMenu( " 书籍管理 " ); BookAddMenuItem=new JMenuItem( " 添加书籍 " ); BookModifyMenuItem=new JMenuItem(" 修改书籍 " ); BookDeleteMenuItem=new JMenuItem(" 删除书籍 " ); BookMGRMenu.add(BookAddMenuItem);BookMGRMenu.add(BookModifyMenuItem); BookMGRMenu.add(BookDeleteMenuItem); BookAddMenuItem.addActionListener(this); BookModifyMenuItem.addActionListener(this); BookDeleteMenuItem.addActionListener(this); MenuB.add( BookMGRMenu);//--借书管理菜单 --BorrowBookMenu=new JMenu( " 借书管理 " ); BorrowBookMenuItem =new JMenuItem(" 书籍出借 " ); BorrowInfoMenuItem=new JMenuItem(" 出借信息修改 " ); BorrowBookMenu .add( BorrowBookMenuItem ); BorrowBookMenu .add( BorrowInfoMenuItem); BorrowBookMenuItem .addActionListener(this); BorrowInfoMenuItem.addActionListener(this); MenuB.add( BorrowBookMenu);//--还书管理菜单 --ReturnBookMenu =new JMenu( " 还书管理 " ); ReturnBookMenuItem=new JMenuItem(" 书籍还入 " ); ReturnInfoMenuItem=new JMenuItem(" 书籍还入信息修改 " ); ReturnBookMenu .add( ReturnBookMenuItem); ReturnBookMenu .add( ReturnInfoMenuItem); ReturnBookMenuItem.addActionListener(this); ReturnInfoMenuItem.addActionListener(this); MenuB.add( ReturnBookMenu );//--信息一览菜单 --InfoBrowseMenu =new JMenu( " 信息一览 " ); BookListMenuItem=new JMenuItem(" 书籍列表 " ); BorrowBookListMenuItem =new JMenuItem(" 借阅情况表 " );UserListMenuItem =new JMenuItem( " 用户列表 " );InfoBrowseMenu.add( BookListMenuItem);InfoBrowseMenu.add( BorrowBookListMenuItem );InfoBrowseMenu.add( UserListMenuItem);BookListMenuItem.addActionListener(this);BorrowBookListMenuItem.addActionListener(this);UserListMenuItem.addActionListener(this);MenuB.add(InfoBrowseMenu);//----------------------------------setJMenuBar( MenuB);titleLabel=new JLabel(new ImageIcon(".\\pic.jpg"));c=getContentPane();c.setLayout(new BorderLayout());panel1 =new JPanel();panel1 .setLayout(new BorderLayout());panel1 .add(titleLabel,BorderLayout.);CENTERc.add( panel1 ,BorderLayout. CENTER);setBounds(100,50,400,300);show();//-- 设置初始功能 :--UserMGRMenu.setEnabled(false);BookMGRMenu.setEnabled(false);BorrowBookMenu .setEnabled(false);ReturnBookMenu .setEnabled(false);InfoBrowseMenu .setEnabled(false);}//--设置每个菜单点击后出现的窗口和窗口显示的位置--public void actionPerformed(ActionEvent e){if (e.getActionCommand()== " 用户登录 " ){UserLogin UserLoginFrame=new UserLogin( this );Dimension FrameSize=UserLoginFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();UserLoginFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );UserLoginFrame.pack();UserLoginFrame.show();}else if (e.getActionCommand()==" 添加用户 " ){UserAdd UserAddFrame= new UserAdd();Dimension FrameSize=UserAddFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();UserAddFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );UserAddFrame.pack();UserAddFrame.show();}else if (e.getActionCommand()==" 修改用户 " ){UserModify UserModifyFrame=new UserModify();Dimension FrameSize=UserModifyFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();UserModifyFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );UserModifyFrame.pack();UserModifyFrame.show();}else if (e.getActionCommand()==" 删除用户 " ){UserDelete UserDeleteFrame=new UserDelete();Dimension FrameSize=UserDeleteFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();UserDeleteFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );UserDeleteFrame.pack();UserDeleteFrame.show();}else if (e.getActionCommand()==" 添加书籍 " ){BookAdd BookAddFrame= new BookAdd();Dimension FrameSize=BookAddFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BookAddFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x,(MainFrameSize. height -FrameSize. height )/2+loc. y ); BookAddFrame.pack();BookAddFrame.show();}else if (e.getActionCommand()==" 修改书籍 " ){BookModify BookModifyFrame=new BookModify();Dimension FrameSize=BookModifyFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BookModifyFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );BookModifyFrame.pack();BookModifyFrame.show();}else if (e.getActionCommand()==" 删除书籍 " ){BookDelete BookDeleteFrame=new BookDelete();Dimension FrameSize=BookDeleteFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BookDeleteFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );BookDeleteFrame.pack();BookDeleteFrame.show();}else if (e.getActionCommand()==" 书籍出借 " ){BorrowBook BorrowBookFrame=new BorrowBook();Dimension FrameSize=BorrowBookFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BorrowBookFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );BorrowBookFrame.pack();BorrowBookFrame.show();}else if (e.getActionCommand()== " 出借信息修改" ){BorrowInfo BorrowInfoFrame=new BorrowInfo();Dimension FrameSize=BorrowInfoFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BorrowInfoFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );BorrowInfoFrame.pack();BorrowInfoFrame.show();}else if (e.getActionCommand()==" 书籍还入 " ){ReturnBook ReturnBookFrame=new ReturnBook();Dimension FrameSize=ReturnBookFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();ReturnBookFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );ReturnBookFrame.pack();ReturnBookFrame.show();}else if (e.getActionCommand()== " 书籍还入信息修改" ){ReturnInfo ReturnInfoFrame=new ReturnInfo();Dimension FrameSize=ReturnInfoFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();ReturnInfoFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );ReturnInfoFrame.pack();ReturnInfoFrame.show();}else if (e.getActionCommand()==" 书籍列表 " ){BookList BookListFrame=new BookList();Dimension FrameSize=BookListFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BookListFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );BookListFrame.pack();BookListFrame.show();}else if (e.getActionCommand()== " 借阅情况表" ){BorrowBookList BorrowBookListFrame=new BorrowBookList();Dimension FrameSize=BorrowBookListFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();BorrowBookListFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc.x , (MainFrameSize. height -FrameSize. height )/2+loc.y );BorrowBookListFrame.pack();BorrowBookListFrame.show();}else if (e.getActionCommand()==" 用户列表 " ){UserList UserListFrame=new UserList();Dimension FrameSize=UserListFrame.getPreferredSize();Dimension MainFrameSize=getSize();Point loc=getLocation();UserListFrame.setLocation((MainFrameSize.width -FrameSize. width )/2+loc. x, (MainFrameSize. height -FrameSize. height )/2+loc.y );UserListFrame.pack();UserListFrame.show();}else if (e.getActionCommand()==" 退出 " ){this .dispose();System. exit (0);}}//--设置登录用户的权限--public void setEnable(String powerType){if (powerType.trim().equals(" 系统管理员" )){UserMGRMenu.setEnabled( true );BookMGRMenu.setEnabled( true );BorrowBookMenu .setEnabled( true );ReturnBookMenu .setEnabled( true );InfoBrowseMenu .setEnabled( true );UserListMenuItem .setEnabled( true );}else if (powerType.trim().equals(" 书籍管理员" )){UserMGRMenu.setEnabled( false );BookMGRMenu.setEnabled( true );BorrowBookMenu .setEnabled(false);ReturnBookMenu .setEnabled(false);InfoBrowseMenu .setEnabled(true);UserListMenuItem .setEnabled(false );}else if (powerType.trim().equals(" 借阅管理员" )){UserMGRMenu.setEnabled(false);BookMGRMenu.setEnabled(false);BorrowBookMenu .setEnabled(true);ReturnBookMenu .setEnabled(true);InfoBrowseMenu .setEnabled(true);UserListMenuItem .setEnabled(false );}else if (powerType.trim().equals("else")){UserMGRMenu.setEnabled(false);BookMGRMenu.setEnabled(false);BorrowBookMenu .setEnabled(false);ReturnBookMenu .setEnabled(false);InfoBrowseMenu .setEnabled(false);}}public static void main(String args[]){MainWindow mainFrame= new MainWindow();3.2 界面显示( 1)此为初始界面(2) admin登陆汉字变黑体为登陆成功,否则登录失败.(3) root 登陆汉字中只有系统管理,书籍管理,和信息一览变黑为登陆成功否则失败。