校园一卡通系统胥东东杜鹏程 闫欢欢 肖旋.docx
- 文档编号:12666012
- 上传时间:2023-04-21
- 格式:DOCX
- 页数:86
- 大小:473.82KB
校园一卡通系统胥东东杜鹏程 闫欢欢 肖旋.docx
《校园一卡通系统胥东东杜鹏程 闫欢欢 肖旋.docx》由会员分享,可在线阅读,更多相关《校园一卡通系统胥东东杜鹏程 闫欢欢 肖旋.docx(86页珍藏版)》请在冰豆网上搜索。
校园一卡通系统胥东东杜鹏程闫欢欢肖旋
软件学院
二级课题实训报告
课题名称:
校园一卡通系统
专业:
软件工程(java方向)
班级:
学号:
学生姓名:
指导教师:
缑西梅
2012年9月30日
中原工学院软件学院
二级实践课题设计任务书
姓名
Java专业
题目
校园一卡通系统的开发
设
计
任
务
开发一个比较完善的校园一卡通管理系统,包括学生在校园中饮食、消费、娱乐等一系列正常的校园生活活动。
为软件学院校友提供一个便捷的平台。
主要功能包括:
1.饮食消费:
为学生提供一个正常合理的消费流程;
2.图书借阅管理:
更合理的管理图书的借入、借出;
3.圈存管理系统:
方便学生对一卡通的圈存过程。
开发工具:
JAVA、Eclipse、C、MySQL
时
间
进
度
第1周(2012.9.10~2012.9.16):
我们进行了需求分析,以及制作出流程图并勾勒出E-R图的框架。
为今后代码的编制提供一个较为完善的前期准备。
第2周(2012.9.17~2012.9.23):
分配完任务,对自己所负责的那一部分进行编制与完善。
并最终实现了代码流程。
第3周(2012.9.24~2012.9.28):
主要对所完成任务进行一个编制与总结,将这几周的经历与历程总结出来。
原主
始要
资参
料考
与文
献
[01]Y.DanielLiang(美).Java语言程序设计基础篇[M]:
北京:
机械工业出版社.2011.5
[02]谭浩强C程序设计(第四版)[M]:
清华大学出版社。
2010.6
[03]曲培新、庞永庆、林树泽、许小荣等著JAVA项目开发案例精粹[M]:
电子工业出版社2010.6
指导教师签字:
年月日
学生一卡通管理系统
摘要
一卡通系统在现代社会已经深入到各个学校,随着学校规模的不断扩大,学生数量不断增加,一卡通对学校进行各项工作的开展非常重要,其管理水平的高低将直接影响到人才的培养质量。
面对庞大的信息量,如何有效的提高学生管理是一个学校急需解决的问题。
因此开发适合学校需要的一卡通系统,通过这样的系统,可以减少管理方面的工作量。
在一卡通系统中,我们用到了类,还用到了循环等,这个系统可以省去原来借阅、饮食等一系列麻烦事。
一卡通系统就是一个典型的管理信息系统,它可以让学生的生活问题变的更轻松。
本系统的主要功能就是解决学生的日常问题。
包括存钱、饮食、借阅等问题。
本系统的开发工具使用的是Eclipse3。
参考资料使用的是《Java语言程序设计教程(第八版)》,《C程序设计(第四版)》,《JAVA项目开发案例精粹》。
关键词:
Eclipse、MySQL、数据库
目录
第1章项目分析1
1.1问题描述1
1.2技术分析1
第2章数据库分析与设计2
2.1E-R图2
2.2表设计3
第3章实现4
3.1消费系统模块4
3.1.1流程图4
3.1.2界面及代码5
3.2图书管理系统模块14
3.2.1流程图14
3.2.2界面及代码15
3.3圈存管理系统模块23
3.3.1流程图23
3.3.2界面及代码24
第4章结束语33
附录代码:
36
第1章项目分析
学生日常接触高新技术,能够形成一个良好的氛围,培养学生对科技的兴趣,对学生学习先进的科学文化知识起到积极的促进作用。
培养学生的用卡意识,对提高全民素质也会起到积极的作用。
校园一卡通管理系统综合了消费、节能控水管理、账务管理、结算等多方面的业务需要,有效的保证了卡在学校内的快速、安全、有效的使用。
系统整个业务系统主要分为四个部分:
1消费系统模块(输入学号就能查询此学生的信息及卡内余额,再输入商品号显示商品信息及金额,然后消费扣除卡内金额。
)
2图书管理系统模块(输入学号查询学生信息及此学生已借图书,再输入图书号显示图书信息,然后借阅存储刚刚被借的图书。
)
3.圈存管理系统模块(输入学号查询此学生的信息,再输入要圈存的金额,圈存成功。
)
1.1问题描述
在做课题时像做界面连数据库我们都没学过,需要我们自己去查资料。
在实现时就会遇到许多的问题。
(1)程序只能录入,不能再追加。
(2)数据库连接不能实现。
(3)在写程序的时候总是在链表处出错,因为弄不清到底知道那儿。
1.2技术分析
(1)要求利用面向对象的方法以及Java的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)功能用菜单实现(添加、查找、删除等)
(4)数据的输入输出可根据用户选择,从文件或键盘输入。
第2章数据库分析与设计
2.1E-R图
图2—1.1
2.2表设计
表2—2.1一卡通数据表
序号
数据项
类型
长度
1
卡号Cno
String
12
2
学号Csno
String
12
3
姓名Cname
String
20
4
余额Cmoney
Float
6
5
上次充值Clast
Float
6
表2—2.2图书数据表
序号
数据项
类型
长度
1
书号Bno
String
20
2
书名Bname
String
20
3
作者Bauthor
String
20
4
出版社Bchu
String
20
表2—2.3商品数据表
序号
数据项
类型
长度
1
商品号Gno
String
20
2
商品名Gname
String
20
3
价格Gprice
Float
6
表2—2.4银行卡数据表
序号
数据项
类型
长度
1
卡号Bkno
String
20
2
余额Bkmoney
Float
8
3
转账金额Bkmove
Flota
6
第3章实现
3.1消费系统模块
消费系统模块执行的是学生进行消费时的流程情况,通过消费系统模块可以直观的观察到学生本次的消费,扣费情况,并将最终数据存放于数据库中
3.1.1流程图
图3-1消费模块流程图
3.1.2界面及代码
图3-2
这是一卡通系统登录的主界面。
packagecons;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
publicclassfindextendsJFrameimplementsActionListener{
privatestaticfinalString[][]String=null;
publicJTextFieldId1,Id,name,remain,class1,money;
StringId2;
JButtonb1,b2,b3;//定义三个按钮b1、b2、b3
Stringname1,remain1,class2,money1;//定义四个字符串
图3-3
publicfind(){
Containerc=this.getContentPane();
c.setLayout(newGridLayout(3,1));//创建布局管理器,指定行列数
JPanelcenter=newJPanel(newGridLayout(5,2));
JPanellow=newJPanel(newFlowLayout());
JLabellabel1=newJLabel("消费服务信息",SwingConstants.CENTER);
label1.setFont(newFont("TRUE",Font.TRUETYPE_FONT,25));//设置组件的字体
c.add(label1);//将label1追加到c中
Id1=newJTextField();
Id=newJTextField();
name=newJTextField();
remain=newJTextField();
class1=newJTextField();
center.add(newJLabel("请输入卡号",SwingConstants.CENTER));//将信息添加到模板的中间
center.add(Id1);
center.add(newJLabel("学号",SwingConstants.CENTER));
center.add(Id);
center.add(newJLabel("姓名",SwingConstants.CENTER));
center.add(name);
center.add(newJLabel("余额",SwingConstants.CENTER));
center.add(remain);
center.add(newJLabel("班级",SwingConstants.CENTER));
center.add(class1);
c.add(center);
b1=newJButton("消费");//定义消费按钮
b2=newJButton("确定");//定义确定按钮
low.add(b1);
low.add(b2);
c.add(low);
b1.addActionListener(this);
b2.addActionListener(this);
this.setBounds(200,200,600,400);
this.setVisible(true);//显示框架给用户
}
图3-4
这是消费系统的登录界面,在本界面中需输入学生的卡号,而卡号是在数据库已经有所存取的。
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
gconsc=newgcons();
}
if(e.getSource()==b2){
addFI();
//System.exit(0);
}
}
publicvoidaddFI(){
String[]s=newString[5];
Id2=Id1.getText();
/*if(name1.length()==0||remain1.length()==0)
JOptionPane.showMessageDialog(this,"请输入");//向用户展示出信息文本框
else*/try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:
mysql:
//localhost:
3306/hehe?
useUnicode=true&characterEncoding=utf-8";//数据库地址
Stringuser="root";
StringuserPwd="";
Connectioncon=DriverManager.getConnection(url,user,userPwd);
if(!
con.isClosed())
System.out.println("连接数据库成功!
");
Statementstatement=con.createStatement();
//Stringsql="selectId,name,remainfromcreditwhereId=20110709";//从credit中查询ID是20110709的学生的基本信息
Stringsql="selectId1,Id,name,remain,class1fromcreditwhereId1="+Id2;
System.out.println(sql);
ResultSetrs=statement.executeQuery(sql);
//System.out.println(rs);
while(rs.next()){
s[0]=rs.getString
(1);
s[1]=rs.getString
(2);
s[2]=rs.getString(3);
s[3]=rs.getString(4);
s[4]=rs.getString(5);
//System.out.println(s[0]);
Id1.setText(s[0]);
Id.setText(s[1]);
name.setText(s[2]);
remain.setText(s[3]);
class1.setText(s[4]);
}
}catch(SQLExceptionee){
System.out.println(ee);
}catch(ClassNotFoundExceptionee){
System.out.println(ee);
}
//String[]s=null;
//returns;
}
图3-5
输入商品序号将出现商品和商品的价格,输入学号后点击消费。
publicstaticvoidmain(String[]args){
newfind();
}
}
packagecons;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.sql.*;
publicclassgconsextendsJFrameimplementsActionListener{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privatestaticfinalStringInterger=null;
publicJTextFieldid,money,Gid,Gname,name,price;
JButtonb1,b2,b3;//定义三个按钮b1、b2、b3
Stringname1;
intprice1;
intid1;
Strings;
publicgcons(){
Containerc=this.getContentPane();
c.setLayout(newGridLayout(3,1));//将排列顺序定义为三行一列
JPanelcenter=newJPanel(newGridLayout(4,2));
JPanellow=newJPanel(newFlowLayout());
JLabellabel1=newJLabel("消费服务信息",SwingConstants.CENTER);//将信息在框架中居中
label1.setFont(newFont("TRUE",Font.TRUETYPE_FONT,25));
c.add(label1);
Gid=newJTextField();
Gname=newJTextField();
money=newJTextField();
id=newJTextField();
center.add(newJLabel("商品序号",SwingConstants.CENTER));
center.add(Gid);
center.add(newJLabel("商品名称",SwingConstants.CENTER));
center.add(Gname);
center.add(newJLabel("商品价格",SwingConstants.CENTER));
center.add(money);
center.add(newJLabel("学号",SwingConstants.CENTER));
center.add(id);
c.add(center);
b1=newJButton("消费");//定义按钮的信息数据
b2=newJButton("确定");
b3=newJButton("退出");
low.add(b1);
low.add(b2);
low.add(b3);
c.add(low);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
this.setBounds(200,200,600,400);//设置组件的字体
this.setVisible(true);//组件能够可见
}
图3-6
点击消费后,若卡上金额多于商品价格将会提示消费成功,并从卡上扣除相应的金额。
若卡上的金额小于商品价格将提示消费失败,请充值。
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==b1){
add();
}
if(e.getSource()==b2){
addFI();
}
if(e.getSource()==b3){
this.dispose();
}
}
privatevoidaddFI(){
id1=Integer.parseInt(Gid.getText());
name1=Gname.getText();
//price1=money.getText();
price1=Integer.parseInt(Gid.getText());
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:
mysql:
//localhost:
3306/hehe?
useUnicode=true&characterEncoding=utf-8";
Stringuser="root";
StringuserPwd="";
Connectioncon=DriverManager.getConnection(url,user,userPwd);
if(!
con.isClosed())
System.out.println("连接数据库成功!
");
Statementstatement=con.createStatement();
Stringsql="selectGid,Gname,moneyfromgoods1whereGid="+id1;
System.out.println(sql);
ResultSetrs=statement.executeQuery(sql);
while(rs.next()){
String[]s=newString[10];
s[0]=rs.getString
(1);
s[1]=rs.getString
(2);
s[2]=rs.getString(3);
//System.out.println(s[0]);
Gid.setText(s[0]);
Gname.setText(s[1]);
money.setText(s[2]);
}
}
catch(SQLExceptionee){//与哪一个匹配就输出哪一个
System.out.println(ee);
}
catch(ClassNotFoundExceptioneee)
{
System.out.println(eee);
}
}
privatevoidadd(){
intid2;
id2=Integer.parseInt(id.getText());//将字符串型转化成整型
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:
mysql:
//localhost:
3306/hehe?
useUnicode=true&characterEncoding=utf-8";//数据库的地址
StringuserName="root";
StringuserPwd="";
Connectioncn=DriverManager.getConnection(url,userName,
userPwd);
Stringstr="INSERtINTOchongvalue(?
?
)";
System.out.println(str);
PreparedStatementps=cn.prepareStatement(str);
ps.setInt(1,price1);
ps.setInt(2,id2);
ps.executeUpdate();//进行更新
cn.close();
//Stringsql="selectId1,Id,name,remain,class1fromcreditwhereId1="+Id2;
Connectioncn1=DriverManager.getConnection(url,userName,
userPwd);
Stringstr1="UPDATEcreditSETremain=remain-?
whereid=?
";
System
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 校园一卡通系统 胥东东 杜鹏程 闫欢欢 肖旋 校园 一卡通 系统 东东 鹏程
![提示](https://static.bdocx.com/images/bang_tan.gif)