面向对象程序设计双语设计报告.docx

上传人:b****7 文档编号:9067356 上传时间:2023-02-03 格式:DOCX 页数:42 大小:326.82KB
下载 相关 举报
面向对象程序设计双语设计报告.docx_第1页
第1页 / 共42页
面向对象程序设计双语设计报告.docx_第2页
第2页 / 共42页
面向对象程序设计双语设计报告.docx_第3页
第3页 / 共42页
面向对象程序设计双语设计报告.docx_第4页
第4页 / 共42页
面向对象程序设计双语设计报告.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

面向对象程序设计双语设计报告.docx

《面向对象程序设计双语设计报告.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计双语设计报告.docx(42页珍藏版)》请在冰豆网上搜索。

面向对象程序设计双语设计报告.docx

面向对象程序设计双语设计报告

 

面向对象程序设计(双语)设计报告

一、小说信息管理系统总体设计

1、系统概述

自1949年新中国成立肇始的中国当代小说已经走过了50年的历程。

当代小说可以划分为建国十七年(1949-1966)、文革十年(1966-1976)、新时期(1976-)三个阶段。

随着时间的推移,时代的发展,小说也慢慢的进入了寻常百姓之家,成为了众多的宅男宅女的精神食量。

目前中国最大的小说网站是起点中文网,可随着社会的进步,网络科技的升级与进化,各大小说网站也不断的如雨后春笋般冒了出来,那么小说信息管理系统便可以应着小说网站——作者——读者对小说的需求而产生,可以方便快捷的对小说进行增添改查,更好地进行关于小说的信息交流。

2、实现功能

不同等级小说信息的录入与记录,读者的信息登记,作者所写的小说的信息记录,有关读者阅读频率,阅读章节的情况,小说推荐关注度信息等各种强大的统计报表,另外还提供各类统计查询。

3、功能模块图

 

二、数据库设计

1、数据库表设计

2、数据库连接程序

(1)数据库(读取)代码:

//获得连接

packagedb;

importjava.sql.*;

importjavax.swing.JOptionPane;

//数据库连接类MySqlConnnection。

通过调用类的静态方法获得数据库连接。

publicabstractclassMySqlConnnection{

//私有空构造方法,保证本类不能够被实例化。

privateMySqlConnnection(){

}

//获得数据库连接

publicstaticConnectiongetConnection(){

Connectionconn=null;

try{

//加载MySQLJDBC驱动程序名称

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

//数据库连接参数。

StringserverName="localhost:

1433";//数据库主机名称

Stringmydatabase="小说信息管理系统";//数据库名称

Stringurl="jdbc:

sqlserver:

//"+serverName+";DatabaseName="+mydatabase;

Stringusername="sa";//MySql用户名

Stringpassword="123456";//MySql密码

conn=DriverManager.getConnection(url,username,password);//建立连接

}catch(ClassNotFoundExceptione){

e.printStackTrace();//找不到MySql驱动程序类时,打印异常

}catch(SQLExceptione){

e.printStackTrace();//获得数据库连接发生异常

}

returnconn;

}

//关闭数据库连接

publicstaticvoidcloseConnection(Connectionconn){

if(conn!

=null){//连接是否有效

try{

if(!

conn.isClosed()){//连接是否已关闭

conn.close();//关闭连接

}

}catch(SQLExceptionex1){

ex1.printStackTrace();

}

}

}

//测试连接类

publicstaticvoidmain(String[]args)throwsException{

Connectionconn=MySqlConnnection.getConnection();

Stringresult="";

if(conn==null){

result="获得数据库连接错误.";

}else{

result="正常获得数据库连接."+conn;

}

JOptionPane.showMessageDialog(null,result);

}

}

2数据库管理员的增删改查

packagedb;

importjava.sql.*;

importjava.util.*;

importcom.microsoft.sqlserver.jdbc.SQLServerConnection;

importmybean.Admin;

//实现管理员表Admin的添、删、改、查数据库操作类DBAdmin

