JAVA成绩管理系统论文.docx

上传人:b****5 文档编号:8660020 上传时间:2023-02-01 格式:DOCX 页数:32 大小:2.95MB
下载 相关 举报
JAVA成绩管理系统论文.docx_第1页
第1页 / 共32页
JAVA成绩管理系统论文.docx_第2页
第2页 / 共32页
JAVA成绩管理系统论文.docx_第3页
第3页 / 共32页
JAVA成绩管理系统论文.docx_第4页
第4页 / 共32页
JAVA成绩管理系统论文.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

JAVA成绩管理系统论文.docx

《JAVA成绩管理系统论文.docx》由会员分享,可在线阅读,更多相关《JAVA成绩管理系统论文.docx(32页珍藏版)》请在冰豆网上搜索。

JAVA成绩管理系统论文.docx

JAVA成绩管理系统论文

Java面向对象程序设计——学生成绩管理系统

东北大学秦皇岛分校电子信息系2009级计算机科学与技术专业

摘要:

学生成绩管理系统是在校园中广泛使用的应用软件,用来方便老师管理学生成绩,方便同学查询成绩,取代传统Excel表格成绩单,方便快捷。

本学生成绩管理系统在充分的需求分析基础上,设计简单实用的功能,实现对成绩的查询,修改,删除等操作。

在Myeclipse的编程环境下,使用与平台无关的面向对象语言——Java编程语言,主要使用了JTextField,JButton,JTable,JLabel,等多种组件,用到了FlowLayout,BorderLayout,BoxLayout等多种布局方式,使用了窗口作为监听器,并与Access数据库相连,实现对学生成绩的综合管理。

用户界面美观简洁,操作简单,安全快捷。

 

 

一、设计过程

1.1功能设计

我设计的成绩管理系统是基于数据库的成绩管理,实现对学生成绩的添加,查询,修改(包括删除)以及连接校园网的功能。

下面具体说明每个功能。

1.1.1添加功能:

先在窗口中输入学号,姓名,各科成绩,点击“确认添加”,系统自动得出成绩总分保存在数据库中,并跳出一个“警告”窗口,以提醒用户操作成功。

1.1.2查询功能:

查询功能又分为两部分--“按学号查询”(即查询单条记录)和“按总成绩排名查询”,当输入学号后,点击“查询”,系统会给数据库传入一条SQL语句,数据库把查询结果显示在窗口中,得到要查询的人的信息;

当点击“总成绩排名查询”时,系统会给数据库传入一条SQL语句,将数据库中的数据按照总分由高到低排序,然后把查询结果显示在窗口中,得到全部同学的按照总分排名的排名表。

1.1.3修改功能:

修改功能是先把要修改的数据查出来,然后才能进行修改。

查询分为“按学号查询”和“按姓名查询”,输入学号或姓名,点击按钮,记得到一个新的窗口,在此窗口了,显示了要查询的人的信息,可以在里面修改这条信息的内容,然后单击“保存修改”,系统即向数据库发送SQL语句,实现数据库中此数据的修改功能,并弹出一个窗口,提醒用户操作成功;

当单击“删除记录”的时候,系统会向数据库发送删除此条记录的SQL语句,然后此记录被删除,并跳出一个窗口提醒用户操作成功。

1.1.4校园网功能:

当选择校园网时,系统实现了URL类,通过读取,显示URL中的html文件来打开预设在程序里的东北大学秦皇岛分校的网址,实现连接校园网的功能。

1.2过程设计

(1)在纸上画出大致界面,把按钮,文本框,布局想清楚

(2)用程序实现界面的框架图,把所有界面连接在一起

(3)将各个功能加入界面框架图

(4)美化窗口界面,完善各项功能

1.2.1UML图

 

1.2.2界面设计

先设计出大致界面,最后美化界面,加入一些背景,设计按钮。

下面是最初的草图设计:

二、程序代码与解析

3.1学生成绩管理系统.java

publicclass学生成绩管理系统{

publicstaticvoidmain(String[]args){

Interfaceinterface1=newInterface();

interface1.setTitle("成绩管理系统");

}

}

//学生成绩管理系统为主类,调用Interface来打开主界面。

3.2FinalTable.java

//此类为主界面,即包含题目,四个功能选择按钮的界面

importjava.awt.*;

importjava.awt.event.*;

importjava.io.IOException;

import.URISyntaxException;

importjavax.swing.*;

importstaticjava.awt.BorderLayout.*;

