JAVA课程设计简单用户管理系统的设计与开发.docx

上传人:b****5 文档编号:7251195 上传时间:2023-01-22 格式:DOCX 页数:62 大小:4.76MB
下载 相关 举报
JAVA课程设计简单用户管理系统的设计与开发.docx_第1页
第1页 / 共62页
JAVA课程设计简单用户管理系统的设计与开发.docx_第2页
第2页 / 共62页
JAVA课程设计简单用户管理系统的设计与开发.docx_第3页
第3页 / 共62页
JAVA课程设计简单用户管理系统的设计与开发.docx_第4页
第4页 / 共62页
JAVA课程设计简单用户管理系统的设计与开发.docx_第5页
第5页 / 共62页
点击查看更多>>
下载资源
资源描述

JAVA课程设计简单用户管理系统的设计与开发.docx

《JAVA课程设计简单用户管理系统的设计与开发.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计简单用户管理系统的设计与开发.docx(62页珍藏版)》请在冰豆网上搜索。

JAVA课程设计简单用户管理系统的设计与开发.docx

JAVA课程设计简单用户管理系统的设计与开发

武汉理工大学华夏学院

课程设计报告书

课程名称:

JAVA课程设计

 

题目:

简单用户管理系统的设计与开发

系名:

信息工程系

专业班级:

计算机1111班

姓名:

学号:

***********

********

 

2013年9月13日

 

1目标

1.1.实现用户登录检测,密码修改;

1.2.用户信息管理

(1)用户信息输入;

(2)信息查询,可根据不同关键字进行条件查询;

(3)用户信息修改:

拥有权限的操作员可以修改,删除普通用户;

2软件开发环境与技术简介

2.1开发工具介绍

该系统的开发主要包括前台开发语言设计和后台数据库设计。

选择开发工具时应该考虑客户需求、系统功能和性能要求及开发人员的习惯等因素。

开发B/S(浏览器/服务器)结构的应用程序时,前台开发语言通常可以选择JSP、ASP、PHP等;如果开发网络应用程序,则需要选择一个网络数据库系统,例如SQLServer、Oracle和IBMDB2等;如果开发单机应用程序,则只要选择一个小型数据库系统就可以了,例如Access。

与其他开发工具相比,JSP具有简单易学、灵活方便和易于扩充等特点,越来越多地被用做浏览器/服务器应用程序的前端开发工具,与后台的SQLServer数据库相结合,能够提供高性能的管理信息系统解决方案。

因此,本系统采用的是JSP作为前台开发工具,SQLServer作为后台数据库。

2.2数据库系统

如果开发网络应用程序,则需要选择一个网络数据库系统,例如SQLServer、Oracle和IBMDB2等;如果开发单机应用程序,则只要选择一个小型数据库系统就可以了,例如Access。

2.3硬件环境

CPU:

Pentium43.0以上。

内存:

512MB以上。

硬盘:

80GB以上。

显示器:

1024×768像素以上。

数据库:

Access2000以上。

操作系统:

WindowsXP或更高版本。

2.4软件环境

SQLServer、MyElipse

3系统需求分析

3.1.实现用户登录检测,密码修改

3.2.用户信息管理

3.2.1用户信息输入;

3.2.2信息查询,可根据不同关键字进行条件查询;

3.2.3用户信息修改:

拥有权限的操作员可以修改,删除普通用户;

4系统总体设计

4.1系统功能简介

用户管理系统的是管理用户信息的系统,实例包括增加用户、查询用户信息、修改用户信息删除用户信息,具体的功能如下:

1.实现用户登录检测,密码修改;

2.用户信息管理

(1)用户信息输入;

(2)信息查询,可根据不同关键字进行条件查询;

(3)用户信息修改:

拥有权限的操作员可以修改,删除普通用户;

 

4.2系统功能模块规划

4.2.1系统的整体功能模块框架图

图1系统的整体功能模块框架图

 

4.2.2系统流程图

图2系统流程图

 

4.3系统数据库设计

4.3.1数据库概念结构设计

图3用户信息图

4.3.2数据库逻辑结构设计

编号

字段名称

数据类型

说明

1

uid

int

密码,主键

2

username

