华东交通大学理工学院课程设计报告书所属课程名称 Oracle 11g数据库基础教程题目图书管理系统分院电信分院专业班级电子商务1班学号**************学生姓名何芳林指导教师付念2013 年 12 月 20 日课程设计(论文)评阅意见评阅人职称20 年月日目录第1章引言 (4)第2章概要设计 (6)2.1系统需求分析 (6)2.2系统结构设计 (6)2.3系统功能模块 (7)第3章数据库分析 (8)3.1 数据库总体设计 (8)3.2 数据表设计 (8)3.3 数据库的创建 (9)3.4存储过程和触发器 (11)第4章详细设计及测试 (13)4.1 系统界面 (13)4.2 主要代码设计 (16)4.3 功能整体链接测试 (18)第5章课程设计心得 (19)参考文献(资料) (20)第1章引言1.设计目的使用VC,C++,C#等作为前台开发工具,使用Oracle作为后台数据库,所设计的管理系统应包含输入输出、查询、插入、修改、删除等基本功能。
根据题目的基本需求,设计系统界面、数据库、编写程序(Oracle),并写出课程设计报告1、阅读资料:每个人必须提前阅读教材有关Oracle、VC、C++、C#应用方面的内容以及其它相关书籍。
2、需求分析:题目要求达到的功能,所提供的原始数据,需要输出的数据及样式等。
3、数据库的设计:根据要求设计数据库的结构,包括:表、数据完整性、关系、视图。
4、数据库的安全性设计:登录用户、数据库用户、数据库角色、命令许可等方面涉及到数据的所有操作要求采用存储过程的方式进行。
2.设计要求1.选好题目:先分组,每组两个人(或单独完成),必须确保每题有两组人员选做,班长将本班同学的选题情况汇总后于16周之前交。
2.独立思考,独立完成:课程设计中各任务的设计和调试要求独立完成,遇到问题可以讨论,但不可以拷贝,否则不管是抄袭还是被抄袭,雷同的全部直接评定为不及格。
3.做好上机准备:每次上机前,要事先编制好准备调试的程序,认真想好调试步骤和有关环境的设置方法,准备好有关的文件。
4.根据编程实现的结果,按课程设计报告的撰写规范完成数据库系统课程设计报告(课程设计报告中必须有相关原理分析、程序设计、程序实现和程序调试等内容);课程设计报告的具体要求如下:1)课设报告按照规定用A4纸张进行排版打印,否则要求返工;2)课设报告的内容顺序如下:封面—任务书—中文摘要—目录—正文—附录;3)正文不少于4000字,正文部分至少包含以下内容,并可大致作如下安排1.引言(包括设计目的、要求、设计环境、同组人员及分工等内容)2.概要设计(含系统需求分析、系统结构设计和功能模块设计等内容)3.详细设计(含系统数据库设计、系统主要功能模块设计(可用流程图表示)和各模块的主要算法对应的原代码(详细)等内容)4.调试与运行结果及存在的主要问题(包括调试、运行和存在的问题)5.课程设计小结(或总结)(对此课程设计所做的工作内容进行总结,并提出系统还可以进行改进的地方)3.设计环境1.Windows7旗舰版32位2.Microsoft Visual Studio 20053.Oracle 11g第2章概要设计2.1系统需求分析图书管理系统主要是用oracle数据库进行逻辑处理,实现对图书信息的增删改查,以及出库入库的管理。
2.2系统结构设计图2.2. 图书E-R图2.3系统功能模块第3章数据库分析3.1 数据库总体设计数据库设计是图书管理系统的重要组成部分。
建立良好的数据库结构和文件组织形式,能够使系统快速、准确的获得所需信息。
这里采用oracle 数据库。
该数据库对进行增、删、改、查、显示都极为方便。
能为系统提供良好的数据支持。
根据系统的详细分析和和总体的需求分析,将为各个不同模块详细设计数据结构。
3.2 数据表设计用户表(yonghu)3.3 数据库的创建1.创建表空间及用户创建表空间:create tablespace tushu datafile 'E:\biaokongjian\tushu.dbf' size 32M autoextend on next 32m maxsize 2048m extent management local;创建用户:create user wsn identified by 1234 default tablespace tushu;2.创建数据表用户表:create table yonghu---用户表(eno number primary key,--用户编号ename varchar2(10)----用户名);图书类别表create table typ--图书类别表(TID varchar2(10) primary key,--类别编号TypeName varchar2(20) not null--类别名称);图书表create table books--图书表(ISBN varchar2(20) primary key,--图书编号BookName varchar2(40) not null,--名称TID varchar2(10), foreign key (TID) references typ (TID),--类别编号 RetailPrice varchar2(10) not null,--零售价Author varchar2(20),--作者Publish varchar2(30),--出版StockMin number not null,--库存下限StockMax number not null,--库存上限Descriptions varchar2(100)--描述);入库表create table InWarehouseitems--入库表(ISBN varchar2(20),foreign key (ISBN) references books (ISBN),--ISBN BookName varchar2(40) not null,--名称RetailPrice varchar2(10) not null,--零售价shuliang number--入库数量);库存表create table stock--库存表(ISBN varchar2(20),foreign key (ISBN) references books (ISBN),--商品编号StockNum number--库存数量);创建视图:图书查询视图create view bookview as select isbn,bookname,author,publish,retailprice from books;3.4存储过程和触发器主要存储过程及触发器:用户登录的存储过程create or replace procedure denglu(flag out number,username varchar2,upwd number)---登录asi varchar2(20);p number;beginflag:=0;select t.ename into i from scott.yonghu t where t.ename=username;if i is not null thenflag:=1;select t.eno into p from scott.yonghu t where t.ename=username and t.eno=upwd;if upwd is not null thenflag := 2;----登录成功elseflag := 1;-----密码不正确end if;elseflag := 0;------用户不存在end if;commit;exception when no_data_found thenrollback;end;入库的存储过程:create or replace procedure rk(isb varchar2,bname varchar2,rp varchar2,sl number)------入库asi number;beginselect count(*) into i from inwarehouseitems where isbn=isb;if(i<>0) thenupdate inwarehouseitems set shuliang=shuliang+sl where isbn=isb;elseinsert into inwarehouseitems values(isb,bname,rp,sl);end if;end;触发器:create or replace trigger charuafter insert or update on InWarehouseitemsREFERENCING OLD AS OLD NEW AS NEWFOR EACH ROWdeclaren_count number(4);beginif updating or inserting THENselect count(*) into n_count from stock where ISBN = :new.ISBN;if n_count > 0 thenupdate stock set StockNum = StockNum + :NEW.shuliang where ISBN = :NEW.ISBN;elseinsert into stock(ISBN, StockNum) values(:NEW.ISBN, :NEW.shuliang);end if;end if;end;第4章详细设计及测试4.1 系统界面1.登入界面图4-1登入界面图2.图书管理界面图4-2图书管理界面图3.入库界面图4-3入库界面图4.库存界面图4-4库存界面图4.2 主要代码设计配置文件:<?xml version="1.0" encoding="utf-8" ?><configuration><appSettings><add key="ConStr" value="Data Source=orcl;UserID=wsn;Password=1234;Unicode=True"/></appSettings></configuration>ll;数据库连接class database{static OracleConnection con = new OracleConnection(); public static OracleConnection GetOpen(){try{if (con.State == ConnectionState.Closed){con.ConnectionString = ConfigurationSettings.AppSettings["ConStr"].ToString();con.Open();}return con;}catch (Exception ee){return null;}}public static void GetClose(){if (con.State == ConnectionState.Open){con.Close();}}}底层功能实现:public DataTable ss() //查询数据库kucunview视图,返回结果集存放在dt 中{try{OracleDataAdapter oda = new OracleDataAdapter();string sql = "select * from stock order by ISBN";OracleCommand cmd = new OracleCommand(sql,database.GetOpen());oda.SelectCommand = cmd;oda.Fill(dt);return dt;}catch (Exception eee){return null;}finally{database.GetClose();}}public void se()//将dt里存放的结果显示在listview中{listView1.Items.Clear();DataTable dt = ss();foreach (DataRow dr in dt.Rows){ListViewItem item = new ListViewItem(dr[0].ToString()); item.SubItems.Add(dr[1].ToString());this.listView1.Items.Add(item);}dt.Clear();}4.3 功能整体链接测试总体测试是组装软件的系统技术,本系统测试采用渐增集成测试,即测试单一功能,将测试完的功能加入系统中,进行一次系统测试,依次类推将所有功能加入系统中,在具体测试时,采用自顶向下的结合方式,从主控功能开始,沿各控制层向下移动,逐渐把所有功能结合了。