publicclassInterfaceextendsJFrameimplementsActionListener{

JPanelpanel;

JButtonbutton1,button2,button3,button4;//button1添加按钮button2查询按钮

//button3修改按钮button4校园网按钮

JLabellabel,labelTitle,label1,label2,label3,label4;//label1,label2,label3,label4

//为添加,查询,修改,校园网这几个按钮的注释,labelTitle为"成绩管理系统"这几个字,label用于

//添加背景

ImageIcon背景;//背景为整个界面的背景,通过添加图片设置为背景

Iconicon1,icon2,icon3,icon4;//按钮图标

Boxbasebox,boxV1,boxV2,boxV3,boxV4;

publicInterface(){

//添加背景,添加标题,设置按钮图标

labelTitle=newJLabel("成绩管理系统");

Fontfont=newFont("华文行楷",

Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,70);

labelTitle.setFont(font);

labelTitle.setForeground(newColor(255,0,0));

背景=newImageIcon("001.JPG");

label=newJLabel(背景);

label.setBounds(0,0,背景.getIconWidth(),

背景.getIconHeight());

this.getLayeredPane().setLayout(null);

icon1=newImageIcon("1.png");

button1=newJButton(icon1);

button1.setContentAreaFilled(false);

icon2=newImageIcon("2.png");

button2=newJButton(icon2);

button2.setContentAreaFilled(false);

icon3=newImageIcon("3.png");

button3=newJButton(icon3);

button3.setContentAreaFilled(false);

icon4=newImageIcon("4.png");

button4=newJButton(icon4);

button4.setContentAreaFilled(false);

//设置按钮的解释文字的字体和颜色,并把按钮和其对应的文字说明用BoxLayout布局

//设置为上下对其形式

Fontfont1=newFont("微软雅黑",

Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,17);

label1=newJLabel("添加");

label2=newJLabel("查询");

label3=newJLabel("修改");

label4=newJLabel("校园网");

label1.setFont(font1);

label2.setFont(font1);

label3.setFont(font1);

label4.setFont(font1);

label1.setForeground(newColor(255,255,255));

label2.setForeground(newColor(255,255,255));

label3.setForeground(newColor(255,255,255));

label4.setForeground(newColor(255,255,255));

boxV1=Box.createVerticalBox();

boxV2=Box.createVerticalBox();

boxV3=Box.createVerticalBox();

boxV4=Box.createVerticalBox();

boxV1.add(button1);

boxV1.add(Box.createVerticalStrut(0));

boxV1.add(label1);

boxV2.add(button2);

boxV2.add(Box.createVerticalStrut(0));

boxV2.add(label2);

boxV3.add(button3);

boxV3.add(Box.createVerticalStrut(0));

boxV3.add(label3);

boxV4.add(button4);

boxV4.add(Box.createVerticalStrut(0));

boxV4.add(label4);

basebox=Box.createHorizontalBox();

basebox.add(boxV1);

basebox.add(Box.createHorizontalStrut(11));

basebox.add(boxV2);

basebox.add(Box.createHorizontalStrut(11));

basebox.add(boxV3);

basebox.add(Box.createHorizontalStrut(11));

basebox.add(boxV4);

add(basebox,SOUTH);

//添加背景,并把窗口大小设置为背景图片的大小

panel=(JPanel)this.getContentPane();

panel.setOpaque(false);

FlowLayoutf=newFlowLayout();

panel.add(labelTitle);

panel.setLayout(f);

getLayeredPane().setLayout(null);

getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));

setSize(背景.getIconWidth(),背景.getIconHeight());

setBounds(350,150,背景.getIconWidth(),背景.getIconHeight());

setVisible(true);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

//为每个按钮设置监视器

button1.addActionListener(this);

button2.addActionListener(this);

button3.addActionListener(this);

button4.addActionListener(this);

}

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

if(e.getSource()==button2){

InterfaceDesign2interface2=newInterfaceDesign2();

//当按下button2时,打开InterfaceDesign2的窗口

}

elseif(e.getSource()==button3){

InterfaceDesign4interface4=newInterfaceDesign4();

//当按下button3时,打开InterfaceDesign4的窗口

}

elseif(e.getSource()==button1){

InterfaceDesign3interface3=newInterfaceDesign3();

//当按下button1时,打开InterfaceDesign3的窗口

}

