Java课程设计.docx

上传人:b****4 文档编号:3741841 上传时间:2022-11-25 格式:DOCX 页数:34 大小:247.43KB
下载 相关 举报
Java课程设计.docx_第1页
第1页 / 共34页
Java课程设计.docx_第2页
第2页 / 共34页
Java课程设计.docx_第3页
第3页 / 共34页
Java课程设计.docx_第4页
第4页 / 共34页
Java课程设计.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

Java课程设计.docx

《Java课程设计.docx》由会员分享,可在线阅读,更多相关《Java课程设计.docx(34页珍藏版)》请在冰豆网上搜索。

Java课程设计.docx

Java课程设计

《Java程序设计》课程设计报告

设计名称:

Java课程设计

设计题目:

学生成绩管理系统

学生学号:

1018130226

专业班级:

10软件工程一班

学生姓名:

张琪

指导教师:

刘亚欣

大连交大软件学院

2011年12月26日——2011年12月28日

学生成绩管理系统

组长:

廖耀吉

学号

姓名

分工

1018130638

廖耀吉

撰写报告,数据库的创建与连接,程序调试

1018130607

张琪

公共类的定义以及输入、查询模块的定义

1018130606

向华邓

删除模块以及成绩输入、查询模块的定义

1018130603

 

杜振枝

菜单栏的设计,查找相关资料

设计题目

学生成绩管理系统

内容概要:

具体要求如下:

1)创建学生信息(学生信息的输入、删除、查询);

2)课程成绩维护(成绩的输入、查询、修改);

3)按学号查询学生信息,学生成绩

备注:

每个学生信息包括:

学号、姓名、性别、年龄。

学生成绩信息包括:

学号,成绩.

 

目录

一、课程设计目的与任务

二、项目介绍

三、系统设计

1.概要设计

1.1系统功能结构设计

1.2数据库的连接

2.总体设计

2.1系统体系结构

四、详细设计及实现

1.公共类的定义

2.输入模块的定义

3.查询模块的定义

4.删除模块的定义

5.成绩输入模块的定义

6.成绩查询模块的定义

7.菜单栏的设计

五、总结

六、个人心得体会

 

一、课程设计目的与任务

课程设计旨在在完成本课程的学习后,能接受面向对象的概念和设计方法,可以利用Java语言开发工具迅速地编写有一定实用价值的应用程序。

课程设计中的问题比平时的习题复杂得多,也更接近实际。

课程设计着眼于原理与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使书上的知识变活,起到深化理解和灵活应用教学内容的目的。

平时的习题局限于一个和二个知识点,而课程设计题是程序设计的综合训练,包括问题分析,总体结构设计,用户界面设计、程序设计、基本技能和技巧。

本次课程设计要求学生能熟练运用JButton、JTextArea、JTextField、JLable等java容器与组件,掌握各种布局方式、异常处理、事件监听与相应等基本知识点,并且尝试运用JDBCAPI连接java程序与数据库,实现对数据的添加、删除、修改、查询等基本功能的实现。

最后能将自己的设计理念以及设计过程在文档中作出阐述与说明。

二、项目介绍

本项目组设计的是学生的成绩管理系统,用户可以通过该系统对学生的成绩信息进行增、删、改、查。

用户通过登陆界面登陆进入学生成绩管理系统,用户初次登陆密码与学号相同,进入后,用户可以选择添加成绩、删除信息、修改信息、查询信息。

通过添加信息选项,用户可以录入学生成绩;通过删除信息,用户可以删除某个学生的成绩记录;通过修改学生信息选项,进入后输入该学生学号后即可对学生的信息进行修改;通过查询信息选项,用户可以选择查询某个学生的成绩,也可以显示全部同学的信息。

用户使用完毕后,点击退出,即可以退出该系统。

 

三、系统设计

1.概要设计

1.1系统功能结构设计

模块功能大概可以分为如下4个方面:

1学生信息

学生信息的输入,查询,删除。

2成绩

根据学生的学号查询学生的成绩

1.2数据库的连接

1.2.1新建数据库

根据需要构建一个名为student的学生数据库

SQL的代码如下:

Createdatabasestudent

1.2.2新建表格

根据需要构建两个表格用来存储学生的信息,和学生的成绩

创建学生信息表

Createtablestudent(stuNochar(10)primarykey,namechar(10),gendernamechar(10),ageint)

创建学生成绩表

Createtablescore(stuNochar(10)primarykey,scoreint)

1.2.3新建名为student的数据源

打开控制面板,找到数据源新建一个student的数据源,

