欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    报刊订阅管理系统毕业论文.doc

    • 资源ID:3943774       资源大小:725.50KB        全文页数:39页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    报刊订阅管理系统毕业论文.doc

    华 东 交 通 大 学课 程 设 计( 论 文 )任 务 书 信息学院 专 业 班 级 一、课程设计(论文)题目: 报刊订阅管理系统的设计与实现 二、课程设计(论文)工作:自 2006 年 6 月 12 日起至 2006 年 6 月 23 日止。三、课程设计(论文)的内容要求: 1:选好题目:每组两人,每题最多6人选做 2:独立思考,独立完成; 3:每次上机准备调试程序,准备好有关文件; 4:根据编程实现的结果,写好上机报告; 5:实现结果必须进行检查和演示; 6:上交实验报告和电子文档; 学生签名: 2006 年6 月 22日数据库课程设计(1) 课程设计目的数据库系统原理及应用课程设计是计算机科学技术中计算机应用专业(本科)教学大纲要求的 重要时间性环节之一,是学习完数据库系统概论课程后进行的一次全面的综合练习。其目的在于:配合数据库系统概论课程的教学,使学生能巩固和加深对数据库基础理论和基本知识的理解;掌握使用数据库进行软件设计的基本思想和方法;提高学生应用数据库理论解决实际问题的能力;培养学生调查研究,查阅技术文献,资料,手册以及编写技术文献的能力。(2) 课程设计题目 报刊订阅管理系统的设计与实现(3) 课程设计主要内容 通过对某企业的报刊订阅业务进行分析,调查,设计该企业的报刊订阅管理系统。主要实现以下功能:1:录入功能:录入订阅人员信息,报刊基本信息;2:订阅功能:订阅人员订阅报刊(并计算出其金额);3:查询功能:按人员查询,报刊查询,部门查询有关订阅信息,对查询结果能进行预缆和打印;4:统计功能:按报刊统计,人员统计,部门统计,和对结果进行统计预缆和打印;5:系统维护:如数据安全管理(含备份与恢复),操作管理,权限设置等。(4) 设计环境:Microsoft Windows 2000操作系统,Microsoft SQL Server 2000数据库管理系统个人版,Borland Delphi 7企业版。人员分工:同组人分工:整体构思和详细设计思路一起完成,代码多数由我完成,界面设计多数由付娆完成。报刊订阅管理系统的设计和实现目录第一章:概念设计 -第二章:E-R图和流程图 -第三章:数据库系统分析 -第四章:运行调试和截图 -第五章:程序代码 -参考文献-心得体会-第一章:概要设计-报刊订阅管理系统需求分析:问题描述: 报刊订阅管理系统是一种智能化的管理系统,它面向所有用户,但是却具有高度安全性能。只有后台管理员可以实施系统的日常维护功能,包括新报刊信息的录入,后台数据库的备份和恢复,用户的权限设置等。用户合法注册后必须输入有效密码才能成功进入此系统,若要进行订阅报刊,查询信息,统计信息等操作,必须经由管理员对其权限开放。对于非法操作,系统有识别和防护措施。需求文档:(1) 对于首次登陆此系统的用户提供“用户注册”功能,用户填写个人信息后,输入新密码,并确认密码后方可成功注册,此时用户的所有信息都入库保存,并且该用户的所有权限都默认为空。(2) 为保证系统安全性,所有用户(包括管理员)必须输入有效密码才能登陆。对管理员,所有权限都开放,管理员可以进行系统维护,如对数据的备份和恢复,还有对每个注册的用户进行权限设置,并将其设置入库。而对于用户登陆后,要查询其权限,然后在界面上显示相应的功能。(3) 用户登陆后,若有订阅报刊的权利,系统要能防止该用户利用其他人的名义订阅报刊。(4) 为保持数据的一致性,若有新的用户注册或有新的报刊入库,则在它们入库的同时,其相关信息要一并添加到相应界面上,保证了系统并发操作时的数据一致性和完整性。系统结构设计:本系统包括后台数据库设计和前台应用程序的设计两个大的方面,后台数据库的设计是为前台应用程序而服务的,而应用程序的设计则是基于数据库编写的:数据库的设计是基于SQL Server的设计,首先创建报刊订阅数据库,新建相关表,包括订阅人员表(即用户表),报刊表,订阅表,权限表和管理员表等。订阅人员表中包括了用户基本信息、用户密码,报刊表中包括了报刊基本信息,订阅表中包括了用户订阅报刊的相关信息,权限表中包括了所有用户的权限设置,管理员表中有管理员及其密码信息。对每个表设置主键,若有需求,对相关表的字段进行check约束、默认值、字符长度限制等设置。并创建表与表的关系表。前台应用程序设计是基于Borland Delphi 7的设计,其界面设计包括注册、登陆、查询、订阅、统计、系统维护等界面的设计,管理员拥有对所有这些界面的使用权,而一般的用户登陆后的界面可能因人而异,这要看管理员对其权限的开放是如何设置的。对于一个从未登陆过此系统的用户,他必须注册成功后才能登陆此系统,系统对每个刚注册的用户的权限设置都默认为全部屏蔽,这时要由管理员对其相关权限进行开放。功能模块设计:本系统主要有以下功能模块:l 录入新信息功能:包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;输入模块登入信息用户注册报刊信息管理员注册l 订阅功能:订阅报刊并计算金额;订阅报刊订阅报刊号订阅数量计算金额l 查询功能:;查 询 功 能人员查询报刊查询部门查询l 统计功能:可以按用户姓名、部门名称、报刊信息统计报刊的销售情况。其中报刊信息中,又包括按报刊的代号、报刊类型、报刊定价等信息实现统计功能;统 计 功 能报刊查询人员查询部门查询订阅信息l 系统维护功能:实现后台管理员对系统的日常维护功能。系 统 维 护权限设置数据库备份数据库恢复ll第二章:E-R图和流程图-关系模型为:部门(部门号,部门名)用户(用户名,密码,性别,部门号,联系电话,家庭住址)报刊(报刊代号,报刊名,类型,出版报社,半年订阅价,年订阅价)授权(用户名,权限名)管理员(管理员姓名,密码)订阅(用户名,报刊代号,订阅周期,订阅年限,订阅份数)下面为实体和属性图:部 门部门号部门名用户名权限名授 权用 户用户名家庭地址联系电话性 别部门号密码 管理员名字姓名份数订阅周期订阅年限订 阅报刊号用户名出版社报刊名报 刊类型订价代号报刊订阅管理系统的概念模型E-R图: 部门权限 1 n属于授予管理员 n 1 用户录入信息 m 订阅 m n n报刊 订阅订阅权权登陆系统流程图:开始y 统计权用户登陆统计y管理员y密码正确? N Y订阅统计查询系统维护录入报刊信息预览恢复备份权限设置打印第三章:数据库系统分析-对各个关系模式进行范式的级别分析:部门关系模式中,部门号 部门名,决定因素只有一个,侯选码只有一个,不存在非主属性对码的部分函数依赖和传递函数依赖,且除侯选码外无其他决定因素,满足BNF;用户关系模式中,用户名为唯一决定因素和侯选码,显然也满足BNF;同理报刊关系模式和管理员关系模式也满足BNF要求;在授权关系模式中,(用户名,权限名)是全码,显然符合BNF要求;在订阅关系模式中,(用户名,报刊代号)为唯一侯选码和决定因素,且不存在非主属性对码的部分函数依赖和传递函数依赖,满足BNF;综上所述,该该数据库模式的所有关系模式都满足了BNF要求。1. 登陆(1) 管理员登陆管理员输入姓名:a和密码:b后,系统从管理员表中查询是否存在此记录,若返回记录不为空,则登陆成功,此时界面上所有的权限都开放。(2) 用户登陆同理,用户输入姓名:a和密码:b后,系统从订阅人员表中查询是否存在此记录,若返回记录不为空,再从权限表中查询该用户各权限值,若权限值为1,则开放该权限,若为0则屏蔽该权限,根据这些值,对其权限界面进行相应的开放和屏蔽。2. 录入报刊信息设置一个按钮用来触发向数据库提交数据的事件,这里填写的信息包括报刊代号、报刊名、类型、出版报社、半年订阅价和年订阅价。由于报刊代号为主键,且报刊名、类型、半年订阅价和年订阅价都不为空,所以系统要能对其进行判断,如果所有条件都满足,则将数据插入到报刊表中。3. 订阅(1) 计算金额用户填写用户名:a、报刊代号:b、订阅周期:c、订阅年限:d和订阅份数:e,根据用户填写的报刊代号:a,从数据库中查找该报刊,若返回的记录不为空,得到报刊价格。 再根据选择的订阅周期、年限和份数用计算金额。 注意:用户要能订阅报刊,必须是先登陆了,所以用户在订阅时填写的用户名必须和登陆时的用户名一致,并且提供的订阅周期选择只有“半年”和“一年”的,这些都是系统能实现的。(2) 订阅报刊系统同样能根据数据库设计的约束进行判断输入内容是否符合条件,用到的SQL语句:insert into 订阅 values(:a,:b,:c,:d,:e)。4. 查询(1) 按人员姓名查询:得到该人员的报刊订阅情况,用到的SQL语句:select * from 订阅 where 订阅人姓名=:a(2) 按报刊代号查询:得到该报刊的被订阅情况,用到的SQL语句:select * from 订阅 where 报刊代号=:b(3) 按部门代号查询:得到该部门人员的订阅情况,用到的SQL语句:select * from 订阅 where 订阅人姓名 in (select 订阅人姓名 from 订阅人员 where 部门号=:c)注意:本系统对生成报表的设计5. 统计(1) 按人员姓名统计:得到该人员共订阅了几种报刊用到的SQL语句:select count(*) from 订阅 where 订阅人姓名=:a(2) 按部门号统计:得到该部门人员共订阅了几种报刊用到的SQL语句:select count(*) from 订阅 where 订阅人姓名 in (select 订阅人姓名 from 订阅人员 where 部门号=:a)(3) 按报刊统计l 按报刊号统计:得到该报刊共有多少人订阅用到的SQL语句:select count(*) from 订阅 where 报刊代号=:al 按报刊类型统计:得到该种类报刊共有多少人订阅用到的SQL语句:select count(*) from 订阅 where 报刊代号 in (select 报刊代号 from 报刊 where 类型=:a)l 按报刊价格统计:不同范围内报刊的销售情况以上是统计订阅周期为半年的报刊各个价位的销售情况,同理可以统计订阅周期为一年的报刊各个价位的销售情况。6. 权限设置管理员通过浏览所有注册的用户名,对其各权限进行设置,包括订阅、查询、统计。用到的SQL语句:update 权限 set 订阅报刊=:b,查询=:c,统计=:d where 订阅人姓名=:a注意:由于所有的用户,他在未进行权限设置前,其在权限表中的各个权限都默认为0,所以只需要用updata更新语句即可,不需要用insert into语句。7. 数据库备份和恢复用到的SQL语句:backup database mrxt to disk="c:zl.bak" with init将当前数据库备份到一个已建立的数据库文件c:zl.bak中;用到的SQL语句:restore database mrxt from disk="c:zl.bak" with init,将备份文件c:zl.bak恢复为数据库第四章:运行调试和截图下面为运行界面对话框;(1) 登入“欢迎您使用报刊订阅管理系统”;输入相关信息,如果不存在该用管理员或者用户,你可以选择注册,之后再登入。下面输入以管理员为例子。如上图点击确定,你将可以成功登入到该系统。如果你没有注册则进行注册,否则可以直接输入用户名和密码登入。输入注册用户名和密码,点击注册,系统对其进行判断,是否符合要求,下图为输入信息符合要求,注册成功。下面为对话框的主界面,工具栏上面有:录入;订阅;查询,统计,系统维护,和关闭。首先进行人员登入:例如输入下图信息,可以成功录入信息到数据库中。显示成功录入该用户信息:(上面输入的信息)录入相关的报刊信息: 将下面的信息输入到数据库中,并保存起来。登入报刊订阅功能: 输入人员编号,报刊编号,订阅数量;和订阅日期报刊订阅成功并且输出价格总数:订阅查询:按部门查询: 其余截图和这同样过程,次出省掉;下图为按人员进行统计: 其余如:按报刊,按部门进行统计,同样可以输出象如下表格;因此省去。第五章:程序代码管理员登陆代码:procedure TForm1.Button1Click(Sender: TObject);beginif (RadioButton1.Checked = true) And (edit1.Text = 'admin') And (edit2.text = 'admin')thenbeginedit1.Text:=''edit2.Text:=''form2.Show;end用户登陆代码:else if (RadioButton2.Checked = true) thenbeginif(edit2.Text='') thenbeginedit1.text:=''showmessage('用户名或密码错误,请重新输入!')endelse begin /endform12.query1.SQL.Clear;form12.query1.sql.Add('select *');form12.query1.sql.Add('from 用户');form12.query1.sql.add('where 用户名='''+edit1.text+''' ');form12.Query1.open;form12.Query1.Active:=true;if(form12.DBGrid1.Fields1.asstring = edit2.Text) thenbeginedit1.Text:=''edit2.text:=''form2.N1.enabled:=false;form2.N2.enabled:=false;form2.N3.enabled:=false;form2.N8.enabled:=false;form2.show;endelsebeginedit1.Text:=''edit2.text:=''showmessage('用户名或密码错误,请重新输入!');end;end /beginend /if (RadioButton2.Enabled = true)else beginedit1.Text:=''edit2.text:=''showmessage('用户名或密码错误,请重新输入!');endend;新用户注册:procedure TForm7.Button2Click(Sender: TObject);beginform7.Close;end;procedure TForm7.Button1Click(Sender: TObject);beginform7.Query1.close;form7.query1.SQL.Clear;form7.query1.SQL.Add('insert into 用户');form7.query1.SQL.Add('values('''+edit1.text+''','''+edit2.text+''')');form7.Query1.ExecSQL;edit1.Text:=''edit2.Text:=''showmessage('恭喜,注册成功');form7.show;end;procedure TForm1.Button2Click(Sender: TObject);beginform1.Close;end;procedure TForm1.FormActivate(Sender: TObject);beginedit1.SetFocus;radiobutton1.Checked:=true;end;procedure TForm1.Button3Click(Sender: TObject);beginform7.show;end;end.procedure TForm2.N2Click(Sender: TObject);beginform3.show;end;procedure TForm2.N10Click(Sender: TObject);beginform2.close;end;procedure TForm2.N4Click(Sender: TObject);beginform4.show;end;procedure TForm2.N3Click(Sender: TObject);beginform3.show;end;procedure TForm2.N5Click(Sender: TObject);beginform5.show;end;procedure TForm2.N6Click(Sender: TObject);beginform12.query1.SQL.Clear;form12.query1.sql.Add('select 人员.人员编号,max(人员.姓名)姓名,max(人员.性别)性别,sum(订阅.数量)订阅报刊数量');form12.query1.sql.Add('from 人员,报刊,订阅');form12.query1.sql.add('where 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form12.Query1.SQL.Add('group by 人员.人员编号');form12.Query1.open;form12.Query1.Active:=true;form12.show;end;procedure TForm2.N11Click(Sender: TObject);beginform13.query1.SQL.Clear;form13.query1.sql.Add('select 报刊.报刊编号,max(报刊.名字)名字,max(报刊.类别)类别,max(报刊.价格)价格,count(人员.人员编号)订阅人数');form13.query1.sql.Add('from 人员,报刊,订阅');form13.query1.sql.add('where 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form13.Query1.sql.Add('group by 报刊.报刊编号');form13.Query1.open;form13.Query1.Active:=true;form13.show;end;procedure TForm2.N12Click(Sender: TObject);beginform14.query1.SQL.Clear;form14.query1.sql.Add('select 人员.工作部门,count(人员.人员编号)订阅人数');form14.query1.sql.Add('from 人员,报刊,订阅');form14.query1.sql.add('where 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form14.Query1.SQL.add('group by 人员.工作部门');form14.Query1.open;form14.Query1.Active:=true;form14.show;end;procedure TForm2.N8Click(Sender: TObject);beginform6.show;end;procedure TForm2.Image1Click(Sender: TObject);beginend;end.人员录入代码:procedure TForm3.Button1Click(Sender: TObject);beginform3.Query1.close;form3.query1.SQL.Clear;form3.query1.SQL.Add('insert into 人员');form3.query1.SQL.Add('values('''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''','''+edit5.text+''')');form3.Query1.ExecSQL;edit1.Text:=''edit2.Text:=''edit3.Text:=''edit4.Text:=''edit5.Text:=''showmessage('录入成功');form3.show;end;报刊录入代码:procedure TForm3.Button3Click(Sender: TObject);beginform3.Query1.close;form3.query1.SQL.Clear;form3.query1.SQL.Add('insert into 报刊');form3.query1.SQL.Add('values('''+edit6.text+''','''+edit7.text+''','''+edit8.text+''','''+edit9.text+''','''+edit10.text+''')');form3.Query1.ExecSQL;edit6.Text:=''edit7.Text:=''edit8.Text:=''edit9.Text:=''edit10.Text:=''showmessage('录入成功');form3.show;end;procedure TForm3.Button2Click(Sender: TObject);beginform3.close;end;procedure TForm3.Button4Click(Sender: TObject);beginform3.close;end;报刊订阅代码:procedure TForm4.Button2Click(Sender: TObject);beginform4.close;end;procedure TForm4.FormActivate(Sender: TObject);beginedit1.SetFocus;end;procedure TForm4.Button1Click(Sender: TObject);vara,b,sum:real;s:string;beginform4.Query1.close;form4.query1.SQL.Clear;form4.query1.SQL.Add('insert into 订阅');form4.query1.SQL.Add('values('''+edit1.text+''','''+edit2.text+''','''+edit3.text+''','''+edit4.text+''')');form4.Query1.ExecSQL;form12.query1.SQL.Clear;form12.query1.SQL.Add('select * from 报刊');form12.query1.SQL.Add('where 报刊.报刊编号='''+edit2.text+'''');form12.Query1.open;form12.Query1.Active:=true;s:=form12.DBGrid1.Fields4.asstring;a:=strtofloat(s);b:=strtofloat(edit3.text);sum:=a*b;edit1.Text:=''edit2.Text:=''edit3.Text:=''edit4.Text:=''showmessagefmt('订阅成功,总价格为:%12.4f',sum);form4.show;end;订阅查询代码:procedure TForm5.Button4Click(Sender: TObject);beginform5.Close;end;procedure TForm5.Button1Click(Sender: TObject);beginDBGrid1.DataSource:=DataSource1;form5.query1.SQL.Clear;form5.query1.sql.Add('select 人员.人员编号,人员.姓名,人员.工作部门,报刊.报刊编号,报刊.名字,报刊.类别,报刊.价格,订阅.数量');form5.query1.sql.Add('from 人员,报刊,订阅');form5.query1.sql.add('where 人员.姓名='''+edit1.text+''' And 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form5.Query1.open;form5.Query1.Active:=true;form5.show;end;procedure TForm5.Button2Click(Sender: TObject);beginDBGrid2.DataSource:=DataSource1;form5.query1.sql.clear;form5.query1.sql.add('select 人员.人员编号,人员.姓名,人员.工作部门,报刊.报刊编号,报刊.名字,报刊.类别,报刊.价格,订阅.数量');form5.query1.sql.add('from 人员,报刊,订阅');form5.query1.sql.add('where 报刊.名字='''+edit2.text+''' And 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form5.Query1.open;form5.Query1.Active:=true;form5.show;end;procedure TForm5.Button3Click(Sender: TObject);beginDBGrid3.DataSource:=DataSource1;form5.query1.sql.clear;form5.query1.sql.add('select 人员.人员编号,人员.姓名,人员.工作部门,报刊.报刊编号,报刊.名字,报刊.类别,报刊.价格,订阅.数量');form5.query1.sql.add('from 人员,报刊,订阅');form5.query1.sql.add('where 人员.工作部门='''+edit3.text+''' And 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form5.Query1.open;form5.Query1.Active:=true;form5.show;end;procedure TForm5.Button5Click(Sender: TObject);beginform5.Close;end;procedure TForm5.Button6Click(Sender: TObject);beginform5.Close;end;procedure TForm5.TabSheet1Show(Sender: TObject);begin DBGrid1.DataSource:=DataSource2;end;procedure TForm5.TabSheet2Show(Sender: TObject);begin DBGrid2.DataSource:=DataSource2;end;procedure TForm5.TabSheet3Show(Sender: TObject);begin DBGrid3.DataSource:=DataSource2;end;procedure TForm5.Button7Click(Sender: TObject);begin/form8.query1.Close;form8.query1.SQL.Clear;form8.query1.sql.Add('select 人员.人员编号,人员.姓名,人员.工作部门,报刊.报刊编号,报刊.名字,报刊.类别,报刊.价格,订阅.数量');form8.query1.sql.Add('from 人员,报刊,订阅');form8.query1.sql.add('where 人员.姓名='''+edit1.text+''' And 人员.人员编号=订阅.人员编号 And 报刊.报刊编号=订阅.报刊编号 ');form8.Query1.execsql;form8.Query1.Active:=true;edit1.Text:=''form8.qrlabel1.caption:='人员编号'form8.qrlabel2.caption:='姓名'form8.qrlabel3.caption:='工作部门'form8.qrlabel4.caption:='报刊编号'form8.qrlabel5.caption:='名字'form8.qrl

    注意事项

    本文(报刊订阅管理系统毕业论文.doc)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开