varchar

用户名

3

upass

varchar

密码

4

sex

varchar

性别

5

age

int

年龄

6

qq

varchar

qq

7

email

varchar

邮箱

8

tel

varchar

电话

9

Ndescr

varchar

个人描述

图4数据库所需元素

 

4.4数据库的连接技术

当安装好MySQLServer5.0系统以后,首先创建连接,在打开连接创建数据库,再创建表,在这个过程中最重要的就是创建密码一定要与代码一致,要不然所创建的用户管理系统就无法与数据库连接,出现错误。

5系统详细设计

经过需求分析、功能模块设计之后要进入详细设计阶段,本阶段将按系统的主要模块进行论述,重在阐述具体的某项功能的实现方法或运用到的相关技术。

5.1用户登录模块设计

当系统运行时,首先打开登录窗体,只有有权限的用户才能进入系统。

登录成功后,将显示系统主界面。

5.1.1登录界面的实现

登录界面的名称为login.htm,它的界面布局如下:

图5登录界面的布局

5.1.2注册界面的实现

注册界面的名称为register.jsp,它的界面布局如下:

图6注册界面布局

5.1.3导航界面的实现

注册界面的名称为index.jsp,它的界面布局如下:

图7导航页面

5.1.4显示数据库中user表中的信息的页面

注册界面的名称为alinfo.jsp,它的界面布局如下:

图8查看信息后的页面跳转

5.1.5修改页面的实现

注册界面的名称为updateinfo.jsp,它的界面布局如下:

图9修改过程界面

5.1.6关键字查询界面的实现

图10根据姓名进行查询

6系统测试与运行

6.1注册页面

图11注册界面布局

6.2注册相关信息

图12注册相关信息

6.3用户登录页面

图13用户登录界面

6.4登录成功页面

图14登录成功页面

6.5点击查看信息

图15点击“查看信息”按钮

6.6数据库中信息的查询

图16查看信息后的页面跳转

6.7修改对象

图17修改前的信息

6.8点击修改按钮

图18点击修改按钮

6.9跳转至修改页面

图19跳转至修改页面

6.10修改相关信息

图20修改过程界面

6.11修改后的信息

图21修改后的信息

6.12点击“关键字”按钮

图22点击“关键字查询”按钮

6.13输入姓名进行查询

图23根据姓名进行查询

7总结

这次的课程设计和以往的有所不同,我们不只是运用所学的知识去用代码设计界面还要会制作简单的网页设计,网页跳转,我们在制作过程中,还要不断地查阅资料,不断地解决问题,提出问题,还要有自己的想法和思路。

同时也是一次与实际的结合,能提高我们的实践能力。

我们既可以锻炼自己也可以加固对基础知识的记忆。

在本次课程设计中,我们遇到的困难很多,在解决它们的同时我们又学到了很多,获益非浅,特别是如何分析、建立、开发一个系统。

其实在系统开发的过程中编码不是重要的,重要的是分析系统、建立起系统模型。

在分析一个系统前,分析人员必须要对将要开发的系统所涉及到的各方面知识有一个认识,然后将系统的模型建立起来。

而且一个成功的软件要符合用户的需要,要以用户为中心,开发出用户想要的软件,而不能自以为是,想当然。

我们在程序编写中,我们认识到软件要有简便的界面,良好的程序风格,完备的文挡。

拥有这些条件,程序的可读性才会好,开发的复杂度才能大大减少,修改代码时更加容易下手。

我认为,所谓良好的界面,就是用户需要的界面,力求简便全面。

所以设计一个界面时,开发人员必须要了解用户的想法,从用户的角度去设计,当然,开发不能全听用户的意见,在详细分析了系统后,开发人员可以向用户提出一些修改的意见,在双方多次交流后定出程序所需的功能,以决定界面的实现。

在编码中,良好的编程风格与习惯是提高工作效率的一个重要方面,而且良好的编程风格与习惯也是使软件便于维护的基础。

那如何是良好的编程风格与习惯呢?

我们认为主要是程序的模块化、必要的注释和完备的设计文挡三个方面。

所谓模块化就是使程序的功能实现分成多个单独的功能模块,而不能在一大段代码中实现多个功能,如果这样做,别的人是非常难读懂你的程序。

