数据库学校饭堂消费管理系统的设计说明书

上传人:z**** 文档编号:89260915 上传时间:2022-05-12 格式:DOC 页数:31 大小:346.50KB
返回 下载 相关 举报
数据库学校饭堂消费管理系统的设计说明书_第1页
第1页 / 共31页
数据库学校饭堂消费管理系统的设计说明书_第2页
第2页 / 共31页
数据库学校饭堂消费管理系统的设计说明书_第3页
第3页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
课程设计说明书设计名称:数据库系统原理课程设计题 目:学校饭堂消费管理系统的设计学生姓名:孙璐专业:网络工程班级:12网络1班学号:指导教师:顾艳春、韦庆清、李娅、胡明日期:2015年01 月14 日课程设计任务书网络工程专业12年级_J班 孙璐一、设计题目学校饭堂消费管理系统二、主要内容通过对学生在学校饭堂或餐厅的消费流程进行分析,完成具有食品管 理、 消费管理、帐户管理、餐厅管理等相关功能的小型数据库管理应用系统 (消费刷 卡可以通过手工输入来模拟完成)1. 根据任务要求完成有关表的设计(表的设计需要遵循 3NF)。2. 完成饭堂(餐厅)员工表、消费人员及帐户表、餐厅表、食品价目表的 维护。3. 完成消费表的生成,并计算消费折扣(可现金消费也可刷卡消费)。4. 按人员、时间、餐厅统计计算消费总额。5. 按食品类别、时间、餐厅统计计算消费总额。6. 完成用户帐户管理功能。7. 完成数据备份与恢复功能。三、具体要求围绕课程设计的目的和意义,基本要求如下:1、巩固和加深对数据库系统原理的理解,提高综合运用本课程所学知识 的能力。2、培养学生选用参考书,查阅手册及文献资料的能力。培养独立思考、 深入研究、分析问题、解决问题以及团队协作能力。3、通过实际系统的分析设计、编程调试,掌握数据库软件的分析设计方法和巩固软件工程方法。软件开发的流程可参见软件工程课程教材。(见第六部分)4、能够按要求编写课程设计报告书,能正确阐述设计和实验结果、正确 绘制系统数据流图和E-R图。5、通过课程设计,培养学生严谨的科学态度,严肃认真的工作作风,和团队协作精神。6 、本课程设计只要求大家完成一个基本的数据库软件的开发工作,系统 开发不要求大而全数据库软件的开发,只要完成数据的增、删、改、查等 基本功能,并设计一个较友好系统操作界面(最好是图形界面) 。7 、系统开发平台不做统一要求。四、进度安排依照教学计划,课程设计时间为: 2 周。本设计要求按照软件工程的基本过程完成设计。建议将时间分为四个阶段: 第一阶段,根据题目要求,确定系统的总体设计方案(概要设计) :即系统包括 哪些功能模块,每个模块的实现方法,同时编写相应的设计文档;第二阶段,完 成系统的详细设计工作; 第三阶段, 完成数据库设计和编写程序代码并调试, 再 将调试通过的各个子模块进行集成调试; 第四阶段,归纳文档资料, 按要求填写 在课程设计说明书 上,并参加答辩。三个阶段时间分配的大概比例是: 25: 25: 40:10。具体安排如下:1 月 5日-1 月 6日:资料查找、系统分析,数据流程分析,概要设计。1 月 7日-1 月 8日:系统详细设计、功能设计。1 月 9日-1 月 14日:算法实现、编程调试。1 月 15日-1 月 16日:功能演示、资料整理、课程设计说明书编写。五、完成后应上交的材料 本课程设计要求按照学校有关规范的要求完成,在课程设计完成后需要提 交的成果和有关文档资料包括课程设计的说明书, 课程设计有关源程序及可运行 程序(含运行环境),其内容不能过于简单,必须包括的内容有: 1课程设计的基本思想,系统的总功能和各子模块的功能说明; 2数据库设计中有关数据流图和 E-R 图,并对重要的操作画出有关算法流 程图;3源程序中核心代码的说明;4本课程设计的个人总结,主要包括以下内容: 课程设计中遇到的主要问题和解决方法; 你的创新和得意之处; 设计中存在的不足及改进的设想; 本次课程设计的感想和心得体会。5.源代码要求在关键的位置有注释,增加程序的可读性。程序结构和变量 等命名必须符合有关软件开发的技术规范(参见有关文献)。六、总评成绩指导教师签名日期年月日系主任审核日期年 月 日目 录一. 设计任务分析 5系统总功能分析 5系统总框架 5设计思想简述5二. 总体设计思路 6三. 需求分析 6数据字典 7数据库用到的表 7各表的说明7四. 概念结构设计 8消除不必要的冗余,设计基本的 E-R图 8合并分E-R图,生成总的E-R图9五. 逻辑结构设计 10数据模型的优化 10由E-R图得到的关系模式 10六. 物理结构设计 10为关系模式选择存取方法 10选择存取路径 10创建基本表 11建立索引 14建立触发器 17建立视图 18七. 数据库的实施 19数据的载入 19八. 数据库的试运行 22视图中的数据22视图的查询 23九. 数据库运行和维护 23系统开发工具的介绍 23VB 与 SQL sever 的连接24VB 实现学校餐厅的管理 27登录界面27管理员功能学生功能57十课程设计的总结报告一.设计任务分析系统总功能分析通过对学生在学校饭堂或餐厅的消费流程进行分析,完成具有食品管理、消费管理、帐户管理、餐厅管理等相关功能的小型数据库管理应用系统。根据任务要求完成有关表的设计(表的设计需要遵循3NF)。同时还要完成进人员、餐厅、食品价目表的维护,完成消费表的生成,并计算消费折扣。以及按人员、时 间段、餐厅统计计算消费总额,按食品类别、时间段、餐厅统计计算消费总额, 最后完成用户管理功能,完成数据备份与恢复功能。系统总框架查、设计、这思这个管理员功能想简J系统我建立了管理 表,为了学高 立了以餐厅编号、学生学号、备餐厅、食品和餐厅营学生功能杳找速度,管我为前五食品纟 学生本建操作消更清生地表达查询,理我为、员工、学生、基本表以主键建立了唯一索引看 1消费时间一起的唯一索引 食与和餐厅营业表建立丹号不餐厅、业表0了视:张基为营 为了 图。学业改 简化 自退出系统求分析息的调杳分析,我得出了餐厅以下几点特点:心、 _息 通过我对学校餐厅 工作人员分为管理员,一般员工。管理员都有唯一的工号,姓名,密码,其中初始密码为工号。而一般员工都有唯一的工号、姓名、职位和所属餐厅。其 中只有管理员可以登录系统,对餐厅、学生、一般员工、食品进行管理,对餐厅 营业表进行查询消费总额。每位同学都有唯一的学号、姓名、密码、专业和学生卡内余额,其中初始 密码为学号后5位,学生可以利用学号和初始密码登录系统进行修改密码,查看自己的基本信息以及查询自己卡内的余额。餐厅分为两个,每个餐厅都有唯一的编号和姓名。食品的类别分为素菜和肉菜,每个食品都有唯一的编号,食品名称,素菜 的单价为2元,肉菜的单价为4元。学生在学校餐厅就餐,就有所就餐的餐厅编号、该学生的学号、所食用的食 品编号、食品数量、该食品的类别,付款方式(现金或者刷卡)和就餐时间。消费表就是建立的视图,包括学生学号、餐厅号、食品号、食品单价、食 品数量、折扣后价格。以上就是我对学校餐厅管理系统的需求分析,要求系统能有效、快速、安 全、可靠和无误的完成上述操作,服务器程序利于维护。数据字典:数据库表名关系模式名称man ager管理员信息表stude nt学生信息表restaura nt餐厅信息表food食品价格表operati on餐厅营业表worker员工信息表pf operati on消费表(视图)各表的说明表一管理员信息表儿糸变量名数据类型备注工号mnoChar(9)主键(非空)姓名mn ameChar(20)非空密码mpswChar(18)非空表二学生信息表儿糸变量名数据类型备注学号snoChar(9)主键(非空)姓名sn ameChar(20)非空密码spswChar(18)非空专业sdeptChar(20)非空余额sbala neeInt表三餐厅信息表儿糸变量名数据类型备注编号rnoChar(9)主键(非空)名称rn ameChar(20)非空表四食品价格表儿糸变量名数据类型备注食口口编号fnoChar(9)r主键(非空)食品名称fnameChar(20)非空食品单价fprieeInt非空食品类别fbel ongChar(20)非空表五餐厅营业表儿糸变量名数据类型备注餐厅编号rnoChar(9)Restaura nt 的外键学号snoChar(9)Student的外键食口口编号fnoChar(9)Food的外键食品数量fnumChar(10)r非空消费时间etimeDatetime允许空值付款方式wayChar(10)非空食品类别fbel ongChar(20)非空表六员工信息表备注主键(非空)非空非空非空兀素 工号.姓名 职位所属餐厅C数据类型Cha(9)学号四.概念结构设学生消除不必要的冗余,设计基本的 由需求分析的结果可知,本系统设计的实体包括: 员工基本信息:员工工号、员工姓名、员工职位、所属餐厅。 管理员基本信息消费管理员工号、(1)(2)(3)(05)编食品基本信息:食品编生、E-R图上基本信息:学本信息:理员密码。者之间的多对多联系转换出来的表|,:、卡内余额:号、学生姓名、学生密码、餐厅名称。菜 食品名称、食品单价、食品类别。餐厅、食号、号、厅的营业不必实体间的联系包牯:(1)每位学生可以在多个餐厅里消费,每个餐厅也可以是其基!本(3)每个餐厅可以合并分E-R图卜学生可以点沽多名员,管理总品o销售食品名食物,每个食物也可以被多个学生点 ,而每个员工只能在一个食品号工E-R图食品类别个学生的饭菜卡内余额五.姓密O工工号号学生密码单属餐数据模型的优化 数据库逻辑设计的结果不是唯一的 还应该根据应用需求适当地修改、调整数据模型的结构,这就是数据模型的优化。 方法为:为了进一步提高数据库应用系统的性能,1) 确定数据依赖;2) 对于各个关系模式之间的数据依赖进行极小化的处理,消除冗余的联系;3) 按照数据依赖的理论对关系模式逐一进行分析,考察是否存在部分函数、传 递依赖、多值依赖等,确定各关系模式分别处于第几范式。由于并不是规范化程度越高的关系就越优,一般说来,第三范式就足够了,所以对于本系统, 按照要求,达到第三范式。4) 按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否 合适,确定是否要对模式进行合并或分解。本系统中的管理员皆是餐厅的员 工,但是只要管理员拥有密码可以对餐厅进行管理,所以我把他们分为管理 员表和员工表。5)对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。 由E-R图得到的关系模式数据结构名组成管理员信息工号,姓名,密码学生信息学号,姓名,密码,专业,卡内余额餐厅信息一编号,名称食品价格表食品号,食品名,食品价,食品类别营业表餐厅编号,学号,食品号,食品数量,消费时间,付 款方式,食品类别员工信息工号,姓名,职位,所属餐厅(下划线标注的属性为主码)六.物理结构设计为关系模式选择存取方法数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依 赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合应用环 境的物理结构的过程,就是数据库的物理设计。这个系统我选择使用索引,为前五个基本表以主键建立了唯一索引,为营业表建立了以餐厅编号、学生学号、食品编号和消费时间一起的唯一索引。选择存取路径create database 学校餐厅on ( name=学校餐厅 _data,学校餐厅)log on ( n ame= 学校餐厅 _log,学校餐厅)创建基本表1) 创建管理员表CREATE TABLE manager(mno CHAR(9) PRIMARY KEY,mn ame CHAR(20) NOT NULL,mpsw CHAR(18) NOT NULL);2) 创建学生表CREATE TABLE stude nt(sno CHAR(9) PRIMARY KEY,sn ame CHAR(20) NOT NULL,spsw CHAR(18) NOT NULL,sdept CHAR(20) NOT NULL,sbalance INT CHECK(sbalance=0);3) 创建餐厅表 CREATE TABLE restaurant(rno CHAR(9) PRIMARY KEY, rname CHAR(20) NOT NULL );4) 创建食品表 CREATE TABLE food(fno CHAR(9) PRIMARY KEY, fname CHAR(20) NOT NULL, fprice INT NOT NULL, fbelong CHAR(20) NOT NULL );5) 创建餐厅营业表 CREATE TABLE operation(rno CHAR(9) NOT NULL,sno CHAR(9) NOT NULL,fno CHAR(9) NOT NULL, fnum CHAR(10) NOT NULL, ctime DATETIME DEFAULT GETDATE(), way CHAR(10) NOT NULL, fbelong CHAR(20) NOT NULL, FOREIGN KEY(rno) REFERENCES restaurant(rno), FOREIGN KEY(sno) REFERENCES student(sno), FOREIGN KEY(fno) REFERENCES food(fno) );6) 创建员工表 CREATE TABLE worker(wno CHAR(9) PRIMARY KEY,wname CHAR(20) NOT NULL, wpost CHAR(18) NOT NULL, rno CHAR(9) NOT NULL, FOREIGN KEY(rno) REFERENCES restaurant(rno) );建立索引CREATE UNIQUE INDEX worker_wno ON worker(wno);CREATE UNIQUE INDEX manager_mno ON manager(mno);CREATE UNIQUE INDEX student_sno ON student(sno);CREATE UNIQUE INDEX restaurant_rno ON restaurant(rno);CREATE UNIQUE INDEX food_fno ON food(fno);CREATEUNIQUEINDEX operation_rsft ON operation(rno ASC,sno ASC,fno ASC,ctime ASC);创建触发器CREATE TRIGGER student_balance ON operationAFTER INSERTAS BEGINDECLARE card char(10) 定义变量DECLARE time datetimeselect card = way, time = ctime from insertedif card = cardbeginUPDATE studentSET =FROM student, operation, foodWHERE = and =and ctime = timeendEND学生卡内余额=原余额-食品单价X数量X折扣。只有当学生的付款方式为刷卡时才计算,支付现金不计算 创建视图CREATE VIEW pf_operationASSELECT ,fprice,fnum,fnum*fprice*1 price,ctimeFROM operation,restaurant,student,foodWHERE = AND = AND =七 数据库的实施数据的载入1 )向管理员表中插入数据INSERT INTO man ager(m no,m name,mpsw) VALUES(3O481,王红,30481);INSERT INTO ma nager(m no,m name,mpsw) VALUES(30482,李明,30482);2) 向学生表中插入数据 由于建立了触发器会自动修改学生卡内余额, 截图是在所有消费记录输入过以后的,所以插入数据时的余额跟截图的余额会有不同3) 向餐厅表中插入数据清风楼);映月阁);VALUES(01, 红 烧 鱼 块VALUES(02, 炸 鸡 腿VALUES(03, 清 炒西 洋菜VALUES(04, 苦 瓜 炒 蛋VALUES(05, 酸 辣土 豆丝VALUES(06, 家 常 豆 腐INSERT INTO restaurant(rno,rname) VALUES(01,INSERT INTO restaurant(rno,rname) VALUES(02,4) 向食品表中插入数据INSERT INTO food(fno,fname,fprice,fbelong) ,4,carn);INSERT INTO food(fno,fname,fprice,fbelong) ,4,carn);INSERT INTO food(fno,fname,fprice,fbelong) ,2,veg);INSERT INTO food(fno,fname,fprice,fbelong) ,2,veg);INSERT INTO food(fno,fname,fprice,fbelong) ,2,veg);INSERT INTO food(fno,fname,fprice,fbelong),2,veg);5)向餐厅营业表中插入数据(插入了两天的营业记录,时间自动为系统时间)6)向员工表中插入数据INSERT INTO worker(wno,wname,wpost,rno)VALUES(40481,张兰,经理,01);INSERT INTOworker(wno,wname,wpost,rno)VALUES(40482,马燕 ,八、J厨师,01);INSERT INTOworker(wno,wname,wpost,rno)VALUES(40483,周扬,经理,02);INSERT INTOworker(wno,wname,wpost,rno)VALUES(40484,王刚,厨师,02);八数据库的试运行 视图中的数据 视图的查询 经计算,结果正确 九数据库运行和维护系统开发工具的介绍微软公司的Visual Basic是Windows应用程序开发工具,是目前最为广泛 的、易学易用的面向对象的开发工具。 Visual Basic 提供了大量的控件,这些 控件可用于设计界面和实现各种功能, 减少了编程人员的工作量, 也简化了界面设计过程,从而有效的提高了应用程序的运行效率和可靠性。利用VISUALBASIC程序设计语言,可以很方便地设计出在 WINDOWS境下运行的应用程序。故而, 实现本系统VB是一个相对较好的选择。ADO对象能够存取到数据库的内容,首先要求数据库的驱动程序(ODBC区动 程序与OLEDB驱动程序)必须安装上,否则,ADO寸象是无法存取数据库中内容, 其原理示意图如下图所示:se客ew户连接客户客户VB 与 SQL如果在一台新的电脑上I该先附加数扌, 就是说要先有数据资源。对于我们的实验关机后会使数据库中我们自对象立的数据库不见, 同下图的步骤:DO寸所以可以进行如选择mdf格式文件即可,各种数示附库所对应的点击ccess、e下代码以及即可实现VB与数据库SQL的连接Opti on ExplicitPublic strSQL As Stri ngPublic Fun ction ExecuteSQL(ByVal strSQL As Stri ng) AsOn Error GoTo ErrorTrap声明对象变量Dim objConnection As声明对象变量Dim objRecordset As声明一个存放SQL查询条件的数组Dim strArray() As Stri ng定义新连接Set objC onnection = New创建新连接=Conn ectStri ng打开数据库Split函数返回一个下标从零开始的一维数组,包含指定数目的子字符串strArray = Split(strSQL)If In Str(INSER,DELETE,UPDATE, UCase(strArray(0) The n 执行SQL查询strSQLElse 打开记录集Set objRecordset = NewTrim(strSQL), objConnection, _ adOpenKeyset, adLockOptimisticSet ExecuteSQL = objRecordsetEnd If 释放对象Set objRecordset = NothingSet objConnection = NothingExit Function 出错处理ErrorTrap:Set objRecordset = NothingSet objConnection = NothingEnd Function 连接字符串赋值函数Public Function ConnectString() As StringConnectString=Provider=;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog= 学校餐厅 ;Data Source=.; (本地数据库写 . 即可)End FunctionVB 实现学校餐厅的管理登录界面分为管理员和学生两种使用者, 管理员有两个, 初始登录密码是自己的工号, 登 录后可以自己修改。代码如下:Private Sub Command1_Click() 声明对象变量Dim objRecordset As 声明SQL字符串Dim strSQL As StringSelect Case optCase 1 查找用户名strSQL = select mno from manager where mno= & _ Trim & 获得符合输入的用户记录集Set objRecordset = ExecuteSQL(strSQL) 如果输入的用户不存在If = True ThenMsgBox 用户名错误! , vbExclamation + vbOKOnly, 警告 = LenExit SubEnd If 从数据库中获得用户名mno = (0) 查找用密码strSQL = select mno from manager where mpsw= & _ Trim & 获得符合输入的密码记录集Set objRecordset = ExecuteSQL(strSQL) 如果输入的密码不存在If = True Or mno (0) ThenMsgBox 密码错误! , vbExclamation + vbOKOnly, = 0= LenExit SubEnd If 显示主界面管理员界面 .ShowCase 2 查找用户名strSQL = select sno from student where sno= & _ Trim & 获得符合输入的用户记录集Set objRecordset = ExecuteSQL(strSQL) 如果输入的用户不存在If = True ThenMsgBox 用户名错误! , vbExclamation + vbOKOnly, = 0= Len Exit SubEnd If 从数据库中获得用户名sno = (0) 查找用密码strSQL = select sno from student where spsw= & _Trim & 获得符合输入的密码记录集Set objRecordset = ExecuteSQL(strSQL) 如果输入的密码不存在If = True Or sno (0) ThenMsgBox 密码错误! , vbExclamation + vbOKOnly, = 0= LenExit SubEnd If 显示主界面学生界面 .StudentID = & Trim & 学生界面 .ShowEnd Select 卸载登陆窗体Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd SubPrivate Sub Option1_Click()opt = 1End SubPrivate Sub Option2_Click()opt = 2End Sub管理员功能 其中一个管理员进行登录: 点击登录,进入管理员界面1) 查询消费总额 当摁下管理员界面的查询餐厅总额按钮后会显示出未查询前, 数据库中的所有消 费记录,和 pf_operation 视图的数据相同。这是利用了 adodc 部件和 DataGrid 部件,二者经常搭配使用。点击“查询”按钮可查询相关内容: 按“返回”按钮可返回到管理员界面,按“退出”按钮直接退出。代码如下:Private Sub Form_Load()Dim objRecordset As 绑定学生strSQL = select DISTINCT sno from studentSet objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0 绑定时间From operationstrSQL = select DISTINCTconvert(char(10),ctime,120)Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0 绑定餐厅strSQL = select DISTINCT rno from restaurantSet objRecordset = ExecuteSQL(strSQL)Do While Not(0)LoopstrSQL = select DISTINCT fbelong from food Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0 绑定时间From operationstrSQL = select DISTINCTconvert(char(10),ctime,120)Set objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0 绑定餐厅strSQL = select DISTINCT rno from restaurantSet objRecordset = ExecuteSQL(strSQL)Do While NotLoop= 0= False=select sno 学号,rno 餐厅编号,fno 菜编号,fprice 菜单价,fnum 菜量,price折扣后价格,fbelong 菜类,ctime 消费时间 from pf_operationSet =End Sub2) 管理学生信息* 查找学生 * 和查询总额相似,点击查询学生后,即可看见学生表中全部信息,点击查 询后,看到某个学生信息。按“返回”按钮可返回到管理员界面,按“退 出”按钮直接退出。代码如下:Private Sub Command1_Click()Dim strSQL As StringstrSQL = select sno 学生学号 ,sname 学生姓名 ,spsw 学生密码 ,sdept学生专业,sbalanee 卡内余额 from student where sno=” & Trim & ”= False= strSQLSet =End SubPrivate Sub Command2_Click()管理员界面 .ShowUnload MeEnd SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()Dim objRecordset As 绑定学生strSQL = select DISTINCT sno from studentSet objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0= False= select sno 学生学号 ,sname 学生姓名 ,spsw 学生密码 ,sdept 学生专 业 ,sbalance 卡内余额 from studentSet =End Sub* 增加学生 * 按“返回”按钮可返回到管理员界面 代码如下:Private Sub Command1_Click()声明SQL字符串Dim strSQL As StringIf = Or = Or = Or = Or = ThenMsgBox 学生信息中有空值! , vbOKOnly + vbExclamation, Else strSQL = insert into student values( & _Trim & , & _Trim & , & _Trim & , & _Trim & , & _Trim & ) Set objRecordset = ExecuteSQL(strSQL)MsgBox 增加学生信息成功 , vbOKOnly + vbExclamation, End IfEnd SubPrivate Sub Command2_Click() 管理员界面 .ShowUnload MeEnd Sub* 修改学生 *学生学号处利用Comb(按钮,下拉选择学生学号即可。点击“查看原信息”按钮 即可查看学生原来信息,方便管理员修改。点击“修改”按钮进行修改。代码如下:Private Sub Command2_Click()Dim strSQL As StringDim objRecordset AsstrSQL = update student set sname= & Trim & where sno= & Trim & Set objRecordset = ExecuteSQL(strSQL)strSQL = update student set spsw= & Trim & where sno= & Trim& Set objRecordset = ExecuteSQL(strSQL)strSQL = update student set sdept= & Trim & where sno= & Trim & Set objRecordset = ExecuteSQL(strSQL)strSQL = update student set sbalance= & Trim & where sno= &Trim & Set objRecordset = ExecuteSQL(strSQL)MsgBox 修改学生信息成功 !, vbOKOnly + vbExclamation, End SubPrivate Sub Command3_Click() 管理员界面 .ShowUnload MeEnd SubPrivate Sub Form_Load()Dim objRecordset As 绑定学生strSQL = select DISTINCT sno from studentSet objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0End Sub* 删除学生 *点击“确认删除”按钮进行删除。代码如下:Private Sub Command1_Click()Dim strSQL As StringDim objRecordset AsstrSQL = delete from operation where sno= & Trim & strSQL = delete from student where sno= & Trim & Set objRecordset = ExecuteSQL(strSQL)MsgBox 删除学生信息成功 !, vbOKOnly + vbExclamation, End SubPrivate Sub Command2_Click()管理员界面 .ShowUnload MeEnd SubPrivate Sub Form_Load()Dim objRecordset As 绑定学生strSQL = select DISTINCT sno from studentSet objRecordset = ExecuteSQL(strSQL)Do While Not(0)Loop= 0End Sub3)管理食品信息(代码与说明部分和学生信息管理相似,不再赘述) * 查询食品 * 增加食品 * 修改食品 * 删除食品 *4)管理管理员信息(代码与说明部分和学生信息管理相似,不再赘述)* 查找管理员 * 增加管理员 * 修改管理员 * 删除管理员 *5)管理员工信息(代码与说明部分和学生信息管理相似,不再赘述)* 查找员工 * 增加员工 * 修改员工 * 删除员工 *6)管理餐厅信息(代码与说明部分和学生信息管理相似,不再赘述)* 查找餐厅 * 编辑餐厅 *因为前面我的增删修改都不在同一个窗体, 而餐厅的信息比较简单, 所以我做了 另外一种不同于之前的简单编辑窗体。按“初始化”按钮后可以使 text 的值为空,免去增加后又想删除时还要手动按 delete 键。代码如下:Private Sub Command1_Click() Illi IlliEnd SubPrivate Sub Command2_Click()声明SQL字符串Dim strSQL As StringDim objRecordset AsIf = Or = ThenMsgBox 餐厅信息中有空值! , vbOKOnly + vbExclamation, ElsestrSQL = insert into restaurant values( & _Trim & , & _Trim & )Set objRecordset = ExecuteSQL(strSQL)MsgBox 增加餐厅信息成功 , vbOKOnly + vbExclamation, End IfEnd SubPrivate Sub Command3_Click()Dim strSQL As StringDim objRecordset AsstrSQL = update restaurant set rname= & Trim & where rno= & Trim & Set objRecordset = ExecuteSQL(strSQL)MsgBox 修改餐厅信息成功 !, vbOKOnly + vbExclamation, End SubPrivate Sub Command4_Click()Dim strSQL As StringDim objRecordset AsstrSQL = delete from operation where rno= & Trim & strSQL = delete from restaurant where rno= & Trim & Set objRecordset = ExecuteSQL(strSQL)MsgBox 删除餐厅信息成功 !, vbOKOnly + vbExclamation, End SubPrivate Sub Command5_Click()管理员界面 .ShowUnload MeEnd Sub7) 选择其他功能备份* 点击浏览按钮会弹出电脑磁盘图框, 进行选择备份到的磁盘。 点击备份按钮, 进 行备份。代码如下:Private Sub Command1_Click()= C:If Len 0 ThenOpen For Append As #1Close #1End IfEnd SubPrivate Sub Command2_Click()Dim cn As New学校餐厅 to disk= & Trim & .bakSecurity=SSPI;Persist SecurityDim strSQL As String strSQL = backup database Provider=;IntegratedInfo=False;Initial Catalog=学校餐厅 ;Data Source=.;strSQL= 0If = 0 ThenMsgBox A_A恭喜您,数据备份成功, vbOKOnly + vbExclamation,提示ElseMsgBox 对不起,数据备份失败 !, vbOKOnly + vbExclamation, 示End IfEnd SubPrivate Sub Command3_Click() 管理员界面 .ShowUnload MeEnd Sub* 恢复 *点击浏览按钮会弹出电脑磁盘图框, 进行选择备份到的磁盘。 点击备份按钮, 进 行备份。代码如下:Private Sub Command1_Click()= C:If Len 0 ThenOpen For Append As #1Close #1End IfEnd SubPrivate Sub Command2_Click()ret= MsgBox( 数据恢复操作将覆盖以前所有的数据并且覆盖后无法恢复,你确定要进行恢复操作吗? , vbOKOnly + vbExclamation, 提示 )If ret = vbOK ThenDim cn As NewDim sn As NewDim s_restore As StringProvider=;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=.;select spid from sysprocesses where dbid=db_id( 学 校餐厅), cnDo While Notkill & sn(spid)Loops_restore = restore database 学校餐厅 from disk= + Trim + with REPLACEs_restoreIf = 0 ThenMsgBox A_A恭喜您,数 据还原成功! , vbOKOnly +vbExclamation, 提示ElseMsgBox 对不起,数据还原失败! , vbOKOnly + vbExclamation, 提示 End IfElseExit SubEnd IfEnd SubPrivate Sub Command3_Click() 管理员界面 .ShowUnload MeEnd Sub学生功能其中一个学生进行登录1) 查看自己基本信息因为学生的隐私问题, 所以我觉得应该对学生进行权限管理, 学生和管理员看到 的信息应该不同, 并且学生应该只能看自己的信息。 所以我在学生登录那里设置 了一个变量 , 使得学生在进界面时,只能看到自己的信息、修改自己的密码。2) 修改密码 如果两次密码填写不同,则会提示。代码如下:Private Sub Command1_Click()Dim strSQL As StringDim objRecordset AsIf Trim Trim ThenMsgBox 密码不一致! , vbOKOnly + vbExclamation, Illi IlliElseIf = Or = ThenMsgBox 密码不能为空! , vbOKOnly + vbExclamation, ElsestrSQL = update student set spsw= & Trim & where sno= + 学生界 面.Stude ntIDSet objRecordset = ExecuteSQL(strSQL)MsgBox 密码修改成功 , vbOKOnly + vbExclamation, End IfEnd SubPrivate Sub Command2_Click() 学生界面 .ShowUnload MeEnd Sub3) 查询余额代码如下:Private Sub Command1_Click()Dim strSQL As StringDim objRecordset AsstrSQL = select sbalance from student where sno= + 学 生 界面.Stude ntIDSet objRecordset = ExecuteSQL(strSQL)= (0)End SubPrivate Sub Command2_Click()学生界面 .ShowUnload MeEnd SubPrivate Sub Command3_Click()Unload MeEnd Sub十课程设计的总结报告 遇到的问题和解决方法对于这次的数据库课程设计的实验来说, 遇到的问题真的是挺多的。 我感觉 数据库方面最难的还是怎样才能最优、 最简单的建立一个便于用户、 便于自己又 符合数据库约束条件的基本表。 开始的时候感觉很难下手, 毕竟是第一次自己建 立一个有那么多要求的系统, 所以我决定按照课本上的内容一步一步来, 先是需 求分析,明白自己要做什么,写出数据字典;然后是概念结构设计,根据数据字 典画出E-R图;然后用逻辑结构设计转换为关系模式。 再之后关于SQL勺事情很 容易就实现了, 这也让我明白把难的大的事情分为一点点去完成, 也许会更加有 效率。关于VB和数据建立的时间分配大概是2:1,在建立完数据库后,我先用 查询分析器进行试运行, 因为数据库虽然是后台, 但基础稳固才能使前台运行地 更加流畅。 创新、得意之处至于创新和得意之处,我觉得应该是关于餐厅的营业表的时间 ctime 和 VB 中老师和学生权限的限制。 关于消费的话, 就
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!