网络数据库课程设计提交报告模板(面向对象)

长街旧友 范文 报告范文
精选回答

网络数据库课程设计提交报告模板(面向对象)本文简介:通信与信息工程学院网络数据库课程设计班级:物联网工程姓名:学号:指导教师:设计时间:成绩:评语:通信与信息工程学院二〇一七年目录1、系统描述12、参与者分析13、用例模型13.1、用例图13.2、用例详述24、概念模型设计45、逻辑模型设计和优化46、物理设计和实施46.1、创建表(字段、主键、索引

网络数据库课程设计提交报告模板(面向对象)本文内容:

通信与信息工程学院

网络数据库课程设计

级:

物联网工程

名:

号:

指导教师:

设计时间:

绩:

语:

通信与信息工程学院

二〇一七年

1、系统描述1

2、

参与者分析1

3、用例模型1

3.1、用例图1

3.2、用例详述2

4、

概念模型设计4

5、

逻辑模型设计和优化4

6、物理设计和实施4

6.1、创建表(字段、主键、索引、外键)4

6.2、创建视图5

7、

JDBC访问数据库5

7.1、访问表10

7.2、访问视图11

8、课程设计心得体会12

1、系统描述

银行ATM自动取款机系统的描述:当用户插入有效的银行卡时,可以对用户的银行卡种类做出判断(借记卡还是信用卡)。提示用户输入密码,如果用户连续密码输入错误次数达到3次,则吞卡,并给用户一个友好的提示信息。如果用户可以进入系统,则用户可以实现取款、查询、存款、转账等业务。待用户的每次交易结束时,系统提示是否打印详单。用户交易结束,系统提示退卡操作,让用户可以退出银行卡。如果用户忘记退出银行卡,则系统在交易结束后120秒以后,自动吞卡。用户交易过程中,每操作时间不能超过90秒,否则系统吞卡。操作时间,可以显示在界面上。

所有交易中,用户存款,或者取款,转账等交易数据需要存储在数据库中。以方便用户未来的查询和系统的管理与维护。

2、

参与者分析

用户:取款、查询、存款、转账。

银行卡:配对账户信息

账户:提供账户信息(如:余额,操作记录等)

ATM取款机:显示交易信息、账户信息

3、用例模型

3.1、用例图

图1-系统用例图

3.2、用例详述

表1-1用户取款用例详述表

用例名称

取款

参与者

用户

简要说明

用户从银行卡中取钱,银行卡余额减少

前置条件

银行卡插卡后验证成功,用户进入系统

基本事件流

1.

用户插卡,输入密码并进入系统

2.

系统显示取款等操作界面

3.

点击取款

4.

输入金额并点击确定

5.

ATM完成取款(用例结束)

扩展事件流

1a.密码输入错误时点击“确定”

提示:密码输入不正确

4a.输入金额大于余额点击“确定”

提示:您的余额不足

表1-2用户存款用例详述表

用例名称

存款

参与者

用户

简要说明

用户往银行卡中存钱,银行卡余额增加

前置条件

银行卡插卡后验证成功,用户进入系统

基本事件流

1.用户插卡,输入密码并进入系统

2.系统显示存款等操作界面

3.点击存款

4.将存款放入存鈔口待系统显示存款金额并点击确定

5.ATM完成取款(用例结束)

扩展事件流

1a.密码输入错误时点击“确定”

提示:密码输入不正确

4a.若纸币有污损或者折叠时点击“确认”

弹出纸币并提示:存款总额

表1-3用户转账用例详述表

用例名称

转账

参与者

用户

简要说明

用户从自己银行卡转账到其他用户的银行卡中,用户的银行卡余额减少

前置条件

银行卡插卡后验证成功,用户进入系统

基本事件流

1.用户插卡,输入密码并进入系统

2.系统显示转账等操作界面

3.点击转账

4.输入转账卡号和金额待系统显示转账信息并点击确“确认”5.ATM完成转账(用例结束)

扩展事件流

1a.密码输入错误时点击“确定”

提示:密码输入不正确

4a.若显示的转账信息不正确点击“返回”

进行修改点击“确认”重新转账

表1-4用户查询用例详述表

用例名称

查询

参与者

用户

简要说明

用户进入系统进行实时余额的查询

前置条件

银行卡插卡后验证成功,用户进入系统

基本事件流

1.用户插卡,输入密码并进入系统

2.系统显示查询等操作界面

3.点击查询

4.系统显示账户实时余额

5.ATM完成查询(用例结束)

扩展事件流

1a.密码输入错误时点击“确定”

提示:密码输入不正确

表1-5用户打印清单用例详述表

用例名称

打印清单

参与者

用户

简要说明

用户进行操作后,对账户资金往来进行打印查看

前置条件

银行卡插卡后验证成功,用户进入系统

基本事件流

1.用户插卡,输入密码并进入系统

2.系统显示转账等操作界面

3.点击并完成上述操作

4.点击打印清单并点击确“确认”

5.完成清单打印(用例结束)

扩展事件流

1a.密码输入错误时点击“确定”

提示:密码输入不正确

4a.当ATM纸张消耗完毕时点击“确认”

提示:纸张不足,暂时无法打印

4、

概念模型设计

图2-ER图

5、

逻辑模型设计和优化

账户(账户ID,用户名,卡号,密码,余额)

银行卡(卡号,类型,账户ID,密码,余额)

操作日志(卡号,信息,操作类型,时间)

存款(存款金额,时间,卡号)

取款(取款金额,时间,卡号)

转账(转账金额,时间,卡号)

6、物理设计和实施

6.1、创建表(字段、主键、索引、外键)

//创建用户表

CREATE

TABLE

`USERS`

(

`CID`

char(11)

NOT

NULL,`PASSWORD`

char(6)

NOT

NULL,`UNAME`

varchar(255)

NOT

NULL,`SALARY`

decimal(12,2)

NOT

NULL

DEFAULT

0,`TYPE`

enum(

credit,debit

)

NOT

NULL

DEFAULT

debit,PRIMARY

KEY

(`CID`)

)

;

//创建日志表

CREATE

TABLE

`LOGS`

(

`TIME`

datetime

NOT

NULL,`TYPE`

enum(

MONEYAC,CHECKAC,TRANSAC,LOGIN,LOGOUT,SWALLOW

)

NOT

NULL,`MESSAGE`

varchar(255)

NOT

NULL,`CID`

char(11)

NOT

NULL,FOREIGN

KEY

(`CID`)

REFERENCES

`users`

(`CID`)

6.2、创建视图

Create

view

all_legal_cards(CID,PASSWORD,TYPE)

as

select

CID,PASSWORD,TYPE

from

users;//创建合法银行卡视图

create

view

all_accounts(CID,UNAME,SALARY)

as

select

CID,UNAME,SALARY

from

users;

//创建账户查询视图

create

view

all_logs(TIME,USERNAME,CID,MESSAGE)

as

select

TIME,UNAME,logs.CID,MESSAGE

from

users,logs

where

users.CID=logs.CID

group

by

TIME;

//创建日志视图

7、

JDBC访问数据库

package

jdbc;

import

java.sql.Connection;

import

java.sql.DriverManager;

import

java.sql.PreparedStatement;

import

java.sql.SQLException;

import

java.sql.ResultSet;

import

java.util.Scanner;

public

class

MyJDBC

{

private

Connection

con;

private

String

sql;

private

PreparedStatement

ps;

private

ResultSet

rs;

/**

database选择使用的数据库

user选择用户

passWord为密码

@param

database/

public

MyJDBC(String

database,String

user,String

passWord)

{

super();

String

url

=

“jdbc:mysql://localhost:3306/“+database;

try

{

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

con

=

DriverManager.getConnection(url,user,passWord);

}

catch

(Exception

e)

{

e.printStackTrace();

}

this.ps=null;

this.sql=null;

}

/**

database选择使用的数据库

以root用户登录

@param

database/

public

MyJDBC(String

database)

{

super();

String

url

=

“jdbc:mysql://localhost:3306/“+database;

try

{

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

con

=

DriverManager.getConnection(url,“root“,“Ampson1995“);

}

catch

(Exception

e)

{

e.printStackTrace();

}

this.ps=null;

this.sql=null;

}

/**

获得查询结果

@return/

public

ResultSet

getRs()

{

return

rs;

}

/**

用于传入SQL语句并在

setSql()中完善查询条件项目

在update(),check()上载执行

@param

sql/

public

void

modifySQL(String

sql){

this.sql=sql;

try

{

this.ps=con.prepareStatement(sql);

}

catch

(SQLException

e)

{

e.printStackTrace();

}

}

/**

用于上载非查询SQL语句

@return/

public

int

update(){

int

num=0;

try

{

num=this.ps.executeUpdate();

}

catch

(SQLException

e)

{

e.printStackTrace();

}

return

num;

}

/**

用于上载查询SQL语句/

public

void

check(){

try

{

this.rs=this.ps.executeQuery();

}

catch

(SQLException

e)

{

e.printStackTrace();

}

}

/**

直接打印查询结果/

public

void

showResult(){

boolean

tag=true;

try

{

while(rs.next()){

tag=false;

for(int

i=1;;i++){

try{

System.out.print(rs.getObject(i)+““);

}catch(SQLException

ex){

System.out.println(““);

break;

}

}

}

}catch

(SQLException

e)

{

e.printStackTrace();

}

if(tag)

System.out.println(“Empty“);

}

/**

完善SQL语句

@param

index

@param

o/

public

void

setSQL(int

index,Object

o){

try

{

ps.setObject(index,o);

}

catch

(SQLException

e)

{

e.printStackTrace();

}

}

/**

查询一个表

@param

table/

public

void

visitALL(String

table){

Scanner

scanner

=

new

Scanner(table);

String

str

=

scanner.next();

modifySQL(“select

from

“+str);

check();

}

/**

查询一个表结构

@param

table/

public

void

desc(String

table){

Scanner

scanner

=

new

Scanner(table);

String

str

=

scanner.next();

modifySQL(“desc

“+str);

check();

scanner.close();

}

public

void

close(){

try

{

if

(rs

==

null

}

}

catch

(SQLException

e)

{

e.printStackTrace();

}

try

{

if

(ps

==

null

}

}

catch

(SQLException

e)

{

e.printStackTrace();

}

try

{

if

(con

==

null

}

}

catch

(SQLException

e)

{

e.printStackTrace();

}

}

7.1、访问表

public

static

void

main(String[]

args)

{

MyJDBC

db

=

new

MyJDBC(“atm“);

db.desc(“users“);

ResultSet

rs

=

db.getRs();

try

{

while(rs.next()){

System.out.print(rs.getObject(1)+““);

}

}

catch

(SQLException

e)

{

e.printStackTrace();

}finally{

System.out.println(““);

}

db.visitALL(“users“);

db.showResult();

}

}

7.2、访问视图

public

static

void

main(String[]

args)

{

MyJDBC

db

=

new

MyJDBC(“atm“);

db.desc(“all_logs“);

ResultSet

rs

=

db.getRs();

try

{

while(rs.next()){

System.out.print(rs.getObject(1)+““);

}

}

catch

(SQLException

e)

{

e.printStackTrace();

}finally{

System.out.println(““);

}

db.visitALL(“all_logs“);

db.showResult();

}

}

8、课程设计心得体会

通过为期近一周的课程设计,我们对数据库系统概论这门课程有了更深一步的认识。这门课与我们的专业的学习息息相关。我们也更加明白,要学好这门课程,仅仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。在这次课程设计中,我们对JAVA也进行再一次的回顾,对基础知识有了一定的温习,同时也知道了自己在知识方面的许多细节错误和漏洞。在请教老师和同学时,获益匪浅。

在刚开始选课题的时候,我们对题目的进行讨论分析,综合难易性和手头上已拥有的资源决定选择银行ATM自动取款机系统。在调试程序中我们遇到了不少困难,甚至于程序崩溃,在一次次克服困难的过程中我们不断进步着,收获着。

另外,我觉得值得一提的是我们每一个人的团队精神,如果没有我们的齐心协力,单靠一个人的力量,可能我们根本不可能在如此短的时间之内完成这次的课程设计,这一周的合作让我们之间更加默契,也更让我深刻体会了团结就是力量这句话。只有互相之间默契融洽的配合才能换来最终完美的结果。

虽然课程设计结束了,但是通过此次设计我们获得的知识却是永远存在的。通过本次课程设计我们明白了书本上的理论性的东西与在实际应用中的还是有一定的出入,所以有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决问题的过程中你会发现自己在飞速的提升。有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识。通过这次课程设计我们也发现了自身以及彼此存在的不足之处,在不断的摸索中进行学习,更具挑战性,这也激发了我们今后努力学习的兴趣,我想这将对我们以后的学习产生积极的影响。

12

咖啡的味道 2022-07-19 20:47:18

相关推荐

蚍蜉撼树是什么意思蚍(蚍蜉撼树是什么意思)

1、蜉蝣树(拼音pfhnsh)是中国成语,蜉蝣树(蜉蝣:一种大蚂蚁;Shake:摇动)比喻力量本来就很弱,但是你想摇动一个很强大的东西,就不能随心所欲了。这个成语一般用作主语、谓语、宾语,属于主谓式,含有贬义。...
展开详情

得意洋洋,反义词(得意洋洋的反义词)

1、得意洋洋的反义词有郁郁寡欢的,有空虚进取的书,有哭天抢地的,有郁郁寡欢的,有失意的,有垂头丧气的,有谦虚谨慎的,有黯然销魂的,有抑郁的。2、“得意”是中国成语,读作:dyyngyng,解释为:得意:明白意图...
展开详情

新时代的门当户对的意思(门当户对的意思)

1、中国成语的意思是“mndnghdu‐”,过去指男女双方家庭的社会政治地位和经济地位相当,适合通婚和结婚。2、出自汪芫师傅《西厢记》第二本第一折:“虽不般配,总比捉贼强。”...
展开详情

如法炮制的意思和造句(如法炮制)

1、如法炮制(拼音:rfpozh)是一个成语,起源于西汉的司马迁《史记魏世家》。2、如法炮制(炮制:一种将中药焙炒的方法)是指按照制造方法制造中药;比喻按照现成的方式办事。一般在句子中做谓语、定语、状语。3、出...
展开详情

依草附木的理解(依草附木的意思)

1、草乌,中国成语,拼音为ycofm,意为鬼神有所依靠,善于造化;比喻依靠他人的力量后,作恶多端;也比喻不能自立,依赖他人。从《巫庙》。2、出自五代和纣王的诗《巫庙》:“天有福报,老人为精灵,循草而沾木,无虚妄...
展开详情

精选推荐更多>

西游记的体裁

《西游记》的文学体裁是长篇小说。《西游记》是中国古代第一部浪漫主义章回体长篇神魔小说。现存明刊百回本《西游记》均无作者署名,清代学者吴玉搢等首先提出《西游记》作者是明代吴承恩。
全书主要描写了孙悟空出世及大闹天宫后,遇见了唐僧、猪八戒、沙僧和白龙马,西行取经,一路上历经艰险、妖怪魔法高强,经历了九九八十一难,终于到达西天见到如来佛祖,最终五圣成真的故事。该小说以“唐僧取经”这一历史事件为蓝本,通过作者的艺术加工,深刻地描绘了明代社会现实。
《西游记》是中国神魔小说的经典之作,达到了古代长篇浪漫主义小说的巅峰,与《三国演义》《水浒传》《红楼梦》并称为中国古典四大名著。《西游记》自问世以来在民间广为流传,各式各样的版本层出不穷。明代刊本有六种,清代刊本、抄本也有七种,典籍所记已佚版本十三种。大量中国古典文学作品被译为西文,《西游记》渐渐传入欧美,被译为英、法、德、意、西、手语、世(世界语)、斯(斯瓦西里语)、俄、捷、罗、波、日、朝、越等语言。

亭亭玉立是形容外貌还是神态的

“亭亭玉立”是形容外貌的,形容女子身材细长,也形容花木等形体挺拔。
出处:
1、《北齐书·徐之才传》:“白云初见空中有五色物;稍近;变成一美妇人;去地数丈;亭亭而立。”
2、《公祭祁夫人文》:“一女英迈出群,亭亭玉立。”
3、《浮生六记·闲情记趣》:“或亭亭玉立,或飞舞横斜。”
造句:
1、几年的光景,那个大姐姐已出落成一位亭亭玉立的大姑娘了。
2、几年不见,邻居家的那个小女孩儿已经成长为亭亭玉立的大姑娘了。
3、瞧,那个小女孩长得亭亭玉立,多漂亮。
4、她是个亭亭玉立、美丽清秀的姑娘。
5、她是一个亭亭玉立的女人,虽然年过花甲,但鹤发童颜,十分年轻。
6、几年不见,她已经出落得亭亭玉立,天香国色了。

质询是什么意思?质量的质

“质询”的意思:质疑询问。
出处:
1、茅盾《锻炼》一:“端进茶来的时候,阿金便成了质询的对象。”
2、张周《步履艰难的中国》第二章:“他回答代表质询。好厉害的质询,他记得,连珠炮般的发问,把他震懵了。”
造句:
1、多少世代以来许多神学家和历史学家就在著书立说,考证和质询这些宗教传说的真实性。
2、在职代会闭会期间,要实施职工代表政务质询制度,畅通民主管理渠道。
3、对于住户们反复质询其为何不带支验电笔检测一下,陈无言以对,最后离开。

艺术和技术的区别

技术与艺术相比,技术更强调功能,艺术更强调表达。
“技术”是解决问题的方法及方法原理,是指人们利用现有事物形成新事物,或是改变现有事物功能、性能的方法。
“艺术”是广泛的人类活动(或其产品),涉及创造性的想象力,旨在表达技术熟练程度、美感、情感力量或概念、观念。
“技术”造句:
1、爸爸如饥似渴地钻研技术,成为全厂革新能手。
2、白医生对医疗技术一丝不苟,精益求精。
3、我国的航天技术已经达到了世界先进水平。
4、举重运动员不但要有力气,还得懂技术。
5、我们需要大批有魄力、懂技术、会管理的干部。
“艺术”造句:
1、齐白石笔下的小鸡真有呼之欲出的艺术效果。
2、观众对艺术家的精彩表演赞不绝口。
3、我们要努力发掘民间艺术的宝藏。
4、晚会上,艺术家们还表演了几个戏剧片段。
5、人们密密层层地坐在广场上,观看“心连心”艺术团的演出。
常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200