单击添加,选择SQL,并在服务器内添加(local)

注意修改默认的数据库,选中自己的数据库student

进行数据库的链接测试

在数据源管理器中会看到自己添加的数据源student。

2.总体设计

2.1系统体系结构

学生成绩管理系统结构分析

 

四、详细设计及实现

1.公共类的定义

学生类的定义

代码如下:

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.Statement;

importjavax.swing.JOptionPane;

publicclassStudent

{

StringstuNo;

Stringname;

Stringgender;

intage;

publicStudent()

{}

publicStudent(StringstuNo,Stringname,Stringgender,intage)

{

this.stuNo=stuNo;

this.name=name;

this.gender=gender;

this.age=age;

}

publicStringgetStuNo()

{

returnstuNo;

}

publicvoidsetStuNo(StringstuNo)

{

this.stuNo=stuNo;

}

publicStringgetName()

{

returnname;

}

publicvoidsetName(Stringname)

{

this.name=name;

}

publicStringgetGender()

{

returngender;

}

publicvoidsetGender(Stringgender)

{

this.gender=gender;

}

publicintgetAge()

{

returnage;

}

publicvoidsetAge(intage)

{

this.age=age;

}

//向数据库中插入学生基本信息,若插入成功返回true

publicbooleaninsertStudent()

{

booleanb=true;

try

{

Connectioncon=SQLConnection.getCon();

Statementstatement=con.createStatement();

Stringsql="insertintostudentvalues('"+stuNo+"','"+name

+"','"+gender+"',"+age+")";

sql=newString(sql.getBytes("GBK"),"ISO-8859-1");//处理汉字乱码

statement.executeUpdate(sql);

statement.close();

con.close();

}

catch(Exceptione)

{

b=false;

System.out.println("插数据遇到异常!

");

}

returnb;

}

//根据学号查询学生基本信息,若查询成功返回true

publicbooleanselectByStuNo(StringstuNo)throwsException

{

booleanb=false;

Connectioncon=SQLConnection.getCon();

Statementstatement=con.createStatement();

Stringsql="select*fromstudentwherestuNo='"+stuNo+"'";

ResultSetrs=statement.executeQuery(sql);

if(rs.next())

{

Stringno=rs.getString

(1);

this.setStuNo(no);

Stringn=rs.getString

(2);

n=newString(n.getBytes("ISO-8859-1"),"GBK");//处理汉字乱码

this.setName(n);

Stringg=rs.getString(3);

g=newString(g.getBytes("ISO-8859-1"),"GBK");//处理汉字乱码

this.setGender(g);

this.setAge(rs.getInt(4));

b=true;

}

rs.close();

statement.close();

con.close();

returnb;

}

publicbooleandeleteStudent()

{

booleanb=true;

try

{

Connectioncon=SQLConnection.getCon();

Statementstatement=con.createStatement();

Stringsql="deletefromstudentwherestuNo='"+stuNo+"'";

statement.executeUpdate(sql);

statement.close();

con.close();

}

catch(Exceptione)

{

b=false;

System.out.println("插数据遇到异常!

");

}

returnb;

}

}

成绩类的定义

代码如下:

importjava.sql.Connection;

importjava.sql.ResultSet;

importjava.sql.Statement;

publicclassScore

{

StringstuNo;

intscore;

publicScore()

{}

publicScore(StringstuNo,intscore)

{

this.stuNo=stuNo;

this.score=score;

}

publicStringgetStuNo()

{

returnstuNo;

}

publicvoidsetStuNo(StringstuNo)

{

this.stuNo=stuNo;

}

publicintgetScore()

{

returnscore;

}

publicvoidsetscore(intscore)

{

this.score=score;

}

//向数据库中插入学生成绩基本信息,若插入成功返回true

publicbooleaninsertScore()

{

booleanb=true;

try

{

Connectioncon=SQLConnection.getCon();

Statementstatement=con.createStatement();

Stringsql="insertintoscorevalues('"+stuNo+"',"+score+")";

statement.executeUpdate(sql);

statement.close();

con.close();

}

catch(Exceptione)

{

b=false;

System.out.println("插入数据遇到异常!

");

}

returnb;

}

//根据学号查询学生成绩基本信息,若查询成功返回true

publicbooleanselectByStuNo(StringstuNo)throwsException

{

booleanb=false;

Connectioncon=SQLConnection.getCon();

Statementstatement=con.createStatement();

Stringsql="select*fromscorewherestuNo='"+stuNo+"'";

ResultSetrs=statement.executeQuery(sql);

if(rs.next())

{

Stringno=rs.getString

(1);

this.setStuNo(no);

this.setscore(rs.getInt

(2));

b=true;

}

rs.close();

statement.close();

con.close();

returnb;

}

}

链接数据库的代码如下:

importjava.sql.Connection;

importjava.sql.DriverManager;

publicclassSQLConnection

{

staticConnectiongetCon()

{

Connectioncon=null;

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//安装驱动器类

con=DriverManager.getConnection("jdbc:

odbc:

student","jhb","jhb");//建立连接

}

catch(Exceptione)

{

System.out.println("建立数据库连接遇到异常!

");

}

returncon;

}

}

 

2.输入模块的定义

实现代码如下:

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.SwingConstants;

publicclassInsertPanelextendsJPanelimplementsActionListener

{

JButtonjb;

JTextFieldjt1,jt2,jt3,jt4;

InsertPanel()

{

this.setLayout(newBorderLayout());

JLabelj1,j2,j3,j4;

j1=newJLabel("学号:

",SwingConstants.CENTER);

j2=newJLabel("姓名:

",SwingConstants.CENTER);

j3=newJLabel("性别:

",SwingConstants.CENTER);

j4=newJLabel("年龄:

",SwingConstants.CENTER);

jt1=newJTextField(6);

jt2=newJTextField(6);

jt3=newJTextField(6);

jt4=newJTextField(6);

JPaneljp=newJPanel(newGridLayout(4,2));

jp.add(j1);

jp.add(jt1);

jp.add(j2);

jp.add(jt2);

jp.add(j3);

jp.add(jt3);

jp.add(j4);

jp.add(jt4);

add(jp);

jb=newJButton("确定");

add(jb,BorderLayout.SOUTH);

jb.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==jb)

{

//获取图形界面输入的数据

StringstuNo=jt1.getText().trim();

Stringname=jt2.getText().trim();

Stringgender=jt3.getText().trim();

Stringsage=jt4.getText().trim();

intage=0;

//把年龄从String转化成int

try

{

Integeriage=newInteger(sage);

age=iage;

}

catch(Exceptionex)

{

System.out.println("年龄数据格式异常!

");

}

booleanb=false;

if(age>0)

{

Students=newStudent(stuNo,name,gender,age);//以图形界面输入的数据创建对象

b=s.insertStudent();//保存数据

}

if(b)//b为true表示保存成功

JOptionPane.showMessageDialog(null,"插入记录成功!

");

else

JOptionPane.showMessageDialog(null,"insertfailed!

");

}

}

3.查询模块的定义

实现代码如下:

importjava.awt.BorderLayout;

importjava.awt.GridLayout;

importjava.awt.event.ActionEvent;

importjava.awt.event.ActionListener;

importjavax.swing.JButton;

importjavax.swing.JLabel;

importjavax.swing.JOptionPane;

importjavax.swing.JPanel;

importjavax.swing.JTextField;

importjavax.swing.SwingConstants;

publicclassSelectPanelextendsJPanelimplementsActionListener

{

JButtonjb;

JTextFieldjt;

JTextFieldjt1,jt2,jt3,jt4;

SelectPanel()

{

JLabeljl=newJLabel("请输入学号:

",SwingConstants.CENTER);

jt=newJTextField();

jb=newJButton("确定");

JPaneljp1=newJPanel(newGridLayout(1,3));

jp1.add(jl);

jp1.add(jt);

jp1.add(jb);

JLabelj1,j2,j3,j4;

j1=newJLabel("学号:

",SwingConstants.CENTER);

j2=newJLabel("姓名:

",SwingConstants.CENTER);

j3=newJLabel("性别:

",SwingConstants.CENTER);

j4=newJLabel("年龄:

",SwingConstants.CENTER);

jt1=newJTextField(6);

jt1.setEditable(false);

jt2=newJTextField(6);

jt2.setEditable(false);

jt3=newJTextField(6);

jt3.setEditable(false);

jt4=newJTextField(6);

jt4.setEditable(false);

JPaneljp2=newJPanel(newBorderLayout());

JPaneljp3=newJPanel(newGridLayout(4,2));

jp2.add(newJLabel(""),BorderLayout.NORTH);

jp3.add(j1);

jp3.add(jt1);

jp3.add(j2);

jp3.add(jt2);

jp3.add(j3);

jp3.add(jt3);

jp3.add(j4);

jp3.add(jt4);

jp2.add(jp3);

setLayout(newBorderLayout(20,20));

add(jp1,BorderLayout.NORTH);

add(jp2);

jb.addActionListener(thi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1