校园卡掌上管理系统编码与测试报告第十组.docx
- 文档编号:27069120
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:27
- 大小:756.56KB
校园卡掌上管理系统编码与测试报告第十组.docx
《校园卡掌上管理系统编码与测试报告第十组.docx》由会员分享,可在线阅读,更多相关《校园卡掌上管理系统编码与测试报告第十组.docx(27页珍藏版)》请在冰豆网上搜索。
校园卡掌上管理系统编码与测试报告第十组
校园卡掌上管理系统
----编码与测试报告
制作人:
曹静
崔文
傅小江
李国明
1、编码
1.1部分代码
1.1.1数据库实施阶段任务
(1)建立数据库(校园卡管理系统)
createdatabasecampuscard;
建立数据表
1)用户信息表的建立
Createtabletb_admin
(
Idint(10)notnullprimarykey,
usernamevarchar(32)notnull,
passwordvarchar(32)notnull,
typesmallint
(1)notnull,
createdatedatenotnull
);
2)校园卡信息表的建立
createtabletb_card
(
Idint(10)notnullprimarykey,
Stuidvarchar(10)notnull,
cardidvarchar(13)notnull,
passwordvarchar(32)notnull,
balancedouble(5)notnull,
statusint
(1)notnull,
createdatedatenotnull
);
3)消费信息表的建立
Createtabletb_consumption
(
Idint(10)notnullprimarykey,
cardidvarchar(13)notnull,
moneydoublae(5)notnull,
addressvarchar(32)notnull,
createdatedatenotnull
);
4)转账信息表的建立
Createtabletb_recharge
(
Idint(10)notnullprimarykey,
cardidvarchar(13)notnull,
moneydoublae(5)notnull,
createdatedatenotnull
);
5)学生信息表的建立
Createtabletb_student
(
Idint(10)notnullprimarykey,
Stuidvarchar(10)notnull,
Namevarchar(32)notnull,
cardidvarchar(18)notnull,
bankcardvarchar(19)notnull,
createdatedatenotnull
);
1.1.2实体类
CardUsers类源代码
packageuserGUI;
publicclassCardUsers{
publicStringUserID;//用户编号
publicStringUserName;//用户名;
publicStringUserSex;
publicStringUserPwd;
publicStringUserType;
publicCardUsers(StringUserID){
this.UserID=UserID;
}
publicCardUsers(StringUserID,StringUserName,StringUserSex,StringUserPwd,StringUserType)
throwsPwdShortException{
if(UserPwd.length()<6)
throw(newPwdShortException());
else{
this.UserID=UserID;
this.UserName=UserName;
this.UserSex=UserSex;
this.UserPwd=UserPwd;
this.UserType=UserType;
}
}
publicStringgetUserID(){
returnUserID;
}
publicvoidsetUserID(StringUserID){
this.UserID=UserID;
}
publicStringgetUserName(){
returnUserName;
}
publicvoidsetUserName(StringUserName){
this.UserName=UserName;
}
publicStringgetUserPwd(){
returnUserPwd;
}
publicvoidsetUserPwd(StringUserPwd)throwsPwdShortException{
if(UserPwd.length()<6)
throw(newPwdShortException());
else
this.UserPwd=UserPwd;
}
publicStringgetUserSdx(){
returnUserSex;
}
publicvoidsetUserSdx(StringUserSdx){
this.UserSex=UserSex;
}
publicStringgetUserType(){
returnUserType;
}
publicvoidsetUserType(StringUserType){
this.UserType=UserType;
}
@Override
publicStringtoString(){
return"用户编号="+UserID+",姓名="+UserName+",性别="+UserSex+",密码="+UserPwd+",身份="+UserType;
}
}
CardUseRecords类源代码
packageoperationGUI;
publicclassCardUseRecords{
privatelongCardNo;
privateStringUseItems;
privatedoublemoney;
privateStringUseTime;
publicCardUseRecords(longcardNo,Stringitem,doublemoney,Stringtime){
this.CardNo=cardNo;
this.UseItems=item;
this.money=money;
this.UseTime=time;
}
publiclonggetCardNo(){
returnCardNo;
}
publicStringgetUseItems(){
returnUseItems;
}
publicStringgetUseTime(){
returnUseTime;
}
publicdoublegetMoney(){
returnmoney;
}
@Override
publicStringtoString(){
return"卡号="+CardNo+",名目="+UseItems+",费用="+money+",时间="+UseTime;
}
}
SchoolCard类源代码
packagecardGUI;
importjavax.swing.JOptionPane;
publicclassSchoolCard{
publicintcardNo;//卡号
staticintNextCardNo=111003200;//起始卡号
privateStringUserID;//卡所属的用户编号
privateStringpassword;
privatedoublebalance;
privatebooleanisUsing;
publicSchoolCard(){
this.cardNo=NextCardNo++;
}
publicSchoolCard(StringUserID,Stringpassword){
this();
this.UserID=UserID;
this.password=password;
this.balance=0;
this.isUsing=true;
}
publicstaticvoidsetNextCardNo(intnewStartNo){//设置起始卡号
SchoolCard.NextCardNo=newStartNo;
}
publicintgetCardNo(){
returncardNo;
}
publicStringgetUserID(){//差卡的用户号
returnUserID;
}
publicvoidsetUserID(Stringuid){//设置卡的用户号
this.UserID=uid;
}
publicdoublegetBalance(){//查询余额
returnbalance;
}
publicStringgetPassword(){
returnpassword;
}
publicvoidsetPassword(Stringupwd)throwsUseStateException{
if(check())
this.password=upwd;
else
throw(newUseStateException());
}
publicvoiddeposit(doublemoney)throwsUseStateException{
if(check())
this.balance=balance+money;
else
throw(newUseStateException());
}
publicvoidconsume(doublemoney)throwsUseStateException{
if(check()){
if(this.balance>=money)
this.balance=balance-money;
else
JOptionPane.showMessageDialog(null,"卡上余额不够消费,请先充值!
");
}
else
throw(newUseStateException());
}
publicbooleangetCardState(){
returnisUsing;
}
publicvoidsetState(booleanstate){
this.isUsing=state;
}
publicbooleancheck(){
if(this.isUsing)
returntrue;
else
returnfalse;
}
@Override
publicStringtoString(){
return"卡号="+cardNo+",用户号="+UserID+",密码="+password+",余额="+balance+",是否可用="+isUsing;
}
1.1.3实现数据库连接
packageoperationGUI;
importjava.sql.*;
publicclassDBAccess{
privateConnectionconn=null;
privateStatementstmt=null;
publicResultSetrs=null;
privatePreparedStatementprestmt=null;
privateStringdriver="sun.jdbc.odbc.JdbcOdbcDriver";
privateStringurl="jdbc:
odbc:
CardConn";//自定义数据源名
privateStringuser="jane";
privateStringpwd="123456";
publicStringnotes="数据库操作提示";
//实例方法:
实现数据库连接
publicvoiddbconn(){
try{
Class.forName(driver);
conn=DriverManager.getConnection(url,user,pwd);
stmt=conn.createStatement();
}
catch(ClassNotFoundExceptionec){
System.out.println(ec);
}
catch(SQLExceptiones){
System.out.println(es);
}
catch(Exceptionex){
System.out.println(ex);
}
}
//实现数据库查询并返回查询记录
publicResultSetdbSelect(StringselString){
try{
rs=stmt.executeQuery(selString);
}
catch(SQLExceptiones)
{
System.out.println(es);
notes="数据库查询出现异常";
}
returnrs;
}
//数据库更新
publicStringdbUpdate(StringupdateString){
try{
prestmt=conn.prepareStatement(updateString);
prestmt.executeUpdate();
notes="记录更新成功";
}
catch(SQLExceptiones){
System.out.println(es);
notes="数据库更新出现异常";
}
returnnotes;
}
//插入数据
publicStringdbinsert(StringinsertString){
try{
prestmt=conn.prepareStatement(insertString);
prestmt.executeUpdate();
notes="插入记录成功";
}
catch(SQLExceptiones){
System.out.println(es);
notes="数据库插入出现异常";
}
returnnotes;
}
//删除
publicStringdbDelete(StringdelString){
try{
prestmt=conn.prepareStatement(delString);
prestmt.executeUpdate();
notes="删除成功";
}
catch(SQLExceptiones){
System.out.println(es);
notes="数据库删除现异常";
}
returnnotes;
}
//关闭数据库
publicvoiddbclose(){
if(conn!
=null){
try{
rs.close();
stmt.close();
conn.close();
}
catch(Exceptione){}
}
}
}
1.2 系统主界面的截图。
校园卡管理界面
校园卡管理主要功能是对校园卡信息进行查询,开户销户等功能的操作。
图1登录界面
1.3系统部分功能界面的截图。
图2个人信息查询界面
图3修改密码界面
图4开户界面
图5销户界面
图6丢失界面
图7补办界面
图8校园卡信息查询界面
2、测试
2.1测试分析
用户登录界面
//确定按钮代码
privatevoidjBtnOKActionPerformed(java.awt.event.ActionEventevt){
if(jRadioButtonp.isSelected())
chtype="普通用户";
else
chtype="管理员";
db.dbconn();
sql="select*fromCardUsers";
db.dbSelect(sql);
try{while(db.rs.next()){System.out.println("b");//如果用户号,密码,身份相符
if(txtUID.getText().equals(db.rs.getString("UserID"))
&&String.valueOf(txtPWD.getPassword()).equals(db.rs.getString("UserPwd"))
&&chtype.equals(db.rs.getString("UserType"))){
//显示用户名,并新建当前用户对象,存储有关信息。
currentuser=newCardUsers(txtUID.getText());
currentuser.UserPwd=String.valueOf(txtPWD.getPassword());
currentuser.UserID=txtUID.getText();
currentuser.UserType=chtype;
currentuser.UserName=db.rs.getString("UserName");
jlbnote.setText("欢迎你:
"+currentuser.UserName+"!
");System.out.println("b");
newSchoolCardMainGUI(currentuser).setVisible(true);System.out.println("c");//主界面
this.dispose();
db.dbclose();
}
else
jlbnote.setText("账号,密码,身份不符,请检查输入信息是否正确!
");
}
}
catch(SQLExceptione)
{
System.err.print(e.toString());
}
db.dbclose();
}
主界面
用户信息录入界面
//添加用户代码
privatevoidjbtnAddActionPerformed(java.awt.event.ActionEventevt){
try{
Connectioncon=DriverManager.getConnection("jdbc:
odbc:
CardConn","jane","123456");
java.sql.Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSetrs=sql.executeQuery("SELECT*FROMCardUsers");
while(rs.next())
{
if(rs.getString
(1).equals(jtxtUserID.getText()))
{
break;
}
}
if(rs.isAfterLast()==false)
{
JOptionPane.showMessageDialog(this,"已经添加此用户!
");
}
else{
m.removeAllElements();
CheckValiddateck=newCheckValiddate(jtxtUserID);
if(ck.check(0)){
Stringuid=jtxtUserID.getText();
Stringuname=jtxtUserName.getText();
Stringupwd=jtxtPwd.getText();
try{
user=newCardUsers(uid,uname,usex,upwd,utype);
//userlist.add(user);
m=newDefaultListModel();
}
catch(PwdShortExceptione){}
userlist.add(user);
for(intj=0;j m.addElement(userlist.get(j)); } jlistUser.setModel(m); //*****数据库操作**** sqls="insertintoCardUsersvalues('"+uid+"','"+uname+"','"+usex+"','"+upwd+"','"+utype+"')"; dbo.DBoperation(sqls,2); } } }catch(SQLExceptionex){ Logger.getLogger(DBUserEditnew.class.getName()).log(Level.SEVERE,null,ex); } } 修改密码 //确定按钮响应事件代码 privatevoidjbtnOKActionPerformed(java.awt.event.ActionEventevt){ CheckValiddateck=newCheckValiddate(txtPwdnew); if(ck.check(0)&&txtPwdnew.getText().length()>=6){ if(txtPwdnew.getText().equals(txtPwdNA.getText())){ db.dbconn(); String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 校园卡 掌上 管理 系统 编码 测试报告 第十