4支持校园卡的食堂消费信息管理系统数据库设计Word文件下载.docx
- 文档编号:19542536
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:27
- 大小:88.24KB
4支持校园卡的食堂消费信息管理系统数据库设计Word文件下载.docx
《4支持校园卡的食堂消费信息管理系统数据库设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《4支持校园卡的食堂消费信息管理系统数据库设计Word文件下载.docx(27页珍藏版)》请在冰豆网上搜索。
1.E-R图:
学生食堂消费
2.数据字典:
编号
数据项名称
简述
类型及宽度
取值范围
DI-1
Studentid
学生身份证号
Char(18)
0-999999999999
999999
DI-2
Studentno
学生学号
Char(9)
0-999999999
DI-3
Studentna
学生姓名
Char(10)
DI-4
Studentsex
学生性别
Char(4)
“男”女“”
DI-5
Studentbirth
学生出生年
Int
DI-6
Studentdept
学生所在院系
Char(20)
DI-7
Studentspecial
学生所在专业
DI-8
Studentclass
学生所在班级
DI-9
Cardstate
校园卡状态
“挂失”未“挂失”
DI-10
Cardmoney
校园卡余额
Float
DI-11
CZmoney
充值金额
DI-12
Dinmoney
食堂刷卡金额
3.数据结构:
数据结构编号
数据结构名称
数据结构别名
数据结构含义
数据项组成
Ds-1
学生信息
Student
记录学生的信息
Studentid,Studentno,Studentna,Studentsex,Studentdept,Studentspecial
Ds-2
办卡信息
FStudentAdd
记录办卡信息
Studentno,Studentid
Ds-3
挂失信息
FloseInf
记录挂失信息
Ds-4
解挂信息
FUnlose
记录解挂信息
Ds-5
充值信息
DRecharge
记录充值信息
Studentno,CZmoney
Ds-6
校园卡信息
StudentEdit
记录校园卡信息
Studentno,Studentid,Cardstates,Cardmoney
Ds-7
食堂刷卡信息
Hconsume
记录食堂刷卡信息
Consumemoney
4.数据流:
数据流名称
输入信息
输出信息
1
查询学生信息
学号
学生基本信息
2
修改学生信息
变更信息
3
查询校园卡信息
校园卡号
校园卡基本信息
4
修改校园卡信息
5
查询食堂消费信息
食堂消费基本信息
6
修改食堂消费信息
5.数据存储:
数据存储名
输入数据流
输出数据流
学生信息表
修改学生信息记录
学生信息
校园卡信息表
修改校园卡信息记录
校园卡信息
食堂信息表
修改食堂信息记录
食堂信息
处理过程:
处理过程名
数据维护
各数据表的更新、修改信息
更新及修改后的各信息表
注册学生信息
注册校园卡信息
三、逻辑结构设计阶段:
1.将E-R图转化为关系模型通过分析所要实现的功能以及现有的实体和联系,确定要把学生实体,校园卡实体,食
堂实体分别转化为单独的关系模式,为了便于查询学生在食堂刷卡消费信息,学生的校园卡信息管理,把消费型刷卡关系转化为独立的关系模式,考虑到学生要往校园卡里充值,再从学生和校园卡的拥有关系中抽取出校园卡的充值关系模式。
具体关系模式转化结果如下:
学生:
Student(Studentid,Studentno,Studentna,Studentsex,Studentdept,Studentspecial)校园卡:
Card(Cardno,Studentno,Studentid,Cardstate,Cardmoney)充值信息:
DRecharge(Studentno,Czmoney)消费刷卡:
Hconsume(Consumemoney)
2.系统功能模块图:
四、数据库的物理设计阶段
1.物理设计阶段的目标和任务
数据库的物理设计就是根据所用的DBMS和处理需求,进行物理存储安排,建立索引,形成数据库的内模式,为逻辑数据模型选取一个最适合应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构
(2)对物理结构进行评价,评价的重点是时间和空间效率。
2.数据存储方面为数据库中各基本表建立的索引如下:
(1)由于进本表Card,Student的主码Cardno,Studentno经常在查询条件和连接操作的连接条件中出现,且他们的取值唯一,考虑在这两个属性上分别建立唯一性索引;
(2)有的基本表中的属性经常性的发生变化,索引并不是越多越好,而要权衡系统为维护索引付出的代价,因此在其他的表上可考虑不建立索引,也可以适当的建立索引。
五、数据库实施阶段
1.程序编码部分源代码:
Controller-Mainwindow
/*
*Tochangethislicenseheader,chooseLicenseHeadersinProjectProperties.
*Tochangethistemplatefile,chooseTools|Templates
*andopenthetemplateintheeditor.
*/
packagecontroller;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importview.DRecharge;
importview.FLoseInf;
importview.SLogin;
importview.FStudentAdd;
importview.FUnLose;
importview.HConsume;
importview.SInformation;
*@authorcomputer
publicclassMainWindowextendsJFrameimplementsActionListener{
JMenuBarmenuBar;
JMenumenu1,menu2,menu3,menu4;
JMenuItemm11,m12,m13;
JMenuItemm21;
JMenuItemm31,m32,m33,m34;
JMenuItemm41;
publicMainWindow(){
createMenu();
setTitle("
支持校园卡的食堂信息管理系统"
);
setIconImage((newImageIcon("
icon.gif"
)).getImage());
setSize(800,600);
Dimensionsize=Toolkit.getDefaultToolkit().getScreenSize();
setLocation((size.width-getWidth())/2,(size.height-getHeight())/2);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setVisible(true);
}
privatevoidcreateMenu(){
menuBar=newJMenuBar();
menu1=newJMenu("
系统管理(S)"
menu1.setMnemonic('
S'
m11=newJMenuItem("
学生信息查询"
m12=newJMenuItem("
用户登录"
m13=newJMenuItem("
退出(X)"
m13.setAccelerator(KeyStroke.getKeyStroke('
X'
2));
menu1.add(m11);
menu1.add(m12);
menu1.addSeparator();
menu1.add(m13);
menu2=newJMenu("
财务部门(D)"
menu2.setMnemonic('
D'
m21=newJMenuItem("
校园卡充值"
menu2.add(m21);
menu3=newJMenu("
发卡部门(F)"
menu3.setMnemonic('
F'
m31=newJMenuItem("
校园卡挂失"
m32=newJMenuItem("
校园卡解卦"
m33=newJMenuItem("
补办校园卡"
m34=newJMenuItem("
办理校园卡"
menu3.add(m31);
menu3.add(m32);
menu3.add(m33);
menu3.add(m34);
menu4=newJMenu("
食堂刷卡机(H)"
menu4.setMnemonic('
H'
m41=newJMenuItem("
消费"
menu4.add(m41);
m11.addActionListener(this);
m12.addActionListener(this);
m13.addActionListener(this);
m21.addActionListener(this);
m31.addActionListener(this);
m32.addActionListener(this);
m33.addActionListener(this);
m34.addActionListener(this);
m41.addActionListener(this);
menuBar.add(menu1);
menuBar.add(menu2);
menuBar.add(menu3);
menuBar.add(menu4);
this.setJMenuBar(menuBar);
@Override
publicvoidactionPerformed(ActionEvente){if(e.getSource()==m34){
newFStudentAdd();
}if(e.getSource()==m12){newSLogin();
}if(e.getSource()==m21){newDRecharge();
}if(e.getSource()==m31){newFLoseInf();
}if(e.getSource()==m32){newFUnLose();
}if(e.getSource()==m41){newHConsume();
}if(e.getSource()==m11){newSInformation();
//publicstaticvoidmain(Stringargs[]){
//newMainWindow();
//}
Controller-Start
importjava.awt.event.ActionEvent;
importjavax.swing.JFrame;
/**
publicclassStart{
publicvoidactionPerformed(ActionEvente){
}publicstaticvoidmain(Stringargs[]){
JFrame.setDefaultLookAndFeelDecorated(true);
newMainWindow();
}}
Dao-ConnectDB
packagedao;
importjava.sql.Connection;
importjava.sql.DriverManager;
publicclassConnectDB{
publicstaticConnectionconnect(){
try{
Class.forName("
com.mysql.jdbc.Driver"
//加载驱动程序
Connectioncon
DriverManager.getConnection("
jdbc:
mysql:
//localhost:
3306/school?
useUnicode=true&
amp;
characterEncoding=utf8"
"
root"
123456"
//连接数据库
returncon;
//返回连接对象
}catch(Exceptione){
e.printStackTrace();
returnnull;
Dao-FStudentDao
importidao.IFStudentDao;
importjava.sql.PreparedStatement;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.util.ArrayList;
importjava.util.List;
importmodel.FStudent;
publicclassFStudentDaoimplementsIFStudentDao{
publicbooleanaddFStudent(FStudentfStudent){
Connectioncon=null;
//连接对象
PreparedStatementps=null;
//SQL预处理类接口,能大大提高系统效率try{
con=ConnectDB.connect();
//连接数据库
Stringsql="
insertintostudent(StudentId,StudentDe,StudentNa,StudentSex,StudentPo,StudentNo)values(?
?
)"
;
ps=con.prepareStatement(sql);
ps.setString(1,fStudent.getStudentId());
ps.setString(2,fStudent.getStudentDe());
ps.setString(3,fStudent.getStudentNa());
ps.setString(4,fStudent.getStudentSex());
ps.setString(5,fStudent.getStudentPo());
ps.setString(6,fStudent.getStudentNo());
intn=ps.executeUpdate();
returnn>
0;
}catch(SQLExceptione){
returnfalse;
}finally{
ps.close();
}catch(SQLExceptionex){
publicbooleaneditFStudent(FStudentfStudent){
thrownewUnsupportedOperationException("
Notsupportedyet."
//Tochangebodyofgeneratedmethods,chooseTools|Templates.
publicbooleandeleteFStudent(intfStudentId){
supportedyet."
//Tochangebody
Notofgeneratedmethods,chooseTools|Templates.
publicFStudentfintFStudent(intfStudentId){
@OverridepublicList<
FStudent>
fintAllFStudents(){
Not
ofgeneratedmethods,chooseTools|Templates.}
publicList<
fintSomeFStudents(StringfStudentName,intpageNo,intpageSize){thrownewUnsupportedOperationException("
publicintfintCount(StringfStudentName){
Idao-IFstudentDao
*Tochangethislicenseheader,chooseLicenseHeadersinPro
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 支持 校园卡 食堂 消费 信息管理 系统 数据库 设计