第一篇:面向?qū)ο蟪绦蛟O(shè)計(jì)—Java+ATM銀行系統(tǒng)
南華大學(xué)
計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
課程設(shè)計(jì)報(bào)告
(2008 ~ 2009學(xué)年度
第一
學(xué)期)
課程名稱 面向?qū)ο蟪绦蛟O(shè)計(jì)—Java 課程設(shè)計(jì)名稱
組長(zhǎng) 組員 組員
包偉輝 李
陽(yáng) 包月濤
學(xué)號(hào) 學(xué)號(hào) 學(xué)號(hào)
20064440147 20064440119 20064440146 計(jì)算機(jī)061班
譚敏生
ATM銀行系統(tǒng)
專業(yè) 計(jì)算機(jī)專業(yè) 班級(jí) 地點(diǎn)
宏辰7-103 教師
目 錄
一、系統(tǒng)分析.................................................................................................................3 1.1 系統(tǒng)概述................................................3 1.2.系統(tǒng)需要解決的主要問(wèn)題..................................3 1.3.系統(tǒng)應(yīng)具備的基本功能....................................3 1.4.系統(tǒng)設(shè)計(jì)開(kāi)發(fā)工具與環(huán)境..................................4
二、系統(tǒng)設(shè)計(jì).................................................................................................................5 2.1.概要設(shè)計(jì).................................................5 2.1.1 設(shè)計(jì)思想...............................................6 2.1.2 系統(tǒng)功能模塊劃分........................................6 2.1.3 ATM系統(tǒng)各模塊圖........................................6 2.1.4 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)........................................7 2.2詳細(xì)設(shè)計(jì).................................................8 2.2.1 管理員窗體模塊組成......................................8 2.2.2 管理員模塊窗體界面及相應(yīng)代碼.............................9 2.2.3 用戶窗體模塊組成.......................................17 2.2.4 用戶模塊窗體界面及相應(yīng)代碼..............................18
三、設(shè)計(jì)小結(jié)................................................23
四、參考文獻(xiàn):..............................................23
/ 23
一、系統(tǒng)分析
在信息高速發(fā)展的當(dāng)今時(shí)代,ATM自動(dòng)取款機(jī)已在日常生活中普遍存在,ATM是Automatic Teller Machine的縮寫(xiě),意思是自動(dòng)柜員機(jī),因大部分用于取款,又稱自動(dòng)取款機(jī)。它是一種高度精密的機(jī)電一體化裝置,利用磁性代碼卡或智能卡實(shí)現(xiàn)金融交易的自助服務(wù),代替銀行柜臺(tái)人員的工作。可提取現(xiàn)金、查詢存款余額、進(jìn)行賬戶之間資金劃撥、余額查詢等工作;還可以進(jìn)行現(xiàn)金存款(實(shí)時(shí)入賬)、支票存款(國(guó)內(nèi)無(wú))、存折補(bǔ)登、中間業(yè)務(wù)等工作。持卡人可以使用信用卡或儲(chǔ)蓄卡,根據(jù)密碼辦理自動(dòng)取款、查詢余額、轉(zhuǎn)賬、現(xiàn)金存款,存折補(bǔ)登,購(gòu)買基金,更改密碼等業(yè)務(wù)。
要實(shí)現(xiàn)這樣一個(gè)系統(tǒng),首先應(yīng)該進(jìn)行需求分析,這樣才能令設(shè)計(jì)出的軟件滿足用戶的各項(xiàng)功能。下面就對(duì)在線考試系統(tǒng)的設(shè)計(jì)進(jìn)行需求分析
1.1系統(tǒng)概述
ATM系統(tǒng)分為前臺(tái)和后臺(tái),前臺(tái)用于用戶的登錄以實(shí)現(xiàn)用戶的取款、存款、轉(zhuǎn)賬、查詢、修改、取卡等功能;后臺(tái)用于管理員管理和維護(hù)用戶的信息實(shí)現(xiàn)的功能為開(kāi)戶、銷戶、查詢、修改用戶的各種信息。
本系統(tǒng)主要以JAVA為開(kāi)發(fā)平臺(tái),采用JAVA+ECLIPSE+ACCESS的開(kāi)發(fā)模式,ATM系統(tǒng)以數(shù)據(jù)庫(kù)為中心,由數(shù)據(jù)庫(kù)控制整個(gè)系統(tǒng)的運(yùn)作。
ATM取款系統(tǒng)的目的是在網(wǎng)絡(luò)上搭建一個(gè)管理員管理系統(tǒng)和用戶取款系統(tǒng),針對(duì)不同的功能進(jìn)行不同的操作。用戶要取款時(shí)只需到ATM自動(dòng)取款機(jī)上登錄就可進(jìn)行取款、存款、轉(zhuǎn)賬、查詢、修改、取卡等操作,而管理員可在柜臺(tái)前管理和維護(hù)用戶的各種信息。
1.2 系統(tǒng)需要解決的主要問(wèn)題
首先,因?yàn)锳TM取款機(jī)是面向特定的某些對(duì)象的,所以用戶到ATM取款機(jī)進(jìn)入系統(tǒng)操作時(shí)應(yīng)該進(jìn)行身份驗(yàn)證,用戶通過(guò)卡號(hào)驗(yàn)證進(jìn)入ATM取款機(jī)系統(tǒng)后,應(yīng)該能根據(jù)自己的需要進(jìn)行取款、存款、轉(zhuǎn)賬、查詢、修改、取卡等操作,對(duì)于每個(gè)用戶來(lái)說(shuō),ATM自動(dòng)取款機(jī)的功能都就是相同的,但個(gè)人需要操作并不相同。管理員進(jìn)入管理員系統(tǒng),可以查看和修改用戶的信息,管理員系統(tǒng)是基于網(wǎng)絡(luò)環(huán)境,卡號(hào)應(yīng)從服務(wù)器的數(shù)據(jù)庫(kù)隨機(jī)抽取生成的。另外,管理員系統(tǒng)還應(yīng)該對(duì)用戶實(shí)現(xiàn)開(kāi)戶、銷戶、查詢、修改等功能。
1.3 系統(tǒng)應(yīng)具備的基本功能
1.3.1 用戶基本功能
/ 23
用戶登錄:用戶可以用卡及密碼進(jìn)行登錄,登錄后用戶可以進(jìn)行必要的操作。用戶取款功能:用戶可以根據(jù)自己的需要進(jìn)行取款。用戶存款功能:用戶可以利用此功能存入相應(yīng)的金額。用戶查詢功能:用戶可以查詢余額。
用戶改密功能:用戶可以用此功能修改自己銀行卡的密碼。用戶取卡功能:用戶操作完可取卡退出。
1.3.2 管理員基本功能
開(kāi)戶:管理員可以用此功能為用戶辦理銀行卡。銷戶:管理員可取消用戶對(duì)銀行卡的使用權(quán)。查詢:管理員可查詢用戶的基本信息。修改:管理員可以修改用戶的基本信息。改密:管理員可進(jìn)行自行改密。
1.3.3 該系統(tǒng)的額外功能
用戶轉(zhuǎn)帳功能:用戶可以用這個(gè)功能進(jìn)行卡與卡之間的金額轉(zhuǎn)帳。管理員查看IP功能:管理員可查看當(dāng)前IP地址。打印功能:可以打印出各種交易記錄。
1.4 系統(tǒng)設(shè)計(jì)開(kāi)發(fā)工具與環(huán)境
1.4.1.開(kāi)發(fā)工具 Eclipse
1.4.2.開(kāi)發(fā)環(huán)境 ? ? ? ? ? 開(kāi)發(fā)語(yǔ)言:Java、J2SE 數(shù)據(jù)庫(kù):Access 操作系統(tǒng):Windows XP 客戶端:IE 6.0 開(kāi)發(fā)工具:Eclipse 硬件方面:
/ 23
處理器:Intel Pentium 166MX 或更高。
內(nèi)存:512M以上。硬盤空間:1GB以上。顯卡:SVGA顯示適配器 軟件方面:
操作系統(tǒng):Windows 98/ME/2000/XP
二、系統(tǒng)設(shè)計(jì)
2.1 概要設(shè)計(jì)
上圖為ATM銀行系統(tǒng)總模塊功能圖
/ 23
2.1.1 設(shè)計(jì)思想
ATM取款系統(tǒng)需要滿足來(lái)自兩個(gè)方面的需求,這兩個(gè)方面分別是管理員和用戶。用戶的需求是取款、存款、轉(zhuǎn)賬、查詢、修改、取卡等功能;管理人員的功能較為復(fù)雜,包括對(duì)用戶實(shí)現(xiàn)開(kāi)戶、銷戶、查詢、修改和維護(hù)用戶的各種信息。
用戶可以根據(jù)自己的銀行卡通過(guò)ATM機(jī)登錄到用戶系統(tǒng),登錄成功后可進(jìn)行六種操作,分別是取款、存款、轉(zhuǎn)賬、查詢、修改、取卡。不能查看他人的信息。這樣就可以保證其他用戶信息的保密性。
管理人員有對(duì)用戶實(shí)現(xiàn)開(kāi)戶、銷戶、查詢、修改和維護(hù)用戶的各種信息等記錄的權(quán)限,所以需對(duì)管理員登陸模塊進(jìn)行更多的考慮。
2.1.2 系統(tǒng)功能模塊劃分
一般可分為:
用戶模塊:包括取款模塊、存款模塊、轉(zhuǎn)賬模塊、查詢模塊、修改模塊、取卡模塊。
管理員模塊:包括文件模塊、系統(tǒng)管理模塊、操作模塊、關(guān)于模塊、交易記錄模塊。其中文件模塊包括:開(kāi)戶、銷戶。系統(tǒng)模塊包括:改密、注銷。操作模塊包括:查詢、修改。關(guān)于模塊包括:版本。交易模塊包括:打印。(各模塊功能圖:見(jiàn)P5 2.1)
2.1.3 ATM銀行系統(tǒng)各模塊圖
在概念設(shè)計(jì)階段中,設(shè)計(jì)人員從用戶的角度看待數(shù)據(jù)及處理要求和約束,產(chǎn)生一個(gè)反映用戶觀點(diǎn)的概念模式。然后再把概念模式轉(zhuǎn)換成邏輯模式。將概念設(shè)計(jì)從設(shè)計(jì)過(guò)程中獨(dú)立開(kāi)來(lái),使各階段的任務(wù)相對(duì)單一化,設(shè)計(jì)復(fù)雜程度大大降低,不受特定DBMS的限制。
各個(gè)E-R圖分析如下:
用戶系統(tǒng)E-R實(shí)圖
/ 23
管理員系統(tǒng)E-R實(shí)圖
2.1.4 數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)
由于概念設(shè)計(jì)的結(jié)果是ER圖,DBMS一般采用關(guān)系型(我們所使用的MS ACCESS就是關(guān)系型的DBMS),因此數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì)過(guò)程就是把ER圖轉(zhuǎn)化為關(guān)系模式的過(guò)程。由于關(guān)系模型所具有的優(yōu)點(diǎn),邏輯設(shè)計(jì)可以充分運(yùn)用關(guān)系數(shù)據(jù)庫(kù)規(guī)范化理論,使設(shè)計(jì)過(guò)程形式化地進(jìn)行。設(shè)計(jì)結(jié)果是一組關(guān)系模式的定義。1.數(shù)據(jù)字典
取款=卡號(hào)+密碼+取款金額。查詢=卡號(hào)+密碼+查詢余額。存款=卡號(hào)+密碼+存款金額。改密=卡號(hào)+密碼+舊密碼+新密碼。轉(zhuǎn)賬=卡號(hào)+密碼+收款人卡號(hào)。
開(kāi)戶=客戶編號(hào)+姓名+身份證+電話+地址+卡號(hào)+貨幣類型+存款類型+金額+密碼+余額+開(kāi)戶日期
銷戶=卡號(hào)
打印=交易日期+卡號(hào)+交易類型+交易金額 2.具體表——數(shù)據(jù)庫(kù)(Bank.mdb)
表一(管理員-admin)字段及內(nèi)容
/ 23
表二(用戶表-userInfo)字段及內(nèi)容
表三(卡號(hào)表-cardInfo)字段及內(nèi)容
表四(交易表-transInfo)字段及內(nèi)容
2.2詳細(xì)設(shè)計(jì)
2.2.1 管理員窗體模塊組成
/ 23
1.文件模塊
功能: 文件模塊包括開(kāi)戶和銷戶兩個(gè)小模塊,開(kāi)戶可以為用戶辦理銀行卡,銷戶可以取消用戶的卡號(hào)。
2.系統(tǒng)管理模塊
功能:系統(tǒng)管理模塊包括改密和注銷兩個(gè)小模塊,通過(guò)改密功能,管理員可自行修改密碼,注銷可返回到登錄界。
3.操作模塊
功能:操作模塊包括查詢、修改和查看IP三個(gè)小模塊,其中,查詢中還包括查詢用戶信息和查詢卡信息模塊;修改中還包括修改用戶信息和修改卡信息模塊;查看IP就是查看當(dāng)前工作的IP。
4. 交易記錄模塊
功能:交易記錄模塊包括打印小模塊,可以打印出用戶各種交易情況。
2.2.2 管理員模塊窗體界面及相應(yīng)代碼、窗體界面說(shuō)明(1)登錄界面
管理員登錄由管理員名和密碼構(gòu)成,在管理員輸入管理員名和密碼后,系統(tǒng)首先驗(yàn)證輸入字符的有效性,然后調(diào)用數(shù)據(jù)庫(kù)查看此管理員名是否存在或密碼是否正確,最后判斷管理員權(quán)限確定操作員還是管理員,并賦與不同的權(quán)限。代碼如下:
/ 23
代碼如下:if(jTextField.getText().equals(“")||jPasswordField.getPassword().equals(”“)&&jPasswordField1.getPassword().equals(”“)){ JOptionPane.showMessageDialog(null, ”請(qǐng)先選擇登陸角色!“);}else{
if(bb){ if(jTextField.getText().equals(”admin“)||jTextField.getText().equals(”admin1“)||jTextField.getText().equals(”admin2“)){
}
MFrm m=new MFrm();m.setVisible(true);close();Connection con;con=db.getConn();user=String.valueOf(jTextField.getText());String pass=String.valueOf(jPasswordField.getPassword());boolean bb=db.isValid(con, user, pass);}else{ if(i==0)else {
} } JOptionPane.showMessageDialog(null, ”該管理員不存在!“);} i--;JOptionPane.showMessageDialog(null, ”密碼輸錯(cuò)3次!請(qǐng)到柜臺(tái)改密碼!“);JOptionPane.showMessageDialog(null, ”密碼錯(cuò)誤!請(qǐng)重新輸入!“);}else{(2)主界面
/ 23
(3)開(kāi)戶界面
代碼如下:
public void del(){
Sql dbc = new Sql();dbc.getConn();int row = jTable.getSelectedRow();System.out.println(row);if(row < 0){ javax.swing.JOptionPane.showMessageDialog(null, ”您還沒(méi)有選中要?jiǎng)h除的信息!“);return;} Object value = jTable.getValueAt(row, 0);String id = value.toString();System.out.println(id);int returnValue;returnValue = JOptionPane.showConfirmDialog(this, ”確實(shí)要?jiǎng)h除該記錄嗎?“, ”確認(rèn)刪除“, JOptionPane.YES_NO_OPTION);
if(returnValue == JOptionPane.YES_OPTION){ if(dbc.executeUpdateSQL(”DELETE FROM cardInfo WHERE cardID ='“ + id+”'“)){ javax.swing.JOptionPane.showMessageDialog(this,”卡號(hào)為“ + id + ”的顧客信息已成功被
/ 23
刪除!請(qǐng)刷新!“);} else { javax.swing.JOptionPane.showMessageDialog(this, ”刪除失??!請(qǐng)?jiān)僭??!?;} }else
return;}
(4)銷戶界面
代碼如下:
if(jTextField.getText().equals(”“)
||
jTextField1.getText().equals(”“)
|| ||jTextField2.getText().equals(”“)|| jTextField4.getText().equals(”“)){
javax.swing.JOptionPane.showMessageDialog(null, ”各欄不能為空,請(qǐng)重填!“);} else { try { Integer.parseInt(jTextField.getText());} catch(NumberFormatException ex){
return;
jTextField3.getText().equals(”“)javax.swing.JOptionPane.showMessageDialog(null,”請(qǐng)確保數(shù)量欄及單價(jià)欄為數(shù)字!“);} if(Integer.parseInt(jTextField.getText())< 0){ } Sql dbc = new Sql();dbc.getConn();return;javax.swing.JOptionPane.showMessageDialog(null,”不能有負(fù)數(shù)!“);if((dbc.executeUpdateSQL(”INSERT into userInfo VALUES(“ + jTextField.getText()+”,'“ + jTextField1.getText()+ ”','“ +jTextField2.getText()+ ”','“ +jTextField3.getText()+ ”','“ +jTextField4.getText()+ ”')“))&&(dbc.executeUpdateSQL(”INSERT into cardInfo(cardID,customerID,savingType,curType,openDate,openMoney,pass,balance)VALUES('“ + jTextField5.getText()+”',“ + jTextField.getText()+”,'“+ jComboBox1.getSelectedItem()+”','“+ jComboBox.getSelectedItem()+”','“ + jTextField8.getText()+”','“+Integer.valueOf(jTextField9.getText())+”','“+String.valueOf(jPasswordField.getPassword())+”','“+Integer.valueOf(jTextField6.getText())+”')“))){javax.swing.JOptionPane
/ 23
.showMessageDialog(null, ”記錄插入成功!“);jTextField.setText(”“);jTextField1.setText(”“);jTextField2.setText(”“);jTextField3.setText(”“);jTextField4.setText(”“);jTextField5.setText(”“);jTextField8.setText(”“);jTextField9.setText(”“);jTextField6.setText(”“);jPasswordField.setText(”“);} else { javax.swing.JOptionPane.showMessageDialog(null, ”該記錄插入失??!請(qǐng)您重試。“);} }(5).改密界面
代碼如下:
public void quer(){ if(jPasswordField.getPassword().equals(”“)|| jPasswordField1.getPassword().equals(”“)||jTextField.getText().equals(”“)){ avax.swing.JOptionPane.showMessageDialog(this, ”任何一欄不能為空!“);} else { Sql dbc = new Sql();dbc.getConn();boolean success = false;ResultSet rs = dbc.executeQuery(”SELECT * FROM admin“);try { while(rs.next()){ if(jTextField.getText().equals(rs.getString(”user“))|| jPasswordField.getPassword().equals(rs.getString(”pass“))){ success = true;} } if(success){ if(dbc.executeUpdateSQL(”UPDATE admin SET pass = '“
+String.valueOf(jPasswordField1.getPassword())+ ”' where user='“+UserFrm.user+”'“)){ javax.swing.JOptionPane.showMessageDialog(this,”密碼修改成功。“);} else { javax.swing.JOptionPane.showMessageDialog(this, ”密碼修改失敗,請(qǐng)重試?!?;} } else { javax.swing.JOptionPane.showMessageDialog(this,”用戶名或原始密碼錯(cuò)誤!請(qǐng)重新確認(rèn)!“);return;} } catch(SQLException ex)
/ 23
{ javax.swing.JOptionPane.showMessageDialog(this,ex.getMessage().toString());return;}}}(6)查詢界面
代碼如下:
public void select(){
if(jTextField.getText().equals(”“)){ javax.swing.JOptionPane.showMessageDialog(this,”請(qǐng)輸入查詢信息“);return;
} String sql=”“;if(((String)jComboBox.getSelectedItem()).equals(”顧客編號(hào)“)){ sql=”select * from userInfo where customerID='“+jTextField.getText()+”'“;}else if(((String)jComboBox.getSelectedItem()).equals(”顧客姓名“)){ sql=”select * from userInfo where customerName='“+jTextField.getText()+”'“;}else if(((String)jComboBox.getSelectedItem()).equals(”身份證“)){ } con=dbc.getConn();int count=0;ResultSet rs=dbc.executeQuery(sql);try{
while(rs.next()){ } rs.close();Object[][] cells=new Object[count][9];int i=0;rs=dbc.executeQuery(sql);while(rs.next()){
cells[i]=new Object[]{rs.getString(1),rs.getString(2),};i++;
/ 23 sql=”select * from userInfo where PID='“+jTextField.getText()+”'“;count++;rs.getString(3),rs.getString(4), rs.getString(5)
}
} } jTable=new JTable(cells,colnames);jScrollPane.setViewportView(jTable);javax.swing.JOptionPane.showMessageDialog(null, ex.getMessage().toString());String[] colnames={”顧客編號(hào)“,”顧客姓名“,”身份證號(hào)“,”聯(lián)系電話“,”居住地址“};}catch(SQLException ex){(7)修改界面
代碼如下:
public void quer(){ db.getConn();ResultSet rs = db.executeQuery(”SELECT * FROM cardInfo“);try {if(db.executeUpdateSQL(”UPDATE cardInfo SET savingType ='“ +
jComboBox1.getSelectedItem()+”',curType='“+jComboBox.getSelectedItem()+”',IsReportLoss =“ + flag+ ” WHERE cardID ='“ + jTextField.getText().trim()+”'“)){ javax.swing.JOptionPane.showMessageDialog(this,”信息修改成功?!?;} else { javax.swing.JOptionPane.showMessageDialog(this, ”信息修改失敗,請(qǐng)重試。“);} } catch(Exception ex){ javax.swing.JOptionPane.showMessageDialog(this,ex.getMessage().toString());} }(8)IP界面
代碼如下:import java.net.* InetAddress id public void inet(){
/ 23
try{
id=InetAddress.getLocalHost();er.printStackTrace();}catch(Exception er){ } System.out.println(id);javax.swing.JOptionPane.showMessageDialog(null, ”本機(jī)ip地址:“+id);}(9)打印界面
代碼如下:
DY d[]=new DY[1];d[0]=newDY(jTextField.getText(),jTextField1.getText(),jTextField2.getText(),jTextField3.getText());File file=new File(”D:java 作業(yè)DBATM文檔.txt“);DY da=new DY();da.writerIO(d, file);da.readerIO(file);JOptionPane.showMessageDialog(null, ”交易記錄打印成功“);close();try{
} DY(String cardID,String transType,String transmoney,String transDate){
} public String getcardID(){
}
/ 23
if(!file.exists())
} file.delete();file.createNewFile();e1.printStackTrace();else
}catch(Exception e1){ this.cardID=cardID;this.transType=transType;this.transMoney=transmoney;this.transDate=transDate;return cardID;public String gettransDate(){
} public String gettransMoney(){
} public String gettransType(){
} public void writerIO(DY[] d,File f){
}
} public void readerIO(File f){
} } try{
fr=new FileReader(f);dr=new BufferedReader(fr);String str;while((str=dr.readLine())!=null)System.out.println(str);dr.close();e1.printStackTrace();
} dw.close();em.printStackTrace();}catch(Exception em){ try{
if(!f.exists()){ } dw=new BufferedWriter(new FileWriter(f));for(int i=0;i / 23 1.取款模塊 功能:用戶可以直接到ATM取款機(jī)提取現(xiàn)金。2.查詢模塊模塊 功能:用戶可以查詢余額。3.存款模塊模塊 功能:用戶可以把現(xiàn)金存到銀行。4.改密模塊 功能:用戶可以修改自己銀行卡的密碼。5. 轉(zhuǎn)賬模塊 功能:用戶可以用此功能實(shí)現(xiàn)與其他用戶之間資金流轉(zhuǎn)。6.取卡模塊 功能:當(dāng)用戶完成操作后就可以取卡退出。 2.2.4 用戶模塊窗體界面及相應(yīng)代碼 窗體界面說(shuō)明(要有界面的操作說(shuō)明)(1)登錄界面 此模塊所要完成的就是用戶和管理員的登錄,只要選擇哪個(gè)角色登錄就可以了 用戶登錄由卡號(hào)和密碼構(gòu)成,在用戶輸入卡號(hào)和密碼后,系統(tǒng)首先驗(yàn)證輸入字符的有效性,然后調(diào)用數(shù)據(jù)庫(kù)查看此用戶名是否存在或密碼是否正確,最后判斷用戶權(quán)限,管理員登錄由管理員名和密碼構(gòu)成,在管理員輸入管理員名和密碼后,系統(tǒng)首先驗(yàn)證輸入字符的有效性,然后調(diào)用數(shù)據(jù)庫(kù)查看此管理員名是否存在或密碼是否正確,最后判斷管理員權(quán)限確定操作員還是管理員,并賦與不同的權(quán)限。代碼如下: / 23 代碼如下: if(jPasswordField1.getPassword().equals(”“)){ JOptionPane.showMessageDialog(null, ”請(qǐng)先選擇登陸角色!“);}else{ con=db.getConn();cardID=String.valueOf(jComboBox.getSelectedItem());String pass=String.valueOf(jPasswordField1.getPassword());boolean bb=db.isValid1(con, cardID, pass); if(bb){ UMFrm ym=new UMFrm();ym.setVisible(true);close();}else{ if(i==0)JOptionPane.showMessageDialog(null, ”密碼輸錯(cuò)3次!請(qǐng)到柜臺(tái)改密碼!“);else { i--;JOptionPane.showMessageDialog(null, ”密碼錯(cuò)誤!請(qǐng)重新輸入!“);} } } (2)用戶主界面 (3)取款界面 / 23 代碼如下: String a=String.valueOf(jTextField.getText());int aa=Integer.parseInt(a);try{ con=db.getConn();st=con.createStatement();ResultSet rs=db.executeQuery(”select * from cardInfo where cardID='“+UserFrm.cardID+”'“);if(rs.next()){ int ia=Integer.parseInt(rs.getString(”balance“));if(ia>aa){ int i=Integer.parseInt(rs.getString(”balance“))-aa;rs=db.executeQuery(”update cardInfo set balance='“+i+”' where cardID='“+UserFrm.cardID+”'“);if(db.executeUpdateSQL(”update transInfo set transMoney='“+i+”',transType='“+”支取“+”' where cardID='“+UserFrm.cardID+”'“))javax.swing.JOptionPane.showMessageDialog(null, ”取款成功!“);rs.close();}else javax.swing.JOptionPane.showMessageDialog(null, ”余額不足不能取款!“);} }catch(SQLException ee){ ee.printStackTrace();} UMFrm um=new UMFrm();um.setVisible(true);close();} (4)存款界面 代碼如下: String a=String.valueOf(jTextField.getText()); / 23 } int aa=Integer.parseInt(a);try{ } UMFrm um=new UMFrm();um.setVisible(true);close();con=db.getConn(); st=con.createStatement();ResultSet rs=db.executeQuery(”select * from cardInfo where if(rs.next()){ int i=Integer.parseInt(rs.getString(“balance”))+aa;rs=db.executeQuery(“update cardInfo set balance='”+i+“' where if(db.executeUpdateSQL(”update transInfo set cardID='“+UserFrm.cardID+”'“);cardID='”+UserFrm.cardID+“'”);transMoney='“+aa+”',transType='“+”存入“+”' where cardID='“+UserFrm.cardID+”'“))javax.swing.JOptionPane.showMessageDialog(null, ”存款成功!“); } ee.printStackTrace();rs.close();}catch(SQLException ee){(5)查詢界面 代碼如下:public void yu(){ } / 23 con=db.getConn();try{ } st=con.createStatement();String sql=”select * from cardInfo where cardID='“+UserFrm.cardID+”'“;ResultSet rs=db.executeQuery(sql);if(rs.next()){ } ee.printStackTrace();jTextField.setText(rs.getString(”balance“));jTextField.setEnabled(false);}catch(SQLException ee){(6)修改界面 代碼如下:if(jPasswordField.getPassword().equals(”“)||jPasswordField2.getPassword().equals(”“)||jPasswordField2.getPassword().equals(”“)){ javax.swing.JOptionPane.showMessageDialog(null,”密碼不能為空!“);}else{ try{ } con=db.getConn();st=con.createStatement();ResultSet rs=db.executeQuery(”select * from cardInfo where cardID='“+UserFrm.cardID+”'“);if(rs.next()){ rs=db.executeQuery(”update cardInfo set javax.swing.JOptionPane.showMessageDialog(null, “密碼修改成功!”); rs.close(); UMFrm um=new UMFrm();um.setVisible(true);close();pass='“+String.valueOf(jPasswordField2.getPassword())+”' where cardID='“+UserFrm.cardID+”'“);} } ee.printStackTrace(); }catch(SQLException ee){(7)轉(zhuǎn)帳界面 代碼如下:try{ con=db.getConn();st=con.createStatement();ResultSet rs=db.executeQuery(”select * from cardInfo where String aa=String.valueOf(jTextField2.getText()); / 23 cardID='“+UserFrm.cardID+”'“); } int a=Integer.parseInt(aa);if(rs.next()){ } ee.printStackTrace();if(UserFrm.cardID==UserFrm.cardID){ int i=Integer.parseInt(rs.getString(”balance“))-a;rs=db.executeQuery(”update cardInfo set balance='“+i+”' where cardID='“+UserFrm.cardID+”'“);int ii=Integer.parseInt(rs.getString(”balance“))+a;rs=db.executeQuery(”update cardInfo set balance='“+ii+”' where javax.swing.JOptionPane.showMessageDialog(null, “轉(zhuǎn)帳成功!”); } rs.close();UMFrm um=new UMFrm();um.setVisible(true);close();cardID='“+jTextField.getText()+”'");}catch(SQLException ee){ } 三、設(shè)計(jì)小結(jié) 在這次課程設(shè)計(jì)中,我們第一次全面應(yīng)用現(xiàn)代軟件工程技術(shù),從需求分析開(kāi)始,通過(guò)需求收集,系統(tǒng)流程分析,構(gòu)建數(shù)據(jù)流圖和實(shí)體-關(guān)系圖,對(duì)實(shí)際需求建模。然后又通過(guò)概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼編寫(xiě)和系統(tǒng)測(cè)試等層層遞進(jìn),在建立文檔的同時(shí)學(xué)習(xí)編程技術(shù),終于在小組成員的共同努力下,完成了文檔的編寫(xiě)、代碼的實(shí)現(xiàn)以及軟件的測(cè)試。 通過(guò)這次課程設(shè)計(jì)使我們對(duì)Eclipse有了一定的了解,也對(duì)Java編程有了初步的認(rèn)識(shí),懂得如何從代碼的層次上使用Eclipse圖形界面及控件。代碼還有許多值得優(yōu)化的地方,界面的美化和可操作性上還有可以提高的余地。 四、參考文獻(xiàn) [1] 陳松喬等.現(xiàn)代軟件工程.北京:清華大學(xué)出版社,2004 [2] 張白一等.面向?qū)ο蟪绦蛟O(shè)計(jì)——Java(第二版).西安:西安電子科技大學(xué)出版社,2006 [3] Laszlo Michael J.面向?qū)ο蟪绦蛟O(shè)計(jì)——圖形應(yīng)用實(shí)例[M].楊秀梅等,譯.北京:機(jī)械工程出版社,2002 / 23 《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱 課程名稱:信息內(nèi)容安全 課程代碼:042504 總 學(xué) 時(shí):64 學(xué) 分:2 課程類型:專業(yè)必修課 適用專業(yè): 信息安全專業(yè) 制 訂 人:徐雪飛 審 定 人:肖 文 制訂日期:2015年3月 《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱 一、課程性質(zhì)、目的和任務(wù) C#語(yǔ)言是.NET平臺(tái)上的核心開(kāi)發(fā)語(yǔ)言,具有簡(jiǎn)單易學(xué)、類型安全、完全面向?qū)ο蟮忍匦?,是一門面向現(xiàn)代軟件工程的主流程序設(shè)計(jì)語(yǔ)言。本課程系統(tǒng)地介紹C#語(yǔ)言的結(jié)構(gòu)化設(shè)計(jì)、面向?qū)ο?、泛型、商業(yè)開(kāi)發(fā)等功能要素,使學(xué)生在掌握程序設(shè)計(jì)的基本方法和技巧,培養(yǎng)利用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力,以滿足專業(yè)課應(yīng)用和繼續(xù)學(xué)習(xí)的需要。 二、教學(xué)基本要求 通過(guò)學(xué)習(xí)本課程,要求學(xué)生能夠熟悉C#語(yǔ)言的語(yǔ)法和類型系統(tǒng),掌握面向?qū)ο蟪绦蛟O(shè)計(jì)和泛型程序設(shè)計(jì)的基本方法,并具有商業(yè)應(yīng)用開(kāi)發(fā)的基本能力,能靈活地使用C#語(yǔ)言及Visual Studio.NET開(kāi)發(fā)環(huán)境解決一般性編程問(wèn)題。 三、教學(xué)內(nèi)容 1、緒論(教學(xué)2學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1).NET技術(shù)和框架結(jié)構(gòu)簡(jiǎn)介(2)C#語(yǔ)言概貌 (3)面向?qū)ο蟮幕靖拍?/p> 教學(xué)目的:使學(xué)生對(duì).NET平臺(tái)和C#有一個(gè)綜合性的了解。 2、C#語(yǔ)法基礎(chǔ)(教學(xué)6學(xué)時(shí),上機(jī)4學(xué)時(shí)) 教學(xué)內(nèi)容:(1)數(shù)據(jù)類型(2)值和方法(3)表達(dá)式(4)控制語(yǔ)句 教學(xué)目的:使學(xué)生基本掌握C#語(yǔ)言的類型系統(tǒng)和基本語(yǔ)法結(jié)構(gòu)。 3、類和繼承(教學(xué)4學(xué)時(shí),上機(jī)4學(xué)時(shí)) 教學(xué)內(nèi)容: (1)類的數(shù)據(jù)成員和各種函數(shù)成員(2)繼承和多態(tài)(3).NET常用類型(4)接口與實(shí)現(xiàn) 教學(xué)目的:使學(xué)生進(jìn)一步掌握類型的定義和使用方法,掌握.NET類庫(kù)中一些典型類的用法;深入理解繼承和多態(tài)性的概念,從而掌握面向?qū)ο筌浖芍赜眯缘年P(guān)鍵技術(shù)。 4、Windows窗體界面(教學(xué)2學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1)Windows Form編程技術(shù)(2)WPF編程技術(shù) (3)繪圖、動(dòng)畫(huà)和媒體 教學(xué)目的:使學(xué)生掌握Windows程序界面設(shè)計(jì)的基本要素,能夠使用Windows Form和WPF編程技術(shù)開(kāi)發(fā)交互式圖形界面應(yīng)用程序。 5、泛型(教學(xué)4學(xué)時(shí),上機(jī)2學(xué)時(shí)) 教學(xué)內(nèi)容: (1)泛型的定義與使用(2)元組和可空類型的用法(3)泛型集合與循環(huán)遍歷 (4)匿名方法和Lambda表達(dá)式 教學(xué)目的:使學(xué)生掌握泛型程序設(shè)計(jì)的基本概念,能夠利用類型抽象和操作抽象開(kāi)發(fā)出高可適的軟件程序。 6、異常處理(教學(xué)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)C#異常處理結(jié)構(gòu) (2)主動(dòng)引發(fā)異常和自定義異常 教學(xué)目的:使學(xué)生能夠通過(guò)異常處理來(lái)提高程序可靠性。 7、文件操作(教學(xué)1學(xué)時(shí),上機(jī)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)驅(qū)動(dòng)器、目錄和文件(2)文件流和數(shù)據(jù)流 教學(xué)目的:使學(xué)生掌握在C#程序中進(jìn)行磁盤文件存取的基本技術(shù)。 8、數(shù)據(jù)庫(kù)訪問(wèn)(教學(xué)2學(xué)時(shí),上機(jī)1學(xué)時(shí)) 教學(xué)內(nèi)容: (1)ADO.NET聯(lián)機(jī)數(shù)據(jù)訪問(wèn)(2)ADO.NET脫機(jī)數(shù)據(jù)訪問(wèn) 教學(xué)目的:使學(xué)生掌握C#程序中進(jìn)行數(shù)據(jù)庫(kù)存取的基本技術(shù)。 9、綜合練習(xí)(教學(xué)2學(xué)時(shí),上機(jī)8學(xué)時(shí))教學(xué)內(nèi)容: (1)進(jìn)程和線程 (2)ASP.NET網(wǎng)絡(luò)程序設(shè)計(jì) (3)采用案例驅(qū)動(dòng)的方式,綜合運(yùn)用C#編程技術(shù)開(kāi)發(fā)較為完整的軟件程序。教學(xué)目的:提高學(xué)生軟件設(shè)計(jì)的綜合能力。 五、教學(xué)方法與手段 講授法、討論法、多媒體教學(xué)、實(shí)驗(yàn)教學(xué)。 六、考核方式 考試成績(jī)占70%,平時(shí)成績(jī)占30%。閉卷考試。 七、推薦教材和教學(xué)參考書(shū) 教 材:《C#程序設(shè)計(jì)基礎(chǔ)》第3版,鄭宇軍,石海鶴,王衛(wèi)紅,清華大學(xué)出版社,2014年。參考書(shū): 1、《C#應(yīng)用開(kāi)發(fā)與實(shí)踐》,曾憲權(quán)、李梅蓮 等,清華大學(xué)出版社,2015年 2、《C#編程實(shí)戰(zhàn)寶典》,付強(qiáng)、丁寧 等,清華大學(xué)出版社,2014年。 面向?qū)ο蟪绦蛟O(shè)計(jì)(專業(yè)限選課)Object-Oriented Programming 【課程編號(hào)】XZ26175 【學(xué)分?jǐn)?shù)】3 【學(xué)時(shí)數(shù)】60=38+22 【課程類別】專業(yè)限選 【編寫(xiě)日期】2010.3.30 【先修課程】C語(yǔ)言程序設(shè)計(jì)、計(jì)算機(jī)應(yīng)用基礎(chǔ) 【適用專業(yè)】通信工程 一、教學(xué)目的、任務(wù) 通過(guò)學(xué)習(xí),使學(xué)生深刻理解和領(lǐng)會(huì)面向?qū)ο蟮幕舅枷牒突咎卣?,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言C++語(yǔ)言的基本概念、基本語(yǔ)法以及面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法;使學(xué)生養(yǎng)成面向?qū)ο蟮木幊趟季S習(xí)慣。 二、課程教學(xué)的基本要求 1.理解面向?qū)ο蟮幕靖拍詈褪褂妹嫦驅(qū)ο蠹夹g(shù)進(jìn)行程序設(shè)計(jì)的基本思想 2.能比較熟練地用C++語(yǔ)言進(jìn)行一般面向?qū)ο蟮某绦蛟O(shè)計(jì) 3.初步掌握面向?qū)ο缶幊汰h(huán)境Visual C++的使用 三、教學(xué)內(nèi)容和學(xué)時(shí)分配(2 + 5 + 14 + 9 + 12 + 7 + 6 + 5 = 60)第一章 面向?qū)ο蟪绦蛟O(shè)計(jì)概述 2 學(xué)時(shí)(課堂講授學(xué)時(shí)2)主要內(nèi)容: 1.什么是面向?qū)ο蟪绦蛟O(shè)計(jì) 2.對(duì)象與類 3.封裝 4.繼承性 5.多態(tài)性 6.面向?qū)ο蟪绦蛟O(shè)計(jì)的語(yǔ)言 教學(xué)要求: 了解什么是面向?qū)ο蟪绦蛟O(shè)計(jì);掌握對(duì)象和類的基本概念;理解面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特征。其它教學(xué)環(huán)節(jié): 安排課外了解面向?qū)ο蟪绦蛟O(shè)計(jì)方面的基本概念。第二章 C++概述 5學(xué)時(shí)(課堂講授學(xué)時(shí)2+課程實(shí)驗(yàn)學(xué)時(shí)3)主要內(nèi)容: 1.C++的起源和特點(diǎn) 2.C++源程序的構(gòu)成 3.C++在非面向?qū)ο蠓矫娴囊恍┨匦?教學(xué)要求: cin和cout的使用;new和delete的運(yùn)算符的使用;函數(shù)的重載;帶缺省參數(shù)的函數(shù);引用; VC++的使用。其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)1: C++程序設(shè)計(jì)基礎(chǔ)練習(xí)。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.掌握C++程序的基本格式和規(guī)范,學(xué)會(huì)編寫(xiě)簡(jiǎn)單的C++程序。2.掌握C++程序結(jié)構(gòu)的特點(diǎn)。 3.熟悉C++程序基本的輸入輸出操作。 4.掌握C++數(shù)據(jù)類型常量和變量以及修飾符的使用方法。5.熟悉作用域運(yùn)算符的功能和基本使用方法。6.掌握C++內(nèi)存的動(dòng)態(tài)分配和釋放方法。7.理解引用的概念,掌握引用的使用方法。 第三章 類和對(duì)象 14學(xué)時(shí)(課堂講授學(xué)時(shí)8+課程實(shí)驗(yàn)學(xué)時(shí)6)主要內(nèi)容: 1.類與對(duì)象的基本概念 2.構(gòu)造函數(shù)與析構(gòu)函數(shù) 3.對(duì)象數(shù)組與對(duì)象指針 4.向函數(shù)傳遞對(duì)象 5.靜態(tài)成員 6.友元 7.類對(duì)象作為成員 8.常類型 教學(xué)要求: 類的聲明;對(duì)象定義;對(duì)象的成員的訪問(wèn)。訪問(wèn)屬性的理解和運(yùn)用;構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義;對(duì)象數(shù)組的定義和使用;this的指針的理解和使用;類的成員類型為其他類時(shí)如何理解和使用;靜態(tài)成員的理解和運(yùn)用。提供友元機(jī)制的目的;友元聲明方法;提供常類型機(jī)制的目的;各種不同的常類型運(yùn)作方式。其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)2:類和對(duì)象。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.掌握類、類的數(shù)據(jù)成員、類的成員函數(shù)的定義方式。2.理解類成員的訪問(wèn)控制方式。 3.掌握對(duì)象的定義和操作對(duì)象的方法。 4.理解構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義與執(zhí)行過(guò)程。5.掌握重載構(gòu)造函數(shù)的方法。6.了解拷貝構(gòu)造函數(shù)的方法。實(shí)驗(yàn)3:對(duì)象數(shù)組和對(duì)象指針。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.掌握對(duì)象數(shù)組的定義和使用方法。 2.理解對(duì)象指針的概念,學(xué)會(huì)用指針引用對(duì)象。3.了解this指針的工作方式。 4.掌握靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的基本使用方法。5.理解友元與友元函數(shù)的作用,掌握其使用方法。 第四章 派生類和繼承 9學(xué)時(shí)(課堂講授學(xué)時(shí)6+課程實(shí)驗(yàn)學(xué)時(shí)3)主要內(nèi)容: 1.派生類的概念 2.派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù) 3.基類成員的訪問(wèn) 4.多重繼承 5.賦值兼容規(guī)則 教學(xué)要求: 基類和派生類的基本概念;繼承成員的訪問(wèn)規(guī)則;派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的運(yùn)行規(guī)則;多重繼承的基本概念;多重繼承中同名二義性如何消除;引入虛基類的目的;繼承類和派生類之間相互賦值規(guī)則用。 其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)4:派生類與繼承。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.理解類的繼承的概念,能夠定義和使用類的繼承關(guān)系。2.掌握派生類的聲明和定義方法。 3.掌握公有派生和私有派生的訪問(wèn)特性。4.學(xué)習(xí)虛基類在解決問(wèn)題中的作用。 第五章 多態(tài)性 12學(xué)時(shí)(課堂講授學(xué)時(shí)8+課程實(shí)驗(yàn)學(xué)時(shí)4)主要內(nèi)容: 1.編譯時(shí)的多態(tài)性與運(yùn)行時(shí)的多態(tài)性 2.函數(shù)重載 3.運(yùn)算符重載 4.類型轉(zhuǎn)換 5.虛函數(shù) 教學(xué)要求: 多態(tài)的基本概念;實(shí)現(xiàn)運(yùn)算符重載的方法(成員函數(shù));實(shí)現(xiàn)運(yùn)算符重載的方法(友元函數(shù));靜態(tài)聯(lián)編和動(dòng)態(tài)聯(lián)編的基本概念;虛函數(shù)的作用;虛函數(shù)的運(yùn)用。其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)5:虛函數(shù)和多態(tài)性。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.理解編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。2.掌握運(yùn)算符重載的基本方法。3.掌握虛函數(shù)的定義和使用方法。 第六章 模板 7學(xué)時(shí)(課堂講授學(xué)時(shí)4+課程實(shí)驗(yàn)學(xué)時(shí)3)主要內(nèi)容: 1.模板的概念 2.函數(shù)模板與模板函數(shù) 3.類模板和模板類 教學(xué)要求: 模板的基本概念;為什么要使用模板;函數(shù)模板和模板函數(shù)的基本概念;函數(shù)模板的聲明和使用;類模板和模板類的基本概念。其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)6:函數(shù)模板與類模板。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.掌握函數(shù)模板及其聲明方法。2.掌握模板函數(shù)及其生成方法。3.學(xué)習(xí)類模板的聲明與使用方法。 第七章 C++的I/O流類庫(kù) 6學(xué)時(shí)(課堂講授學(xué)時(shí)3+課程實(shí)驗(yàn)學(xué)時(shí)3)主要內(nèi)容: 1.C++建立類類庫(kù)的目的 2.預(yù)定義類型的輸入輸出 3.用戶自定義類型的輸入和輸出 教學(xué)要求: 掌握在各種情況下的<<和>>運(yùn)算符的重載。其它教學(xué)環(huán)節(jié): 實(shí)驗(yàn)7:I/O流類庫(kù)。實(shí)驗(yàn)?zāi)康暮鸵螅?/p> 1.掌握流及流類庫(kù)的作用。 2.掌握流類庫(kù)中常用的類及其成員函數(shù)的使用方法。3.掌握重載“<<”和“>>”的方法。 4.掌握控制輸出寬度的函數(shù)width和setw。 5.掌握函數(shù)setosflags和resetiosflags設(shè)置和恢復(fù)對(duì)齊方式、精度、大小寫(xiě)等。 研究教學(xué)內(nèi)容 5學(xué)時(shí)(課程講解和討論學(xué)時(shí)) 程序綜合設(shè)計(jì):按照面向?qū)ο蟪绦蜷_(kāi)發(fā)的原則和方法,利用一個(gè)實(shí)例來(lái)講解面向?qū)ο蟪绦蛟O(shè)計(jì)的整個(gè)過(guò)程,然后要求學(xué)生根據(jù)自己的開(kāi)發(fā)經(jīng)驗(yàn)進(jìn)行分組討論,從而幫助學(xué)生進(jìn)一步理解和熟悉面向?qū)ο蟪绦蛟O(shè)計(jì)方法。 四、教學(xué)重點(diǎn)、難點(diǎn)及教學(xué)方法 重點(diǎn):類和對(duì)象的基本概念;對(duì)象定義;對(duì)象的成員的訪問(wèn)。訪問(wèn)屬性的理解和運(yùn)用;構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義;對(duì)象數(shù)組的定義和使用;this的指針的理解和使用?;惡团缮惖幕靖拍?;繼承成員的訪問(wèn)規(guī)則;派生類構(gòu)造函數(shù)和析構(gòu)函數(shù)的運(yùn)行規(guī)則。多態(tài)的基本概念;函數(shù)的重載。 難點(diǎn):多重繼承;虛函數(shù);模板。 教學(xué)方法:課堂授課采用多媒體教學(xué)和分組討論的方法,實(shí)驗(yàn)采用任務(wù)驅(qū)動(dòng)方式。通過(guò)未來(lái)愿景描述和學(xué)以致用的方法來(lái)提高學(xué)生的學(xué)習(xí)興趣,通過(guò)分組交流和師生積極互動(dòng)的方式提高學(xué)生學(xué)習(xí)本門課程的學(xué)習(xí)能力。 五、考核方式及成績(jī)?cè)u(píng)定方式:考試 六、教材及參考書(shū)目 推薦教材: [1] 《C++面向?qū)ο蟪绦蛟O(shè)計(jì)》,陳維興,林小茶,清華大學(xué)出版社,第2版,2004 參考書(shū): [1] 《C++面向?qū)ο蟪绦蛟O(shè)計(jì)習(xí)題解析與上機(jī)指導(dǎo)》,陳維興,清華大學(xué)出版社,2003 [2] 《C++程序設(shè)計(jì)基礎(chǔ)》,周靄如,電子工業(yè)出版社,2003 [3] 《C++語(yǔ)言程序設(shè)計(jì)》,鄭莉,清華大學(xué)出版社,2005 修(制)訂人: 審核人: 2010年 3 月30 日 《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱 課程名稱:面向?qū)ο蟪绦蛟O(shè)計(jì) 英文名稱:Object Oriented Programming)學(xué)分:2 總學(xué)時(shí):36 實(shí)驗(yàn)(上機(jī))學(xué)時(shí): 8 開(kāi)課專業(yè):電子商務(wù)專業(yè) 一、本課程的性質(zhì)、目的和培養(yǎng)目標(biāo) 面向?qū)ο蟪绦蛟O(shè)計(jì)是電子商務(wù)專業(yè)的限定選修課程。面向?qū)ο蟪绦蛟O(shè)計(jì)是當(dāng)今最為流行的程序設(shè)計(jì)方法,本課程以C++語(yǔ)言為核心,全面概述面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念和基本技術(shù)。主要內(nèi)容包括:理解和掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想和技術(shù),掌握C++中的引用和函數(shù)重載、類與對(duì)象、靜態(tài)成員與友元、運(yùn)算符重載、繼承與派生類、多態(tài)與虛函數(shù)等重要概念和技術(shù)。通過(guò)教學(xué)要求學(xué)生基本掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,認(rèn)識(shí)C++是如何支持面向?qū)ο蟪绦蛟O(shè)計(jì)的,培養(yǎng)、訓(xùn)練學(xué)生運(yùn)用面向?qū)ο蠹夹g(shù)進(jìn)行程序設(shè)計(jì)的能力。 二、預(yù)修課程 計(jì)算機(jī)語(yǔ)言與程序設(shè)計(jì) 三、課程內(nèi)容及學(xué)時(shí)分配 第一章 從C語(yǔ)言到C++語(yǔ)言 1.C++語(yǔ)言出現(xiàn)的歷史背景(OOP思想概述)2.C++中的注釋、常量和輸入輸出 3.C++中的變量定義與作用域 4.C++中的函數(shù) 5.C++中的指針與引用 本章學(xué)時(shí)數(shù):4,本章習(xí)題數(shù):4 第二章 類與對(duì)象 1.類 2.對(duì)象 3.構(gòu)造函數(shù)和析構(gòu)函數(shù) 4.對(duì)象及其應(yīng)用 5.對(duì)象的生存期 6.再論程序結(jié)構(gòu) 7.面向?qū)ο蟪绦蛟O(shè)計(jì) 本章學(xué)時(shí)數(shù):6,本章習(xí)題數(shù):6 第三章 靜態(tài)成員與友元 1.拷貝構(gòu)造函數(shù) 2.靜態(tài)數(shù)據(jù)成員 3.靜態(tài)成員函數(shù) 4.友元函數(shù) 本章學(xué)時(shí)數(shù):6,本章習(xí)題數(shù):6 第四章 運(yùn)算符重載 1.運(yùn)算符重載的概念 2.運(yùn)算符重載舉例 本章學(xué)時(shí)數(shù):4,本章習(xí)題數(shù):4 第五章 繼承與多態(tài) 1.繼承的概念 2.單繼承 3.多態(tài)與虛函數(shù) 4.類的分解(類的層次設(shè)計(jì))5.抽象類與純虛函數(shù) 本章學(xué)時(shí)數(shù):6,本章習(xí)題數(shù):6 第六章 I/O流庫(kù)簡(jiǎn)介 1.C++流庫(kù)的結(jié)構(gòu) 2.輸入與輸出 3.格式控制 4.文件 本章學(xué)時(shí)數(shù):2,本章習(xí)題數(shù):2 四、實(shí)驗(yàn)(上機(jī))內(nèi)容和建議學(xué)時(shí)分配 實(shí)驗(yàn)1(4學(xué)時(shí)) 要求:定義類,該類至少應(yīng)包括靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù),要求通過(guò)本實(shí)驗(yàn)掌握定義類的基本方法。實(shí)驗(yàn)2(4學(xué)時(shí)) 要求:通過(guò)本實(shí)驗(yàn)掌握函數(shù)重載、友元函數(shù)、繼承、虛函數(shù)等的基本使用方法。 五、教材和參考書(shū)目 1.《C++語(yǔ)言基礎(chǔ)教程》,呂鳳翥編著,清華大學(xué)出版社,1999 2.《C++程序設(shè)計(jì)教程》,錢 能主編,清華大學(xué)出版社,1999 3.《The C++ Programming Language》(Third Edition),Bjarne Stroustrup,Addison-Wesley,1997 六、課外學(xué)習(xí)要求 要求課前預(yù)習(xí)下一次課的講課內(nèi)容,課后復(fù)習(xí)本次課的講課內(nèi)容并通過(guò)相應(yīng)的作業(yè)加以消化。 七、考核方式 本課程采用閉卷書(shū)面考試方式為主,其中期終考試占80%,期中10%,平時(shí)作業(yè)、上機(jī)及出勤率10%。 這次課程設(shè)計(jì)讓我收獲到很多,上個(gè)學(xué)期我們也有過(guò)課程設(shè)計(jì),但是我們都是從網(wǎng)上下一個(gè)程序,連帶著報(bào)告,看一遍程序,修改修改報(bào)告,然后就直接去答辯,都是糊弄糊弄就過(guò)去了,自己根本就沒(méi)有付出過(guò)努力,到現(xiàn)在,那個(gè)程序的內(nèi)容是什么全忘光了。但是這次的課程設(shè)計(jì),雖然老師您的要求十分嚴(yán)格,但是卻是讓我切實(shí)體會(huì)到了自己動(dòng)手的快樂(lè)。要我們自己設(shè)計(jì)一個(gè)管理系統(tǒng),從定題目,到開(kāi)始寫(xiě)代碼,全部都是自己來(lái)。我在開(kāi)始課程設(shè)計(jì)前的兩周就開(kāi)始考慮我課設(shè)的時(shí)候應(yīng)該做什么內(nèi)容,想做一般同學(xué)都能想到的學(xué)生管理系統(tǒng),但是就怕會(huì)有類似的不敢做,冥思苦想了好久,最后才定下的備忘錄管理系統(tǒng),其實(shí)所有的管理系統(tǒng)的本質(zhì)都是一樣的,增,刪,改,查,但是,這些東看似簡(jiǎn)單,做起來(lái)卻難。像我在做增加的時(shí)候,就遇到了問(wèn)題,最后通過(guò)老師的調(diào)試,才發(fā)現(xiàn)原來(lái)是我在開(kāi)始定義字段名的時(shí)候就弄錯(cuò)了。我們其他人也一樣,中間遇到的問(wèn)題,也及時(shí)的請(qǐng)教同學(xué)和老師,原來(lái)在寢室,我們都是開(kāi)著電腦上qq,水人人,看視頻,但是當(dāng)課程設(shè)計(jì)開(kāi)始的時(shí)候,我們這個(gè)寢室都在那做這個(gè)管理系統(tǒng),誰(shuí)誰(shuí)誰(shuí)的查詢不好使了,我們也都停下來(lái)幫她,當(dāng)我們都不解決不了的時(shí)候,我們就和學(xué)得好的男生開(kāi)語(yǔ)音,讓他們教我們,幫我們解決,再解決不了的,我們就來(lái)找老師,在機(jī)房里大家一起努力,攻克難關(guān)。有些時(shí)候,困擾我們很長(zhǎng)時(shí)間的,可能就是一個(gè)小小的逗號(hào),或者是被忽略的空格,這些都是我們上課的時(shí)候沒(méi)有注意的,沒(méi)有好好聽(tīng)課的地方,都在課設(shè)的時(shí)候碰到了,我在做自己的課程設(shè)計(jì)的時(shí)候,我也經(jīng)常出錯(cuò),經(jīng)常忘了一些細(xì)節(jié)的東西,比如登陸窗體的時(shí)候,忘記了在program.cs里把Form1改成LoginForm,我一直在調(diào)試,但是始終出現(xiàn)的是主窗體,登陸窗體始終出不來(lái),最后才想起來(lái)忘了這個(gè)小步驟,但是這也讓我明白,上課的點(diǎn)滴小事,也是非常重要的,除了上課認(rèn)真聽(tīng)講之外,下課了還得很認(rèn)真的看代碼,把代碼的意思弄明白,漸漸的,像數(shù)據(jù)庫(kù)里的表怎么設(shè)計(jì),怎么連接數(shù)據(jù)庫(kù),按鈕怎么設(shè)置,還有很多我都能掌握,所以感覺(jué)這次課程設(shè)計(jì)帶給我很多的,課程設(shè)計(jì)不僅是檢查一個(gè)人知識(shí)掌握了多少,其實(shí)更重要的實(shí)檢測(cè)你的實(shí)踐能力,以及看你是否細(xì)心、是否有縝密的思維,所以,我們要在課設(shè)的時(shí)候加強(qiáng)鍛煉,磨練自己,使自己有更高的提高。第二篇:《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱
第三篇:面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)大綱
第四篇:《面向?qū)ο蟪绦蛟O(shè)計(jì)》教學(xué)大綱
第五篇:面向?qū)ο蟪绦蛟O(shè)計(jì)心得體會(huì)