本次结队编程的数学试卷对我是个很大的挑战
因为一开始考虑写网站,在网页中生成题目,毕竟选了javaee,可以一举两得,但是写着写着发现jsp语言有大量的标记和事件,画了两天时间,虽然收获不少,但是依然搞不定,所以只好转swing,而swing其实有点忘记,加上时间又短,做得也比较粗糙,队友刘宇航完成了数学试卷的具体实现,我主要做了验证码,界面,数据库连接登录注册这些杂活
输入手机号后就会点击获取验证码就会自动发到手机号,主要用的是阿里云的
这个界面确实有点丑,但是不是重点~
注册成功之后就会在mysql中就会出现相应的账号
只需要在框中输入数量,再点击下方的按钮,就可以生成对应的试卷
试卷生成的位置,在以用户名为名的文件夹里面,如果是刚注册的用户,就会给他自动创建文件夹
生成两份,一份是试卷,一份是答案
缺点:显然,UI界面并没有做好,主要是我队友负责的是试卷方面,而我身边并没有和我讨论的人,两个舍友都是数媒……而我喜欢去图书馆,基本上见不到同学,所以在写UI的时候特别花时间,网上的代码往往用很复杂的代码讲解一个很简单的概念,下次一定注意
第二:并没有实现边做题,边检查答案,在老师要求的功能下,也没有增加额外的功能
使用的技术:mysql,swing,
可以使用的技术:jsp+css+html, 线程(设置倒计时)
收获:本次代码,让我重新对swing有更多了解,比如三种布局,各种组件JTextField, JButton等等,
以及连接mysql所用的步骤,包括加载jdbc驱动,连接数据库,执行sql语句,设置结果集获取结果
java很多的方法,eval,getEngineByName登封
更重要的是,体会到jsp其实有很多东西的,不是一下子就能学会的
贴一段加载驱动的代码,这个没有什么原因,就是要这样写,规定好的
import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connection; import com.mysql.jdbc.PreparedStatement; import com.mysql.jdbc.Statement; public class ConnDB { public Connection conn=null; public PreparedStatement stmt=null; public ResultSet rs=null; User u=null; //驱动类的类名 private static String dbClassName="com.mysql.jdbc.Driver"; private static String dbUrl="jdbc:mysql://localhost:3306/usercontroldb"; private static String username="root"; private static String password="这里是密码"; public boolean findUser(String un,String pwd) { try { conn=(Connection) DriverManager.getConnection(dbUrl, username, password); String sql="SELECT * FROM user WHERE username=? and userpassword=?"; // String sql2="insert into user (username,userpassword) values ('cs','123')"; stmt=(PreparedStatement) conn.prepareStatement(sql); stmt.setString(1,un); stmt.setString(2,pwd); rs=stmt.executeQuery(); if(rs.next()) { u=new User(); //第一个是id u.setUsername(rs.getString(2)); u.setPassword(rs.getString(3)); } }catch (Exception e) { // TODO: handle exception e.printStackTrace(); } // System.out.println(u.getUsername()+u.getPassword()+"!"); if(u.getUsername()!=null&&u.getPassword()!=null) { return true; } return false; }