题库维护系统java实验报告.docx
《题库维护系统java实验报告.docx》由会员分享,可在线阅读,更多相关《题库维护系统java实验报告.docx(16页珍藏版)》请在冰豆网上搜索。
![题库维护系统java实验报告.docx](https://file1.bdocx.com/fileroot1/2023-2/21/fa8c36db-dfe1-4eec-84f8-b0ad7aa36b1c/fa8c36db-dfe1-4eec-84f8-b0ad7aa36b1c1.gif)
题库维护系统java实验报告
南通大学计算机科学与技术学院
《Java程序设计基础》项目
报告书
设计题目题库维护系统
专业班级
学生姓名
学号
指导教师
日期2014年6月
目录
1.课程设计题目………………………………………………………3
2.课程设计目的………………………………………………………3
3.课程设计要求………………………………………………………3
4.课程设计报告内容…………………………………………………4
4.1系统主要功能…………………………………………………4
4.2系统数据结构清单……………………………………………4
4.3系统代码实现…………………………………………………4
4.4系统测试………………………………………………………10
4.5系统存在的主要问题及注意事项……………………………11
4.6设计总结及体会………………………………………………11
5.参考文献…………………………………………………………11
一、课程设计题目:
题库维护系统
二、课程设计目的
1.掌握java面向对象的编程思想。
2.掌握java常用类的使用。
3.掌握java中I/O流的基本操作,通过本课程设计可以对本学期所学知识有一个系统全面的掌握。
三、课程设计要求
(1)系统功能要求
1):
系统运行要求在控制台出现如下操作主界面
/********************************************************/
题库维护系统今天是X月X日...........
请选择相关的操作:
1.添加题目按键盘字符(a)
2.导入题目按键盘字符(i)
2.删除题目按键盘字符(d)
3.显示题目按键盘字符(L)
/********************************************************/
2):
按键a以后,显示:
***********************************************************
添加题目,题库中中已有试题xx条,当前录入第xx条
***********************************************************
请输入题目:
请输入选项A:
请输入选项B:
请输入选项C:
请输入选项D:
输入成功,是否继续输入?
(y/n)
输入y,继续,输入n,返回主界面
3)按键i以后,显示:
**********************************************************
请输入需要导入题库文件路径:
按回车后如果导入成功,显示:
试题导入成功,共成功导入xx条试题,如果导入失败,则显示导入失败,显示异常信息
4)按键d以后,显示
***********************************************************
删除题目
***********************************************************
请输入所需删除的题号:
删除成功,是否继续删除?
(y/n)
输入y,继续,输入n,返回主界面
5)按键l以后,显示所有题目
四、课程设计报告内容
4.1系统主要功能
4.1.1功能描述:
添加题目,导入题目,删除题目,显示题目
4.1.2系统功能结构图:
4.2系统数据结构清单:
publicstaticfinalStringDRIVER_CLASS="com.mysql.jdbc.Driver";
publicstaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/dbexercise";
publicstaticfinalStringDATABASE_USER="root";
publicstaticfinalStringDATABSE_PASSWORD="3317";
publicstaticConnectiongetConnection();
privatestaticStringname;
privatestaticBooleanx;
4.3系统代码实现:
importjava.sql.*;
publicclassConnectionManager{
publicstaticfinalStringDRIVER_CLASS="com.mysql.jdbc.Driver";
publicstaticfinalStringURL="jdbc:
mysql:
//localhost:
3306/dbexercise";
publicstaticfinalStringDATABASE_USER="root";
publicstaticfinalStringDATABSE_PASSWORD="3317";
publicstaticConnectiongetConnection()
{
Connectioncon=null;
try{
Class.forName(DRIVER_CLASS);
}catch(ClassNotFoundExceptione)
{
System.out.println("加载驱动程序错误");
e.printStackTrace();
}
try{
con=DriverManager.getConnection(URL,DATABASE_USER,DATABSE_PASSWORD);
}catch(SQLExceptione){
System.out.println("数据库连接错误");
e.printStackTrace();
}
returncon;
}
publicstaticvoidcloseConnection(Connectioncon,Statementstmt,ResultSetres)
{
if(res!
=null)
try{
res.close();
res=null;
}catch(SQLExceptione){
e.printStackTrace();
}
if(stmt!
=null)
try{
stmt.close();
stmt=null;
}catch(SQLExceptione){
e.printStackTrace();
}
try{
if(con!
=null&&con.isClosed()==false)
{
con.close();
con=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
publicstaticvoidcloseConnection(Connectioncon,PreparedStatementpstmt,ResultSetres)
{
if(res!
=null)
try{
res.close();
res=null;
}catch(SQLExceptione){
e.printStackTrace();
}
if(pstmt!
=null)
try{
pstmt.close();
pstmt=null;
}catch(SQLExceptione){
e.printStackTrace();
}
try{
if(con!
=null&&con.isClosed()==false)
{
con.close();
con=null;
}
}catch(SQLExceptione){
e.printStackTrace();
}
}
}
importjava.sql.Date;
importjava.util.*;
publicclassWll{
privatestaticStringname;
privatestaticStringstrPassword;
privatestaticbooleanb;
publicstaticbooleanStart(){
java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat("yyyy年MM月dd日");
Scannerscn=newScanner(System.in);
Stringnow=sdf.format(newjava.util.Date());
System.out.println("*********************************************");
System.out.println("题库维护系统TKV1.0欢迎您今天是:
"+now);
System.out.println("请输入登录用户名:
");
System.out.println("*********************************************");
name=scn.nextLine();
System.out.println("*********************************************");
System.out.println("题库维护系统TKV1.0欢迎您今天是:
"+now);
System.out.println("请输入密码:
");
System.out.println("*********************************************");
strPassword=scn.nextLine();
UserInfouser=newUserInfo(name,strPassword);
b=newUserInfoDao().Exist(user);
returnb;
}
publicstaticvoidmain(String[]args){
Scannerscn=newScanner(System.in);
intlogCount=newOperateLogInfoDao().Count()+1;
intexerCount=newExerciseDao().Count()+1;
booleanj=false;
java.text.SimpleDateFormatf=newjava.text.SimpleDateFormat("yyyy-MM-dd");
java.util.DateutilDate=newjava.util.Date();
while(!
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)");
System.out.println("*********************************************");
Stringstr=scn.nextLine();
switch((str.toCharArray())[0]){
case('a'):
System.out.println("*********************************************");
System.out.println("添加题目:
");
System.out.println("*********************************************");
System.out.println("请输入题目:
");
Stringquestion=scn.nextLine();
System.out.println("请输入选项x:
");
Stringa=scn.nextLine();
System.out.println("请输入选项y:
");
Stringb=scn.nextLine();
System.out.println("请输入选项z:
");
Stringc=scn.nextLine();
System.out.println("请输入选项m:
");
Stringd=scn.nextLine();
ExerciseInfoe=newExerciseInfo(exerCount,question,a,b,c,d,"easy");
exerCount++;
if((newExerciseDao().Add(e))>0){
newOperateLogInfoDao().Add(newOperateLogInfo(logCount,name,"insertexercise:
"+question,newDate(utilDate.getTime()),"ok"));
logCount++;
System.out.println("添加成功,是否继续添加?
(y/n)");
Stringjudje1=scn.nextLine();
if(judje1.equals("y")){
System.out.println("添加成功");
j=false;
}
}
break;
case('b'):
System.out.println("*********************************************");
System.out.println("删除题目:
");
System.out.println("*********************************************");
System.out.println("请输入所需删除题目id:
");
StringstrId=scn.nextLine();
inteId=Integer.parseInt(strId);
if((newExerciseDao().Del(eId))>0){
newOperateLogInfoDao().Add(newOperateLogInfo(logCount,name,"deleteexercise:
id="+eId,newDate(utilDate.getTime()),"ok"));
logCount++;
System.out.println("删除成功,是否继续删除:
(y/n)");
Stringjudje2=scn.nextLine();
if(judje2.equals("y")){
System.out.println("删除成功!
");
j=false;
}
}
break;
case('c'):
System.out.println("*********************************************");
System.out.println("显示题目:
");
System.out.println("*********************************************");
for(inti=1;i<=exerCount;i++){
ExerciseDaoed=newExerciseDao();
ExerciseInfoe1=ed.Show(i);
if(e1.getId()>0){
System.out.println("题目ID:
"+e1.getId()+"\n"+"问题:
"+e1.getQuestion()+"\n"+"答案:
"+"(X):
"+e1.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(inti=1;iOperateLogInfoDaoo=newOperateLogInfoDao();
o.showOperatingLogInfo(o.Get(i));
System.out.println("-----------------------------");
}
j=false;
break;
case('e'):
j=true;
break;
}
}
}
}
4.4系统测试
4.4.1主界面:
4.4.2添加题目:
4.4.3导入题目:
4.4.4删除题目:
4.4.5显示题目:
4.5系统存在的主要问题及注意事项:
主要问题:
因为能力有限,没能编写详细的登录代码使用户登录系统。
没能将系统设计得更加方便用户使用。
注意事项:
要先将程序设计好再连接数据库,SQL密码与程序密码不能不同。
4.6设计总结及体会:
经过了几天的程序设计,我对Java程序设计有了全新的认识。
尤其是当拿到一个不小的任务时,如何去分析,先干什么,接着干什么,最后干什么,有了比较明确的思路。
选定一个项目后,我们应该先对这个项目进行概要的分析、设计,分析出这个程序是干什么用的,应该实现什么功能,这些功能应该包含哪些函数,函数之间应该是怎样的调用关系。
概要设计做好后,我们就要开始做详细设计,详细设计就是将做好的概要设计进行完善,将每个函数要实现的功能列举出来,或者是用流程图画出来,这样我们就能基本上知道每个程序应该如何实现它自身的功能,写源代码是也就不会那么盲目。
刚开始的时候,我根据书上的提示自己编写好程序输入电脑,然后编译的时候,出现了许许多多各种各样的问题,回头查看程序,自己却很难找到问题所在,于是查阅各种资料,问了身边很多同学,终于将程序顺利调试出来了。
通过这个系统的实现,我从输入代码跟运行调试的整个过程中学习到了很多东西,也了解到系统出现问题的时候的各种错误应该如何解决。
这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。
越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。
通过本次程序设计,我觉得熟练掌握所学的知识对于编程解决实际问题非常有效。
我们应该在平时多用我们所学的Java知识编写程序,尝试解决实际的问题。
最后,再次衷心感谢蒋铮铮老师在本次程序设计中对我的悉心指导!
参考书目:
《JavaEE基础教程》,《EffectiveJava中文版》,以及XX相关文献资料。