数据库 教材订购系统
学校教材订购系统 数据库设计
数据库设计1 引言1.1预期的读者学校教材发行人员、书库采购人员、教职工等。
学校教材订购系统采用的是当前流行的中小企业级数据库MySQL ,使用的版本是5.1.40。
设计的数据库全局数据库名为 textbook ,开发用的表空间名为 textbook 。
1.2目的和作用将业务分析,系统设计中对信息的描述进一步分析并加以总计,抽象出数据库表。
对数据表做进一步分析,确定表之间的关系并最终形成数据库物理模型,以便开发人员建立物理数据库。
2数据库设计2.1概念结构设计概念设计以反映现实世界中的实体、属性和它们之间的关系等的原始数据形式。
图1是系统E - R 图。
教师和学生提交购书单审核教材发行人员领书书库脱销教材缺书单领书单返给开发票和登记书库采购人员属于发放进书通知单领取发给入库教材nnn1n1n11采购11m1111mppm1mmn图12.2逻辑结构设计数据库的逻辑结构设计是将各局部的E - R 图进行分解、合并后重新组织起来形成数据库全局逻辑结构,最后生成5张数据库表:arrival_book :新书通知表,可以进行教材入库统计和生成新书通知,和textbook 表是多对 一关联。
book_order:订单表,和textbook表是多对一关联。
book_receipt:领书单表,由已付款订单生成,和book_order表是一对一关联。
lack_book:缺书通知表,和textbook表是多对一关联。
textbook:教材数据表,包括教材的一些基本信息。
arrival_book属性名含义数据类型可否为空完整性约束id 入库单编号int(11) 否PRIMARY KEY textbookId 入库教材编号int(11) 否FOREIGN KEY amount 入库教材数量int(11) 否arrivalDate 入库日期varchar(20) 否book_order属性名含义数据类型可否为空完整性约束id 采购单编号int(11) 否PRIMARY KEY textbookId 采购教材编号int(11) 否FOREIGN KEY purchaser 采购人varchar(20) 否amount 采购教材数量int(11) 否orderDate 采购日期varchar(20) 否book_receipt属性名含义数据类型可否为空完整性约束id 领书单编号int(11) 否PRIMARY KEY bookOrderId 采购单编号int(11) 否FOREIGN KEY receiptNo 发票编号char(12) 否UNIQUE KEY paid 付款decimal(10,2) 否lack_book属性名含义数据类型可否为空完整性约束id 缺书编号int(11) 否PRIMARY KEY textbookId 缺书教材编号int(11) 否FOREIGN KEY amount 缺书数量int(11) 否lackDate 缺书日期varchar(20) 否textbook属性名含义数据类型可否为空完整性约束id 教材编号int(11) 否PRIMARY KEY title 教材名称varchar(40) 否tb_desc 教材描述varchar(400) 否price 教材价格decimal(10,2) 否amount 教材数量int(11) 否2.3物理结构设计信息存储结构的设计在系统的设计中至关重要,要考虑到数据冗余、系统执行效率、信息控制以及维护等方面的要求。
数据库高校教材管理系统
数据库高校教材管理系统在高等教育系统中,教材管理一直是一个重要但有挑战的任务。
为了更有效地管理教材资源,许多高校开始使用数据库高校教材管理系统。
这种系统利用数据库技术来集中管理教材相关的信息,提高教材的利用率和管理效率。
系统概述数据库高校教材管理系统是一种基于数据库的信息管理系统,旨在帮助高校更好地管理教材的采购、库存、分发和使用情况。
通过该系统,教材管理员可以实现对教材资源的全面监控和管理,提高工作效率,减少人力资源浪费。
系统功能该系统具有以下主要功能:1.教材采购管理:记录和跟踪教材采购信息,包括教材名称、作者、出版社、ISBN等。
2.库存管理:实时监控教材库存情况,包括库存量、存放地点等信息。
3.分发管理:记录和跟踪教材的分发情况,包括分发对象、时间、地点等。
4.使用管理:跟踪和记录教材的使用情况,包括借阅、归还、损坏等情况。
5.统计报表:生成各类教材管理相关的统计报表,为决策提供数据支持。
系统优势•信息集中管理:系统将教材相关信息集中管理在数据库中,方便管理员随时查阅和更新。
•数据实时更新:系统可以实时更新教材的采购、库存、分发和使用情况,确保信息的准确性。
•操作便捷:通过可视化界面,管理员可以方便地进行各项操作,提高工作效率。
•安全性:系统具有权限控制功能,保障教材信息的安全性和保密性。
•数据分析:系统可以根据教材数据生成各类报表和分析结果,为学校管理提供决策参考。
系统应用数据库高校教材管理系统可以被广泛应用于高校图书馆、教务处和教材管理部门等部门,为教材管理工作提供便利和支持。
通过系统的使用,高校可以更好地管理教材资源,提高教材利用率,降低管理成本,提升教学效果。
结语数据库高校教材管理系统是一种现代化的教材管理工具,可以帮助高校提高教材管理的效率和水平。
通过系统的应用,高校可以更好地管理教材资源,提升教学质量,服务教育事业的发展。
希望该系统能为高校教材管理工作带来更多的便利和价值。
数据库课程设计--教材购销管理系统
数据库系统概论课程设计教材购销管理系统目录1.设计时间 (3)2.设计目的 (3)3.设计任务 (3)4.设计内容 (3)4.1.需求分析 (3)4.2.概念结构设计 (5)4.3.逻辑设计 (8)4.4.数据库表空间和表结构设计 (8)4.5.数据库的实施 (10)4.6.创建其它数据库对象 (13)5.总结与展望 (14)参考文献 (15)1.设计时间2.设计目的本项目的任务是教材购销管理系统软件开发,用户是学校。
教材购销管理系统:教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。
制定、采购、入库、发放、记账、结算等一系列工作所组成,该工作各院校都设有专门机构负责该项工作,通常是教材科。
3.设计任务现今教材购销管理的烦琐给具有强烈时间观念的行政人员带来了诸多不便,为了对教材销售和管理教材库存方便,因此开发了本软件。
该教材购销管理系统软件目前已有比较完善的管理与使用功能,研制教材购销管理系统软件是为了满足对教材购销和库存管理的方便,以现代化的创新思维模式去工作。
4.设计内容4.1. 需求分析需求分析表为了查询教材购销的全部信息。
4-2销售管理子系统4-.3采购管理子系统4.2. 概念结构设计4.-1代购教材E-R图:图14-2学生E-R图:图2 4-3教材存量E-R图:图3 4-4教材一览表E-R图:图44-5缺书单E-R图图5 4-6缺书登记E-R图图6 4-7售书登记E-R图图74-8.综合E-R图教材购销管理综合ER图图84.3. 逻辑设计教材一览表(书号,书名,出版社,地址,电话,单价,数量)各班学生用书表(班级,书号,书名,数量)售书登记表(学号,姓名,书号,数量)缺书登记表(学号,姓名,书号,数量)待购教材表(书号,数量)缺书单(书号,数量,出版社,地址,电话)4.4. 数据库表空间和表结构设计表4-1 学生用书表student_book字段名称中文名称长度类型是否为空主关键字sbno 书号10 Char t() no Y sbname 书名30 Char() no no sbnmber 数量30 Char() no no sbclass 班级10 char() no no表4-2 售书登记表BUYBOOK_BB字段名称中文名称长度类型是否为空主关键字bno 学号10 char() no Ybname 姓名10 char() no nobno 书号10 char() no no bnumber 数量30 char() no no表4-3缺书登记表stack room_sr字段名称中文名称长度类型是否为空主关键字sno 学号20 Char() no Y sname 姓名8 Char() no nosno 书号8 Char() no no snumber 数量8 Char() no no表4-4 教材存表book_list列名含义长度类型是否为空主关键字lno 书号8 Char() no Y lnumber 数量8 Char() no nolprice 单价8 Float() no no表4-5 教材一览表publish字段名称中文名称长度类型是否为主关键字pno 书号8 Char() no Y ppublisher 出版社8 Char() no no Pphone 电话8 Char() no no padd 地址8 Char() no no pname 书名8 Char() no表4-6 代购教材表instead字段名称中文名称长度类型是否为空主关键字ino 书号8 Char() no Y inumber 数量8 Char() no no表4-.7 缺书单lost_book字段名称中文名称长度类型是否为空主关键字lbno 书号8 Char() no Y lbpublisher 出版社8 Char() no no lbphone 电话8 Char() no no lbadd 地址8 Char() no no lbname 书名8 Char() no4.5. 数据库的实施例行事务需求1.学生买书查询买书信息,2.采购新书采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。
基于数据库的教材征订和管理系统研究
基于数据库的教材征订和管理系统研究摘要:传统方式的教材征订和管理均是通过Excel或纸质填报等手工模式来完成,对实行二级管理模式的成人教育管理机构来说,在上报、征订和统计过程中存在诸多不便和不准确,急需一套高效且准确的管理系统,同时能根据各类征订数据进行深入统计分析,并对教材征订和科学规划做出快速科学的决策。
本文从传统征订模式中的问题分析着手,提出基于数据库的教材征订和管理系统研究来解决该问题的思路和手段,给管理者提供一定的借鉴意义。
关键词:教材征订数据分析数据库管理系统教材是提供教学用的资料,包括课本、印刷的讲义等。
我们此处主要是指课堂内外教师和学生使用的所有教学材料,比如上课用的教学课本、辅导材料、习题册等。
当然教师自己编写的补充材料也可作为教学材料,其中未装订成册或正式出版的书本,我们平常称为讲义。
教材的主要编目信息包括:国际标准书号(International Standard Book Number)简称ISBN或书号,作者,出版社,出版时间,版次,定价,印张等。
在学校征订教材过程中还涉及到学院(部)、班级、人数等更多的相关信息的录入。
成人高等教育的教材征订在传统方式中通过Excel或纸质填报来完成,在每批次征订过程中,作为学校主管部门的成人教育学院都得花较长的时间去校对征订版本、信息和征订数量等,然后再将每张电子表格或纸质表格合并归类,再分别报给相应出版社后算是基本完成这一批次的征订。
在这种模式下,各学院(部)上报和成人教育学院报订的数据准确率还不能得到足够的保证,只要出现差错,就影响到教学秩序的顺利开展。
本文就围绕这一难题进行探讨并提出解决方案,以供参考。
1 传统模式征订中需要解决的困惑在计算机已普及的今天,高度手工的传统征订模式,已明显不能适应当前的发展需要,在征订过程中出现的各种差错,对高校管理者而言也是不能容忍的。
对我校而言,有20多个学院,每个学院又有不同的办学品种,再加上年级、班级,也是要有几百个征订的项目,有时还会分老生和新生等前后几个批次征订,征订的难度比较大,更何况还要将出版社来的教材及时按学院、年级、班级发放到相应学院(部)。
教材订购系统
教材订购系统随着时代的进步,网络的应用已经相当普及,人们也认识到网络信息量大,传播方便快捷等特点,网上银行、网上商店、网上查分都应运而生。
需求促进了技术的发展,而在这其中,ASP技术则因为可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理且简便易学而备受青睐,成为当前相当热门的网络开发技术。
ACCESS是一个真正的多用户,多线程的ACCESS数据库服务器。
是一个客户机/服务器结构的实现,它由一个服务器守护程序ACCESS和不同的客户程序和库组成。
由于其源码的开放性及稳定性,且与网站流行编程语言PHP的完美结合,很多站点都利用其作为后端数据库,获得了广泛应用。
本文首先介绍了ASP技术的工作原理、工作过程及其运行环境和ASP文件的编程特点,以及如何较好地配置ASP的需求环境,既使大家对ASP有更好的了解,同时也有利于更好地使用ASP技术。
其次,介绍了ACCESS数据库,包括ACCESS数据库数据类型和数据表,对ACCESS数据库数据操作的核心概念,即数据的添加、删除、修改和查询进行了简单的介绍。
关键词:ASP技术,ACCESS数据库,教材征订系统第一章引言在不断信息化的今天,网络已经成为人们生活不可缺少的一部分,它的出现使人能够很快的知道世界上发生的事.也可以为人们做很多的事, 所以各个领域、各个阶层都引进了计算机网络来为他们的企事业单位提高办事效益这是最平常最普遍不过的事.当然是由应用软件来实现这些功能的.因此利用ASP来开发本系统来体现他的网络性.开发本系统的目的是为了更好的对学校的教材进行管理,开发工具为:ASP+ACCESS数据库(网络版),实现的功能:用于学校的教学计划、教材征订。
可以制定所开设的课程,制定教学计划,制定教材计划,对教材进行需求统计,教材入库,出库管理。
可查询每个系的开课课程,所用教材,所需教材数量,对书库进行各种类型盘点,维护整个书籍库存。
并对书库的入库,出库的书籍进行实时跟踪,实现书籍的出入库落实到人。
《学校教材订购系统》需求分析说明解析
《学校教材定购系统》用户需求说明书组长:组员:2012年5月10日信电学院计算班目录一、引言 (4)1.1编写目的 (4)1.2背景 (4)1.3定义 (4)1.4参考资料 (5)二、系统说明 (5)2.1系统目标 (5)2.2运行环境 (5)2.3条件、假定和约束 (5)2.4系统功能图 (6)2.5数据流图 (7)2.5.1顶层流图 (7)2.5.2第一层数据流图 (7)2.6 系统E-R图 (9)2.7 数据字典 (10)三.功能分析 (11)功能1订书功能 (11)功能2审核订书单 (12)功能3库存索引 (12)功能4缺书登记 (13)功能5书籍入库查看 (13)功能6书籍出库记录 (13)功能7采购系统 (14)四、外部接口要求 ........................................................................................... 错误!未定义书签。
4.1外部接口说明........................................................................................ 错误!未定义书签。
4.1.1用户接口.......................................................................................... 错误!未定义书签。
4.1.2软件接口.......................................................................................... 错误!未定义书签。
4.2性能需求................................................................................................ 错误!未定义书签。
学校教材订购系统_需求分析
需求分析报告1.引言1.1 编写目的随着生活节奏的加快和网络的发展,教师、学生对教材的订购越来越重视,希望获取教材的过程简单,方便,快速。
因而,做一个好的学校教材订购系统是十分重要的。
在本小组成员对系统进行了全面细致的分析后明确了该系统“做什么”,编写这份说明书的目的是将小组分析结果条理清晰的展示出来,它说明了本产品实现的各种功能以及各种功能的适用范围。
使小组成员充分认识本系统的情况,方便以后更好的开展具体工作。
本说明书主要提交给老师,小组成员和其他同学参考,以达到最终满足用户的要求,让用户满意。
1.2 项目背景项目名称:学校教材订购系统项目提出者:XX(老师)项目开发者:XXX 用户:学校教务科,教师,学生运行环境:计算机开发平台:Eclipse、MySQL、JDK 1.61.3 定义Eclipse:适合快速开发的Java的开源IDE。
Java:一种面向对象的程序设计语言,具有面向对象、简单性、可移植性、稳定性、安全性等特点。
它最大的优势是不受平台限制,如.NET,VB,VC,C++只能在Windows环境中运行而Java却可以在任何平台中运行。
MySQL:高性能的开源的数据库。
1.4 参考资料1.《软件工程导论》(第四版) 张海藩,清华大学出版社,20032.《实用软件工程》(第二版) 郑人杰等,清华大学出版社,19974.《Java语言程序设计》马皓等,清华大学出版社,20063.《Eclipse使用教程》林峰等,东南大学出版社,20084.《MySQL使用手册》2.目标系统概述2.1 目标本系统可细化为两个子系统:销售系统和采购系统。
销售系统的工作过程为:首先由教师或学生提交购书单,经教材科发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
若是脱销教材则生成缺书单。
采购系统的主要工作过程为:汇总缺书单,发采购单给书库采购人员;一旦新书入库后,即发到货通知。
数据库课程设计--教材购销管理系统
数据库课程设计--教材购销管理系统第一部分:引言欢迎阅读本篇文章,本文将介绍一个数据库课程设计的内容,即教材购销管理系统。
该系统旨在解决教育机构在购买和销售教材过程中可能面临的问题,提高教材管理的效率和准确性。
第二部分:系统概述教材购销管理系统是一个基于数据库的软件系统,旨在帮助教育机构管理教材的采购和销售。
该系统涉及多个模块,包括教材信息管理、库存管理、供应商管理、销售管理和统计报表等。
第三部分:教材信息管理教材信息管理是系统的核心模块之一,它主要负责记录和管理教材的相关信息。
教材信息包括教材名称、作者、出版社、版本号、销售价格等。
通过该模块,用户可以方便地查询和浏览教材的详细信息,同时也可以进行教材的新增、修改和删除操作。
第四部分:库存管理库存管理模块主要用于记录和管理教材的库存情况。
系统通过实时记录进货和销售的信息,自动计算库存数量,并提供库存报警功能。
当库存数量低于设定的阈值时,系统会及时提醒用户进行补货操作,以保证教材的供应。
第五部分:供应商管理供应商管理模块用于管理教材供应商的信息和合作关系。
系统提供了供应商信息的录入、编辑和删除功能,同时也可以记录供应商的联系方式和质量评价等。
通过该模块,用户可以随时查看供应商的相关信息,并选择合作伙伴进行教材采购。
第六部分:销售管理销售管理模块负责记录和管理教材的销售情况。
系统通过实时记录销售订单的信息,自动生成销售报表并计算销售额和销售量等指标。
该模块还提供了销售订单的查询、修改和删除功能,使用户能够更好地掌握教材的销售情况。
第七部分:统计报表统计报表模块用于生成各类统计分析报表,帮助用户更好地了解教材的销售状况和库存情况。
系统可以根据用户需求生成销售额、销售量、库存量等统计数据,并以图表的形式直观展示。
用户可以根据报表的结果进行决策和调整。
第八部分:总结通过本文的介绍,我们了解了教材购销管理系统的设计和功能。
该系统通过合理的数据库设计和各个模块的协调配合,可以帮助教育机构实现教材的高效管理。
学校教材订购系统需求分析
项目名称:学校教材订购系统文档名称:教材订购系统需求分析姓名:李金燚学号:20091863班级:1011班日期:2012-3-25学校教材订购系统需求分析1:引言1.1编写目的本学校教材订购系统在可行性研究的基础上,是为了进一步明确学校教材订购系统的软件需求,以便安排项目规划与进度,组织软件开发与测试,撰写本文档。
本文档供项目经理,设计人员,开发人员参考。
1.2项目背景整个系统的工作过程:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,由财务系统开发票、付了款后,登记并由财务系统返给教师或学生领书单,教师或学生即可去书库领书。
若是脱销教材,则登记缺书,财务系统发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
学校教材订购系统将由两部分组成:置于教材发行人员的肖售系统,以及置于书库数据库的采购系统。
系统之间的关系如下:1.3 定义1.3.1专门术语库存表:存放库中存在得书籍数据。
出库表:存放已销售的书籍的数据。
入库表:存放入库书籍的数据。
购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息。
待购教材表:存放待购书籍信息。
财务表:核对信息。
1.3.2 缩写系统:若未特别指出,系统指本“学校教材订购系统”。
Access。
1.4 参考资料1)张海藩《软件工程导论》清华大学出版社2)学校教材订购系统项目计划任务书软件1011班3)学校教材订购系统可行性研究报告软件1011班2:任务概述2.1 目标本学校教材订购系统实现后,能够通过使用计算机可以减少大量的手工操作,提高工作效率。
为了使老师和学生在买教材时方便和高效。
2.2 运行环境硬件:PC机一台,打印机一台。
软件:Windows操作系统,sql数据库管理系统,visio2.3 条件与限制(1)当书库中的各种书籍数量发生改变(包括进书和出书)时,都应该改相关的书库记录,如库存表或进、出库表。
(2)在实现上述销售和采购的工作过程时,需考虑相关的合法性证明。
学校教材订购系统概要设计说明文书
学校教材订购系统概要设计说明书1 引言1.1 编写目的概要设计说明书编制的目的是:说明对程序系统系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
1.2 背景所建议开发的系统的名称:学校教材订购系统本项目的任务提出者:农业大学软件学院软件工程老师开始者:永勤用户:学校教材管理部门和全校师生实现该软件的计算机网络:1#605项目与其他软件,系统的关系:本项目采用客户机/ 服务器原理,客户端的程序是建立在Windows 7 系统上以JAVA 以及MySql 数据库等为开发软件的应用程序。
1.3 定义数据流图:数据流图描绘系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中流动和处理的情况。
系统的流程图:系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子的形式描绘系统里的每个部件(程序,文件,数据库,表格,人工过程等)。
库存表:存放库中存在得书籍数据。
出库表:存放已销售的书籍的数据。
进库表:存放入库书籍的数据。
购书表:存放提交的购书信息。
缺书登记表:存放缺少的书籍的信息。
待购教材表:存放待购书籍信息。
1.4 参考资料《实用软件工程》,海藩著,清华大学。
2 总体设计2.1 需求规定本系统在向学生售书时主要输入学生学号、班级代号、购书数量、购书书名信息,印领书单返然后打回给学生领取书籍。
本系统在查询数据库时主要输入需要查询的相关信息,包括图书编号、图书书名、信息、图书特色等信息方便操作人员把握图书信息。
教材订购系统的功能可以划分为如下几个部分:1 )系统管理:主要是对系统用户进行管理,包括登陆、退出、操作记录等。
2 )订购管理:查询订购书、订购书籍、删除订购书籍、查询领书单。
3 )销售管理:处理购书单、查询进书单、修改和维护数据库中相应的表。
4 )采购管理:发缺书单、登记缺书纪录、拟订待购书信息、发进书通知单、修改和维护数据库中相应的表。
数据库教材订购系统
《数据库原理》课程设计报告题目:姓名:学号:专业班级:指导老师:年月日摘要/*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词: /*(3 – 5个,各个词之间用“;”分割,宋体,五号,黑色)*/目录第1章引言 (3)1.1 项目背景 (3)1.2 项目定义 (3)1.3 开发环境 (3)第2章需求分析 (4)2.1 需求分析的目标与任务 (4)2.1.1 信息需求 (4)2.1.2 处理需求 (4)2.1.3 安全性和完整性要求 (4)2.2 需求分析阶段成果 (4)2.2.1 学校教材订书系统的业务流程图 (5)2.2.2 学校教材订书系统系统的功能模块图: (6)2.2.3 学校教材订书系统系统的数据字典 (6)第3章概念设计 (13)3.1 概念设计的目标与任务 (13)3.2 阶段结果 (13)3.2.1 属性与实体 (14)3.2.2 各子系统与分E-R图 (15)3.2.3 合并各分E-R图,得到总E-R图 (16)第4章逻辑设计 (17)4.1 逻辑设计的任务和目标 (17)4.2 阶段结果 (17)4.2.1 将E-R图转换为关系模型 (17)4.2.2 模型优化 (17)4.2.3 数据库模式定义 (18)4.2.4 用户子模式定义 (20)第5章物理设计 (21)5.1 物理设计阶段的目标与任务 (21)5.2 阶段结果: (21)5.2.1 存取方法设计 (21)5.2.2 存储结构的设计 (21)5.2.3 评价物理结构 (22)第6章数据库实施阶段 (23)6.1 建立数据库、数据表、视图、索引 (23)6.1.1 建立数据库 (23)6.1.2 建立数据表 (23)6.1.3 建立视图 (23)6.1.4 建立索引 (24)6.2 数据入库 (25)第7章系统调试和测试 (26)第8章设计心得 (27)第9章存在的问题及建议 (28)第10章参考文献 (29)第11章附录 (30)第1章引言1.1项目背景学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。
学校教材订购系统设计
Eclipse:适合快速开发的Java的开源IDE。
Java:一种面向对象的程序设计语言,具有面向对象、简单性、可移植性、稳定性、安全性等特点。它最大的优势是不受平台限制,如.NET,VB,C++只能在Windows环境中运行而Java却可以在任何平台中运行。
Sql Server 2008:高性能的数据库。
并可对管理员的登录信息采用SHA加密技术。
4、物理设计
(1)将静态表与动态表分开存放
(2)将备份数据与现行数据进行分开存放
对于“学院表”,“专业表”,“学生表”,“老师表”这几个表,在整个系统运行过程中几乎没有更新,而更多是是查询,所以考虑在这几个表常用列上加索引,而具体的索引加入时该的实现可考虑由应用程序控制。
1.5.2系统数据流程图
1、教材订购系统
2、销售系统和采购系统
3.教材订购系统完整的数据流图
1.5.3功能介绍
销售系统的主要工作是:学院教材订购负责人根据教师提供的信息向系统输入教学用书表,在这之后,凡需要订购教材的学生可以通过学号密码登录系统输入订购教材的书名,数量等信息,提交购书单。经教材科发行人员审核是有效购书单后,登记并返给学生领书单,学生即可去教材发放人员处领书。若是脱销教材则生成缺书单。
高峰值:开学期间1000次/天
数据流名:入库单
别名:无
简述:新书入库清单
来源:书库采购人员
去向:库存表
组成:编号+数量
数据流量:1000次/周
高峰值:开学期间1000次/天
数据流名:进书通知
简述:详细的描述了进书的信息
组成:编号(数据库自动生成)+[书名+出版社+价格+数量]+采购日期+购数量
学校教材订购系统资料
学校教材订购系统定义1基本要求1.1项目目标通过本系统完成为学校教材的购销工作,包括销售和采购两个部分。
1.2系统简介系统简介本系统可细化为两个子系统:销售系统和采购系统。
销售系统的工作过程为:首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生即可去书库领书。
采购系统的主要工作过程为:若是脱销教材,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
以上的功能要求在计算机上实现。
1.3技术要求和限制条件(1)当书库中的各种书籍数量发生变化(包括领书和进书时),都应修改相关的书库记录,如库存表或进/出库表。
(2)在实现上述销售和采购的工作过程时,需考虑有关单据的合法性验证(3)系统的外部项至少包含三个:教师、学生和教材工作人员。
(4)系统的相关数据存储至少包含6个:购书表、库存表、缺书登记表、待购教材表、进/出库表。
1.4系统界面学生/教师登陆界面、书刊查询界面、书刊信息界面、领书单界面、新书入库界面、退出界面等。
1.5开发概要系统调研、具体开发、测试、维护2资源2.1人员本小组成员(华伟,阮运磊,张翔宇,张哲)在老师的辅导下开发完成。
2.2硬件内存:2GM ;CPU: In tel Core2 1.80GHz2.3软件MyEclipse5.5 集成开发工具,MySQL5.0.22 数据库和window visio2003 画图工具以及windowsword文档工具。
3进度安排随课程进度同步完成系统的开发及文档编写工作。
4预算本项目作为学生课程设计,其所有开销包括软件,设施及开发经费都由学生自理。
学校教材购销系统需求规格说明书1引言1.1编写目的本要求规格说明书对学校教材购销系统进行简单的分析,给出了系统的数据流图。
系统主要用户是学生,教师和教材工作人员,加深与用户间的交流,在功能与系统界面上与用户达成一致的看法,以便于开发出用户满意的系统。
数据库-教材购销管理系统
数据库课程设计1.要求:1)需求分析。
2)数据库设计。
2.1概念结构设计(E-R图)2.2逻辑结构设计(E-R模型转换为关系模式,指明所满足的范式并给出理由)。
2.3物理结构设计3)数据库实现。
(录入数据,每个表应不少于8条数据)4)数据库运行。
(不少于20条sql语句,其中包括查询、更新、删除、插入、授权、创建触发器等sql语句)教材购销管理系统1.需求分析教材购销管理系统:教材购销管理系统是帮助管理人员、教材销售和库存的管理软件。
该教材购销管理系统软件目前已有比较完善的管理与使用功能,该项目的用户是学校,开发本系统是为了教材购销管理系统更完善,为了教材购销对商品库存和销售的管理更方便,为了减轻工作人员的工作负担,以现代化的创新思维模式去工作。
系统的功能要求:销售子系统(1)审查有效性学生将购书单交给教材科秘书,秘书通过查阅各班学生用书表、售书登记表检查是否允许该生买书。
(2)开发票如果允许学生买书,教材科会计将按购书单查阅教材存量表,如果有书且数量够,则开交款发票,否则,将购书单中无法购买的书的信息写入缺书登记表,以备以后补售教材。
(3)登记并开领书单教材科出纳员根据发票上的总金额收取现金,并进行售书登记,同时开领书单,学生将领书单交给保管员,领书。
(4)补售教材采购部门进书后,教材科秘书根据进书通知和缺书登记表给没买到教材的学生发补售通知单。
采购子系统(1)教材入库采购员采购教材后,将进书单交给秘书,秘书修改教材库存和待购量。
(2)统计秘书每月按书号和出版社统计缺书,形成待购教材表和缺书单,供采购员采购时使用。
2系统设计2.1 概念结构设计E-R图是分为两部分实体和属性,每个实体可以有多个属性,这些属性用来表示实体的性质。
不同实体之间可以用关系进行连接,表明各个实体之间的内在联系。
实体和实体之间的关系有一对一的关系(1:1),一对多的关系(1:N)和多对多的关系(N:M)。
各个实体分E-R图如下图所示实体:教材,学生,购书单,教材库图1-1教材E-R图图1-3购书单E-R图图1-4教材库E-R图图1-2出版社E-R 图总体E-R 图及各个实体之间的关系如下图所示图2-1 教材购销管理E-R 图2.2 逻辑结构设计 E-R 图向关系模型的转换关系模型的逻辑结构是一组关系模式的集合。
数据库平台 教材订购系统
package caoguimei;import java.awt.event.*;import javax.swing.*;public class baseManagerFrame extends JFrame implements ActionListener {// 系统管理员界面private static final long serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btns = new JButton("出版社信息管理");JButton btnc = new JButton("书籍信息管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("基本档案管理员");@SuppressWarnings("deprecation")baseManagerFrame() {// 构造方法super("教材订购系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btns);p2.add(btnc);p2.add(btnClose);btns.addActionListener(this);btnc.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "出版社信息管理")new CustomerManager("出版社信息管理").display();if (e.getActionCommand() == "书籍信息管理") {new ProductManager("书籍信息管理").display();}if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}package caoguimei;import java.awt.event.*;import javax.swing.*;publicclass businessManFrame extends JFrame implements ActionListener {// 教材订购员界面privatestaticfinallong serialVersionUID = 1L;JPanel p1 = new JPanel();JPanel p2 = new JPanel();JButton btnsc = new JButton("订单信息管理");JButton btng = new JButton("发书管理");JButton btnu = new JButton("签收管理");JButton btnClose = new JButton("退出管理系统");JLabel l = new JLabel("书籍订购员");@SuppressWarnings("deprecation")businessManFrame() {// 构造方法super("教材订购系统");setSize(205, 300);add("North", p1);add("Center", p2);p1.add(l);p2.add(btnsc);p2.add(btng);p2.add(btnu);p2.add(btnClose);btnsc.addActionListener(this);btng.addActionListener(this);btnu.addActionListener(this);btnClose.addActionListener(this);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);show();}publicvoid actionPerformed(ActionEvent e) {if (e.getActionCommand() == "订单信息管理") {new OrderManager("订单信息管理").display();}if (e.getActionCommand() == "发书管理") {new sendManager("发书管理").display();}if (e.getActionCommand() == "签收管理") {new ReceiveManager("签收管理").display();}if (e.getActionCommand() == "退出管理系统") {System.exit(0);}}}package caoguimei;publicclass Control {publicstaticvoid main(String[] args) {new DLFrame();}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class CustomerAdd extends JFrame implements ActionListener {// 用于出版社信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("出版社名称:");JLabel l2 = new JLabel("单位地址:");JLabel l3 = new JLabel("联系电话:");JLabel l4 = new JLabel("地址:");JLabel l5 = new JLabel("开户银行:");JLabel l6 = new JLabel("银行账号:");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示出版社信息管理的界面@SuppressWarnings("deprecation")public CustomerAdd() {// 构造方法this.setTitle("增加");this.setBounds(300, 300, 225, 350);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void connDB() {// 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void insertst() {// 插入记录String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;x = t1.getText();y = t2.getText();z = t3.getText();a = t4.getText();b = t5.getText();c = t6.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ x + "'");} catch (SQLException e1) {e1.printStackTrace();}}String str = "insert into 出版社信息values('" + x + "','" + y + "','" + z+ "','" + a + "','" + b + "','" + c + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!", "提示",RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e1) {JOptionPane.showMessageDialog(null, "出版社名称已存在!");t1.setText("");}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new CustomerManager("出版社信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new CustomerManager("出版社信息管理").display();}}}package caoguimei;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class CustomerManager extends JFrame implements ActionListener {// 出版社信息管理private static final long serialVersionUID = 1L;JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;CustomerSelect sst;String mxh = null;boolean bstd = false;CustomerManager(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB(); // 连接数据库this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}CustomerManager(CustomerSelect sst, String title) {// 构造方法super(title);this.sst = sst;bstd = true;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 450);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}public void display() {// 显示所有出版社的基本信息int i = 0;int j = 0;List<String> al = new ArrayList<String>();try {rs = stmt.executeQuery("select * from 出版社信息");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("出版社名称"));al.add(rs.getString("单位地址"));al.add(rs.getString("联系电话"));al.add(rs.getString("地址"));al.add(rs.getString("开户银行"));al.add(rs.getString("银行账号"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][6];String[] columnNames = { "出版社名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号" };// "发票抬头",// "所在区域",try {rs = stmt.executeQuery("select * from 出版社信息order by 出版社名称");while (rs.next()) {playerInfo[j][0] = rs.getString("出版社名称");playerInfo[j][1] = rs.getString("单位地址");playerInfo[j][2] = rs.getString("联系电话");playerInfo[j][3] = rs.getString("地址");playerInfo[j][4] = rs.getString("开户银行");playerInfo[j][5] = rs.getString("银行账号");j++;}} catch (SQLException e) {e.printStackTrace();}sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭数据库连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void delete() {// 删除某个出版社的基本信息String xh = null;String xm = null;@SuppressWarnings("unused")// /就是在后面没有使用的情况下也不会报错String xn = null;@SuppressWarnings("unused")String xp = null;@SuppressWarnings("unused")String xr = null;String xs = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {// 判断要删除的信息是否被选中JOptionPane.showMessageDialog(null, "请选择要删除的记录!");} else {if (!bstd) {// 判断选择的是不是查询后的结果int j1 = 0;try {rs = stmt.executeQuery("select * from 出版社信息");while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("出版社名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");// xb = rs.getString("发票抬头");// yx = rs.getString("所在区域");j1++;}} catch (SQLException e) {e.printStackTrace();}int i1 = 0;try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ xh + "'"); // 删除数据库中当前被选中的记录JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("出版社信息管理").display();} catch (SQLException e) {e.printStackTrace();}} else {try {@SuppressWarnings("unused")int rs1 = stmt.executeUpdate("delete from 出版社信息where 出版社名称='"+ xh + "'");JOptionPane.showMessageDialog(null, "记录删除成功!");this.dispose();new CustomerManager("出版社信息管理").display();} catch (SQLException e) {e.printStackTrace();}}}}public void update() {// 修改某个出版社的基本信息String xh = null;String xm = null;String xn = null;String xp = null;String xr = null;String xs = null;int row = -1;row = sTable.getSelectedRow();if (row == -1) {JOptionPane.showMessageDialog(null, "请选择要修改的记录!");} else {int j1 = 0;try {if (!bstd) {// 判断选择的是不是查询后的结果rs = stmt.executeQuery("select * from 出版社信息");} else {rs = stmt.executeQuery("select * from 出版社信息where 出版社名称='"+ xh + "'");}while (rs.next() && j1 <= row) {// 找出当前被选中的记录在数据库中的对应xh = rs.getString("出版社名称");xm = rs.getString("单位地址");xn = rs.getString("联系电话");xp = rs.getString("地址");xr = rs.getString("开户银行");xs = rs.getString("银行账号");j1++;}} catch (SQLException e) {e.printStackTrace();}CustomerAdd cadd = new CustomerAdd();cadd.setTitle("修改");cadd.t1.setText(xh);cadd.t2.setText(xm);cadd.t3.setText(xn);cadd.t4.setText(xp);cadd.t5.setText(xr);cadd.t6.setText(xs);cadd.t1.setEnabled(false);this.dispose();}}public void select() {// 显示某个查询的结果String mx;mx = sst.x;playerInfo = new Object[1][6];String[] columnNames = { "出版社名称", "单位地址", "联系电话", "地址", "开户银行", "银行账号" };// ,// "发票抬头",// "所在区域"try {rs = stmt.executeQuery("select * from 出版社信息where 地址='" + mx + "'");while (rs.next()) {playerInfo[0][0] = rs.getString("出版社名称");playerInfo[0][1] = rs.getString("单位地址");playerInfo[0][2] = rs.getString("联系电话");playerInfo[0][3] = rs.getString("地址");playerInfo[0][4] = rs.getString("开户银行");playerInfo[0][5] = rs.getString("银行账号");}} catch (SQLException e) {e.printStackTrace();}if (playerInfo[0][1] == null) {this.dispose();JOptionPane.showMessageDialog(null, "出版社地址不存在");new CustomerManager("出版社信息管理").display();} else {sTable = new JTable(playerInfo, columnNames);// 创建网格p1.add(sTable);scroll = new JScrollPane(sTable);this.add(scroll);}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "增加") {new CustomerAdd();this.dispose();}if (e.getActionCommand() == "删除") {this.delete();}if (e.getActionCommand() == "修改") {this.update();}if (e.getActionCommand() == "查询") {sst = new CustomerSelect();this.dispose();}if (e.getActionCommand() == "显示") {this.dispose();new CustomerManager("出版社信息管理").display();}}}package caoguimei;import java.awt.event.*;import javax.swing.*;public class CustomerSelect extends JFrame implements ActionListener {// 用于出版社信息管理中查询时输入所在区域的界面private static final long serialVersionUID = 1L;JLabel ltitle = new JLabel("地址:");JTextField t1 = new JTextField(8);JButton btnOK = new JButton("确定");JPanel p = new JPanel();String x = null;@SuppressWarnings("deprecation")public CustomerSelect() { // 构造方法p.add(ltitle);p.add(t1);p.add(btnOK);add(p);this.setBounds(450, 420, 300, 240);btnOK.addActionListener(this);this.setResizable(false);this.show();}public void actionPerformed(ActionEvent e) {x = t1.getText();// 取得当前输入地址的值if (x.equals("")) {// 判断是否输入了值JOptionPane.showMessageDialog(null, "所在地址不能为空,请重新输入!");} else {this.dispose();new CustomerManager(this, "出版社信息管理").select();}}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class DLFrame extends JFrame implements ActionListener, ItemListener {// 登录界面private static final long serialVersionUID = 1L;JPanel p1 = null;JPanel p2 = null;JPanel p3 = null;JLabel userName = new JLabel("用户:");JTextField txtUser = new JTextField();JLabel password = new JLabel("密码:"); JPasswordField txtPwd = new JPasswordField(6); JLabel role = new JLabel("角色:");JComboBox<String> cbrole = new JComboBox<String>(); JButton btnLogin = new JButton("登录");JButton btncz = new JButton("重置");JButton btnCancel = new JButton("取消");JLabel imageLabel;Icon image;static int OK = 1;static int CANCEL = 0;int actionCode = 0;Connection con = null;Statement stmt = null;ResultSet rs = null;int qxian = 0;@SuppressWarnings("deprecation")public DLFrame() {// 构造方法super("教材订购系统");p1 = new JPanel();p2 = new JPanel();p3 = new JPanel();cbrole.addItem("系统管理员");cbrole.addItem("基本档案管理员");cbrole.addItem("书籍订购员");image = new ImageIcon("picture\\st.jpg");imageLabel = new JLabel(image);p1.add(imageLabel); // /添加图片的位置this.setLayout(new FlowLayout());this.setBounds(150, 150, 450, 450);p2.setLayout(new GridLayout(4, 2));p2.add(userName);p2.add(txtUser);p2.add(password);p2.add(txtPwd);p2.add(role);p2.add(cbrole);p3.add(btnLogin);p3.add(btncz);p3.add(btnCancel);this.add(p1);this.add(p2);this.add(p3);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.show();btnLogin.addActionListener(this);cbrole.addItemListener(this);btncz.addActionListener(this);btnCancel.addActionListener(this);}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void itemStateChanged(ItemEvent e) {if (e.getStateChange() == ItemEvent.SELECTED) {JComboBox<?> jcb = (JComboBox<?>) e.getSource();qxian = jcb.getSelectedIndex();}}@SuppressWarnings("deprecation")public void actionPerformed(ActionEvent e) {Object source = e.getSource();String un = null;String pw = null;boolean success = false;// 用于判断是否登录成功if (source == btnLogin) {if (txtUser.getText().equals("") || txtPwd.getPassword().equals("")) {// 判断是否输入了用户名和密码JOptionPane.showMessageDialog(null, "登录名和密码不能为空!");} else {this.connDB();try {rs = stmt.executeQuery("select * from unpw where qx="+ qxian);while (rs.next()) {un = rs.getString("un").trim();pw = rs.getString("pw").trim();if (txtUser.getText().equals(un)) {if (txtPwd.getText().equals(pw)) {actionCode = OK;this.setVisible(false);if (qxian == 0) {new sysManagerFrame();// 进入系统管理员界面}if (qxian == 1) {new baseManagerFrame();// 进入基本档案管理员界面}if (qxian == 2) {new businessManFrame();// 进入教材订购员界面}success = true;break;} else {JOptionPane.showMessageDialog(null, "密码错误!");txtPwd.setText("");success = true;}}}if (!success) {JOptionPane.showMessageDialog(null, "登录名错误!");txtUser.setText("");txtPwd.setText("");}} catch (SQLException e1) {e1.printStackTrace();}}} else if (source == btncz) {txtUser.setText("");txtPwd.setText("");} else if (source == btnCancel) {System.exit(0);}}}package caoguimei;import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;public class OrderAdd extends JFrame implements ActionListener {// 用于订单信息管理中增加或修改某条记录的界面private static final long serialVersionUID = 1L;JLabel l1 = new JLabel("学院名称: ");JLabel l2 = new JLabel("联系人: ");JLabel l3 = new JLabel("联系电话: ");JLabel l4 = new JLabel("发货地址: ");JLabel l5 = new JLabel("最后到货期限:");JLabel l6 = new JLabel("书籍名称: ");JLabel l7 = new JLabel("所属类: ");JLabel l8 = new JLabel("数量: ");JLabel l9 = new JLabel("书籍要求: ");JTextField t1 = new JTextField(10);JTextField t2 = new JTextField(10);JTextField t3 = new JTextField(10);JTextField t4 = new JTextField(10);JTextField t5 = new JTextField(10);JTextField t6 = new JTextField(10);JTextField t7 = new JTextField(10);JTextField t8 = new JTextField(10);JTextField t9 = new JTextField(10);JButton btnOK = new JButton("确定");JButton btnCancel = new JButton("取消");JPanel p = new JPanel();Connection con = null;Statement stmt = null;ResultSet rs = null;boolean isNewsm = true;// 用于判断是否显示订单信息管理的界面public OrderAdd() {// 构造方法this.setTitle("增加");this.setBounds(250, 250, 220, 600);p.setLayout(new FlowLayout(FlowLayout.LEFT));p.add(l1);p.add(t1);p.add(l2);p.add(t2);p.add(l3);p.add(t3);p.add(l4);p.add(t4);p.add(l5);p.add(t5);p.add(l6);p.add(t6);p.add(l7);p.add(t7);p.add(l8);p.add(t8);p.add(l9);p.add(t9);p.add(btnOK);p.add(btnCancel);this.add(p);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);btnOK.addActionListener(this);btnCancel.addActionListener(this);this.show();}public void connDB() { // 连接数据库try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");} catch (ClassNotFoundException e) {e.printStackTrace();}try {con = DriverManager.getConnection("jdbc:sqlserver://localhost:59414; DatabaseName=教材订购系统","sa", "123");stmt = con.createStatement();} catch (SQLException e) {e.printStackTrace();}}public void closeDB() // 关闭连接{try {stmt.close();con.close();} catch (SQLException e) {e.printStackTrace();}}public void insertst() {// 插入记录String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;String d = null;String e = null;String f = null;x = t1.getText();y = t2.getText();z = t3.getText();a = t4.getText();b = t5.getText();c = t6.getText();d = t7.getText();e = t8.getText();f = t9.getText();if (this.getTitle() == "修改") {// 如果是修改记录,先删除再增加try {this.connDB();int rs1 = stmt.executeUpdate("delete from 订单信息 where 学院名称='"+ x + "'");} catch (SQLException e1) {e1.printStackTrace();}}String str = "insert into 订单信息 values('" + x + "','" + y + "','" + z + "','" + a + "','" + b + "','" + c + "','" + d + "','" + e+ "','" + f + "')";this.connDB();// 连接数据库try {stmt.executeUpdate(str);JOptionPane.showMessageDialog(null, this.getTitle() + "成功!", "提示",RMATION_MESSAGE, new ImageIcon("menu4.gif"));this.setVisible(false);} catch (SQLException e1) {JOptionPane.showMessageDialog(null, "学院名称已存在!");t1.setText("");}}public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "确定") {this.insertst();if (isNewsm) {new OrderManager("订单信息管理").display();}isNewsm = true;}if (e.getActionCommand() == "取消") {this.setVisible(false);new OrderManager("订单信息管理").display();}}}package caoguimei;import java.awt.event.*;import java.sql.*;import java.util.*;import javax.swing.*;public class OrderManager extends JFrame implements ActionListener {// 订单信息管理private static final long serialVersionUID = 1L;JPanel p = new JPanel();JButton btnAdd = new JButton("增加");JButton btnDelete = new JButton("删除");JButton btnAlter = new JButton("修改");JButton btnSearch = new JButton("查询");JButton btnDisplay = new JButton("显示");JMenuBar mb = new JMenuBar();JPanel p1 = new JPanel();;JTable sTable;JScrollPane scroll;Connection con = null;Statement stmt = null;ResultSet rs = null;Object[][] playerInfo;OrderSelect ost;String x = null;String y = null;String z = null;String a = null;String b = null;String c = null;String d = null;int e = 0;String f = null;boolean bstd = false;OrderManager(String title) {// 构造方法super(title);add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 400);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}OrderManager(OrderSelect ost, String title) {// 构造方法super(title);this.ost = ost;add("South", p);this.add("Center", p1);mb.add(btnAdd);mb.add(btnDelete);mb.add(btnAlter);mb.add(btnSearch);mb.add(btnDisplay);this.connDB();this.setBounds(300, 300, 600, 400);btnAdd.addActionListener(this);btnDelete.addActionListener(this);btnAlter.addActionListener(this);btnSearch.addActionListener(this);btnDisplay.addActionListener(this);this.setJMenuBar(mb);this.setResizable(false);show();}public void display() {// 显示所有订单信息int i = 0;int j = 0;List<Comparable> al = new ArrayList<Comparable>();try {rs = stmt.executeQuery("select * from 订单信息");while (rs.next()) {// 找出表中的记录数赋给ial.add(rs.getString("学院名称"));al.add(rs.getString("联系人"));al.add(rs.getString("联系电话"));al.add(rs.getString("发货地址"));al.add(rs.getString("最后到货期限"));al.add(rs.getString("书籍名称"));al.add(rs.getString("所属类"));al.add(rs.getInt("数量"));al.add(rs.getString("书籍要求"));i++;}} catch (SQLException e) {e.printStackTrace();}playerInfo = new Object[i][9];String[] columnNames = { "学院名称", "联系人", "联系电话", "发货地址", "最后到货期限","书籍名称", "所属类", "数量", "书籍要求" };try {rs = stmt.executeQuery("select * from 订单信息 order by 学院名称");while (rs.next()) {playerInfo[j][0] = rs.getString("学院名称");playerInfo[j][1] = rs.getString("联系人");playerInfo[j][2] = rs.getString("联系电话");playerInfo[j][3] = rs.getString("发货地址");playerInfo[j][4] = rs.getString("最后到货期限");playerInfo[j][5] = rs.getString("书籍名称");playerInfo[j][6] = rs.getString("所属类");playerInfo[j][7] = rs.getInt("数量");playerInfo[j][8] = rs.getString("书籍要求");j++;。
校外培训学校教材订购系统数据库设计
学校教材订购系统数据库设计报告目录0. 文档介绍 (4)0.1 文档目的与范围 (4)0.2 读者对象 (4)0.3 参考文献 (4)0.4 术语与缩写解释 (4)1. 数据库环境说明 (5)2. 数据库的命名规则 (5)3. 逻辑设计 (5)4. 物理设计 (5)4.0 表汇总 (6)4.1.1用户登陆表(U SERLOGIN) (7)5. 安全性设计 (16)5.1 防止用户直接操作数据库的方法 (16)5.2 用户账号密码的加密方法 (16)5.3 角色与权限 (16)6. 优化方法 (16)7. 数据库管理与维护说明 (17)0. 文档介绍0.1 文档目的与范围0.2 读者对象0.3 参考文献提示:列出本文档的所有参考文献(可以是非正式出版物),格式如下:[标识符] 作者,文献名称,出版单位(或归属单位),日期例如:[AAA]作者,《立项建议书》,机构名称,日期[SPP-PROC-SD] SEPG,系统设计规范,机构名称,日期0.4 术语与缩写解释1. 数据库环境说明提示:(1)说明所采用的数据库系统,设计工具,编程工具等(2)详细配置2. 数据库的命名规则提示:(1)完整并且清楚的说明本数据库的命名规则。
(2)如果本数据库的命名规则与机构的标准不完全一致的话,请做出解释。
3. 逻辑设计提示:数据库设计人员根据需求文档,创建与数据库相关的那部分实体关系图(ERD)。
如果采用面向对象方法(OOAD),这里实体相当于类(class)。
4. 物理设计提示:(1)主要是设计表结构。
一般地,实体对应于表,实体的属性对应于表的列,实体之间的关系成为表的约束。
逻辑设计中的实体大部分可以转换成物理设计中的表,但是它们并不一定是一一对应的。
(2)对表结构进行规范化处理(第三范式)。
4.0 表汇总4.1.1用户登陆表(Userlogin)4.3.1入库表(Bookbuyed)4.4.1信息发布表(Messagepub)4.5. 4.缺书登记表(Bookneeded)4.5.5待购教材表(Bookwanted)5. 安全性设计提示:提高软件系统的安全性应当从“管理”和“设计”两方面着手。
教材征订系统的数据库设计和数据操作
课程设计设计说明书教材征订系统的数据库设计和数据操作学生姓名张丹学号1118033021 班级计专1101成绩指导教师数学与计算机科学技术学院2013年12月23日课程设计课程设计评阅书课程设计任务书2013—2014学年第1学期专业:计算机应用学号:1118033021 姓名:课程设计名称:课程设计设计题目:教材征订系统的数据库设计和数据操作完成期限:自2013 年12 月18 日至2014 年1月 1 日共 2 周设计依据、要求及主要内容(可另加附页):教材征订系统用于征订教材,要求具有教材征订、查询、统计、打印教材征订单和后台维护功能。
教材征订功能实现按课程征订教材。
查询功能可以按课程名查询所征订的教材,也可以按教材名查询所征订的教材,也可以按班级查询该班级所征订的教材,还可以按系部查询该系部所征订的教材,对于所查询的结果要求能将查询结果打印出来。
统计功能要求能按教材类别统计,也能按班级统计所有班级教材征订费。
打印教材征订单功能要求按系部打印教材征订单。
后台维护功能要求管理课程信息、教材信息、开课学期、院系、班级和专业等。
根据以上要求完成下列题目:①针对以上的需求运用数据流图和数据字典进行需求分析。
②设计数据库的概念结构。
③设计数据库的逻辑结构。
④设计数据库的物理结构⑤在SQL SERVER中建立数据库。
⑥根据查询和统计的需要,建立数据库中的视图。
⑦根据数据操作需要,建立数据库中的存储过程。
⑧建立数据库的备份作业,要求在每天2:00备份数据库。
⑨根据题目的需求,写出完成各个功能操作的SQL语句。
指导教师(签字):教研室主任(签字):批准日期:年月日摘要教材征订系统的设计目的是为了方便学校资料员对教材征订工作进行计算机管理,本系统以学校的教材征订为研究对象,以实现教材征订网络化管理、提高工作效率、减少教材征订中的错误为目标而设计的教材征订管理系统。
该系统用于学校的教材征订,采用SQL Server 2000作为数据库系统,要求具有教材征订、查询、统计、打印教材征订单和后台维护功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据库原理》课程设计报告题目:姓名:学号:专业班级:指导老师:年月日摘要/*(300字左右,宋体,五号)课程设计内容摘要主要是对撰写过程中实践、实验、研究的内容、方法和得到的主要结果的完整概括。
关键词: /*(3 – 5个,各个词之间用“;”分割,宋体,五号,黑色)*/目录第1章引言 (3)1.1项目背景 (3)1.2项目定义 (3)1.3开发环境 (3)第2章需求分析 (4)2.1需求分析的目标与任务 (4)2.1.1信息需求 (4)2.1.2处理需求 (4)2.1.3安全性和完整性要求 (4)2.2需求分析阶段成果 (4)2.2.1学校教材订书系统的业务流程图 (5)2.2.2学校教材订书系统系统的功能模块图: (6)2.2.3学校教材订书系统系统的数据字典 (6)第3章概念设计 (13)3.1概念设计的目标与任务 (13)3.2阶段结果 (13)3.2.1属性与实体 (14)3.2.2各子系统与分E-R图 (15)3.2.3合并各分E-R图,得到总E-R图 (16)第4章逻辑设计 (17)4.1逻辑设计的任务和目标 (17)4.2阶段结果 (17)4.2.1将E-R图转换为关系模型 (17)4.2.2模型优化 (17)4.2.3数据库模式定义 (18)4.2.4用户子模式定义 (20)第5章物理设计 (21)5.1物理设计阶段的目标与任务 (21)5.2阶段结果: (21)5.2.1存取方法设计 (21)5.2.2存储结构的设计 (21)5.2.3评价物理结构 (22)第6章数据库实施阶段 (23)6.1建立数据库、数据表、视图、索引 (23)6.1.1建立数据库 (23)6.1.2建立数据表 (23)6.1.3建立视图 (23)6.1.4建立索引 (24)6.2数据入库 (25)第7章系统调试和测试 (26)第8章设计心得 (27)第9章存在的问题及建议 (28)第10章参考文献 (29)第11章附录 (30)第1章引言1.1 项目背景学校每年都会采购和发放各种教材,但目前这些工作基本都由人工操作完成。
但是为了配合老师上课的需要,教材发放的速度必须很快。
因此,在教材发放的过程中,极易造成教材的损失。
并且由于都是手工管理的方式,极易造成一些单据的损失。
所以为了提高管理效率以及人力、物力的节省,利用计算机及设计教材订购系统就不失为一种好方法。
1.2 项目定义主要是针对大学生教材订购。
完成学生对哪些教材需要数据的录入,以及对学生购书单数据和发货单数据的存储。
1.3 开发环境运行环境:Mysql以及java程序数据库:MYSQL第2章需求分析2.1 需求分析的目标与任务2.1.1信息需求用户需要输入自己想要的书籍以及数量。
需要存储的是购书数量,购书者,采购者,采购数量。
以及发货者和发货数量。
2.1.2处理需求用户需要完成什么处理功能,对处理的响应时间有什么要求。
给出功能模块图,画在需求分析阶段成果中。
2.1.3安全性和完整性要求1)安全性要求安全性可先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性。
2)完整性要求系统完整性要求系统中数据的正确性以及相容性。
可通过建立主、外键,使用check 约束,或者通过使用触发器和级联更新。
2.2需求分析阶段成果2.2.1XX系统的业务流程图2.2.2XX系统的功能模块图:2.2.3XX系统的数据字典(a)数据项:数据项是不可再分的数据单位,即数据的最小组成单位。
例:表1.1 数据项列表数据项编号数据项名数据项含义与其它数据项的关系存储结构DI-1 S_ID 学号VARCHA R(10)DI-2 S_NAME 学生姓名VARCHA R(20)DI-3 TELEPHONE电话号码VARCHAR(2)号的关系DI-4 TYPE 所在系VARCHA R(20)DI-5 T_ID 老师职工号VARCHA R(10)DI-6 T_NAME 老师姓名VARCHA R(20)DI-7 BOOK_ID 书籍编号VARCHA R(10)DI-8 BOOK_NAME书籍名VARCHAR(30)DI-9 BOOK_PUBDATE出版日期DATETIMEDI-10 BOOK_WRITER作者VARCHAR(10)DI-11 BOOK_PUB 出版社VARCHA R(30)DI-12 WORKER_ID工作人员编号VARCHAR(10)DI-13 WORKER_NAME工作人员姓名VARCHAR(10)DI-14 BUYBOOK_NUMBER购书数量INTDI-15 BUYBOOKDATE购书日期DATETIMEDI-16 IACKBOOK_NUMBER缺书数量INTDI-17 LAKEBOOK_DATE提交缺书单日期DATETIMEDI-18 INBOOK_DATE进书日期DATETIMEDI-19 INBOOK_NUMBER进书数量INTDI-20 TAKEBOOK_NUBER领书数量INTDI-21 TAKEBOOK_DATE领书日期DATETIMEDI-22 SENDBOOK发货日期DATETI号的关系_DATE MEDI-23 SENDBOOK_NUMBER发货数量INT(b)数据结构:数据结构反映了数据之间的组合关系。
一个数据结构可以由若干个数据项组成,也可以由若干个数据项和数据结构混合组成。
例:表1.2 数据结构列表数据结构编号数据结构名数据结构含义组成DS-1 STUENTINFOR学生信息S_ID,S_NAME,TELEPHONE, TYPEDS-2 BOOKINFOR 书籍信息BOOK_ID, BOOK_NAME, BOOK_PUBDATE, BOOK_WRITER, BOOK_PUBDS-3 BOOKBUYINFOR购书单信息BOOK_NAME,BUYBOOK_NUMBER,BUYBOOKDATEDs-4 LACKBOOKIN缺书单信息BOOK_NAME,IACKBOOK_NUMBER,LAKEBOOK_DATEDs-5 PUBPEOINF 发行人员信息WORKER_NAME, WORKER_ID, TELEPHONEDs-6 SENDINF 发货单信息BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBERDs-7 BOOKWORKER书库工作人员信息WORKER_NAME, WORKER_ID,TELEPHONEDs-8 PURCHAR 采购人员信息WORKER_NAME, WORKER_ID, TELEPHONEDs-9 TAKEBOOKINF领书单信息BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATE数据结构编号数据结构名数据结构含义组成Ds-10 INBOOKINF 进书单信息BOOK_NAME,INBOOK_NUMBER,INBOOK_DATEDFD流程图学校教材订购数据流程图(c)数据流:数据流是数据结构在系统内传输的路径。
数据流编号名称简述来源去向组成A1 购书单教师递交的购书单教师购书单审核模块BOOK_NAME,IACKBOOK_NUMBERA2 领书单系统生成的领书单生成领单和生成领书单数据处理模块书库发货人员BOOK_NAM,TAKEBOOK_NUBER,TAKEBOOK_DATEA3 发货单系统生成的发货单生成发货单数据和发货单的处理模块教材发行人员和教师BOOK_NAME, SENDBOOK_DATE,T_NAME, SENDBOOK_NUMBERA4 缺书单系统生成的缺书单生成缺书单数据和缺书单处理模块采购人员BOOK_NAME,IACKBOOK_NUMBERA5 进货单系统生成的进货单生成进货单数据和进货单的处理模块教材发行人员WORKER_NAME,WORKER_ID,TELEPHONEA5 书籍信息教材发行人员管理教材发行人员修改库存和书籍信息处理模块BOOK_ID,BOOK_NAME,BOOK_PUBDATE, BOOK_WRITER,BOOK_PUB(d)数据存储:数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。
它可以是手工文档或手工凭单,也可以是计算机文档。
数据存储编号名称简述组成D1 购书表存放购书数据的表格BOOK_NAME,BUYBOOK_NUMBER, BUYBOOKDATED2 领书表存放所要领书数据的表格BOOK_NAME,TAKEBOOK_NUBER,TAKEBOOK_DATED3 发货表存放要发放书籍信息的表格BOOK_NAME, SENDBOOK_DATE, T_NAME, SENDBOOK_NUMBERD4 缺书表存放缺的书籍信息的表格BOOK_NAME,IACKBOOK_NUMBERD5 进货表存放要进书籍信息的表格BOOK_NAME,INBOOK_NUMBER,INBOOK_DATE(e)处理过程:处理过程的具体处理逻辑一般用判定表或判定树来描述。
数据字典中只需要描述该处理过程的说明性信息。
处理逻辑编号名称输入数据流处理输出数据流B1 审核购书单购书单对购书单进行处理看看有没有缺书审核后的购书单B2 生成领书单数据和领书单购书单数据通过查看购书单数据,生成领书单和领书单数据领书单和领书单数据B3 生成发货单数据和发货单领书单数据通过领书单数据给仓库,从而产生发货单数据和发货单发货单和发货单数据B4 与库存进行比较,从而生成缺书单数据和缺书单审核后的购书单购书单与库存进行比较,缺少某些书,从而形成缺书吧单和缺书数据缺书单和缺书单数据B5 生成进货单数据和进货单缺书单数据通过缺书单数据可知缺少哪些书,从而产生要进哪些货进书单和进书单数据B6 修改库存和书籍信息书籍信息通过进书单、领书单和发货单,知道少了哪些书和进了哪些书,进行库存的修改概念设计2.3 概念设计的目标与任务(1)设计分E-R图…;(2)生成初步E-R图…;(3)生成基本E-R图…;(4)生成全局E-R图…;实体与属性间的两条准则:○1作为“属性”,不能再具有需要描述的性质。
○2“属性”不能与其他实体具有联系。
抽象出实体与属性,画出各子系统的分E-R图。
然后采用逐步集成的方式将各分E-R图合并,消除不必要的冗余和冲突后就生成了基本E-R图3.5。
2.4 阶段结果2.4.1属性与实体2.4.2各子系统与分E-R图销售子系统订购子系统2.4.3合并各分E-R图,得到总E-R图第3章逻辑设计3.1 逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。