必要的注释,显而易见是要在程序的编写中加入对程序的说明,原因就是为了别人能读懂你的程序,再一段时间后你自己还能读懂自己的程序。

而完备的设计文挡是在系统开发过程中记录下开发的全部过程,拥有它,在以后维护软件时就有依据使维护工作变得简单一些。

总结这次课程设计给我们感受最深的至少有四点:

首先,不能有畏难情绪,千万不要被一个网站页面跳转复杂,还有长长的代码所吓到。

千里之行始于足下,只要你坚持不懈,循序渐进。

采用逐个击破,有计划有步骤地学会每个工具的功能与使用方法。

在学的过程中一定要思考如何应用,注意触类旁通。

其实,学着学着,你就会发现一些代码的用法有很多相同的地方。

但如果满足于停留在知道怎么用它的水平还远远不够。

其次,得想方设法提高自己的兴趣。

学会在兴趣中学习,这样既可以强化自己原有的知识结构体系,又能激发自己追求新的知识的欲望,何乐而不为呢?

再,学而时习之,要每隔一段时间,练习一下,比较一下,看自己是否有进步。

最好独立地做一些创造性的作品。

坚持这样,在不知不觉中,就会很轻松地把所学知识纳入长时记忆系统。

最后,最好带上艺术家般的挑剔眼光来分析作品,总结技巧。

还要适时地与同学老师朋友交流交流,发现别人出色的地方,多多学习学习;也要善于发现别人的不足之处,吸取经验教训。

当然,也可充分利用网络资源来扩充自己的知识体系。

但我不是特别鼓励大家过分利用网络资源,因为我总觉得上面没什么特别优秀的作品,没必要浪费太多的时间在上面。

8参考文献

[1]王建华.ASPNET2.0动态网站开发技术与实践[M].北京:

电子工业出版社,2007.

[2]王珊萨师煊,数据库系统概论(第四版),高等教育出版社,2006

[3]萨师煊,SQLServer从入门到精通,高等教育出版社,2006

[4]Eric J.Naiburg、RobertA.Maksimchuk著 陈立军、郭旭译,UML数据库设计应用,人民邮电出版社,2002

[5]周之黄玫译,SQLServer2000技术参考大全,清华大学出版社,2001

[6]余杰李莎莎,SQLServer项目开发实践,中国铁道出版社,2006

设计过程中质疑(或答辩)记载:

1.怎样做数据库,还有表,达到数据库连接?

当安装好MySQLServer5.0系统以后,首先创建连接,在打开连接创建数据库,再创建表,在这个过程中最重要的就是创建密码一定要与代码一致,要不然所创建的用户管理系统就无法与数据库连接,出现错误。

2.系统详细设计,主要在页面设计上有那几个板块?

(1)登录页面;

(2)注册页面;

(3)显示页面;

(4)修改页面;

(5)查询页面。

3.如何设计字体颜色达到美化界面的功能?

在界面设计一栏上我们可以直接对页面进行设计,代码会自动生成,也可用代码加进去,用代码设计。

 

 

指导教师评语:

 

签名:

13年9月13日

附录:

课程设计说明书的书写格式与细则

附录A:

系统核心代码

1.UserDAO.java的主要代码

packagecom.softeem.dao;

importjava.sql.*;

importjava.util.ArrayList;

importjava.util.List;

importcom.softeem.model.User;