publicabstractclassDBAdmin{

//私有空构造方法,保证本类不能够被实例化。

privateDBAdmin(){

}

//添加管理员

publicstaticvoidaddAdmin(mybean.Admina){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn

.prepareStatement("INSERTINTOAdmin(管理员编号,管理员姓名,管理员权限)VALUES(?

?

?

)");

ps.setInt(1,a.get管理员编号());

ps.setString(2,a.get管理员姓名());//入库前进行编码转换

ps.setString(3,a.get管理员权限());//设置第2个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//删除管理员

publicstaticvoiddeleteAdmin(intid){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn

.prepareStatement("DELETEFROMAdminWHERE管理员编号=?

");

ps.setInt(1,id);//设置第1个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//修改管理员

publicstaticvoidupdateAdmin(mybean.Admina){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();

StringSql="UPDATEAdminSET管理员姓名=?

管理员权限=?

WHERE管理员编号=?

";

PreparedStatementps=conn.prepareStatement(Sql);

ps.setString(1,a.get管理员姓名());//入库前进行编码转换

ps.setString(2,a.get管理员权限());

ps.setInt(3,a.get管理员编号());//设置第3个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//根据管理员id号查询

publicstaticAdmingetAdmin(intid){

mybean.Admina=null;

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

//建立PreparedStatement用于执行SQL操作

PreparedStatementps=conn

.prepareStatement("SELECT*FROMAdminWHERE管理员编号=?

");

ps.setInt(1,id);//设置第一个占位符的内容

ResultSetrs=ps.executeQuery();//执行查询,返回结果集

if(rs.next()){//因为管理员id是惟一的,所以只返回一个结果既可

a=newmybean.Admin(rs.getInt

(1),rs.getString

(2),

rs.getString(3));

}

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

returna;

}

//查询:

登录时,是否表中有该用户,如有,则登录成功

publicstaticbooleanisAdmin(String管理员姓名,String管理员权限){

booleanflag=false;//是否存在该用户的标志

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn.prepareStatement(

"SELECT*FROMAdminWHERE管理员姓名=?

AND管理员权限=?

");

ps.setString(1,管理员姓名);

ps.setString(2,管理员权限);

ResultSetrs=ps.executeQuery();//执行查询

if(rs.next()){//若有该用户,则返回真

flag=true;

}

rs.close();

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

returnflag;//false:

表示没有该用户;true:

表示有该用户

}

 

//查询Admin表中的所有记录(管理员),返回迭代器对象

publicstaticIteratorgetAllAdmin(){

Listl=newArrayList();//数组列表类对象,大小可自动增加

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

Statementstmt=conn.createStatement();//建立Statement用于执行SQL操作

ResultSetrs=stmt.executeQuery("SELECT*FROMadmin");//执行查询,返回结果集

Strings=null;//保存Admin表中的第2个字段(管理员姓名)

while(rs.next()){//循环得到所有记录,并添加到数组列表中

s=rs.getString

(2);//转换为中文"GBK"编码的字符串

l.add(newmybean.Admin(rs.getInt

(1),s,rs.getString(3)));

}

stmt.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

returnl.iterator();//返回迭代器对象

}

//测试DBAdmin类

publicstaticvoidmain(String[]args){

mybean.Adminadmin=newmybean.Admin(2,"张文帅","S");

DBAdmin.addAdmin(admin);

for(Iteratorit=DBAdmin.getAllAdmin();it.hasNext();){

mybean.Admina1=(mybean.Admin)it.next();

System.out.println(a1.get管理员编号()+"\t"+a1.get管理员姓名()

+"\t"+a1.get管理员权限());

}

//DBAdmin.deleteAdmin(4);

}

}

三、图形界面设计与实现

1、登陆界面

1)数据库的相关信息:

2)连接数据库的登录界面:

2、表的操作界面

3、整个程序框架

四、程序测试

1、物品添加测试添删改查

2、新建用户,测试用户权限

五、结论

经历了这次的的实训,我不仅仅编出了小说管理系统,我更深刻的加深了对java的理解,在编程过程中,老师教会了我做人要规矩,编程更要规矩,每完成一个功能都要去验证,要不然最后只会一团糟你还找不找错在哪里,世界上最可怕的不是你有错误,而是你有错误你却不知道错误,错在哪里,因此我以后会更加严格自己,规矩自己。

六、程序代码:

packagedb;

importjava.sql.*;

importjava.util.*;

importcom.microsoft.sqlserver.jdbc.SQLServerConnection;

importmybean.Admin;

//实现管理员表Admin的添、删、改、查数据库操作类DBAdmin

publicabstractclassDBAdmin{

//私有空构造方法,保证本类不能够被实例化。

privateDBAdmin(){

}

//添加管理员

publicstaticvoidaddAdmin(mybean.Admina){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn

.prepareStatement("INSERTINTOAdmin(管理员编号,管理员姓名,管理员权限)VALUES(?

?

?

)");

ps.setInt(1,a.get管理员编号());

ps.setString(2,a.get管理员姓名());//入库前进行编码转换

ps.setString(3,a.get管理员权限());//设置第2个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//删除管理员

publicstaticvoiddeleteAdmin(intid){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn

.prepareStatement("DELETEFROMAdminWHERE管理员编号=?

");

ps.setInt(1,id);//设置第1个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//修改管理员

publicstaticvoidupdateAdmin(mybean.Admina){

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();

StringSql="UPDATEAdminSET管理员姓名=?

管理员权限=?

WHERE管理员编号=?

";

PreparedStatementps=conn.prepareStatement(Sql);

ps.setString(1,a.get管理员姓名());//入库前进行编码转换

ps.setString(2,a.get管理员权限());

ps.setInt(3,a.get管理员编号());//设置第3个占位符的内容

ps.executeUpdate();//执行更新操作

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

}

//根据管理员id号查询

publicstaticAdmingetAdmin(intid){

mybean.Admina=null;

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

//建立PreparedStatement用于执行SQL操作

PreparedStatementps=conn

.prepareStatement("SELECT*FROMAdminWHERE管理员编号=?

");

ps.setInt(1,id);//设置第一个占位符的内容

ResultSetrs=ps.executeQuery();//执行查询,返回结果集

if(rs.next()){//因为管理员id是惟一的,所以只返回一个结果既可

a=newmybean.Admin(rs.getInt

(1),rs.getString

(2),

rs.getString(3));

}

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

returna;

}

//查询:

登录时,是否表中有该用户,如有,则登录成功

publicstaticbooleanisAdmin(String管理员姓名,String管理员权限){

booleanflag=false;//是否存在该用户的标志

Connectionconn=null;

try{

conn=MySqlConnnection.getConnection();//获得数据连接

PreparedStatementps=conn.prepareStatement(

"SELECT*FROMAdminWHERE管理员姓名=?

AND管理员权限=?

");

ps.setString(1,管理员姓名);

ps.setString(2,管理员权限);

ResultSetrs=ps.executeQuery();//执行查询

if(rs.next()){//若有该用户,则返回真

flag=true;

}

rs.close();

ps.close();

}catch(Exceptionex){

ex.printStackTrace();

}finally{

MySqlConnnection.closeConnection(conn);

}

returnflag;//false:

表示没有该用户;true:

表示有该用户

}

 

//查询Admin表中的所有记录(管理员),返回迭代器对象

publicstaticIteratorgetAllAdmin(){

Listl=newArrayList();//数组列表类对象,大小可自动增加

Connectionconn=null;

try{

conn=MySq

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1