elseif(e.getSource()==button4){

//当按下button4的时候,连接校园网,此处用了jdk1.6版本的特有功能,

//用电脑默认的浏览器,打开预设在程序里的东北大学秦皇岛分校的网页

Desktopdp=Desktop.getDesktop();

try{

dp.browse(new.URI("

}catch(IOExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}catch(URISyntaxExceptione1){

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

}

}

}

3.3InterfaceDesign2.java

//查询功能窗口

importjava.awt.*;

importjava.awt.event.*;

importstaticjava.awt.BorderLayout.*;

importjavax.swing.*;

publicclassInterfaceDesign2extendsJFrameimplementsActionListener{

JLabelnumber;//学号

JTabletable1=newJTable();//用于接收由FinalTable查找出来的信息反回来的JTable类型的结果

JTextFieldnumbertext;//输入学号的文本框

JButtonseekByNumber;//"查询"按钮

JButtonseekAll;//"总成绩排名查询"按钮

//用于设置背景

JPanelpanel;

JLabellabel;

ImageIconbackground;

publicInterfaceDesign2(){

init();

setBounds(350,150,background.getIconWidth(),background.getIconHeight());

setVisible(true);

setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

setTitle("查询");

}

voidinit(){

//为窗口添加背景

background=newImageIcon("010.JPG");

label=newJLabel(background);

label.setBounds(0,0,background.getIconWidth(),

background.getIconHeight());

this.getLayeredPane().setLayout(null);

panel=(JPanel)this.getContentPane();

panel.setOpaque(false);

FlowLayoutf=newFlowLayout();

panel.setLayout(f);

getLayeredPane().setLayout(null);

getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));

setSize(background.getIconWidth(),background.getIconHeight());

//添加文本框和按钮

setLayout(newFlowLayout());

number=newJLabel("学号");

numbertext=newJTextField(10);

seekByNumber=newJButton("查询");

seekAll=newJButton("总成绩排名查询");

add(number);

add(numbertext);

add(seekByNumber);

add(seekAll);

seekByNumber.addActionListener(this);

seekAll.addActionListener(this);

}

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

if(e.getSource()==seekByNumber){

//若学好输入框没有输入学号,提示输入学号信息

if(numbertext.getText().length()==0){

JOptionPane.showMessageDialog(this,

"请输入学号!

","",JOptionPane.WARNING_MESSAGE);

}

else{

//把输入的学号读入SQL语句,将SQL语句传给FinalTable类,

//把查询结果反回给table1,并将table1添加到窗口中

Stringstr=numbertext.getText();

FinalTabletable=newFinalTable();

table.setSQL("SELECT*FROM成绩表where学号="+Integer.parseInt(str));

table1=table.finalTable();

add(newJScrollPane(table1),SOUTH);

validate();

}

}

elseif(e.getSource()==seekAll){

////将SQL按总分排名顺序的语句传给FinalTable类,

//把查询结果反回给table1,并将table1添加到窗口中

FinalTabletable=newFinalTable();

table.setSQL("SELECT*FROM成绩表orderby总分DESC");

table1=table.finalTable();

add(newJScrollPane(table1),SOUTH);

validate();

}

}

}

3.4InterfaceDesign3.java

//按下添加按钮后的添加新记录的界面

importjava.awt.Color;

importjava.awt.FlowLayout;

importjava.awt.Font;

importjava.awt.event.*;

importstaticjava.awt.BorderLayout.*;

importjavax.swing.*;

publicclassInterfaceDesign3extendsJFrameimplementsActionListener{

Boxbasebox,boxV1,boxV2;//用BoxLayout布局来设置添加的JTextField文本框和对应的说明

JTextFieldtext1,text2,text3,text4,text5,text6;

JButtonadd;

JLabellabel1,label2,label3,label4,label5,label6;

//用于设置背景所用到的变量

JPanelpanel;

JLabellabel;

ImageIconbackground;

publicInterfaceDesign3(){

setLayout(newFlowLayout());

init();

setVisible(true);

setDefaultCloseOperation(DISPOSE_ON_CLOSE);

setTitle("添加");

}

voidinit(){

//添加背景图片

background=newImageIcon("012.JPG");

label=newJLabel(background);

label.setBounds(0,0,background.getIconWidth(),

background.getIconHeight());

this.getLayeredPane().setLayout(null);

//添加按钮极其注释文字,并设置字体颜色,大小

add=newJButton(newImageIcon("d.png"));

add(add);

//添加背景,并设置窗口大小为背景大小

add.setContentAreaFilled(false);

panel=(JPanel)this.getContentPane();

panel.setOpaque(false);

FlowLayoutf=newFlowLayout();

panel.setLayout(f);

panel.add(add);

getLayeredPane().setLayout(null);

getLayeredPane().add(label,newInteger(Integer.MIN_VALUE));

setBounds(350,150,background.getIconWidth(),background.getIconHeight());

Fontfont1=newFont("微软雅黑",

Font.BOLD+Font.TRUETYPE_FONT+Font.LAYOUT_LEFT_TO_RIGHT,15);

label1=newJLabel("学号"

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

当前位置:首页 > 人文社科 > 视频讲堂

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

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