信息管理系统论文报告
学院: 班级: 姓名: 学号:
摘 要
学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。 本文介绍了学生信息管理系统的开发整个过程,阐述了系统分析、系统设计、数据库设计和系统实施的全过程。在开发方法上本系统利用了软件工程化的思想和方法,总体上采用结构化生命周期开发方法,具体模块实施采用了原型法和面向对象系统开发方法。并采用VisualStudio.net2005作为开发工具,SQL Server 2000作为后台数据库。本系统具有学生档案管理,班级管理,课程管理,成绩管理,专业管理等模块,可分别完成日常学生档案,班级信息,课程信息,成绩信息的添加、修改、删除、查询、打印等功能。 本人在此次毕业设计中主要对“学生课程管理”,“学生成绩管理”,“学生档案管理”,“补助管理”四个模块进行了具体设计。
【关键字】:
信息管理系统、生命周期、软件工程、原型法。
1.论述
学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
作为计算机应用的一部分,使用计算机对学校的各类信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学校信息管理的效率,也是一个单位科学化、正规化管理,与世界接轨的重要条件。
建立学生信息管理系统,采用计算机对学生信息进行管理,进一步提高办学效益和现代化水平。帮助广大教师提高工作效率,实现学生信息管理工作流程的系统化、规范化和自动化。
2.开发工具
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行、使用最多、最为先进的可用作企业级开发工具的产品有:Microsoft公司的Visual Studio.net, Microsoft公司的Visual C, Borland公司的Delphi和 Powersoft公司的PowerBulider以及Java等。
在这些程序开发工具中,有的强调程序语言的弹性与执行效率;有的则偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的需求。然而,语言的弹性和工具的便利性是密不可分的,只有便利的工具,却没有弹性的语言作支持,许多特殊化的处理动作必定要耗费数倍的工夫来处理,使得原来所标榜的效率提高的优点成为了一纸空谈;相反地,如果只强调语言的弹性,却没有便利的工具作配合,会使得一些即使非常简单的界面处理动作,变得复杂和麻烦起来,这样也会浪费程序设计师们的宝贵时间。作为数据库系统的开发,Visual Studio.net 2005是一个非常理想选择,它有效地避免了以上所谈到的诸缺点。数据库技术是MIS设计中的重要支持技术,在MIS开发过程中,如何选择数据库管理也是一个重要的问题,目前,数据库产品可谓琳琅满目,每种产品都具有各自的特点和适用范围,因此,在选择数据库前,我慎重考虑了一下,应数据库应用的特点及适用范围,本系统选用了数据库SQL Server2000,
开发工具当然是非Visual Studio.net 2005莫属了。
Visual Studio.net 2005是一种可视化的、面向对象和调用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的种类应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美,而且程序开发人员不必具有C/C++编程基础。在Visual Studio.net 2005环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的应用程序接口(API)
函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
3.系统分析
3.1业务流程分析
学生档案业务流程图:
成绩管理业务流程图:
3.2数据流程图
学生成绩管理系统0层数据流程图
成绩管理1层数据流程图
3.3数据存储分析:实体联系图
1、数据模型设计。首先来做出学生成绩管理模块的E-R图,分析这个问题的实体,从系统分析可以知道,学生的成绩是由任课教师
按照课程给出的,学生、课程、教师组成了这个系统的三个实体。
2、再分析三个实体之间的联系。首先,这三个实体不是一个统一体,学生成绩与教师没有内在联系,教师必须通过课程实体才能与学生建立联系,因而先不考虑。课程与学生这两个实体是多对多联系;一位学生要学习多门课程,一门课程有多位学生共同学习。而学习成绩是这两个实体“学生”和“成绩”共有的属性,应填在二者的联系“学习”边。因为成绩既不是学生独有的,也不是课程独有的;“学生甲80分”或“英语80分”是不完全的,说“学生甲英语80分”才是正确的,因为80分是学生甲和英语课二者共有的。这个E-R图可画成下图。
图
;一位教师可以都多教门课程位教师(英语、高等数学有
多位教师教,但对某个固定的学生来说只能有一位教师)。其E-R图,如下所示。
教师,学生与课程的E-R图组合到一起,得到最后的E-R图,有了E-R图,就可以设计数据库。下图为数据模型图。
实体模型 数据模型 4.系统总体规划
学生信息管理系统是一个典型的数据库应用程序,由系统管理模块、课程信息管理模块、学生补助管理模块,成绩信息管理模块等模块组成,允许授予权限的用户操作相应的菜单,从而实现数据信息的修改,查询,打印,统计等功能。
4.1 系统总体功能层次图
由上图知学生信息管理系统共有10个功能模块,现将我负责的三个模块做如下规划
4.1.1课程管理模块:
该模块对各个班级各个学期的课程进行设置,方便了学校教务处的教学管理人员的工作。该模块包括课程的增加和课程信息的浏览,其中课程信息浏览窗体中包括课程的修改,删除,打印功能。
4.1.2成绩信息管理模块:
该模块主要是实现对学生成绩的录入查询及考试的违规信息的管理工作,包括:学生成绩的录入,学期成绩浏览,学生成绩查询,班级成绩查询,违规信息的增加及浏览。
4.1.3学生档案管理
4.2总结
通过对总体设计部分的分析,我们对程序的总体设计有了充分的认识,对系统的各部分模块有了总体的认识,我们下一步所做的工作就是应该进行数据库的设计及系统设计。
5.数据库设计
学生信息管理系统采用了Microsoft推出的SQL Server2000作为后台数据库
5.1 数据库需求分析
在设计数据库结构时,以及可能地满足用户所提出的各项要求,同时又避免同时又要避免冗余数据产生。由于在学生信息管理系统中,需要采集大量的信息,包括学生信息,班级信息,课程信息,成绩信息,专业信息等,如果不能够合理有效地组织数据表的结构,以及合理设置每张表所包含的字段,那么后期进行的数据的整理以及汇总时,就会增加编程人员的开发难度,并造成成绩效益的大幅度下降。根据学生基本信息以及其他相关信息的特点,归纳出以下规律:
1.一个专业包括多个班级;
2.一个班在一个学期内开设多门课程;
3.每一门课程记录每一名学生的成绩;
4.一种角色对应一个和多个用户;
5.每一个学生可以贷款多项费用;
6.一个班级对应一个入学年份及学制;
7.一个班级包含多名学生;
8.每一个学生都有不同的学号;
9.每一个学生可以受奖励或处罚多次;
6.总结:
在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生信息管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。通过开发这个系统,我掌握了的项目基本开发过程,用到的知识巩固了我对Visual C#的学习,但在这次设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
参考文献
[1] 许苓. ERP—提高科研单位研发水平的途径[J]. 电子质量, 2003,(07)
[2] 杨曼. ERP发展趋势研究[J]. 情报科学, 2002,(09)
[3] 刘霞, 吕汉兴. 现代企业的ERP系统构建[J]. 价值工程, 2002,(05)
[4] 徐霞, 朱昌平, 许海燕. 基于组件技术的ERP系统开发(英文)[J]. 河海大学常州分校学报, 2003,(03)
JAVA课程设计
————学生信息管理系统
姓名:-----
班级:-----
学号:-----
学院:计算机科学与软件学院
指导老师:--
目录
1.学生信息管理系统概述...................................................................1
1.1研究背景..................................................................................1
1.2开发意义..................................................................................1
1.3系统设计与功能分析..............................................................1
1.4程序的实际意义......................................................................1
2.程序代码及运行效果.......................................................................2
2.1主类代码..................................................................................2
2.2修改数据..................................................................................4
2.3删除数据..................................................................................7
2.4添加数据.................................................................................10
2.5按姓名查询数据.....................................................................12
2.6按成绩查询数据.....................................................................15
3总结..................................................................................................17
4课程设计总结..................................................................................18
5参考文献..........................................................................................19
6设计结束..........................................................................................20
1. 学生信息管理系统概述
1.1 研究背景
学生信息管理系统是学校管理的重要工具,是学校不可或缺的部分。 随着在校大学生人数的不断增加,教务系统的数量也不断的上涨,。学校工作繁杂、资料众多,人工管理信息的难度也越来越大,显然是不能满足实际的需要,效率也是很低的。并且这种传统的方式存在着很多的弊端,如:保密性差、查询不便、效率低,很难维护和更新等。然而,本系统针对以上缺点能够极大地提高学生信息管理的效率,也是科学化、正规化的管理,与世界接轨的重要条件。所以如何自动高效地管理信息是这些年来许多人所研究的。
1.2 开发意义
随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。 学生学籍管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量?毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义?
1.3 系统设计与功能分析
学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。
1.4 程序的实际意义:
本《学生成绩管理系统》具有对学生成绩进行管理的功能。并于数据库相连接,能够对学生的成绩、姓名、出生日期进行查询、添加和删除等,简捷方便,容易使用。
2.程序代码及运行效果:
2.1主类代码:
/*主类代码*/
import java.swing.*;
import java.awt.*;
import java.awt.event.*;
class MyPanel extends JPanel{
Image img=Toolkit.getDefaultToolkit().getImage(); public void paint(Graphics g){
g.drawImage(img,0,0,this);
}
}
public class MainForm extends JFrame implements ActionListener {
JMenu mSystem=new JMenu("系统");
JMenuItem mExit=new JMenuItem("退出");
JMenu mOperate=new JMenu("数据操作");
JMenuItem mAdd=new JMenuItem("添加");
JMenuItem mDel=new JMenuItem("删除");
JMenuItem mModify=new JMenuItem("修改");
JMenu mQuery=new JMenu("查询");
JMenuItem mName=new JMenuItem("按姓名查询");
JMenuItem mScore=new JMenuItem("按成绩查询");
JMenu mHelp=new JMenu("帮助");
JMenuItem mAbout=new JMenuItem("软件信息");
JMenuBar mBar=new JMenuBar();
MainForm()
{
super("学生成绩管理系统");
setSize(875,583);
mSystem.add(mExit);
mOperate.add(mAdd);
mOperate.add(mDel);
mOperate.add(mModify);
mQuery.add(mName);
mQuery.add(mScore);
mHelp.add(mAbout);
mBar.add(mSystem);
mBar.add(mOperate);
mBar.add(mQuery);
mBar.add(mHelp);
setJMenuBar(mBar);
mExit.addActionListener(this);
mAdd.addActionListener(this);
mDel.addActionListener(this);
mModify.addActionListener(this);
mName.addActionListener(this);
mScore.addActionListener(this);
mAbout.addActionListener(this);
setContentPane(new MyPanel());
setVisible(true);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==mExit)
System.exit(0);
else if(ae.getSource()==mAbout)
JOptionPane.showMessageDialog(this,"学生成绩管理系统\n\n应用科学学院\n\n20xx年4月","软件信息",JOptionPane.INFORMATION_MESSAGE);
else if(ae.getSource()==mAdd)
new AddForm().setVisible(true);
else if(ae.getSource()==mDel)
new DeleteForm().setVisible(true);
else if(ae.getSource()==mModify)
new ModifyForm().setVisible(true);
else if(ae.getSource()==mName)
new NameQueryForm().setVisible(true);
else if(ae.getSource()==mScore)
new ScoreQueryForm().setVisible(true);
}
public static void main(String[] args) {
new MainForm();
}
}
2.2 修改数据:
/*修改数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class ModifyForm extends JFrame implements ActionListener {
JLabel labName=new JLabel("姓名:");
JLabel labDate=new JLabel("出生日期:");
JLabel labScore=new JLabel("成绩:");
JTextField txtName=new JTextField(20);
JTextField txtDate=new JTextField(18);
JTextField txtScore=new JTextField(20);
JButton btnModify=new JButton("修改");
JButton btnCancel=new JButton("取消");
JButton btnQuery=new JButton("查询");
JPanel pan=new JPanel();
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JPanel pan3=new JPanel();
JPanel pan4=new JPanel();
Connection con;
Statement sql;
ResultSet rs;
ModifyForm()
{
super("修改数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnModify);
pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnQuery.addActionListener(this);
btnModify.addActionListener(this);
btnCancel.addActionListener(this);
btnModify.setEnabled(false);
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnCancel){
dispose();
} else if(ae.getSource()==btnQuery){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException e){
}
try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();
rs=sql.executeQuery("select * from 成绩表 where 姓名='"+txtName.getText()+"'");
if(rs.next()){
txtName.setText(rs.getString("姓名"));
txtScore.setText(new Integer(rs.getInt("成绩")).toString());
txtDate.setText(rs.getDate("出生日期
").toString());
btnModify.setEnabled(true);
txtDate.setEditable(true);
txtScore.setEditable(true);
}else{
System.out.println("不存在该记录! ");
btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
}
}catch(SQLException e){
}
}else if(ae.getSource()==btnModify){
try{
System.out.println("Update 成绩表 set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");
sql.executeUpdate("Update 成绩表 set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");
System.out.println("记录修改完毕!"); btnModify.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
con.close();
}catch(SQLException e){
}
}
}
public static void main(String[] args) {
new ModifyForm();
}
}
运行效果:
2.3 删除数据:
/*删除数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class DeleteForm extends JFrame implements ActionListener {
JLabel labName=new JLabel("姓名:");
JLabel labDate=new JLabel("出生日期:");
JLabel labScore=new JLabel("成绩:");
JTextField txtName=new JTextField(20);
JTextField txtDate=new JTextField(18);
JTextField txtScore=new JTextField(20);
JButton btnDelete=new JButton("删除");
JButton btnCancel=new JButton("取消");
JButton btnQuery=new JButton("查询");
JPanel pan=new JPanel();
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JPanel pan3=new JPanel();
JPanel pan4=new JPanel();
Connection con;
Statement sql;
ResultSet rs;
DeleteForm()
{
super("删除数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnDelete);
pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnQuery.addActionListener(this);
btnDelete.addActionListener(this);
btnCancel.addActionListener(this);
btnDelete.setEnabled(false);//取消删除按钮的功能
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==btnCancel)
{
dispose();
}
else if(ae.getSource()==btnQuery){ //实现查询功能 try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException e){
}
try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();
rs=sql.executeQuery("select * from 成绩表 where ='"+txtName.getText()+"'");
if(rs.next())
{
txtName.setText(rs.getString("姓名"));
txtScore.setText(new Integer(rs.getInt("成")).toString());
txtDate.setText(rs.getDate("出生日期").toString()); btnDelete.setEnabled(true);//使删除按钮功能实现 txtDate.setEditable(true);
txtScore.setEditable(true);
}else{
System.out.println("不存在该记录!");
btnDelete.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
}
}catch(SQLException e){
} 姓名绩
}
else if(ae.getSource()==btnDelete) //实现删除功能 {
try
{
System.out.println("Update 成绩表 set 出生日期='"+txtDate.getText()+"',成绩="+txtScore.getText()+" where 姓名='"+txtName.getText()+"'");
sql.executeUpdate("DELETE FROM 成绩表 where 姓名='"+txtName.getText()+"'");
System.out.println("记录删除完毕!");
btnDelete.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtDate.setEditable(false);
txtScore.setEditable(false);
con.close();
}
catch(SQLException e){
}
}
}
public static void main(String[] args)
{
new DeleteForm();
}
}
运行效果:
2.4 添加数据:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class AddForm extends JFrame implements ActionListener {
JLabel labName=new JLabel("姓名:");
JLabel labDate=new JLabel("出生日期:");
JLabel labScore=new JLabel("成绩:");
JTextField txtName=new JTextField(20);
JTextField txtDate=new JTextField(18);
JTextField txtScore=new JTextField(20);
JButton btnAdd=new JButton("添加");
JButton btnCancel=new JButton("取消");
JPanel pan=new JPanel();
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JPanel pan3=new JPanel();
JPanel pan4=new JPanel();
Connection con;
Statement sql;
ResultSet rs;
AddForm()
{
super("添加数据");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnAdd);
pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnAdd.addActionListener(this);
btnCancel.addActionListener(this);
btnAdd.setEnabled(true);
txtDate.setEditable(true);
txtScore.setEditable(true);
setVisible(true);
txtName.requestFocus();
}
public void actionPerformed(ActionEvent ae)
{
String recode,insert1,出生日期,姓名;
int 成绩;
if(ae.getSource()==btnCancel)
{
this.dispose();
}
else if(ae.getSource()==btnAdd)
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException e){
}
try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123");
sql=con.createStatement();
姓名=txtName.getText();
出生日期=txtDate.getText();
成绩=Integer.parseInt(txtScore.getText());
recode="("+"'"+姓名+"'"+","+"'"+出生日期+""+"',"+成绩+")";
insert1="INSERT INTO 成绩表 VALUES "+recode; sql.executeUpdate(insert1);
System.out.println("记录添加完毕!");
btnAdd.setEnabled(false);
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
con.close();
}
catch(SQLException e){
}
}
}
public static void main(String[] args)
}
{ new AddForm(); } 运行效果:
2.5 按姓名查询数据:
/*按姓名查询数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
public class NameQueryForm extends JFrame implements ActionListener {
JLabel labName=new JLabel("姓名:");
JLabel labDate=new JLabel("出生日期:");
JLabel labScore=new JLabel("成绩:");
JTextField txtName=new JTextField(20);
JTextField txtDate=new JTextField(18);
JTextField txtScore=new JTextField(20);
JButton btnCancel=new JButton("取消");
JButton btnQuery=new JButton("查询");
JPanel pan=new JPanel();
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
JPanel pan3=new JPanel();
JPanel pan4=new JPanel();
Connection con;
Statement sql;
ResultSet rs;
NameQueryForm()
{
super("按姓名查询");
setSize(400,300);
pan1.add(labName);
pan1.add(txtName);
pan2.add(labDate);
pan2.add(txtDate);
pan3.add(labScore);
pan3.add(txtScore);
pan4.add(btnQuery);
pan4.add(btnCancel);
pan.setLayout(new GridLayout(3,1));
pan.add(pan1);
pan.add(pan2);
pan.add(pan3);
getContentPane().add(pan,"Center");
getContentPane().add(pan4,"South");
btnQuery.addActionListener(this);
btnCancel.addActionListener(this);
txtDate.setEditable(false);
txtScore.setEditable(false);
setVisible(true);
txtName.requestFocus();
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnCancel){
dispose();
} else if(ae.getSource()==btnQuery){
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e){
}
try{con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();
rs=sql.executeQuery("select * from 成绩表 where 姓名='"+txtName.getText()+"'");
if(rs.next()){
txtName.setText(rs.getString("姓名"));
txtScore.setText(new Integer(rs.getInt("成绩")).toString());
txtDate.setText(rs.getDate("出生日期").toString()); }else{
System.out.println("不存在该记录! ");
txtName.setText("");
txtScore.setText("");
txtDate.setText("");
txtName.requestFocus();
}
}catch(SQLException e){
}
}
}
public static void main(String[] args) {
new NameQueryForm();
}
}
运行效果:
2.6 按成绩查询数据:
/*按成绩查询数据*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
public class ScoreQueryForm extends JFrame implements ActionListener
{
JLabel labScore=new JLabel("请输入成绩:");
JTextField txtScore=new JTextField(10);
JButton btnQuery=new JButton("查询");
JPanel pan1=new JPanel();
JPanel pan2=new JPanel();
String []str={"姓名","出生日期","成绩"};
Object[][] data=new Object[10][3];
JTable table=new JTable(data,str);
JTableHeader head=table.getTableHeader();
JScrollPane jsp=new JScrollPane(table); //滚动
Connection con;
Statement sql;
ResultSet rs;
ScoreQueryForm()
{
super("按成绩查询");
setSize(400,300);
pan1.add(labScore);
pan1.add(txtScore);
pan1.add(btnQuery); //以上3条在第一个面板加入内容 getContentPane().add(pan1,"North"); //把面板1放到窗口顶部 pan2.setLayout(new BorderLayout());
pan2.add(head,"North"); //将表头放在面板2的顶部
pan2.add(jsp,"Center"); //表格放在pan2中间
getContentPane().add(pan2,"Center");//把面板2整体加入到主窗口中 btnQuery.addActionListener(this); //增加查询按钮的监视器
setVisible(true);
}
public void actionPerformed(ActionEvent ae){
if(ae.getSource()==btnQuery){
int i,j,row;
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}
catch(ClassNotFoundException e){
}
try{ con=DriverManager.getConnection("jdbc:odbc:sun","gxy","123"); sql=con.createStatement();
rs=sql.executeQuery("select COUNT(*) as rowcount from 成绩表 where 成绩="+txtScore.getText()); //寻找相同成绩的行数
rs.next(); //去掉头 row=rs.getInt("rowcount");
rs.close();
data=new Object[row][3];
rs=sql.executeQuery("select * from 成绩表 where 成绩="+txtScore.getText());
i=0;j=0;
while(rs.next()){
data[i][j++]=rs.getString("姓名");
data[i][j++]=rs.getDate("出生日期");
data[i][j]=new Integer(rs.getInt("成绩"));//将数据库中查询到的信息保存到data中
i++;j=0;
}
pan2.removeAll();
getContentPane().remove(pan2);
table=new JTable(data,str);
pan2.setLayout(new BorderLayout());
head=table.getTableHeader();
jsp=new JScrollPane(table);
pan2.add(head,"North");
pan2.add(jsp,"Center");
getContentPane().add(pan2,"Center");
this.validate();
con.close();
}catch(SQLException e){
}
}
}
public static void main(String[] args) {
new ScoreQueryForm();
}
}
3.6.2 运行效果:
3.总结:
通过本次课程设计,不仅让我更深入的了解JAVA这门学科,更使自己有了继续探索的兴趣。
对我来说,在之前的学习过程中没有能够很好的掌握JAVA语言的学习,在很多地方还有生疏和遗漏,并且在此次课程设计过程中也遇到困难不能自己独立解决。但是,通过这次程序设计,除了增加了自己的编程能力,提高了我对JAVA的应用能力,同时我也深感“认真严谨”这个词的重要性,一点点小的马虎,便会导致整个程序不能正常运行。在今后的学习中,我将继续保持严谨的学习态度。与此同时,在同学的帮助下,让我体会到了相互学习的重要性,而更让人难以忘怀的是在热烈讨论问题时,那激情横溢的场面。总之,此次课程设计让我获益匪浅。
4.课程设计总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次
课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
5参考文献
[1] JSP工程应用与项目实践 机械工业出版社 陈威、白伟明、李楠 20xx年2月
[2] 熊勇 刘燕等. ASP编程基础与实例 [M].北京:人民邮电出版社,2011
[3] 萨师煊,王珊. 数据库系统概论(第三版) . 北京:高等教育出版社,2009
[4] LEE ANNE PHILLIPS.《巧学活用 JSP》.电子工业出版社,20xx年8月:1-319
[5] A.keyton Weissinger著.冯延晖 王永庆 刘海明译.ASP技术手册(第二版).2011
[6] 陶宏才,楼新远等著.数据库原理与应用设计[M].成都:西南交通大学出版社,2011。
[7] 汪孝宜,刘中兵,徐佳晶.《JSP数据库开发实例精粹》.电子工
业出版社. 2010.1
[8] 郭盈发,张红娟 数据库原理[M]. 北京:西安电子科技大学出版社,2009
[9] 李春葆 ,曾惠.SQL Server 2012 应用系统开发教程[M]. 北京:清华大学出版社,2010。
[10] 曹斌,韩中孝.ASP.NET数据库项目开发实践[M].北京:科学出版社,2010。
6设计结束
中国石油大学华东计通学院沟通与协作实训实习报告专业班级软件工程1202学号120xx220姓名卢凯瑞20xx年7月第一部分学生信息…
甘肃广播电视大学毕业设计(论文)中文题目英文题目专业姓名学号指导教师完成日期学生信息管理系统设计Designofstudentin…
个人总结--------学生信息管理系统小结经过大家的努力,学生管理系统终于做完了,经过这次实习系统设计,自己总结了这个学生信息管…
信息管理系统论文报告学院班级姓名学号摘要学生信息管理系统是一个教育单位不可缺少的部分它的内容对于学校的决策者和管理者来说都至关重要…
西安郵電學院数据库原理及应用设计报告题目:学生信息管理系统一.设计目的学生管理系统是高校管理工作中一项非常重要的组成部分。用户的需…
个人总结--------学生信息管理系统小结经过大家的努力,学生管理系统终于做完了,经过这次实习系统设计,自己总结了这个学生信息管…
学生信息管理系统HUNANUNIVERSITY程序设计训练报告学生姓名学生学号专业班级指导老师院长系主任20xx年5月25日第1页…
C程序设计报告C语言课程设计题目班级学生成绩管理系统设计者焦鹏专业经济学班级学号08112227所属院系经济管理学院指导教师马钊2…
毕业设计论文开题报告题目基于javaSE对镐京学院学生信息管理系统的开发与设计界面实现姓名学号2310207指导教师闫永利班级网络…
西安郵電學院数据库原理及应用设计报告题目:学生信息管理系统一.设计目的学生管理系统是高校管理工作中一项非常重要的组成部分。用户的需…
C语言课程设计——学生成绩管理系统个人心得体会(徐州工程学院14计嵌1班07组张凯)这一周以来的课程设计,不仅让我明白了C语言的确…