1、南通大学计算机学院Java 程序设计基础项目报 告 书设计题目 题库维护系统 专业班级: 计师 111学生姓名: xxx 学 号: xxx指导教师 陆培军 日 期 2013.12.24 1. 课程设计题目:题库维护系统2. 课程设计目的:掌握 java 面向对象的编程思想,掌握 java 常用类的使用,掌握 java 中 I/O 流的基本操作,通过本课程设计可以对本学期所学知识有一个系统全面的掌握。3. 课程设计要求:(1).系统功能要求本项目需要采用 Java / mysql 技术完成英语试题库的维护功能,需要完成的功能包括:用户登录,对题库的添加,修改,删除,用户操作题库的日志记录与显示(
2、2)数据库设计要求本项目数据存储统一采用 Mysql 数据库,数据库名为 DBExercise。(3).本课程设计要求:A 每位同学必须独立完成本课程设计B 在规定的时间(2013.12.11-2013.12.26)内完成系统的设计及代码编写C 完成作业必须提交相应项目设计报告书的打印稿及电子稿,作业上交最后日期为 2013.12.26 号,打印稿各位同学交到计算机楼 605 网络工程系办公室。电子稿请于 2013.12.26 日之前发至下面的邮箱中,邮件主题:Java 程序设计基础报告书(选修) _姓名,学号,班级D 项目设计报告书必须包含:系统需要实现的主要功能、系统功能结构图、系统源代码
3、、系统存在的主要问题及注意事项、设计总结及体会、参考书目等。4. 课程设计报告内容4.1 系统主要功能:4.1.1 功能描述:用户登录,对题库的添加,修改,删除,用户操作题库的日志记录与显示。 4.2 系统代码实现:4.2.1 连接管理器设置:import java.sql.*;public class ConnectionManager public static final String DRIVER_CLASS=“com.mysql.jdbc.Driver“;public static final String URL=“jdbc:mysql:/localhost:3306/dbexer
4、cise“;public static final String DATABASE_USER=“root“;public static final String DATABSE_PASSWORD=“368“;public static Connection getConnection()Connection con=null;tryClass.forName(DRIVER_CLASS);catch(ClassNotFoundException e)System.out.println(“加载驱动程序错误“);e.printStackTrace();trycon=DriverManager.ge
5、tConnection(URL,DATABASE_USER,DATABSE_PASSWORD);catch(SQLException e)System.out .println(“数据库连接错误 “);e.printStackTrace();return con;public static void closeConnection(Connection con,Statement stmt,ResultSet res)if(res!=null)tryres.close();res=null;catch(SQLException e)e.printStackTrace();if(stmt!=nu
6、ll)trystmt.close();stmt=null;catch(SQLException e)e.printStackTrace();tryif(con!=null con=null;catch(SQLException e)e.printStackTrace();public static void closeConnection(Connection con,PreparedStatement pstmt,ResultSet res)if(res!=null)tryres.close();res=null;catch(SQLException e)e.printStackTrace(
7、);if(pstmt!=null)trypstmt.close();pstmt=null;catch(SQLException e)e.printStackTrace();tryif(con!=null con=null;catch(SQLException e)e.printStackTrace();4.2.2 界面设置:import java.sql.Date;import java.util.*;public class Wll private static String name;private static String strPassword;private static bool
8、ean b ;public static boolean Start()java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(“yyyy 年 MM 月 dd 日“);Scanner scn=new Scanner(System.in);String now = sdf.format(new java.util.Date();System.out.println(“*“);System.out.println(“题库维护系统 TKV1.0 欢迎您 今天是:“+now);System.out.println(“请输入登录用户
9、名:“);System.out.println(“*“);name=scn.nextLine();System.out.println(“*“);System.out.println(“题库维护系统 TKV1.0 欢迎您 今天是:“+now);System.out.println(“请输入密码:“);System.out.println(“*“);strPassword = scn.nextLine();UserInfo user = new UserInfo(name, strPassword);b = new UserInfoDao().Exist(user);return b;publi
10、c static void main(String args) Scanner scn=new Scanner(System.in);int logCount = new OperateLogInfoDao().Count()+1;int exerCount = new ExerciseDao().Count()+1;boolean j = false;java.text.SimpleDateFormat f=new java.text.SimpleDateFormat(“yyyy-MM-dd“);java.util.Date utilDate=new java.util.Date();whi
11、le(!Start()System.out.println(“输入错误,请重新输入:“);while(!j)System.out.println(“*“);System.out.println(“请选择相关的操作:“);System.out.println(“1.添加题目 按键盘字符(a)“);System.out.println(“2.删除题目 按键盘字符(b)“);System.out.println(“3.显示题目 按键盘字符(c)“);System.out.println(“4.显示操作日志 按键盘字符(d)“);System.out.println(“5.退出系统 按键盘字符(e)“
12、);System.out.println(“*“);String str = scn.nextLine();switch(str.toCharArray()0)case(a):System.out.println(“*“);System.out.println(“添加题目:“);System.out.println(“*“);System.out.println(“请输入题目:“);String question = scn.nextLine();System.out.println(“请输入选项 x:“);String a = scn.nextLine();System.out.printl
13、n(“请输入选项 y:“);String b = scn.nextLine();System.out.println(“请输入选项 z:“);String c = scn.nextLine();System.out.println(“请输入选项 m:“);String d = scn.nextLine();ExerciseInfo e = new ExerciseInfo(exerCount,question,a,b,c,d,“easy“);exerCount+;if(new ExerciseDao().Add(e)0)new OperateLogInfoDao().Add(new Opera
14、teLogInfo(logCount,name,“insert exercise: “+question,new Date(utilDate.getTime(),“ok“);logCount+;System.out.println(“添加成功,是否继续添加?(y/n)“);String judje1 = scn.nextLine();if(judje1.equals(“y“)System.out.println(“添加成功“);j = false;break;case(b):System.out.println(“*“);System.out.println(“删除题目:“);System.o
15、ut.println(“*“);System.out.println(“请输入所需删除题目 id:“);String strId = scn.nextLine();int eId=Integer.parseInt(strId);if(new ExerciseDao().Del(eId)0)new OperateLogInfoDao().Add(new OperateLogInfo(logCount,name,“delete exercise: id=“+eId,new Date(utilDate.getTime(),“ok“);logCount+;System.out.println(“删除成
16、功,是否继续删除:(y/n)“);String judje2 = scn.nextLine();if(judje2.equals(“y“)System.out.println(“删除成功!“);j = false;break;case(c):System.out.println(“*“);System.out.println(“显示题目:“);System.out.println(“*“);for(int i=1;i0)System.out.println(“题目 ID: “+e1.getId()+“n“+“问题: “+e1.getQuestion()+“n“+“答案:“+“(X):“+e1.
17、getA()+“ (Y):“+e1.getB()+“ (Z):“+e1.getC()+“ (M):“+e1.getD(); System.out.println(“-“);j=false;break;case(d):System.out.println(“*“);System.out.println(“显示操作日志:“); System.out.println(“*“);for(int i=1;ilogCount;i+)OperateLogInfoDao o = new OperateLogInfoDao();o.showOperatingLogInfo(o.Get(i);System.out.println(“-“);j=false;break;case(e):j=true;break;4.3 系统测试4.3.1 系统测试结果: