版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、校園卡掌上管理系統(tǒng) -編碼與測試報告 制作人: 曹 靜 崔 文 傅小江 李國明1、編碼1.1部分代碼數(shù)據(jù)庫實施階段任務(1)建立數(shù)據(jù)庫(校園卡管理系統(tǒng))create database campuscard;建立數(shù)據(jù)表1) 用戶信息表的建立 Create table tb_admin (Id int(10) not null primary key, username varchar(32) not null, password varchar(32) not null,type smallint(1) not null,createdate date not null ); 2) 校園卡信息表
2、的建立 create table tb_card ( Id int(10) not null primary key, Stuid varchar(10) not null,cardid varchar(13) not null, password varchar(32) not null,balance double(5) not null,status int(1) not null,createdate date not null );3) 消費信息表的建立 Create table tb_consumption (Id int(10) not null primary key, car
3、did varchar(13) not null, money doublae(5) not null,address varchar(32) not null,createdate date not null );4) 轉賬信息表的建立 Create table tb_recharge (Id int(10) not null primary key, cardid varchar(13) not null, money doublae(5) not null,createdate date not null );5) 學生信息表的建立 Create table tb_student (Id
4、 int(10) not null primary key,Stuid varchar(10) not null,Name varchar(32) not null, cardid varchar(18) not null,bankcard varchar(19) not null,createdate date not null );實體類CardUsers類源代碼package userGUI;public class CardUsers public String UserID;/用戶編號 public String UserName;/用戶名; public String UserSe
5、x; public String UserPwd; public String UserType; public CardUsers(String UserID) this.UserID = UserID; public CardUsers(String UserID, String UserName, String UserSex, String UserPwd, String UserType) throws PwdShortException if(UserPwd.length()<6) throw (new PwdShortException(); else this.UserI
6、D = UserID; this.UserName = UserName; this.UserSex = UserSex; this.UserPwd = UserPwd; this.UserType = UserType; public String getUserID() return UserID; public void setUserID(String UserID) this.UserID = UserID; public String getUserName() return UserName; public void setUserName(String UserName) th
7、is.UserName = UserName; public String getUserPwd() return UserPwd; public void setUserPwd(String UserPwd) throws PwdShortException if(UserPwd.length()<6) throw(new PwdShortException(); else this.UserPwd = UserPwd; public String getUserSdx() return UserSex; public void setUserSdx(String UserSdx) t
8、his.UserSex = UserSex; public String getUserType() return UserType; public void setUserType(String UserType) this.UserType = UserType; Override public String toString() return "用戶編號=" + UserID + ", 姓名=" + UserName + ", 性別=" + UserSex + ", 密碼=" + UserPwd + &quo
9、t;, 身份=" + UserType ; CardUseRecords類源代碼package operationGUI;public class CardUseRecords private long CardNo; private String UseItems; private double money; private String UseTime; public CardUseRecords(long cardNo, String item, double money, String time) this.CardNo = cardNo; this.UseItems = i
10、tem; this.money = money; this.UseTime = time; public long getCardNo() return CardNo; public String getUseItems() return UseItems; public String getUseTime() return UseTime; public double getMoney() return money; Override public String toString() return "卡號=" + CardNo + ", 名目=" +
11、UseItems + ", 費用=" + money + ", 時間=" + UseTime; SchoolCard類源代碼package cardGUI;import javax.swing.JOptionPane;public class SchoolCard public int cardNo;/卡號 static int NextCardNo=111003200;/起始卡號 private String UserID;/卡所屬的用戶編號 private String password; private double balance; privat
12、e boolean isUsing; public SchoolCard() this.cardNo=NextCardNo+; public SchoolCard(String UserID, String password) this(); this.UserID = UserID; this.password = password; this.balance=0; this.isUsing=true; public static void setNextCardNo(int newStartNo) /設置起始卡號 SchoolCard.NextCardNo = newStartNo; pu
13、blic int getCardNo() return cardNo; public String getUserID() /差卡的用戶號 return UserID; public void setUserID(String uid) /設置卡的用戶號 this.UserID = uid; public double getBalance() /查詢余額 return balance; public String getPassword() return password; public void setPassword(String upwd) throws UseStateExcepti
14、on if(check() this.password = upwd; else throw (new UseStateException(); public void deposit(double money) throws UseStateException if(check() this.balance=balance+money; else throw (new UseStateException(); public void consume(double money) throws UseStateException if(check() if(this.balance>=mo
15、ney) this.balance=balance-money; else JOptionPane.showMessageDialog(null,"卡上余額不夠消費,請先充值!"); else throw (new UseStateException(); public boolean getCardState() return isUsing; public void setState(boolean state) this.isUsing = state; public boolean check() if(this.isUsing) return true; else
16、 return false; Override public String toString() return "卡號=" + cardNo + ", 用戶號=" + UserID + ", 密碼=" + password + ", 余額=" + balance + ", 是否可用=" + isUsing ; 實現(xiàn)數(shù)據(jù)庫連接 package operationGUI;import java.sql.*;public class DBAccess private Connection conn=n
17、ull; private Statement stmt=null; public ResultSet rs=null; private PreparedStatement prestmt=null; private String driver="sun.jdbc.odbc.JdbcOdbcDriver" private String url="jdbc:odbc:CardConn"/自定義數(shù)據(jù)源名 private String user="jane" private String pwd="123456" publ
18、ic String notes="數(shù)據(jù)庫操作提示" /實例方法:實現(xiàn)數(shù)據(jù)庫連接 public void dbconn() try Class.forName(driver); conn=DriverManager.getConnection(url, user, pwd); stmt=conn.createStatement(); catch (ClassNotFoundException ec) System.out.println(ec); catch (SQLException es) System.out.println(es); catch (Exception
19、ex) System.out.println(ex); /實現(xiàn)數(shù)據(jù)庫查詢并返回查詢記錄 public ResultSet dbSelect(String selString) try rs=stmt.executeQuery(selString); catch (SQLException es) System.out.println(es); notes="數(shù)據(jù)庫查詢出現(xiàn)異常" return rs; /數(shù)據(jù)庫更新 public String dbUpdate(String updateString) try prestmt=conn.prepareStatement(upd
20、ateString); prestmt.executeUpdate(); notes="記錄更新成功" catch (SQLException es) System.out.println(es); notes="數(shù)據(jù)庫更新出現(xiàn)異常" return notes; /插入數(shù)據(jù) public String dbinsert(String insertString) try prestmt=conn.prepareStatement(insertString); prestmt.executeUpdate(); notes="插入記錄成功"
21、 catch (SQLException es) System.out.println(es); notes="數(shù)據(jù)庫插入出現(xiàn)異常" return notes; /刪除 public String dbDelete(String delString) try prestmt=conn.prepareStatement(delString); prestmt.executeUpdate(); notes="刪除成功" catch (SQLException es) System.out.println(es); notes="數(shù)據(jù)庫刪除現(xiàn)異常&q
22、uot; return notes; /關閉數(shù)據(jù)庫 public void dbclose() if(conn!=null) try rs.close(); stmt.close(); conn.close(); catch (Exception e) 1.2 系統(tǒng)主界面的截圖。校園卡管理界面校園卡管理主要功能是對校園卡信息進行查詢,開戶銷戶等功能的操作。圖1登錄界面1.3系統(tǒng)部分功能界面的截圖。圖2 個人信息查詢界面圖3 修改密碼界面圖4 開戶界面圖5銷戶界面圖6 丟失界面圖7 補辦界面圖8 校園卡信息查詢界面2、測試2.1測試分析用戶登錄界面/確定按鈕代碼private void
23、 jBtnOKActionPerformed(java.awt.event.ActionEvent evt) if(jRadioButtonp.isSelected() chtype="普通用戶" else chtype="管理員" db.dbconn(); sql="select * from CardUsers" db.dbSelect(sql); try while(db.rs.next() System.out.println("b");/如果用戶號,密碼,身份相符 if(txtUID.getText().
24、equals(db.rs.getString("UserID") && String.valueOf(txtPWD.getPassword().equals(db.rs.getString("UserPwd") && chtype.equals(db.rs.getString("UserType") /顯示用戶名,并新建當前用戶對象,存儲有關信息。 currentuser=new CardUsers(txtUID.getText(); currentuser.UserPwd= String.valueO
25、f(txtPWD.getPassword(); currentuser.UserID=txtUID.getText(); currentuser.UserType=chtype; currentuser.UserName=db.rs.getString("UserName"); jlbnote.setText("歡迎你:"+currentuser.UserName+"!");System.out.println("b"); new SchoolCardMainGUI(currentuser).setVisible(
26、true);System.out.println("c");/主界面 this.dispose(); db.dbclose(); else jlbnote.setText("賬號,密碼,身份不符,請檢查輸入信息是否正確!"); catch (SQLException e) System.err.print(e.toString(); db.dbclose(); 主界面用戶信息錄入界面/添加用戶代碼 private void jbtnAddActionPerformed(java.awt.event.ActionEvent evt) try Connect
27、ion con=DriverManager.getConnection("jdbc:odbc:CardConn","jane","123456"); java.sql.Statement sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=sql.executeQuery("SELECT * FROM CardUsers"); while(rs.next() if(rs.g
28、etString(1).equals(jtxtUserID.getText() break; if(rs.isAfterLast()=false) JOptionPane.showMessageDialog(this,"已經(jīng)添加此用戶!"); else m.removeAllElements(); CheckValiddate ck=new CheckValiddate(jtxtUserID); if(ck.check(0) String uid=jtxtUserID.getText(); String uname=jtxtUserName.getText(); Strin
29、g upwd=jtxtPwd.getText(); try user=new CardUsers(uid,uname,usex,upwd,utype); /userlist.add(user); m=new DefaultListModel(); catch(PwdShortException e) userlist.add(user); for(int j=0;j<userlist.size();j+) m.addElement(userlist.get(j); jlistUser.setModel(m); /*數(shù)據(jù)庫操作* sqls="insert into CardUse
30、rs values ('"+uid+"','"+uname+"','"+usex+"','"+upwd+"','"+utype+"')" dbo.DBoperation(sqls, 2); catch (SQLException ex) Logger.getLogger(DBUserEditnew.class.getName().log(Level.SEVERE, null, ex); 修改密碼/確定按鈕響
31、應事件代碼 private void jbtnOKActionPerformed(java.awt.event.ActionEvent evt) CheckValiddate ck=new CheckValiddate(txtPwdnew); if(ck.check(0) && txtPwdnew.getText().length()>=6) if(txtPwdnew.getText().equals(txtPwdNA.getText() db.dbconn(); String sql="update CardUsers set UserPwd='&qu
32、ot;+txtPwdnew.getText()+"'where UserID='"+currentuser.UserID+"'" db.dbUpdate(sql); db.dbclose(); jlbnote.setText("修改密碼成功!"); / JOptionPane.showMessageDialog(this, "chenggong", "tishi",JOptionPane.WARNING_MESSAGE); else jlbnote.setText(&qu
33、ot;兩次輸入密碼不一致!"); 2.2黑盒測試void mima()char a7,b="533159"int i,j;for (j=1;j<=3;j+)/for循環(huán)來控制密碼登陸次數(shù),次數(shù)為三次printf("tt請輸入密碼:");for (i=0;i<6;i+)ai=getch();if(ai=8) i=i-2;printf("b b");elseif (ai=13)break;printf("*");ai='0'printf("n");if (strcmp(a,b)=0)/比較兩個字符串的大小,兩個字符串相同時返回0.printf("密碼正確n");break;elseprintf("tt輸入密碼錯誤!請重新輸入:n");本程序代碼功能是
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工廠車間現(xiàn)場5培訓
- 核安全風險辨識
- 數(shù)控車削加工技術 課件 項目七 端面切削工藝及編程
- (提升卷)第一單元 圓和扇形(單元測試)數(shù)學六年級上冊單元速記巧練系列(冀教版)學生版
- 福建省泉州市南安市2024-2025學年四年級上學期期中考試數(shù)學試題 - 副本
- T-XYTX 002-2024 黃桃標準化生產(chǎn)與基地建設
- 河北省衡水市武強中學2024-2025學年高三年級上學期期中考試英語試題 含解析
- 高中語文第3單元文藝評論和隨筆第9課說“木葉”課件新人教版必修
- 棄土場施工方案
- Windows Server網(wǎng)絡管理項目教程(Windows Server 2022)(微課版)10.5 拓展案例2 NAT端口映射
- 《人工智能基礎》課件-AI的前世今生:她從哪里來
- 3.2 代數(shù)式的值(第1課時)(課件)-2024-2025學年七年級數(shù)學上冊(人教版2024)
- 血液透析高鉀血癥的護理查房
- ISO28000:2022供應鏈安全管理體系
- 新北師大單元分析二上第六單元《測量》單元教材解讀
- 2023陜西中考英語試卷分析
- 2022-2023學年湖南省長沙市雅禮教育集團八年級(上)期中數(shù)學試卷(含解析)
- 城鄉(xiāng)規(guī)劃基本術語標準 - 中國城市規(guī)劃行業(yè)信息網(wǎng)
- 淺談柔韌訓練在中學生體能訓練中的重要性(張磊
- 工程監(jiān)理工作流程圖大全WORD完整版
- 實驗一蒸餾工業(yè)乙醇
評論
0/150
提交評論