用户信息管理系统.docx

上传人:b****3 文档编号:27564474 上传时间:2023-07-02 格式:DOCX 页数:18 大小:728.51KB
下载 相关 举报
用户信息管理系统.docx_第1页
第1页 / 共18页
用户信息管理系统.docx_第2页
第2页 / 共18页
用户信息管理系统.docx_第3页
第3页 / 共18页
用户信息管理系统.docx_第4页
第4页 / 共18页
用户信息管理系统.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

用户信息管理系统.docx

《用户信息管理系统.docx》由会员分享,可在线阅读,更多相关《用户信息管理系统.docx(18页珍藏版)》请在冰豆网上搜索。

用户信息管理系统.docx

用户信息管理系统

代码行数

639

项目名称

用户信息管理系统

1.实训目的

面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。

2.实训内容

使用Eclipse为开发工具,使用ProcessOn、IDEA为建模工具,使用MySQL为数据库服务器,基于JDBC技术,分析、设计并实现一个管理信息系统。

3.需求分析

3.1需求描述

登录:

输入账号和密码,完成登录操作,进入主界面,显示所有用户的基本信息以及可进行的相关操作的选项。

退出:

登录后可进行退出操作,结束整个程序。

注册:

输入账户、密码和确认密码完成新用户的注册。

显示用户信息:

登录成功后在主界面中以表格形式显示所有用户的信息。

添加用户:

输入用户各项信息,完成用户信息的添加操作,添加成功后以表格形式显示所有的用户信息。

删除用户:

根据用户主键,完成用户信息的删除操作,删除成功后以表格形式显示所有的用户信息。

修改用户:

输入用户主键,显示用户信息,输入每个字段值,完成用户信息的修改,修改成功后以表格形式显示所有的用户信息。

查询用户:

可利用模糊查询完成对用户名的查询操作

 

3.2用例描述

4.功能设计

4.1系统层次方框图

4.2算法设计(活动图或时序图)

登录功能活动图

注册功能活动图

显示所有用户信息活动图

 

用户信息添加活动图

查询用户信息活动图

删除用户信息活动图

 

修改用户信息活动图

 

5.数据设计

5.1类图设计

系统类图

数据库访问层类图

数据库封装类类图

业务层类图

控制层类图

视图层类图

Test类图

5.2数据表设计

t_login表

序号

字段名

类型

长度

备注

1

id

int

4

主键

2

account

char

20

唯一性、不为空

3

password

char

20

不为空

 

t_user表

序号

字段名

类型

长度

备注

1

id

int

4

主键

2

name

char

20

不为空

3

sex

int

2

0表示男,1表示女

4

birthday

date

默认

不为空

 

6.运行结果

1.注册

密码和确认密码不一致

 

2.登录

3.添加

4.删除

5.修改

6.查询

如果没有查询到相关的信息

 

7.退出

7.关键代码

1.LoginService.java

importjava.sql.ResultSet;

importjava.sql.SQLException;

importa.DB;

importcn.edu.ccut.po.Login;

publicclassLoginService{

privateDBdb;

privatestaticLoginServiceservice;

privateLoginService(){//构造方法

db=DB.getInstance();

}

publicstaticLoginServicegetInstance(){

if(service==null){

service=newLoginService();

}

returnservice;

}

publicbooleanlogin(Loginlo){

Stringsql="select*fromt_loginwhereaccount=?

andpassword=?

";

ResultSetrs=db.executeQueryByParam(sql,lo.getUsername(),lo.getPassword());

try{

if(rs.next()){

returntrue;

}

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

db.close();

}

returnfalse;

}

publicbooleanregister(Loginlo){//注册

Stringsql="insertintot_login(account,password)values(?

?

)";

intcount=db.executeUpdate(sql,lo.getUsername(),lo.getPassword());

db.close();

if(count>0){

returntrue;

}else{

returnfalse;

}

}

}

2.DB.java

importjava.sql.Connection;

importjava.sql.DriverManager;

importjava.sql.PreparedStatement;

importjava.sql.ResultSet;

importjava.sql.SQLException;

publicclassDB{

privatestaticDBdb;

privateConnectioncon;

privatePreparedStatementpre;

privateResultSetrs;

static{

try{

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

}catch(ClassNotFoundExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

privateDB(){

}//构造方法

publicstaticDBgetInstance(){

if(db==null){

db=newDB();

}

returndb;

}

privatevoidbuildconnection(){

try{

con=DriverManager.getConnection("jdbc:

mysql:

//localhost:

3306/db",

"root","");

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

publicResultSetexecuteQueryByParam(Stringsql,Object...o){//查询操作

this.buildconnection();

try{

pre=con.prepareStatement(sql);//预处理操作

System.out.println(o.length);

for(inti=0;i

pre.setObject(i+1,o[i]);//设置字段内容,把通配符替换object

}

rs=pre.executeQuery();//执行sql语句

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnrs;

}

publicResultSetexecuteQueryNOparam(Stringsql){//查询表中的所有内容

this.buildconnection();

try{

pre=con.prepareStatement(sql);

rs=pre.executeQuery();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

returnrs;

}

publicintexecuteUpdate(Stringsql,Object...o){

this.buildconnection();

try{

pre=con.prepareStatement(sql);

for(inti=0;i

pre.setObject(i+1,o[i]);

}//设置字段内容

intcount=pre.executeUpdate();

returncount;//计数,修改的地方

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

return0;

}

}

publicvoidclose(){

try{

if(rs!

=null){

rs.close();

}

pre.close();

con.close();

}catch(SQLExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

3.AddView.java

importjava.text.ParseException;

importjava.text.SimpleDateFormat;

importjava.util.Date;

importjava.util.InputMismatchException;

importjava.util.Scanner;

importcn.edu.ccut.service.UserService;

publicclassAddViewimplementsOperation{

@Override

publicvoidoperation(UserServiceservice)throwsInputMismatchException{

//TODOAuto-generatedmethodstub

Scannerscan=newScanner(System.in);

while(true){

System.out.println("pleaseinputname、sex、birthdaytoADD,ifreturninput0:

");

Stringname=scan.next();

if("0".equals(name)){

break;

}

Stringsex0=scan.next();

intsex1=1;

if("男".equals(sex0)){

sex1=0;

}

Stringbirthday0=scan.next();

SimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-dd");

Datebirthday=newDate();

try{

birthday=format.parse(birthday0);

}catch(ParseExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

booleanflag=service.insertOneUser(name,sex1,newjava.sql.Date(birthday.getTime()));

if(flag){

System.out.println("addsuccess~~~~~~");

//scan.close()

return;

}else{

System.out.println("addfailure,tryagain~~~~~~");

}

}

}

}

8.实训总结

通过三周的实训,时间虽短却也学到了不少的知识。

刚开始只是有简单的想法,再到实践,中间还是有很多的问题和错误,但通过这个过程,自身修改错误的能力也相对增长。

在这次实训的过程中,我发现平时学习的知识和实践应用有一定的差距,实践中必须自己摸索适合程序的方法,收集各个方面的知识,完成于数据库的连接和后台的搭建。

此次实训,让我自己意识到自身还有很多问题,还有很多的不足,系统也不是很完善,但总的来说,此次实训对自身还是有很大的帮助,受益匪浅。

成绩

Score

 

 

教师签字日期

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

当前位置:首页 > 自然科学 > 物理

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

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