数据库课设报告学生缴费注册管理系统.docx

上传人:b****8 文档编号:9550042 上传时间:2023-02-05 格式:DOCX 页数:41 大小:322.81KB
下载 相关 举报
数据库课设报告学生缴费注册管理系统.docx_第1页
第1页 / 共41页
数据库课设报告学生缴费注册管理系统.docx_第2页
第2页 / 共41页
数据库课设报告学生缴费注册管理系统.docx_第3页
第3页 / 共41页
数据库课设报告学生缴费注册管理系统.docx_第4页
第4页 / 共41页
数据库课设报告学生缴费注册管理系统.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

数据库课设报告学生缴费注册管理系统.docx

《数据库课设报告学生缴费注册管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设报告学生缴费注册管理系统.docx(41页珍藏版)》请在冰豆网上搜索。

数据库课设报告学生缴费注册管理系统.docx

数据库课设报告学生缴费注册管理系统

数据库课程设计

课程名称__数据库系统_____

题目名称__学生缴费注册管理系统

学生学院__计算机学院_____

专业班级__

学号_____

学生姓名__________

指导教师__左亚尧_________

 

2013年1月

 

目  录

2.1.4数据字典…………………………………………………………….3

3.5系统安装使用说明………………………………………………………..9

4.2.2学生缴费信息管理模块(管理员的界面)………………………..16

1引言

1.1课程设计选题

《学生缴费注册管理系统》

1.2课程设计的目的

通过数据库系统课程设计,熟悉MySQLSERVER数据库管理系统的结构与组成;掌握MySQLSERVER数据库管理系统的应用技术和的使用;应用eclipse开发工具实践《学生缴费注册管理系统》的数据库应用系统的设计方法、开发过程和MySQLSERVER数据库的管理与维护。

最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。

1.3本选题的设计背景

据调查,每年新生进校报到和老生返校缴费时,每个收费员每天要写几百张收据,工作强度大,身体疲劳不说,在学生缴费的高峰时段,紧张和忙碌中特别容易出差错,给工作造成麻烦,给学校造成损失。

另外随着学生数量的增加,其工作量也将大大增加,这无疑会进一步增加财务人员的工作量和劳动强度,同时也将产生大量的纸质收据,这给学生缴费信息的查找、更新和维护都带来了不少困难。

据调查,目前我国各农村学校中,还有相当一部分学生缴费的管理依然停留在纸介质的基础上,这样的管理机制已经不能适应时代发展的需要,也不能满足学校管理工作逐步走向规范化、科学化和自动化的要求。

随着计算机科学与技术的日渐成熟和计算机应用的普及,计算机已进入到人类社会的各个领域,并发挥着越来越重要的作用。

这种传统的人工管理模式必然被以计算机为物质基础的信息管理方式所取代。

   作为计算机应用的一部分,使用计算机对学生缴费信息进行管理,有着人工管理所无法比拟的优点,如:

检索迅速、查找方便、正确率高、存储量大、保密性好、寿命长、成本低等,这些优点能够极大地提高学生缴费管理的工作效率,也是学校向科学化、正规化管理发展的必要条件。

因此,开发一套能够为用户提供充足的信息和快捷的查询手段的学生缴费管理系统具有非常重要的意义。

通过对当前系统进行详细调查,了解手工管理的处理流程是:

新入学的新生和返校报到注册的老生,都要到学校财务部门设立的学杂费收费点办理缴费手续,财务人员对缴费的学生进行登记,缴纳的各种学杂费要入账,并开具发票,存根建档。

不能按时缴费的学生要出具证明,办理缓交手续并记录在案。

平时,各级领导和管理人员根据需要还要对学生的缴费情况进行各项统计和查询。

使用计算机进行学生缴费管理,除了能够实现手工处理的各项工作外,还应该对所有数据信息进行维护,并向用户提供快速、灵活、多样的查询功能。

2系统设计分析

