真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于java實(shí)用系統(tǒng)代碼大全的信息

(高分)急求連接數(shù)據(jù)庫(kù)的JAVA學(xué)生信息管理系統(tǒng)源代碼

數(shù)據(jù)庫(kù)連接(Connection)

專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)蔚縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

數(shù)據(jù)庫(kù)連接

獲取數(shù)據(jù)庫(kù)連接有兩種方法,一種是通過(guò)驅(qū)動(dòng)程序管理器DriverManager類(lèi),另一種則是使用DataSource接口。這兩種方法都提供了了一個(gè)getConnection方法,用戶可以在程序中對(duì)它們進(jìn)行相應(yīng)處理后調(diào)用這個(gè)方法來(lái)返回?cái)?shù)據(jù)庫(kù)連接。

? DriverManager類(lèi)

? DataSource接口

? Connection接口

? JDBC URL

jdbc:subprotocol:subname

? 驅(qū)動(dòng)程序注冊(cè)方法

(1)調(diào)用Class.forName方法

(2)設(shè)置jdbc.drivers系統(tǒng)屬性

? DriverManager方法

DriverManager類(lèi)中的所有方法都是靜態(tài)方法,所以使用DriverManager類(lèi)的方法時(shí),不必生成實(shí)例。

DriverManager

? getConnection方法

作用是用于獲取數(shù)據(jù)庫(kù)連接,原型如下:

public static Connection getConnection(String url)

throws SQLException;

public static Connection getConnection(String url, String user, String password)

throws SQLException;

public static Connection getConnection(String url, Properties info)

throws SQLException;

? 使用DriverManager的getConnetion方法

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection conn = DriverManager.getConnection

("jdbc:odbc:sqlserver", "sa", "sa");

? 使用設(shè)置jdbc.drivers系統(tǒng)屬性的方法

java -Djdbc.drivers=sun.jdbc.odbc.JdbcOdbcDriver test.java

DataSource 接口

……

//從上下文中查找數(shù)據(jù)源,并獲取數(shù)據(jù)庫(kù)連接

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("sqlserver");

Connection conn = ds.getConnection();

//查詢數(shù)據(jù)庫(kù)中所有記錄

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM student");

……

Connection 接口

Connection接口代表了已經(jīng)建立的數(shù)據(jù)庫(kù)連接,它是整個(gè)JDBC的核心內(nèi)容。Connnection接口中的方法按照它們所實(shí)現(xiàn)的功能,可以分為三類(lèi):

? 生成數(shù)據(jù)庫(kù)語(yǔ)句

? 管理數(shù)據(jù)庫(kù)事務(wù)

? 獲取數(shù)據(jù)庫(kù)信息

生成數(shù)據(jù)庫(kù)語(yǔ)句

JDBC將數(shù)據(jù)庫(kù)語(yǔ)句分成三種類(lèi)型 :

? 生成Statement 語(yǔ)句 :

Connection.createStatement()

? 生成PreparedStatement 語(yǔ)句 :

Connection. prepareStatement()

? 生成CallableStatement 語(yǔ)句 :

Connection. prepareCall ()

管理數(shù)據(jù)庫(kù)事務(wù)

? 默認(rèn)情況下,JDBC將一條數(shù)據(jù)庫(kù)語(yǔ)句視為一個(gè)完整的事務(wù)??梢躁P(guān)掉默認(rèn)事務(wù)管理:

public void setAutoCommit(Boolean autoCommit) throws SQLException;

將autoCommit的值設(shè)置為false,就關(guān)掉了自動(dòng)事務(wù)管理模式

? 在執(zhí)行完事務(wù)后,應(yīng)提交事務(wù):

public void commit() throws SQLException;

? 可以取消事務(wù):

public void rollback() throws SQLException;

第二講 第四部分

數(shù)據(jù)庫(kù)語(yǔ)句

數(shù)據(jù)庫(kù)語(yǔ)句

JDBC數(shù)據(jù)庫(kù)語(yǔ)句共有三種類(lèi)型:

? Statement:

Statement語(yǔ)句主要用于嵌入一般的SQL語(yǔ)句,包括查詢、更新、插入和刪除等等。