publicclassUserDAO{

//注册

publicbooleanadd(Stringusername,Stringupass,Stringsex,intage,

Stringemail,Stringtel,Stringqq,Stringdescr){

booleanflag=false;

//将数据存放到db中去

try{

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//建立连接

Connectionconn=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/wb","root","123456");

//准备语句

Stringsql="insertintotb_user(username,upass,sex,age,email,tel,qq,descr)values('"

+username

+"','"

+upass

+"','"

+sex

+"',"

+age

+",'"

+email

+"','"

+tel

+"','"

+qq

+"','"

+descr

+"')";

//准备对象

Statementst=conn.createStatement();

//执行

flag=!

st.execute(sql);

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}catch(SQLExceptione){

e.printStackTrace();

}

returnflag;

}

//登录

publicbooleanlogin(Stringusername,Stringupass){

booleanflag=false;

try{

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//建立连接

Connectionconn=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/wb","root","123456");

//准备语句

Stringsql="select*fromtb_userwhereusername='"+username

+"'andupass='"+upass+"'";

//准备对象

Statementst=conn.createStatement();

//执行

//CUD写booleana=execute(sql)、inta=executeUpdate(sql)

//Rselect读--ResultSetr=executeQuery(sql);

ResultSetrs=st.executeQuery(sql);

//如何取出rs中的数据进行判断

intid=0;

//判断rs中是否有数据

while(rs.next()){

//有数据,则取出数据

id=rs.getInt("uid");

}

if(id>0){

flag=true;

}

}catch(SQLExceptione){

e.printStackTrace();

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

returnflag;

}

//查询所有tb_user信息

//List<>泛型

publicListfindAll(){

//创建一个可变长度的链表

Listlist=newArrayList();

//我需要去吧数据库中的信息查询出来

try{

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//建立连接

Connectionconn=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/wb","root","123456");

//准备语句

Stringsql="select*fromtb_user";

//准备对象

Statementst=conn.createStatement();

//执行

//C-insertU-updateD-delete写booleana=execute(sql)、inta=executeUpdate(sql)

//Rselect读--ResultSetr=executeQuery(sql);

ResultSetrs=st.executeQuery(sql);

//判断rs中是否有数据

while(rs.next()){

//有数据,则取出数据

intuid=rs.getInt("uid");

Stringusername=rs.getString("username");

Stringupass=rs.getString("upass");

Stringsex=rs.getString("sex");

Stringage=rs.getString("age");

Stringqq=rs.getString("qq");

Stringemail=rs.getString("email");

Stringtel=rs.getString("tel");

Stringdescr=rs.getString("descr");

//System.out.println("uid:

"+uid+";username:

"+username);

//封装

Useru=newUser();

u.setUid(uid);

u.setUsername(username);

u.setUpass(upass);

u.setAge(age);

u.setSex(sex);

u.setTel(tel);

u.setEmail(email);

u.setQq(qq);

u.setDescr(descr);

//将user放入list

list.add(u);

}

}catch(SQLExceptione){

e.printStackTrace();

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

returnlist;

}

//根据id删除

publicbooleandeleteById(intuid){

booleanflag=false;

//将数据存放到db中去

try{

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//建立连接

Connectionconn=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/wb","root","123456");

//准备语句

Stringsql="deletefromtb_userwhereuid="+uid;

//准备对象

Statementst=conn.createStatement();

//执行

inti=st.executeUpdate(sql);

//如果有数据受影响,那么返回影响的行数值

//如果行数值大于0,那么有数据被影响

if(i>0){

flag=true;

}

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}catch(SQLExceptione){

e.printStackTrace();

}

returnflag;

}

//根据id查出信息

publicUserfindById(intuid){

Useru=newUser();

//我需要去吧数据库中的信息查询出来

try{

//加载驱动

Class.forName("com.mysql.jdbc.Driver");

//建立连接

Connectionconn=DriverManager.getConnection(

"jdbc:

mysql:

//localhost:

3306/wb","root","123456");

//准备语句

Stringsql="select*fromtb_userwhereuid="+uid;

//准备对象

Statementst=conn.createStatement();

//执行

//C-insertU-updateD-delete写booleana=execute(sql)、inta=executeUpdate(sql)

//Rselect读--ResultSetr=executeQuery(sql);

ResultSetrs=st.executeQuery(sql);

//判断rs中是否有数据

while(rs.next()){

//有数据,则取出数据

Stringusername=rs.getString("username");

Stringupass=rs.getString("upass");

Stringsex=rs.getString("sex");

Stringage=rs.getString("age");

Stringqq=rs.getString("qq");

Stringemail=rs.getString("email");

Stringtel=rs.getString("tel");

Stringdescr=rs.getString("descr");

u.setUid(uid);

u.setUsername(username);

u.setUpass(upass);

u.setAge(age);

u.setSex(sex);

u.se

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

当前位置:首页 > 外语学习 > 法语学习

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

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