2.1功能及性能分析

2.1.1功能需求

从总体上考虑,系统应该实现下列功能:

对管理员来说,包括学生缴费信息查询,管理员可以查看学生的缴费时间、应缴费用和实缴费用。

还可以增加新生缴费信息和删除学生无效的缴费信息。

对学生来说,也可以进行学生缴费信息查询,可以查看自己的缴费时间、应缴费用和实缴费用。

2.1.2性能需求

系统性能设计应满足如下要求:

þ保证系统数据安全性:

由于学生缴费信息关系到学生财产安全,非常重要,不能让某些人冒充管理员,蓄意增添学生缴费信息而逃避交学费,所以要在用户登录界面设置密码,并且设置管理员才有增加和删除学生缴费信息的权限。

保证系统数据一致性:

数据库中的所有信息在任何操作下都能够保持一致,如一旦管理员添加了某学生的缴费信息,该学生登录用户界面,进行学生缴费信息查询就可以立即看到。

2.1.3系统流程图

2.1.4数据字典

该软件的数据库由下述三张数据表组成:

用户表:

users

学生基本信息表:

student

缴费信息表:

jiaofei

表的具体内容如下:

用户表:

users

字段名

代码

类型

约束

用户名

username

char(10)

primarykey

密码

password

char(6)

学生基本信息表:

student

字段名

代码

类型

约束

学号

sno

char(10)

primarykey

姓名

sname

char(8)

性别

sex

char

(2)

班级

class

char(10)

缴费信息表:

jiaofei

字段名

代码

类型

约束

学号

sno

char(10)

primarykey

缴费时间

iftime

char(10)

应缴费用

yjfee

int

实缴费用

sjfee

int

2.2系统的开发运行环境

本系统开发平台:

eclipse+MySQLSERVER

本系统运行环境:

Windows7

 

3系统设计

3.1数据库逻辑设计

3.1.1数据库的关系模型:

用户(用户名,密码)

学生(学号,姓名,性别,班级);主键是学号

缴费情况(学号,缴费时间,应缴费用,实缴费用);主键是学号

3.1.2整体E-R图

整体E-R图如下:

 

3.1.3系统结构图如下

 

3.2数据库的数据完整性设计

createtableusers