? PreparedStatement:

PreparedStatement語(yǔ)句稱為準(zhǔn)備語(yǔ)句,它是將SQL語(yǔ)句中的某些參數(shù)暫不指定,而等到執(zhí)行時(shí)在統(tǒng)一指定。

? CallableStatement:

CallableStatement用于執(zhí)行數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程。

Statement 語(yǔ)句

? executeQuery方法

? executeUpdate方法

? execute方法

? close方法

executeQuery方法

? executeQuery方法主要用于執(zhí)行產(chǎn)生單個(gè)結(jié)果集的SQL查詢語(yǔ)句(QL),即SELECT語(yǔ)句。executeQuery方法的原型如下所示:

? public ResultSet executeQuery(String sql) throws SQLException;

executeUpdate方法

? executeUpdate方法主要用于執(zhí)行 INSERT、UPDATE、DELETE語(yǔ)句,即SQL的數(shù)據(jù)操作語(yǔ)句(DML)

? executeUpdate方法也可以執(zhí)行類(lèi)似于CREATE TABLE和DROP TABLE語(yǔ)句的SQL數(shù)據(jù)定義語(yǔ)言(DDL)語(yǔ)句

? executeUpdate方法的返回值是一個(gè)整數(shù),指示受影響的行數(shù)(即更新計(jì)數(shù))。而對(duì)于CREATE TABLE 或 DROP TABLE等并不操作特定行的語(yǔ)句,executeUpdate的返回值總為零。

execute方法

execute方法用于執(zhí)行:

? 返回多個(gè)結(jié)果集

? 多個(gè)更新計(jì)數(shù)

? 或二者組合的語(yǔ)句

execute方法

? 返回多個(gè)結(jié)果集:首先要調(diào)用getResultSet方法獲得第一個(gè)結(jié)果集,然后調(diào)用適當(dāng)?shù)膅etter方法獲取其中的值。要獲得第二個(gè)結(jié)果集,需要先調(diào)用getMoreResults方法,然后再調(diào)用getResultSet方法。

? 返回多個(gè)更新計(jì)數(shù):首先要調(diào)用getUpdateCount方法獲得第一更新計(jì)數(shù)。然后調(diào)用getMoreResults,并再次調(diào)用getUpdateCount獲得后面的更新計(jì)數(shù)。

? 不知道返回內(nèi)容:如果結(jié)果是ResultSet對(duì)象,則execute方法返回true;如果結(jié)果是int類(lèi)型,則意味著結(jié)果是更新計(jì)數(shù)或執(zhí)行的語(yǔ)句是DDL命令。

execute方法

為了說(shuō)明如果處理execute方法返回的結(jié)果,下面舉一個(gè)代碼例子:

stmt.execute(query);

while (true) {

int row = stmt.getUpdateCount();

//如果是更新計(jì)數(shù)

if (row 0) {

System.out.println("更新的行數(shù)是:" + row);

stmt.getMoreResults();

continue;

}

execute方法

//如果是DDL命令或0個(gè)更新

if (row == 0) {

System.out.println("沒(méi)有更新,或SQL語(yǔ)句是一條DDL語(yǔ)句!");

stmt.getMoreResults();

continue;

}

//如果是一個(gè)結(jié)果集

ResultSet rs = stmt.getResultSet;

if (rs != null) {

while (rs.next()) {

// 處理結(jié)果集

. . .

}

stmt.getMoreResults();

continue;

}

break;

}

PreparedStatement 語(yǔ)句

登錄一個(gè)網(wǎng)站或BBS時(shí) :

? 使用Statement語(yǔ)句

Statement stmt = conn.createStatement();

ResultSet rs = stmt.executeQuery

