Java程序设计大作业实验报告
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程序设计实验学期2010 至2011 学年第 1 学期学生所在系部计算机年级08级专业班级信管B082学生姓名学号************ 任课教师实验成绩计算机系制《JAVA程序设计》课程综合作业实验报告学生的学号,可以更新这条记录中的数据;“查询记录”,输入要查询学生学号可以查询这个学生的所有信息;选择分数信息中的“各科最高低分”菜单,可以查询所有学科中的最高分和最低分;“总分平均分”显示所有学生的总分和平均分。
3.主要代码本程序使用Java中基于SWING的图形设计,用到java中的java.awt.*内的包,控件的布局用到java.swing.border.*包,事件处理用到java.awt.event.*,连接数据库用到java.sql 登录界面主要代图1public class denglu{public static void main(String args[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){ //11System.out.println(""+e);}new WindowBox("登录窗口"); //调用方法}}class WindowBox extends JDialog implements ActionListener{//声明Box baseBox,boxV1,boxV2,boxV3;JButton button1,button2;}}}如果出现用户名密码错误则会出现提示信息对话框图2通过调用Datawin类中的内容可以进入到主界面声明菜单中的显示、添加、删除、修改、查询、最高低分以及总分平均分菜单项和类,能过给菜单添加事件监听事件图3public void actionPerformed(ActionEvent e){if(e.getSource()==itemshow)show.setVisible(true);else if(e.getSource()==itemadd)add.setVisible(true);else if(e.getSource()==itemupdata)updata.setVisible(true);a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getString(3);a[k][3]=rs.getString(4);a[k][4]=rs.getString(5);a[k][5]=rs.getString(6);k++;}con.close();}catch(SQLException ee){System.out.println(ee);} //处理异常table=new JTable(a,name);getContentPane().removeAll(); //采用BorderLayout布局add(showRecord,BorderLayout.NORTH);add(new JScrollPane(table),BorderLayout.CENTER);validate();}图4构造增加类,声明组件,定义一个表名Object name[]={"学号","姓名","年龄","性别","系别","班级"};和定义一个表单Object a[][]=new Object[1][6];然后给按钮组件增加以下监听事件,通过对表单中输入数据进而增加到数据库中public void actionPerformed(ActionEvent e)//处理事件图5图6构造删除类,声明组件,在文本框中输入信息,进而可以删除数据库中相应的记录给文本框和按钮增加以下事件public void actionPerformed(ActionEvent e){if(e.getSource()==inputNumber){try{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM 学生信息 WHERExueid='"+num+"'");boolean boo=rs.next();if(boo==false){JOptionPane.showMessageDialog(this,"学号不存在",table.repaint();//重打印表con.close();}catch(SQLException ee){JOptionPane.showMessageDialog(this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);}}//if图7构造查询方法查询这个窗体整体彩盒式布局,首先声明类和方法设计窗体的外观,给相应的组件添加事件利用SQL语句查询数据库中的信息 rs=sql.executeQuery("SELECT * FROM 学生信息WHERE xueid='"+num+"'");如果输入学号数据库中不存在提示信息“学号不存在”,否则利用table.repaint();方法将数据库中的信息输入到窗体中的table中public void actionPerformed(ActionEvent e)//处理事件{try//连接数据原 hello{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");图8构造最高最低分类首先定义两个静态变量m,n;将数据库中的信息利用查询的方法显示在数字 int b[][]中,con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//只读形式rs=sql.executeQuery("SELECT * FROM 分数信息");st();利用如下方法求得语文成绩的最高分和最低分for(k=0;k<lastNumber;k++){if(m<b[k][0]){m=b[k][0];}if(n>b[k][0]){n=b[k][0];}}a[0][1]=m;a[1][1]=n;同理可以求得其它几科成绩的最高分和最低分然后,将object a[][]中的信息显示有窗体中图9构造总分平均分方法首先将数据库中的信息显示在利用SQL查询方法显示有两个数据中object a[][]和int b[][]中利用如下方法将求得总分和平均分try{con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=sql.executeQuery("SELECT * FROM 分数信息");st();int lastNumber=rs.getRow();b=new int[lastNumber][4];a=new Object[lastNumber][8];int k=0;rs.beforeFirst();while(rs.next()){a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getByte(3);b[k][0]=rs.getByte(3);a[k][3]=rs.getByte(4);b[k][1]=rs.getByte(4);a[k][4]=rs.getByte(5);b[k][2]=rs.getByte(5);a[k][5]=rs.getByte(6);b[k][3]=rs.getByte(6);a[k][6]=b[k][0]+b[k][1]+b[k][2]+b[k][3];a[k][7]=(b[k][0]+b[k][1]+b[k][2]+b[k][3])/4;k++;}con.close();}catch(SQLException ee){System.out.println(ee);}图10四、实验结果及分析程序运行中的报告分析1、在登陆时如果输入不正确的用户和密码会提示用户名或密码错误,因为通过getText()方法无法获得正确的字符串从而提示错误2、在进行数据库相应操作时,如果无法正确连接数据库则会提示不存在所需的数据资源,可能原因是没有正确连接到数据源,即可能数据源名称不正确,或者在数据库中不存在相应的表,或者可能SQL语法错误在进行相应的查询的删除操作时,如果不存在输入的学号会提示用户,“学号学号不存在”,因为不在数据库不无法在相应的字段下找到相匹配的字符串。
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程序设计大作业报告
Java程序设计大作业报告1. 引言本报告是关于Java程序设计大作业的报告,旨在总结和描述本次大作业的设计和实现过程。
本次大作业的主题是设计一个学生成绩管理系统。
2. 需求分析在开始设计和实现学生成绩管理系统之前,首先需要明确系统的需求。
本次大作业的学生成绩管理系统需要包含以下功能: - 学生信息管理:包括学生的基本信息和成绩信息。
- 成绩录入和查询:教师能够录入学生的成绩,并能够查询和修改学生的成绩信息。
- 成绩统计和分析:系统能够对学生的成绩进行统计和分析,例如计算平均分、最高分、最低分等。
3. 系统设计根据需求分析的结果,我们可以开始进行系统设计。
以下是学生成绩管理系统的设计步骤:3.1 类设计首先,我们需要定义学生类(Student)和成绩类(Grade)来管理学生和成绩信息。
学生类包含学生的基本信息,如学号、姓名、性别等,成绩类包含学生的各科成绩信息。
此外,我们还需要设计一个教师类(Teacher),用于录入和查询学生的成绩信息。
3.2 数据结构设计在设计学生成绩管理系统时,我们需要选择适合的数据结构来存储和管理学生和成绩信息。
例如,可以使用数组、链表或哈希表等数据结构来存储学生和成绩信息,根据具体需求进行选择。
3.3 用户界面设计学生成绩管理系统需要有一个用户友好的界面,方便教师进行操作。
可以使用图形界面(GUI)或命令行界面(CLI)来实现用户界面。
4. 系统实现在完成系统设计后,我们可以开始实现学生成绩管理系统。
4.1 学生类实现首先,我们需要实现学生类。
学生类应该包含学生的基本信息和成绩信息的操作方法,例如获取学生的基本信息、添加和修改成绩等。
4.2 成绩类实现接下来,我们需要实现成绩类。
成绩类应该包含学生的各科成绩信息,并提供计算平均分、最高分、最低分等操作方法。
4.3 教师类实现然后,我们需要实现教师类。
教师类应该包含录入和查询学生成绩的操作方法,例如录入学生成绩、查询学生成绩等。
JAVA程序设计大作业报告
过程:
1、课程设计目的 2、课程设计题目描述与要求 3、课程设计报考内容 4、输出结果 5、实验总结
1、课程设计目的
用面向对象语言JAVA完成计算 器的设计和实施。通过课程设计掌 握面向对象编程技术,常用库类的 使用和应用系统的开发过程。
2、课程设计题目描述与要求
(1)完成窗口的关闭 按钮的功能; (2)完成清空键 功能;(即清空文本框中的内容) (3)完成数字按钮的功能;(即文本框显示对应数字) (4)完成基本的“+”,“-”,“*”,“/”四则运算;
3、课程设计报告内容
3.1 课程设计思路 设计的程序能完成计算器的基本功能 例如四则运算 3.2 设计过程 本次设计一个简易的计算器的界面,该计算器运行 程序后的界面如下图所示 该计算机包括了加减乘除四则运算 操作建议
3.3实验源代码
在设计这个程序的开始,我们首先设计这个计算器的 界面,我用比较简单的方法,运用GridLayout(4,5)来实 现简单的排版。然后把我需要的几个按键都依次的输入s("CE"))
{
display.setText("0"); start=true; flag=true; command="=";
} else if(start&&flag) { if(command.equals("-")) { display.setText(command); start=false; } else if((command.equals("1/x")||command.equals("sqrt"))&&flag) calculate(Double.parseDouble(display.getText()),command); else if(flag) lastCommand=command; } else { if(command.equals("Backspace")&&flag) { String s=display.getText(); char[] s1=s.toCharArray(); if(s.length()>=2) { String s2=new String(s1,0,s.length()-1); display.setText(s2); } else { display.setText("0"); start=true; } } else if(flag) { calculate(Double.parseDouble(display.getText()),command); lastCommand=command; start=true; } } } }
Java程序设计大作业实验报告
目录一、前言 (2)二、需求分析 (3)三、系统总体设计 (3)3.1系统总体设计系统思路 (3)3.2数据库设计 (4)3.2.1 login1表的设计和数据 (4)3.2.2 student表的设计和数据 (5)3.2.3 course表的设计和数据 (5)3.2.4 score表的设计和数据 (6)3.3系统功能模块设计 (6)四、系统详细设计 (7)4.1登录模块 (7)4.2 学生模块 (7)4.3 教师模块 (8)4.4 管理员模块 (8)五、系统测试及运行结果 (9)5.1 主界面 (9)5.2 学生管理中心界面 (9)5.3 教师管理中心界面 (10)5.4 管理员管理中心界面 (10)5.5 查询课表界面 (11)5.6 查询成绩界面 (11)5.7 查询教学情况界面 (11)5.8 查询所有学生成绩界面 (12)5.9 学生信息管理界面 (12)5.10 学生成绩管理界面 (13)5.11 用户管理界面 (13)六、实验总结 (14)七、参考文献 (14)一、前言随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。
如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。
对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。
本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。
本系统主要分为三个部分:学生模块、教师模块、管理员模块。
其中学生模块实现的功能:查询课表信息和查询成绩。
教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。
《JAVA程序设计》实验报告5
《JAVA程序设计》实验报告5实验单元五Java 类的应用、继承实验六Java类的应用实验时间: 4.4【实验目的】1、定义自己的Java类。
2、能够应用类。
【实验环境】JDK、Eclipse【实验内容】1.定义一个学生类,包括属性:学号、姓名、年龄(取值介于0-100之间)、成绩(取值介于0-100之间),定义一个方法显示学生信息。
并测试该类。
2.定义一个长方形类,有长、宽属性,并给出计算面积及周长的方法。
并测试该类。
3.设计一个人类Person,包含姓名,年龄,性别基本信息,修饰为私有的设计一个人类Person,包含姓名,年龄,性别基本信息,修饰为私有的;定义构造方法,用来初始化基本信息;定义方法show,用来显示基本信息值。
测试该类。
4.建立一个名叫Cat的类:属性:姓名、毛色、年龄行为:显示姓名、喊叫请编写主类:创建一个对象猫,姓名为“妮妮”,毛色为“灰色”,年龄为2岁,在屏幕上输出该对象的毛色和年龄,让该对象调用显示姓名和喊叫两个方法。
5.类的成员变量请定义一个交通工具(Vehicle)的类其中有: 属性速度(speed)体积(size)等等方法移动(move())设置速度(setSpeed(int speed))加速speedUp(),减速speedDown()等等. 最后在测试类Vehicle中的main()中实例化一个交通工具对象并通过方法给它初始化speed,size的值并且通过打印出来。
另外调用加速减速的方法对速度进行改变。
【详细分析】(此项由学生自己完成)【实验源码】(此项由学生自己完成)1.定义一个学生类,包括属性:学号、姓名、年龄(取值介于0-100之间)、成绩(取值介于0-100之间),定义一个方法显示学生信息。
并测试该类。
代码:package ch5;public class Student {public int no;public String name;public int age;public int cg;public void setNo(int no){this.no=no;}public void setName(String name){=name;}public void setAge(int age){this.age=age;if(age>0&&age<=100);elseSystem.out.println("请输入合法的年龄值:");}public void setCg(int cg){this.cg=cg;if(cg>0&&cg<=100);elseSystem.out.println("请输入合法的成绩值:");}}package ch5;public class StudentText {public static void main(String[] args) {// TODO Auto-generated method stubStudent stu=new Student();stu.setNo(12);System.out.println("学号:"+stu.no);stu.setName("lihua");System.out.println("姓名:"+);stu.setAge(18);System.out.println("年龄:"+stu.age);stu.setCg(21);System.out.println("成绩:"+stu.cg);}}2.定义一个长方形类,有长、宽属性,并给出计算面积及周长的方法。
《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语言程序设计实验报告
实验一、安装JDK并熟悉java的运行环境实验二、基本语法练习实验三、面向对象编程实验(4)实验四、异常处理实验实验五、小应用程序实验实验六、图形图像实验实验七、GUI(图形用户接口)实验(4)实验八、多线程实验实验九、输入输出流实验(4)实验十、数据库应用实验(4)实验一、安装JDK并熟悉java的运行环境一、实验目的熟悉JA V A的运行环境及学习简单的编程。
二、预习内容安装工具软件的基本方法。
三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容安装Eclipse及JA V A的核心编译程序J2SDK。
1、打开Eclipse的安装盘安装Eclipse。
2、在相同目录下安装J2SDK。
3、打开Eclipse软件对J2SDK文件进行配置。
4、编写一应用程序,在屏幕上显示“HELLO WORLD”和爱心标志。
Pulic class Hello{public static void main(String args[]){//在屏幕上显示“HELLO WORLD”和爱心标志}}5、编写一小程序实现上述功能:在屏幕上显示“HELLO WORLD”和爱心标志。
实验结果五、注意事项⒈认真填写实验报告⒉遵守实验室各项制度,服从实验指导教师的安排⒊按规定的时间完成实验六、说明本次实验建议学时数2学时七、实验总结与体会实验二、基本语法练习一、实验目的⒈熟悉Java的基本语法⒉编写应用程序接收命令行参数⒊编写应用程序接收用户从键盘的输入⒋掌握字符串与数组的基本方法二、预习内容java编程的基本结构三、实验设备与环境装有JA V A语言工具软件(Eclipse )的微机若干四、实验内容⒈编写一个应用程序求若干个数的平均数,原始数字要求从命令行输入。
应用程序中main方法的参数String类型的数组args能接受用户从命令行键入的参数。
(1)编辑A verage.java。
class A verage{public static void main(String args[ ]){double n,sun=0;for (int l=0;l<args.legth;l++){sum=sum+Double.valueOf(arg[l].doubleV alue();)}n=sum/args.length;System.out.println(“average=”+n);}}命令行参数:12.34 34.45 21212121注意:1)参数的个数可以利用args.length来取得。
Java大作业报告
课程:Java程序设计与应用开发题目:登录系统与钟表实现班级:XXXXXXXXXX学号:XXXXXXXX姓名:XXXX日期:XXXXX一、大作业目的用面向对象语言JA V A完成登录系统和钟表的分析、设计和实施。
通过课程设计掌握面向对象编程技术、GUI编程、常用类库的使用和应用系统的开发过程。
二、大作业题目描述和要求1.题目设计简单的登录系统和钟表界面,掌握Java编程中的多媒体应用。
2.要求(1)登录系统是java编程中比较基础的,设计一个登录对话框,通过输入正确的用户名和密码来进入系统,系统是一个带有菜单栏的记事本程序,通过点击菜单栏上的按钮来实现相应的功能。
(2) 通过设计一个钟表程序进一步掌握java在多媒体方面的应用。
3. 开发环境Eclipce + JDK1.4.2三、系统分析1.对于登录系统,首先应该对登录界面进行设计,该对话框中包括两个标签,一个文本输入框,一个密码输入框和两个按钮,这些GUI组件被添加到一个使用了网络袋布局的面板panel中,面板panel又被添加到Text_Login的内容窗格。
设计该系统的初步思路就是首先需要定义图像生成器的界面窗口,其次就是往每个按钮上添加触发事件监听器(如ActionListener、MouseListener、MouseMotionListener),然而在实际操作的过程中,新的问题不断出现,不过最后依依解决了。
对于记事本程序中的菜单栏的实现,菜单也是一种常用的GUI组件,菜单是一种层次结构,最顶层是菜单栏,在菜单栏中可以添加若干个菜单,每个菜单又可以添加若刚菜单选项,子菜单。
当单击一个菜单选项时,会生成一个动作事件,为菜单选项添加事件侦听器就可以侦听起动作事件。
2.对于Java的多媒体应用之钟表实现,程序在窗口上显示一个表盘,时刻度和分刻度为3D样式的,分别为黑灰色和灰色时针分针秒针随着时间在走动,间隔1s。
时针和分针的样式设计为略显锥形,秒针为简单的直线形。
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语言工具软件 (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( System. out .println( " 最大的字符串为: " +max); " 最小的字符串为: " +min);}}实验结果:实验心得领会:掌握了 java 的基本语法,数组的定义与使用,做这个实验要了解字符串数组的定义及字符串数组的输入方法,还有比较字符串数组的大小的调用方法等。
实验二实验题目:自定义一个矩形类( Rectangle ),包括的属性有:长( length ),宽(width ),包括的方法有:对于属性的 setter 和 getter 方法,即 setLength ,getLength ,setWidth ,getWidth ,计算矩形面积的方法(g etArea )。
java实验报告
Java程序设计实验报告学号:名字:实验一 JAVA开发环境及基本语法一、实验目的:1、掌握常用的Java集成开发环境的使用,特别是Eclipse和NetBeans。
2、掌握Java基本语法,重点是面向对象的思想和语法。
3、掌握控制台下(应用程序)的输入输出方法,作为后续部分实验的基础。
二、实验内容:1、打开实验室计算机上的集成开发环境Eclipse或NetBeans(重点是Eclipse),掌握其基本使用方法。
了解开发软件的各个菜单功能。
会创建java项目(Project),会编辑和编译、运行项目代码。
2、验证和学习所给的几个例子程序及其讲解。
然后自己编写一个至少由一个类构成的Java程序,其功能是在运行后,能接收用户输入一个学生的姓名以及java课的成绩(百分制),并输出对该学生成绩是否达到60分的及格分的判断(可使用if语句)。
例如,输入学生姓名李明,然后输入成绩50,则输出“李明的成绩为不及格”。
3、编写一个程序来表示长方体的长宽高等数据并有计算体积的函数可供调用,长方体类从矩形类继承而来。
程序运行时能接受输入任意的3 个数作为长方体的长、宽和高,然后能够输出所输入的长宽高及所计算出的体积。
注意不能把代码全部写在main函数里面,不能直接输出长宽高的乘积。
三、设计过程预习实验指导书上的内容,并将实验指导书上的例子用Eclipse验证,分析例子的指导思想,然后根据例子的内容用java语言写出自己的程序。
实验中需要学会利用控制台输出信息,使用语句“System.out.println("**************"); ”即可。
而在控制台下接受用户输入数据的方法为:Scanner sc = new Scanner(System.in); // 定义一个Scanner对象,从System.in接受输入;str = sc.next(); // 等待用户输入任意一个字符串,它会被存到str中;在实验中还会使用if语句,这跟C++的用法差不多。
Java大作业实验报告
XX大学2012-2013学年第2学期《JAVA面向对象程序设计》课程大作业报告课题名称:Java斗地主纸牌游戏小组成员人数5人小组成员名单(学号和姓名):自己:班级学号____姓名_______其他组员:课题实现采用的工具___eclipse(jdk 1.7.01)________课题完成时间:__2013/05/20____________________________对应提交的电子文档打包文件名称(准确填写):____斗地主.rar_________________________________一.大作业目的通过对斗地主纸牌游戏的程序设计,能更加深入了解面向对象的编程思想。
也对JA V A 这门语言能了解更多,能够正确并较为熟练的运用java进行图像化编程和使用java中的ui 控件。
二.题目与要求斗地主,基本上要有抢地主,出牌,托管功能,整个打牌过程尽量快速简介,尽量不出,规则参照QQ斗地主。
开发过程分工:1.首先列出程序所包含的功能,给出相应所需要的类包(规则;牌类)。
2.设计主窗体布局及菜单栏()登入窗口()。
3.设计抢地主事件及游戏过程中出牌时间的控制()4.设计电脑发牌()电脑判断并出牌()电脑代出()5.添加背景音乐及游戏主题环境的设计()6.包中各个类的整理及程序调试()7.程序中错误的修改以及对于程序的改进()代码编写:详见斗地主.rar(已发至gude@)四:希望达到的效果、1.将其他同学负责的部分添加到同一个工程下,并实现运行。
首先是将不同的文件导入到同一个包中,因为这份斗地主是参考一份网上下载的斗地主源码,所以每个人都是对相应的java代码文件进行相应的编译,所以工程的整体性没有大的问题。
只是不同的人设置了不同的变量名造成了系统的报错,在统一了变量名之后解决了这个问题。
2.设定游戏的主题环境原本的决定是参照传统的纸牌类游戏的界面进行设计,在窗口界面设计好之后我觉得传统的纸牌背景只是桌布背景过于呆板无趣,所以决定网上寻找合适的背景图做为背景。
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)。
目录
一、前言 (2)
二、需求分析 (3)
三、系统总体设计 (3)
3.1系统总体设计系统思路 (3)
3.2数据库设计 (4)
3.2.1 login1表的设计和数据 (4)
3.2.2 student表的设计和数据 (5)
3.2.3 course表的设计和数据 (5)
3.2.4 score表的设计和数据 (5)
3.3系统功能模块设计 (6)
四、系统详细设计 (7)
4.1登录模块 (7)
4.2 学生模块 (7)
4.3 教师模块 (7)
4.4 管理员模块 (8)
五、系统测试及运行结果 (9)
5.1 主界面 (9)
5.2 学生管理中心界面 (9)
5.3 教师管理中心界面 (10)
5.4 管理员管理中心界面 (10)
5.5 查询课表界面 (11)
5.6 查询成绩界面 (11)
5.7 查询教学情况界面 (11)
5.8 查询所有学生成绩界面 (12)
5.9 学生信息管理界面 (12)
5.10 学生成绩管理界面 (13)
5.11 用户管理界面 (13)
六、实验总结 (14)
七、参考文献 (14)
一、前言
随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。
如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。
对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。
本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。
本系统主要分为三个部分:学生模块、教师模块、管理员模块。
其中学生模块实现的功能:查询课表信息和查询成绩。
教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。
管理员模块实现的功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。
二、需求分析
用JAVA语言实现学生信息管理系统的图形界面的编程。
主要实现以下几个重要功能:
①实现三种不同身份(学生、教师、管理员)登录学生信息管理系统。
(其中的数据信息保存在数据库中)
②在三种身份登录成功后,分别展现三个界面:学生管理中心、教师管理中心、管理员管理中心。
③在学生管理中心界面实现功能:查询课表信息和查询成绩。
(查询时不允许修改数据)
④在教师管理中心界面实现功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。
⑤在管理员管理中心界面实现功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。
学生信息的管理:实现学生信息的查询、插入、删除、更新。
课表信息的管理:实现课表的查询。
学生成绩的管理:实现学生成绩的查询、插入、删除、更新。
用户信息的管理:实现用户信息插入、删除、修改、更新。
三、系统总体设计
3.1系统总体设计系统思路
本系统的数据都是保存在数据库中,从而保证了数据的完整性、安全性、和一致性。
系统涉及的主要知识:JAVA以及SQL SERVER2008的操作。
利用JAVA的图形编程界面的输入来对数据库进行数据的增加、修改、删除、更新。
以下为系统设计的总体流程图:
3.2数据库设计
本系统主要用到4张表:login1、student 、course 、score 。
3.2.1 login1表的设计和数据
3.2.2 student表的设计和数据
3.2.3 course表的设计和数据
3.2.4 score表的设计和数据
3.3系统功能模块设计
本系统共有20个类,下面分别简要介绍各类的主要作用。
(1)Login:包含主类,选中运行本系统。
(2)WindowLogin:实现主窗口界面。
(3)Denglu: 验证登录,若登陆成功,分别转向不同的用户界面。
(4)Reset:清空主窗口的所有输入值。
(5)WindowAdmin:管理员用户主界面。
(6)WindowStudent:学生用户主界面。
(7)WindowTeacher:教师用户主界面。
(8)ConnectSQL: 连接数据库,对数据库进行增、删、改、查操作。
(9)ModifyAdminPassword:修改管理员用户的密码。
(10)ModifyTeacherPassword:修改教师用户的密码。
(11)ModifyStudentPassword:修改学生用户的密码。
(12)QueryAllScore:查询所有学生成绩
(13)QueryCouse:查询课表。
(14)QueryScore:查询单个学生成绩。
(15)QueryTeachingSituation:查询教学情况。
(16)QueryAllStudentInformation:查询所有学生信息。
(17)QueryAllUsersInformation:查询所有用户信息。
(18)StudentInformationManegement:学生信息管理界面。
(19)StudentScoreManagement:学生成绩管理界面。
(20)UsersInformationManagement:用户信息管理界面。
四、系统详细设计
4.1登录模块
用Denglu类来做登录按钮的监视器,具体源代码参见打包工程的Denglu类。
4.2 学生模块
在学生模块主要实现三种功能:在菜单条上实现修改密码、查询课表、查询成绩。
分别由三个类来实现,分别是ModifyStudentPassword、QueryCourse、QueryScore。
具体源代码参见打包工程。
4.3 教师模块
在教师模块中主要实现四个功能:在菜单条上实现修改密码、查询课表、查看教学情况、查询所有学生成绩。
分别由四个类来实现,
分别是ModifyTeacher
tPassword、QueryCourse、QueryTeachingSituation、QueryAllScore。
具体源代码参见打包工程。
4.4 管理员模块
在管理员模块中主要实现五个功能:在菜单条上实现修改密码、课表信息管理、学生信息管理、学生成绩管理、用户信息管理。
分别由四个类来实现,分别是ModifyAdminPassword、QueryCourse、StudentInformationManagement、StudentScoreManagement、UsersInformationManagement。
具体源代码参见打包工程。
五、系统测试及运行结果
5.1 主界面
5.2 学生管理中心界面
5.3 教师管理中心界面
5.4 管理员管理中心界面
5.5 查询课表界面
5.6 查询成绩界面
5.7 查询教学情况界面
5.8 查询所有学生成绩界面
5.11 用户管理界面
六、实验总结
通过对学生信息管理系统的开发研究,我把所学的知识综合运用到开发过程中,使我获得了许多在课本中学不到的知识。
经过这次实验,我对自己掌握的JAVA以及数据库知识有了更深层次的了解。
在本系统的编写过程中,我逐渐发现书本上的知识还是远远不够的。
此时我才明白大学就是要培养一个人的自学能力。
在编写过程中,我虽然已经仔细编写代码,但仍然无法阻止错误的发生。
不过幸运的是经过自己的调试和老师的帮助,出现的各种问题已经被妥善解决。
学习一门编程语言,不仅仅是掌握书上的例题,更重要的是在编程过程中的灵活运用。
在这里我想感谢帮助和指导我的老师。
正是由于他的帮助和指导,我的学生信息管理系统最终完成。
感谢周老师的教诲!
七、参考文献
《Java面向对象程序设计》耿祥义张跃平
如有侵权请联系告知删除,感谢你们的配合!。