(usernamechar(10)primarykey,

passwordchar(6)notnull

createtablestudent

(snochar(10)primarykey,

snamechar(8)notnull,

sexchar

(2),

classchar(10)

createtablejiaofei

(snochar(10)primarykey,

iftimechar(10),

yjfeeint,

sjfeeint

3.3数据库性能检测与备份设计

将鼠标放在所要备份的数据库上,点击右键,选择备份选项,选择路径,就可以将数据库备份到指定路径下。

并且把数据库的创建代码、创建表的代码、插入数据的代码等全部复制放到硬盘或移动设备中,以防意外的发生导致数据的丢失。

3.4系统功能测试

3.4.1管理员的功能测试:

首先登录进入主界面学生缴费注册管理系统

1.查询学生缴费信息:

可得学生缴费情况表(学号,缴费时间,应缴费用,实缴费用)如下:

 

2.增加学生缴费信息

通过查询,可以看到学号为3210006222的学生缴费信息已经被添加

3.删除学生缴费信息

通过查询,可以看到学号为3210006222的学生缴费信息已经被删除:

3.4.2学生的功能测试

首先登录进入主界面学生缴费注册管理系统

查询学生本人的缴费信息

 

3.5系统安装使用说明

在该学生信息管理系统实现中,我使用的是mysql-5.5.29和eclispe,在安装mysql时要要注意在要选择windows身份认证和sql身份认证选项,而不能选择windows身份认证选项。

因为在用java与数据库建立连接时需要用户身份的认证,如果选择了windows身份认证时,则必须再次设置为windows身份认证和sql身份认证选项,否则连接将会失败。

而在安装eclispe前要先安装jdk,并将jdk中包含有javac和java等命令的文件夹的路径添加到环境变量的path中,这样eclispe才能正常使用;要与数据库建立连接,还必须在eclispe中为所建立的工程添加mysql的驱动,否则,无法与mysql中的数据库建立连接。

 

4详细设计代码

4.1数据库实现

1.创建数据库:

usemaster

go

createdatabasesf

on

name=sf_dat,

filename='f:

\卓灵\data.mdf',

size=30MB,

maxsize=150MB,

filegrowth=20%

logon

name=sf_log,

filename='f:

\卓灵\data.ndf',

size=3MB,

maxsize=15MB,

filegrowth=1MB

go

2.创建模型

CREATESCHEMAAUTHORIZATIONZHONG

4.2系统功能模块的设计与实现

4.2.1登陆界面模块

//登录界面(JFrame框架,JLable标签,JComboBox组合框)

publicclassLoginextendsJFrameimplementsActionListener,ItemListener

{

//容器

JPanelp1=null;

JPanelp2=null;

JPanelp3=null;

JLabeluserName=newJLabel("用户:

");

JTextFieldtxtUser=newJTextField();

JLabelpassword=newJLabel("密码:

");

JPasswordFieldtxtpwd=newJPasswordField(6);

JLabelrole=newJLabel("角色:

");

JComboBoxchoiceRole=newJComboBox();//组合框(单击后下拉一个列表)。

JButtonloginButton=newJButton("登录");

JButtoncancelButton=newJButton("取消");

JLabelimageLabel;

Iconimage;

staticintOK=1;

staticintCANCEL=0;

intactionCode=0;

Connectioncon=null;

java.sql.Statementstmt=null;

ResultSetrs=null;//表示数据库结果集的数据表,通常通过执行查询数据库的语句生成.

intqxian=0;//用于接收当前组合框列表中选择的选项的整数,0表示第一项,-1表示选项不在列表中。

publicLogin()

{

super("登录界面");

p1=newJPanel();

p2=newJPanel();

p3=newJPanel();

choiceRole.addItem("管理员");

choiceRole.addItem("学生");

image=newImageIcon();

imageLabel=newJLabel(image);

p1.add(imageLabel);

this.setLayout(newFlowLayout());//流水布局(从做到右排列,不够换新行,不满放中间)

this.setBounds(100,100,246,200);

p2.setLayout(newGridLayout(3,2));//网格布局

p2.add(userName);

p2.add(txtUser);

p2.add(password);

p2.add(txtpwd);

p2.add(role);

p2.add(choiceRole);

p3.add(loginButton);//默认为边界布局(即东南西北中)

p3.add(cancelButton);

this.add(p1);

this.add(p2);

this.add(p3);

this.setResizable(false);//设置此frame是不可以由用户调整大小。

/*提供一个关于新创建的JFrame是否应该具有当前外观为其提供的Window装

*饰(如边框、关闭窗口的小部件、标题等等)的提示*/

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setVisible(true);

loginButton.addActionListener(this);

choiceRole.addItemListener(this);

cancelButton.addActionListener(this);

}

publicvoidconnectDB()throwsException

{

try{

Class.forName("org.gjt.mm.mysql.Driver");

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

try{

con=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/sf","root","1234");

stmt=con.createStatement();

}catch(SQLExceptione){

e.printStackTrace();

}

}

publicvoidcloseDB()throwsSQLException

{

stmt.close();

con.close();

}

@Override

publicvoiditemStateChanged(ItemEvente)

{

//SELECTED:

此状态更改值指示项被选定。

if(e.getStateChange()==ItemEvent.SELECTED)

{

JComboBoxjcb=(JComboBox)e.getSource();//最初发生Event的对象。

qxian=jcb.getSelectedIndex();//返回列表中与给定项匹配的第一个选项。

(0为选项一)

}

}

@SuppressWarnings("deprecation")

@Override

publicvoidactionPerformed(ActionEvente)

{

Objectsource=e.getSource();//最初发生Event的对象。

Stringuser_name=null;

Stringpassword=null;

booleansuccess=false;

if(source==loginButton)

{

if(txtUser.getText().equals("")||txtpwd.getText().equals(""))

{

JOptionPane.showMessageDialog(null,"登录名和密码不能为空!

");

/*JOptionPane.showMessageDialog(Component,String)中,

*component为父对话框,string为在对话框中显示的文字;参数设为null时,

*默认的Frame用作父级,并且对话框将居中位于屏幕上*/

}

else

{

try{

this.connectDB();

}catch(Exceptione2){

//TODOAuto-generatedcatchblock

e2.printStackTrace();

}

try{

rs=stmt.executeQuery("select*fromuserswhereusername="+"'"

+txtUser.getText()+"'");//通过执行查询数据库的语句生成的数据库结果集的数据表

while(rs.next())

{

/*trim()返回字符串的副本,忽略前导空白和尾部空白;

*resultSet.getString(String)以Java编程语言中

*String的形式检索此ResultSet对象的当前行中指定列的值。

*/

user_name=rs.getString("username").trim();

password=rs.getString("password").trim();

if(txtUser.getText().equals(user_name))

{

if(txtpwd.getText().equals(password))

{

actionCode=OK;

this.setVisible(false);

if(qxian==0)

{

newAdminFrame(txtUser.getText());//进入管理员界面

}

if(qxian==1)

{

newStuFrame(txtUser.getText());//进入学生界面

}

success=true;

break;

}

else

{

JOptionPane.showMessageDialog(null,"密码错误");

txtpwd.setText("");

success=true;

}

}

}

if(!

success)

{

JOptionPane.showMessageDialog(null,"登录名错误!

");

txtUser.setText("");

txtpwd.setText("");

}

}catch(SQLExceptione1){

e1.printStackTrace();

}

}

}

if(source==cancelButton)

{

txtpwd.setText("");

txtUser.setText("");

}

}

}

 

4.2.2学生缴费信息的管理模块(即管理员的界面):

publicclassAdminFrameextendsJFrameimplementsActionListener{

Stringname;

JPanelp1=newJPanel();

JPanelp2=newJPanel();

JPanelp3=newJPanel();

JButtonselectButton=newJButton("学生缴费信息查询");

JButtoncloseButton=newJButton("退出管理系统");

JButtondelete=newJButton("删除");

JButtonupdate=newJButton("增加");

JLabell=newJLabel("管理员");

@SuppressWarnings("deprecation")

publicAdminFrame(Stringname){

super("学生缴费注册管理系统");

this.name=name;

this.setSize(250,200);

this.add("North",p1);

this.add("Center",p2);

this.add("South",p3);

p1.add(l);

p2.add(selectButton);

p2.add(delete);

p2.add(update);

p3.add(closeButton);

selectButton.addActionListener(this);

delete.addActionListener(this);

update.addActionListener(this);

closeButton.addActionListener(this);

this.setResizable(false);//用户不可随意更改界面大小

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.show();

}

@Override

publicvoidactionPerformed(ActionEvente){

if(e.getActionCommand()=="学生缴费信息查询")

{

try{

newCheck(name);

}catch(Exceptione1){

e1.printStackTrace();

}

}

if(e.getActionCommand()=="删除")

{

newMDelete(name);

}

if(e.getActionCommand()=="增加")

{

newMAddStudent(name);

}

if(e.getActionCommand()=="退出管理系统")

{

System.exit(0);

}

}

}

管理员各种权限的实现

1.管理员的查询功能

publicclassCheckextendsJFrame{

Stringname;

JTabletable=newJTable();

JPanelp=newJPanel();

JScrollPanesPanel=newJScrollPane(

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

当前位置:首页 > IT计算机 > 计算机软件及应用

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

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