(“SELECT password FROM userinfo

WHERE id=userId");

? 使用PreparedStatement語(yǔ)句

PreparedStatement pstmt=conn.prepareStatement

(“SELECT password FROM userinfo

WHERE id=?");

pstmt.setString(1, userId);

PreparedStatement語(yǔ)句

? 常用的setter方法

public void setBoolean(int parameterIndex, boolean x) throws SQLException;

public void setByte(int parameterIndex, byte x) throws SQLException;

public void setShort(int parameterIndex, short x) throws SQLException;

public void setInt(int parameterIndex,int x) throws SQLException;

public void setLong(int parameterIndex, long x) throws SQLException;

public void setFloat(int parameterIndex, float x) throws SQLException;

public void setDouble(int parameterIndex, double x) throws SQLException;

public void setBigDecimal(int parameterIndex, BigDecimal x) throws SQLException;

public void setString(int parameterIndex, String x) throws SQLException;

public void setBytes(int parameterIndex, byte[] x) throws SQLException;

public void setDate(int parameterIndex, Date x) throws SQLException;

public void setTime(int parameterIndex, Time x) hrows SQLException;

public void setTimestamp(int parameterIndex, Timestamp x) throws SQLException;

PreparedStatement語(yǔ)句

? PreparedStatement接口是由Statement接口擴(kuò)展而來(lái)的,重寫(xiě)了executeQuery方法、executeUpdate方法和execute 方法

? public ResultSet executeQuery() throws SQLException

? public int executeUpdate() throws SQLException

? public boolean execute() throws SQLException

CallableStatement語(yǔ)句

? CallableStatement語(yǔ)句是由Connection接口的prepareCall方法創(chuàng)建的,創(chuàng)建時(shí)需要傳入字符串參數(shù),參數(shù)的形式為:

? {call procedure_name[(?, ?, ...)]}

? {? = call procedure_name[(?, ?, ...)]}

? {call procedure_name}

CallableStatement語(yǔ)句

? 其中的問(wèn)號(hào)是參數(shù)占位符,參數(shù)共有兩種:

? IN參數(shù)

? OUT參數(shù)

? IN參數(shù)使用setter方法來(lái)設(shè)置

? OUT參數(shù)則使用registerOutParameter方法來(lái)設(shè)置

CallableStatement 語(yǔ)句

CallableStatement cstmt = con.prepareCall

("{call getTestData(?, ?)}");

cstmt.registerOutParameter

(1, java.sql.Types.TINYINT);

cstmt.registerOutParameter

(2, java.sql.Types.DECIMAL, 3);

cstmt.executeQuery();

byte x = cstmt.getByte(1);

java.math.BigDecimal n =

cstmt.getBigDecimal(2, 3);

第二講 第五部分

結(jié) 果 集

結(jié)果集

? JDBC為了方便處理查詢結(jié)果,又專門(mén)定義了一個(gè)接口,這個(gè)接口就是ResultSet接口。ResultSet接口提供了可以訪問(wèn)數(shù)據(jù)庫(kù)查詢結(jié)果的方法,通常稱這個(gè)接口所指向的對(duì)象為結(jié)果集。

? 有兩種方法得到結(jié)果集,一種是直接執(zhí)行查詢語(yǔ)句,將結(jié)果存儲(chǔ)在結(jié)果集對(duì)象上;另一種是不存儲(chǔ)返回結(jié)果,而在需要時(shí)調(diào)用數(shù)據(jù)庫(kù)語(yǔ)句的getResultSet方法來(lái)返回結(jié)果集

結(jié)果集

? 結(jié)果集指針

由于返回的結(jié)果集可能包含多條數(shù)據(jù)記錄,因此ResultSet 接口提供了對(duì)結(jié)果集的所有數(shù)據(jù)記錄輪詢的方法。結(jié)果集自動(dòng)維護(hù)了一個(gè)指向當(dāng)前數(shù)據(jù)記錄的指針,初始時(shí)這個(gè)指針是指向第一行的前一個(gè)位置。 next 方法就是用于向前移動(dòng)指針的

結(jié)果集

? 結(jié)果集屬性

默認(rèn)情況下,結(jié)果集是一個(gè)不可更新集,并且結(jié)果集的指針也只能向前移動(dòng)。也就是說(shuō),在得到了一個(gè)結(jié)果集之后,用戶只能按照從第一條記錄到最后一條記錄的順序依次向后讀取,而不能跳到任意條記錄上,也不能返回到前面的記錄。不僅如此,結(jié)果集的這種輪詢只能進(jìn)行一次,而不能再將指針重置到初始位置進(jìn)行多次輪詢

結(jié)果集

? 結(jié)果集屬性

類(lèi)型

并發(fā)性

有效性

? 屬性的設(shè)置是在生成數(shù)據(jù)庫(kù)語(yǔ)句時(shí)通過(guò)向生成方法傳入相應(yīng)的參數(shù)設(shè)定的,而當(dāng)結(jié)果集已經(jīng)返回時(shí)就不能夠再改變它的屬性了。

結(jié)果集生成Statement語(yǔ)句共有三種方法

public Statement createStatement() throws SQLException;

public Statement createStatement

(int resultSetType, int resultSetConcurrency)

throws SQLException;

public Statement createStatement

(int resultSetType, int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

結(jié)果集

? 生成PreparedStatement語(yǔ)句共有六種方法

public PreparedStatement prepareStatement(String sql) throws SQLException;

public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int[] columnIndexes)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int resultSetType,

int resultSetConcurrency)

throws SQLException;

public PreparedStatement prepareStatement(String sql, int resultSetType,

int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

public PreparedStatement prepareStatement(String sql. String[] columnNames)

throws SQLException;

結(jié)果集

? 生成CallableStatement語(yǔ)句共有三種方法

public CallableStatement prepareCall(String sql)

throws SQLException;

public CallableStatement prepareCall

(String sql, int resultSetType,

int resultSetConcurrency)

throws SQLException;

public CallableStatement prepareCall

(String sql, int resultSetType,

int resultSetConcurrency,

int resultSetHoldability)

throws SQLException;

結(jié)果集

結(jié)果集類(lèi)型

? 結(jié)果集的類(lèi)型共有三種,TYPE_FORWARD_ONLY類(lèi)型的結(jié)果集只能向前移動(dòng)指針,而TYPE_SCROLL_INSENSITIVE類(lèi)型和TYPE_SCROLL_SENSITIVE類(lèi)型的結(jié)果集則可以任意移動(dòng)指針。后兩種類(lèi)型的區(qū)別在于,前者對(duì)來(lái)自其它處的修改不敏感(靜態(tài)),而后者則對(duì)于別人的修改敏感(動(dòng)態(tài)視圖)。

結(jié)果集

結(jié)果集類(lèi)型

? 對(duì)于可以任意移動(dòng)指針的結(jié)果集,可以用來(lái)移動(dòng)指針的方法包括:

? next 和previous :

? absolute 和relative :參數(shù)可正可負(fù)

? afterLast 、beforeFirst 、last 和first :

結(jié)果集

結(jié)果集并發(fā)性

? 結(jié)果集的并發(fā)性共有兩種,CONCUR_READ_ONLY的結(jié)果集是只讀而不可更新的;而CONCUR_UPDATABLE的結(jié)果集則是可以通過(guò)update方法進(jìn)行更新的。

? ResultSet接口提供了一組update方法,用于更新結(jié)果集中的數(shù)據(jù)。這些方法與PreparedStatement接口中定義的setter方法一樣,也是與類(lèi)型相對(duì)應(yīng)的。所有的update方法都以u(píng)pdate開(kāi)頭 。

? 所有的update方法都有兩個(gè)參數(shù),第一個(gè)參數(shù)用于指定更新的列,它可以是列名稱也可以是列的序號(hào);第二個(gè)參數(shù)則表示將要更新列的值。

結(jié)果集

結(jié)果集并發(fā)性

? Statement stmt = conn.createStatement

? (ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);

? ResultSet rs = stmt.executeQuery("SELECT * FROM student " +

? "WHERE grade=2 AND math60 AND physics60 AND " +

? "chemistry60 AND english60 AND chinese60");

? while(rs.next()){

? rs.updateString("grade", "3");

? rs.updateRow();

? }

結(jié)果集

結(jié)果集有效性

? 結(jié)果集的有效性是指在調(diào)用了Connection 接口的commit 方法后,結(jié)果集是否自動(dòng)關(guān)閉。所以它只有兩個(gè)可選值,即HOLD_CURSORS_OVER_COMMIT 和CLOSE_CURSORS_AT_COMMIT 。前者表示調(diào)用commit 方法之后,結(jié)果集不關(guān)閉;而后者則表示關(guān)閉結(jié)果集。

結(jié)果結(jié)果集

? 結(jié)果集的getter方法

ResultSet接口還提供了一組getter方法,用于返回當(dāng)前記錄的屬性值。它們都是以get開(kāi)頭的,后接數(shù)據(jù)類(lèi)型。比如,如果要返回一個(gè)float類(lèi)型的列值,則應(yīng)調(diào)用getFloat方法。每一種類(lèi)型的getter方法都有兩種形式,它們的名稱相同而參數(shù)不同。這兩種形式的getter方法都只有一個(gè)參數(shù),第一種形式的getter方法參數(shù)是String類(lèi)型的,用于指定列的名稱;另外一種形式的getter方法參數(shù)則是int類(lèi)型的,用于指定列的序號(hào)。

求用JAVA實(shí)現(xiàn)計(jì)算器的代碼(可實(shí)用的,沒(méi)語(yǔ)法錯(cuò)誤的)

import java.awt.BorderLayout; import java.awt.Color; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.border.TitledBorder; //導(dǎo)包 public class Jisuanqi extends JFrame implements ActionListener { //繼承JFrame 實(shí)現(xiàn)事件監(jiān)聽(tīng) private JTextField reasult; private JButton btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btn0, btnAC, btnAdd, btnSub, btnReasult, btnD, btnAbout, btnCancel; private boolean add, sub, end, s, c; private String str; private double num1, num2; public Jisuanqi() { //構(gòu)造屬性 JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); TitledBorder tb = new TitledBorder("輸出"); tb.setTitleColor(Color.BLUE); //標(biāo)題邊框底端線 設(shè)置顏色 btnAbout = new JButton(" 關(guān)于 "); btnCancel = new JButton("Cancel"); //兩個(gè)按鈕 btnCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ee) { System.exit(0); } }); //給Cancel添加事件監(jiān)聽(tīng) 當(dāng)鼠標(biāo)點(diǎn)擊時(shí) 程序結(jié)束 btnAbout.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ee) { JOptionPane.showMessageDialog(null, "黃蓋??!", "消息", JOptionPane.INFORMATION_MESSAGE); } //給“關(guān)于”添加事件監(jiān)聽(tīng) 當(dāng)鼠標(biāo)點(diǎn)擊時(shí) 彈出對(duì)話框 顯示黃蓋 }); p3.add(btnAbout); p3.add(btnCancel); // JPanel p4=new JPanel(); // JPanel p5=new JPanel(); // reasult.setBorder(tb); reasult = new JTextField("0", 20); reasult.setEditable(false); //設(shè)置不能修改 reasult.setHorizontalAlignment(JTextField.RIGHT); // 設(shè)置文本的水平對(duì)齊方式。 reasult.setForeground(Color.BLUE); //顏色 p1.setBorder(tb); p1.add(reasult); btn0 = new JButton("0"); btn0.addActionListener(this); btn1 = new JButton("1"); btn1.addActionListener(this); btn2 = new JButton("2"); btn2.addActionListener(this); btn3 = new JButton("3"); btn3.addActionListener(this); btn4 = new JButton("4"); btn4.addActionListener(this); btn5 = new JButton("5"); btn5.addActionListener(this); btn6 = new JButton("6"); btn6.addActionListener(this); btn7 = new JButton("7"); btn7.addActionListener(this); btn8 = new JButton("8"); btn8.addActionListener(this); btn9 = new JButton("9"); btn9.addActionListener(this); btnD = new JButton("."); btnD.addActionListener(this); btnD.setForeground(Color.RED); btnAC = new JButton("AC"); btnAC.addActionListener(this); btnAC.setBackground(Color.PINK); btnAdd = new JButton("+"); btnAdd.addActionListener(this); btnAdd.setForeground(Color.BLUE); btnSub = new JButton("—"); btnSub.addActionListener(this); btnSub.setForeground(Color.BLUE); btnReasult = new JButton("="); btnReasult.addActionListener(this); btnReasult.setForeground(Color.RED); //事件監(jiān)聽(tīng) + 顏色 p2.add(btn1); p2.add(btn2); p2.add(btn3); p2.add(btn4); p2.add(btn5); p2.add(btn6); p2.add(btn7); p2.add(btn8); p2.add(btn9); p2.add(btn0); p2.add(btnD); p2.add(btnAC); p2.add(btnAdd); p2.add(btnSub); p2.add(btnReasult); //面板上添加按鈕 p2.setLayout(new GridLayout(5, 3)); //面板上設(shè)置對(duì)齊方式 add(p1, BorderLayout.NORTH); add(p2, BorderLayout.CENTER); add(p3, BorderLayout.SOUTH); //將p1 p2 p3 面板對(duì)象添加到JFrame } public void num(int i) { String s = null; s = String.valueOf(i); if (end) { // 如果數(shù)字輸入結(jié)束,則將文本框置零,重新輸入 reasult.setText("0"); end = false; } if ((reasult.getText()).equals("0")) { // 如果文本框的內(nèi)容為零,則覆蓋文本框的內(nèi)容 reasult.setText(s); } else { // 如果文本框的內(nèi)容不為零,則在內(nèi)容后面添加數(shù)字 str = reasult.getText() + s; reasult.setText(str); } }/* * * String s=null; * * s=String.valueOf(i); * * str=reasult.getText()+s; * * reasult.setText(str); * * } */ public void actionPerformed(ActionEvent e) { if (e.getSource() == btn1) num(1); else if (e.getSource() == btn2) num(2); else if (e.getSource() == btn3) num(3); else if (e.getSource() == btn4) num(4); else if (e.getSource() == btn5) num(5); else if (e.getSource() == btn6) num(6); else if (e.getSource() == btn7) num(7); else if (e.getSource() == btn8) num(8); else if (e.getSource() == btn9) num(9); else if (e.getSource() == btn0) num(0); else if (e.getSource() == btnAdd) { sign(1); btnD.setEnabled(true); } else if (e.getSource() == btnSub) { sign(2); btnD.setEnabled(true); } else if (e.getSource() == btnAC) { btnD.setEnabled(true); reasult.setText("0"); } else if (e.getSource() == btnD) { str = reasult.getText(); str += "."; reasult.setText(str); btnD.setEnabled(false); } else if (e.getSource() == btnReasult) { btnD.setEnabled(true); num2 = Double.parseDouble(reasult.getText()); if (add) { num1 = num1 + num2; } else if (sub) { num1 = num1 - num2; } reasult.setText(String.valueOf(num1)); end = true; } } public void sign(int s) { if (s == 1) { add = true; sub = false; } else if (s == 2) { add = false; sub = true; } num1 = Double.parseDouble(reasult.getText()); end = true; } //設(shè)計(jì)計(jì)算的過(guò)程 public static void main(String[] args) { Jisuanqi j = new Jisuanqi(); j.setTitle("+/-簡(jiǎn)易計(jì)算器"); j.setLocation(500, 280); j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //默認(rèn)關(guān)閉可以關(guān)閉程序 j.setResizable(false); j.pack(); j.setVisible(true); } } 這個(gè)計(jì)算機(jī),絕對(duì)讓你滿意

java超市計(jì)價(jià)系統(tǒng)代碼

package?entity;

public?class?Market?{

private?int?id;//id

private?int?num;//數(shù)量

private?String?goods;//商品

private?double?price;//價(jià)格

public?Market(int?id,?int?num,?String?goods,?double?price)?{

super();

this.id?=?id;

this.num?=?num;

this.goods?=?goods;

this.price?=?price;

}

public?int?getId()?{

return?id;

}

public?void?setId(int?id)?{

this.id?=?id;

}

public?int?getNum()?{

return?num;

}

public?void?setNum(int?num)?{

this.num?=?num;

}

public?String?getGoods()?{

return?goods;

}

public?void?setGoods(String?goods)?{

this.goods?=?goods;

}

public?double?getPrice()?{

return?price;

}

public?void?setPrice(double?price)?{

this.price?=?price;

}

public?double?calc(?){

double?sum=price*num;

System.out.println("您消費(fèi)共計(jì):"+sum+"¥");

return?sum;

}

}

package?test;

import?java.util.HashMap;

import?java.util.Map;

import?java.util.Scanner;

import?entity.Market;

public?class?Test?{

private?static?MapInteger,Market?goods=new?HashMapInteger,?Market();

public?static?void?main(String[]?args)?{

System.out.println("-------超市計(jì)價(jià)系統(tǒng)-------");

String?goods1="可口可樂(lè)";

String?goods2="爆米花";

String?goods3="益達(dá)";

printTable("編號(hào)","商品","價(jià)格");

printTable("1",goods1,"3.0¥");

printTable("2",goods2,"5.0¥");

printTable("3",goods3,"10.0¥");

goods.put(1,?new?Market(1,?1,?goods1,?3.0));

goods.put(2,?new?Market(2,?1,??goods2,?5.0));

goods.put(3,?new?Market(3,?1,?goods3,?10.0));

Scanner?input?=?new?Scanner(System.in);

System.out.println("請(qǐng)輸入商品的編號(hào):");

int?num?=?input.nextInt();

System.out.println("請(qǐng)輸入商品的數(shù)量");

int?amount?=?input.nextInt();

Market?market?=?goods.get(num);

market.setNum(amount);

market.calc();

}

private?static?void?printTable(String?row1,String?row2,String?row3?)?{

System.out.print(row1);

int?times=12;

if?(row2!="商品")?{

times=5;

}

for?(int?i?=?0;?i??times;?i++)?{

System.out.print("?");

}

System.out.print(row2);

for?(int?i?=?0;?i??10;?i++)?{

System.out.print("?");

}

System.out.print(row3);

System.out.println("\n");

}

}

//測(cè)試結(jié)果:

-------超市計(jì)價(jià)系統(tǒng)-------

編號(hào)????????????商品??????????價(jià)格

1?????可口可樂(lè)??????????3.0¥

2?????爆米花??????????5.0¥

3?????益達(dá)??????????10.0¥

請(qǐng)輸入商品的編號(hào):

3

請(qǐng)輸入商品的數(shù)量

5

您消費(fèi)共計(jì):50.0¥

簡(jiǎn)單的JAVA學(xué)生管理系統(tǒng)代碼···

lListStudent students = new ArrayListStudent();

BufferedReader br = new BufferedReader(new FileReader("D:\student.txt"));

String tmpStr = br.readLine();

while(tmpStr != null){

int firstIndex = tmpStr.indexOf(" ");

int secondIndex = tmpStr.indexOf(" ",firstIndex + 1);

int thirdIndex = tmpStr.indexOf(" ", secondIndex + 1);

int forthIndex = tmpStr.indexOf(" ", thirdIndex + 1);

Integer stuId = Integer.parseInt(tmpStr.substring(0,firstIndex));

String stuName = tmpStr.substring(firstIndex + 1,secondIndex);

Integer stuYW = Integer.parseInt(tmpStr.substring(secondIndex + 1,thirdIndex));

Integer stuSX = Integer.parseInt(tmpStr.substring(thirdIndex + 1,forthIndex));

Integer stuYY = Integer.parseInt(tmpStr.substring(forthIndex + 1));

Student student = new Student();

student.setStuId(stuId);

student.setStuName(stuName);

student.setStuYW(stuYW);

student.setStuSX(stuSX);

student.setStuYY(stuYY);

students.add(student);

tmpStr.readLine();

}

//創(chuàng)建一個(gè)學(xué)生實(shí)體類(lèi) 封裝stuId stuName stuYW stuSx stuYY 這5個(gè)屬性。。。

//已經(jīng)幫你把數(shù)據(jù)拆分出來(lái) 并以Student 對(duì)象的形式放入集合中了 接下來(lái) 給分吧 哇咔咔

java圖書(shū)管理系統(tǒng)代碼

最近好多人要這份源碼啊感覺(jué)..有建表腳本..使用mysql數(shù)據(jù)庫(kù)..建表之后就可以直接運(yùn)行了.


分享名稱:關(guān)于java實(shí)用系統(tǒng)代碼大全的信息
網(wǎng)頁(yè)URL:http://weahome.cn/article/hpjhoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部