四则运算二
一、记录开发过程中的时间记录日志
PSP2.1 | Personal Software Process Stages | Time |
Planning | 计划 | 48小时 |
Development | 开发 | |
· Analysis | · 需求分析 (包括学习新技术) |
一个下午+一晚 (32小时) |
· Design Spec | ·生成设计文档 | 2小时 |
·Design Review | ·设计复审(和同事审核设计文档) | 1小时 |
·Coding Standard | ·代码规范(为目前的开发制定合适的规范) | 1小时 |
·Design | .具体设计 | 2小时 |
·Coding | ·具体编码 | 8小时 |
·Code Review | ·代码复审 | 1小时 |
.Test | ·测试(自我测试、修改代码、提交修改) | 1小时 |
Reporting | 报告 | |
·Test Report | ·测试报告 | 1小时 |
·Size Measurement | ·计算工作量 | 1小时 |
·Postmortem & Precess Improvement Plan | ·事后总结,并提出过程改进计划 | 1小时 |
合计 | 51小时 |
二、程序设计思想
按Bean+Servlet+jsp模式(即MVC模式),首先数据库要建三个表,一个储存用户信息,一个储存题目,一个储存成绩。其余是Java文件,实现对整数,真分数以及混合数的运算。最后写jsp文件,实现网页界面显示。
三、源代码
(这里只粘贴部分代码)
package db; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DBConn { private static final String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; private static final String url = "jdbc:sqlserver://localhost:1433; DatabaseName=Arithmetic"; private static final String user= "sa"; private static final String password= "yyq838485140///"; private static Statement stmt = null; private static Connection coon= null; private static PreparedStatement pstmt; private static ResultSet rs; static{ try { Class.forName(driver); coon = DriverManager.getConnection(url, user, password); stmt = coon.createStatement(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } static public Connection getConnection(){ return coon; } public static void close() { if(rs!=null){ try { rs.close(); } catch (SQLException e) { e.printStackTrace(); }finally{ try{ if(pstmt!=null) pstmt.close(); }catch(SQLException e){ e.printStackTrace(); }finally{ try{ if(coon!=null) coon.close(); }catch(SQLException e) { e.printStackTrace(); } } } } } public static void main(String[] args) { try { DBConn.getConnection(); } catch (Exception e) { e.printStackTrace(); } } }
1 package dao; 2 3 import java.sql.Connection; 4 import java.sql.PreparedStatement; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 8 import db.DBConn; 9 import model.User; 10 11 public class UserDao1 { 12 13 public static void main(String[] args) { 14 15 User u = new User(); 16 u.setUsername("asdsfd"); 17 u.setPwd("1111"); 18 UserDao1 a = new UserDao1(); 19 try { 20 a.insert(u); 21 } catch (SQLException e) { 22 // TODO Auto-generated catch block 23 e.printStackTrace(); 24 } 25 26 } 27 public void insert(User u) throws SQLException 28 { 29 Connection conn = null; 30 PreparedStatement pstmt = null; 31 ResultSet rs = null; 32 33 conn = DBConn.getConnection(); 34 //pstmt = conn.prepareStatement("insert into User(username,pwd) values(?,?)"); 35 pstmt = conn.prepareStatement("insert into user1(username,pwd) values(?,?)"); 36 pstmt.setString(1, u.getUsername()); 37 pstmt.setString(2, u.getPwd()); 38 pstmt.executeUpdate(); 39 40 DBConn.close(); 41 } 42 43 public User selectByUsername(User u) throws SQLException 44 { 45 Connection conn = null; 46 PreparedStatement pstmt = null; 47 ResultSet rs = null; 48 49 User n = null; 50 conn = DBConn.getConnection(); 51 pstmt = conn.prepareStatement("select * from user1 where username=?"); 52 pstmt.setString(1, u.getUsername()); 53 54 rs = pstmt.executeQuery(); 55 56 if(rs.next()) 57 { 58 n = new User(); 59 n.setUsername(rs.getString("username")); 60 n.setPwd(rs.getString("pwd")); 61 n.setQnum(rs.getInt("qNum")); 62 n.setEnum(rs.getInt("eNum")); 63 n.setRnum(rs.getInt("rNum")); 64 65 } 66 67 DBConn.close(); 68 return n; 69 } 70 71 public void update(User u) throws SQLException 72 { 73 Connection conn = null; 74 PreparedStatement pstmt = null; 75 ResultSet rs = null; 76 77 conn = DBConn.getConnection(); 78 pstmt = conn.prepareStatement("update user1 set qNum=?,eNum=?,rNum=? where username=?"); 79 pstmt.setInt(1, u.getQnum()); 80 pstmt.setInt(2, u.getEnum()); 81 pstmt.setInt(3, u.getRnum()); 82 pstmt.setString(4, u.getUsername()); 83 pstmt.executeUpdate(); 84 85 DBConn.close(); 86 } 87 88 89 }
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录</title> <script type="text/javascript"> </script> <style type="text/css"> #input { position:absolute;left:0px; top:30%; width:100%; } #logo { position: absolute; left: 0px; top: 17px; width: 100%; z-index: 100; } img {z-index: -1;} #logo form h1 { font-style: italic; font-size: 46px; color: white; } </style> </head> <body> <img src="images/p2.jpg" width="100%" height="100%"/> <div id="loginMessage"> </div> <div id="logo"> <form> <center> <h1>KNY熊出没答题网</h1> </center> </form> </div> <div id="input"> <center> <form action="Loginac" method="post" onsubmit="return check()"> <table> <tr><td>用户名:</td><td><input type="text" id="n1" name="username"></td><td><span id="userInfo"></span></td></tr> <tr><td>密码:</td><td><input type="password" id="pwd" name="pwd"></td><td><span id="pwdInfo"></span></td></tr> <tr><td><a href="Logon.html"><input type="button" id="bt1" value="注册"></a></td><td><input type="submit" value="登录"></td></tr> <tr><td></td><td><span id="loginResult"></span></td></tr> </table> </form> </center> </div> </body> </html>
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>主页</title> 9 10 <script src="js/jquery-2.1.1.min.js"></script> 11 12 13 <script type="text/javascript" src="js/index.js"></script> 14 15 <style type="text/css"> 16 #logo { 17 position: absolute; 18 left: 0px; 19 top: 17px; 20 width: 100%; 21 z-index: 100; 22 } 23 img {z-index: -1;} 24 #logo form h1 { 25 font-style: italic; 26 font-size: 36px; 27 color: #66FFCC;} 28 #user{position:absolute;left:5%;top:10px;z-index:200;} 29 #login{position:absolute;left:91%;top:10px;z-index:200;} 30 #logout{position:absolute;left:95%;top:10px;z-index:200;} 31 #wrap {position:absolute;left:0px;top:0px;width:100%;height:100%} 32 #menu {display: none;text-align: center;} 33 #userInfo {display: none;text-align: center;} 34 #zuoTiInput {display: none;} 35 #selectInput {display: none;text-align: center;} 36 #show {display: none; height: 350px;overflow: auto;} 37 #right {position:absolute;left:50%;top:40px;height:80%;width:40%} 38 #left { 39 position: absolute; 40 width: 518px; 41 top: 116px; 42 left: 48px; 43 height: 13px; 44 } 45 #zuoTiFuZhu {text-align: center;} 46 #result {text-align: center;} 47 #user { 48 color: #000033; 49 } 50 #user { 51 font-weight: bold; 52 } 53 #user { 54 color: #900; 55 } 56 #user { 57 color: #CC0033; 58 } 59 </style> 60 61 62 </head> 63 <body> 64 <img src="images/p4.jpeg" width="100%" height="100%"> 65 <div id="logo"> 66 <form> 67 <center> 68 <h1>KNY熊出没答题网</h1> 69 </center> 70 </form> 71 </div> 72 <!-- 73 <div id="loginBT" align="right"> 74 <a href="Login.html"><button>登录</button></a> 75 </div> 76 !--> 77 <div id="login"> 78 <a href="Login.html"><button>登录</button></a> 79 </div> 80 <div id="add"> 81 <a href="Logon.jsp"><button>注册</button></a> 82 </div> 83 <div id="user"> 84 您好!${user.username} 85 </div> 86 <div id="wrap"> 87 88 <div id="left"> 89 90 91 <div id="loginMessage"></div> 92 93 94 <!--<div id="userInfo"> 95 用户名:${user.username} 96 <!-- <div id="loginBT" align="right"> 97 <a href="Logoutac"><button id="logout">注销</button></a> 98 </div> !--> 99 100 101 <div id="menu"> 102 <button id="zuoTi">做题</button> 103 <button id="selectLiShiShiTi">查询历史试题</button> 104 </div> 105 106 <div id="zuoTiInput" > 107 108 <table align="center"> 109 <tr><td>试题类型:</td><td><label>整数式<input type="radio" name="type" value="0" checked="checked"></label></td><td><label>真分数式<input type="radio" name="type" value="1"></label></td></tr> 110 <tr><td>有无乘除:</td><td><label>无<input type="radio" name="hasChengChu" value="0" checked="checked"></label></td><td><label>有<input type="radio" name="hasChengChu" value="1"></label></td></tr> 111 <tr><td>有无括号:</td><td><label>无<input type="radio" name="hasKuoHao" value="0" checked="checked"></label></td><td><label>有<input type="radio" name="hasKuoHao" value="1"></label></td></tr> 112 <tr><td>最大值:</td><td colspan="2"><input type="text" name="maxNum" value="10"><span id="maxNumInfo"></span></td></tr> 113 <tr><td>试题个数:</td><td colspan="2"><input type="text" name="num" value="10"><span id="numInfo"></span></td></tr> 114 <tr><td colspan="3"><input type="button" id="zuoTiInputTiJiao" value="提交"></td></tr> 115 </table> 116 117 </div> 118 119 <div id="selectInput"> 120 <select id="shiJuanList"> 121 122 </select> 123 124 <select id="typeSelect"> 125 <option value="all" selected="selected"> 126 全部 127 </option> 128 129 <option value="right"> 130 正确 131 </option> 132 133 <option value="wrong"> 134 错误 135 </option> 136 137 </select> 138 139 <button id="selectShiJuan"> 140 查询 141 </button> 142 </div> 143 144 145 <div id="show"> 146 <table id="showShiTiTable" align="center" border="1"> 147 148 </table> 149 <div id="zuoTiFuZhu"><button id="jiaoJuanBT">交卷</button><span id="shengYuTime"></span></div> 150 <div id="result"> 151 152 </div> 153 </div> 154 155 </div> 156 </div> 157 </body> 158 </html
四、程序运行结果
(部分截图)