数据库课程设计-报刊订阅管理系统的设计与实现_第1页
数据库课程设计-报刊订阅管理系统的设计与实现_第2页
数据库课程设计-报刊订阅管理系统的设计与实现_第3页
数据库课程设计-报刊订阅管理系统的设计与实现_第4页
数据库课程设计-报刊订阅管理系统的设计与实现_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

存档资料成绩:xxxx课程设计报告书所属课程名称数据库系统开发教程题目报刊订阅管理系统的设计与实现分院XXXXXXXXXXXX专业班级XXXXXXXXXX学号XXXXXXXXXXXXXXXXX学生姓名XXXXXXXX指导教师XXXXXXXXX20XX年XX月XX日目录第一章 课程设计内容及要求 4 设计目的 4 设计要求 4 设计环境 4第二章 概要设计 5 系统需求分析 5 系统结构设计: 5 逻辑结构设计 6 功能模块设计 6第三章 详细设计 8 系统数据库设计 8 系统主要功能模块设计 13 登录界面 13 主界面 13 程序主要算法对应的原代码 13第四章 调试与运行结果及存在的问题 19第五章 课程设计心得体会 35第六章 参考文献 36课程设计内容及要求通过对某企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。以SQLServer2005作为后台数据库,以C#作为前台开发工具,完成数据库应用系统的设计开发。设计目的人们在部门单位中一直以来都是使用传统人工方式管理本单位的报刊订阅,这种管理方式存在着许多缺点,而且时间一长,将产生大量的文件和数据,难于归类整理,这对于查找、更新和维护都带来了不少的困难。课题要求设计并实现一个报刊订阅管理系统,能够通过计算机和数据库对本单位的报刊订阅进行管理。一个单位可指定一个或多个管理员,普通用户注册获得一个账号后就可以订阅报刊以及在自己的权限范围内进行相关的操作。设计要求综合运用所学的数据库根本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计出合理的数据结构,并实现报刊订阅管理系统中,登录对角色的判断,管理员注册新用户,管理员查看、更新报刊信息,查询、统计订阅信息,维护数据,管理用户,普通用户修改个人信息,查询、统计、增加订阅等功能模块。设计环境系统数据库用的是MicrosoftSQLServer2005,系统的开发平台为MicrosoftVisualStudio2010,开发语言为C#。概要设计系统需求分析通过对企业的报刊订阅业务进行分析、调查,设计该企业的报刊订阅管理系统。主要实现以下功能:登陆功能:登陆系统为身份验证登录。分为管理员登录和一般用户登录。分别通过不同的用户名和密码进入报刊订阅管理界面。录入新信息功能:对于管理员,包括新用户信息和新报刊信息的录入功能,信息一旦提交就存入到后台数据库中;普通用户自行注册进行录入个人信息。订阅功能:用户可以订阅报刊,系统自动计算所需金额,并显示在界面上;管理员不可订阅报刊,必须以用户身份订阅报刊。查询功能:按人员查询、按报刊查询、按部门查询有关订阅信息,对查询结果能进行预览;统计功能:按报刊统计、按人员统计、按部门统计,对统计结果能进行预览;系统维护:如数据平安管理〔含备份与恢复〕系统结构设计本系统包括后台数据库设计和前台应用程序的设计两个大的方面,后台数据库的设计是为前台应用程序而效劳的,而应用程序的设计那么是基于数据库编写的。根据需求分析可以建立管理员表,部门表,用户表,报刊类别表,报刊信息表,订单表。其中用户表中包括了用户根本信息,报刊信息表中包括了报刊的根本信息,订单表中包括了用户订阅报刊的相关信息。系统登录主要分为管理员和用户两种类型。管理员可以实现录入用户信息、录入报刊信息,查询用户、报刊、部门订阅情况,统计用户、报刊、部门所订阅的数量,数据备份和数据恢复的系统维护操作。用户可以实现查询本人信息并修改,订阅报刊并查询等操作。界面设计相对友好,方便用户的操作。逻辑结构设计设计数据库共有7个关系模式,分别为:用户〔用户账号,姓名,密码,用户类别〕用户账号为主键,决定因素为主键自身或包含主键,满足BC范式。普通用户1〔用户账号,联系,,部门编号〕用户账号为主键,部门编号为外键,决定因素为主键自身或包含主键,满足BC范式。普通用户2〔用户账号,身份证号〕用户账号为主键,决定因素为主键自身或包含主键,满足BC范式。部门〔部门编号,部门名称〕部门编号为主键,决定因素为主键自身或包含主键,满足BC范式。报刊信息〔报刊编号,报刊名称,出版报社,出版周期,季度报价,内容介绍,分类编号〕报刊编号为主键,分类编号为外键,决定因素为主键自身或包含主键,满足BC范式。报刊类别〔分类编号,分类名称〕分类编号为主键,决定因素为主键自身或包含主键,满足BC范式。订单〔用户编号,报刊编号,订阅份数,订阅月数〕用户编号、报刊编号为主键,决定因素为主键自身或包含主键,满足BC范式。功能模块设计由以上分析可以画出功能模块设计图,如图2-1和2-2所示:报刊订阅管理系统报刊订阅管理系统用户登录报刊信息录入按人员查询按报刊查询按部门查询按人员统计按报刊统计按部门统计数据库备份统计数据库恢复系统维护录入登录管理员登录订阅查询图2-1报刊管理系统E-R图用户管理员所有报刊用户管理员所有报刊信息管理所有用户信息管理系统维护查询自身资料并修改信息查询报刊信息订阅报刊并查看图2-2管理员和用户E-R图详细设计系统数据库设计经过需求分析设计后得出数据库设计的概念模型,建立了六个表,分别是:管理员表,部门表,用户表,报刊类别表,报刊信息表,订单表。如下:管理员〔管理员,密码〕部门〔部门编号,部门名〕用户〔用户账号,密码,姓名,身份证号,联系,部门编号〕报刊类别〔分类编号,分类名称〕报刊信息〔报刊编号,报刊名称,出版报社,季度报价,内容介绍,分类编号〕订单〔订单编号,用户账号,报刊编号,订阅份数,订阅季度,订阅总额〕所创立表的设计图如下所示:管理员表:用E-R图表示该实体如下:管理员密码管理员密码管理员 部门表:用E-R图表示该实体如下:部门部门部门编号部门名部门编号部门名用户表:用E-R图表示该实体如图3-1所示:用户账号用户账号部门编号图3-1实体E-R图用户联系用户联系姓名身份证号密码身份证号密码报刊类别表:用E-R图表示该实体如下:报刊类别报刊类别分类编号分类名称分类编号分类名称报刊信息表:用E-R图表示该实体如图3-2所示:报刊名称报刊编号报刊名称报刊编号报刊信息季度报价报刊信息季度报价出版报社分类编号内容介绍分类编号内容介绍图3-2报刊信息实体E-R图订单表:用E-R图表示该实体如3-3所示:用户账号订单编号用户账号订单编号订阅份数报刊编号订单订阅份数报刊编号订单DINGDA订阅总额订阅季度订阅总额订阅季度图3-3订单实体E-R图数据库各个表之间的关系如图3-4所示:图3-4各表关系图完整的E-R图如图3-5所示:管理员1管理员1M1MNM1MM1订单订制用户管理员处理器报刊包含的报刊类别订阅费部门拥有密码订单编号用户账号报刊编号订阅份数分类编号分类名称报刊名称出版报社季度报价内容介绍部门编号部门名用户账号密码姓名部门编号联系报刊编号分类编号订阅季度订阅总额身份证号图3-5完整E-R图系统主要功能模块设计登录界面开始使用系统时,在主界面首先要选择其类型,管理员或用户,这样才能进入登录界面。在管理员或用户登录界面分别输入正确的用户账号和密码时,方可进入到系统,否那么不能进入系统。新用户可点击注册,添加自己的信息,注册成功后,就可以登录系统。主界面主界面有管理员界面和用户界面。管理员进入管理员界面后,可以进行录入、查询、统计、系统维护等操作。具体可以添加、修改、删除用户和报刊信息,可以按用户、报刊、部门进行查询和统计订阅的情况,可以进行系统的数据备份与恢复。用户进入用户界面后,可以修改本人信息,根据报刊信息订阅报刊,并查看自己的订阅信息。程序主要算法对应的原代码用户修改本人信息:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespace报刊订阅管理系统{publicpartialclassForm5:Form{MyconConnection=newMy();//在登录界面使用的用户账号调用到这一界面privatestringUser;privatestringpassword;publicstringUserNum{get{returnUser;}set{this.User=value;}}publicstringPassWord{get{returnpassword;}set{this.password=value;}}publicForm5(){InitializeComponent();}classConnect{publicstaticstringHY(){return"DataSource=(local);InitialCatalog=报刊订阅管理系统;IntegratedSecurity=True";}}classMy{publicstringstrConnect="";publicSqlConnectionconConnection=null;publicMy(){strConnect=Connect.HY();conConnection=newSqlConnection(strConnect);}publicvoidOpenDB(){if(conConnection.State!=ConnectionState.Open){try{conConnection.Open();}catch(System.Exceptionex){throwex;}}}publicvoidCloseDB(){if(conConnection!=null&&conConnection.State==ConnectionState.Open){conConnection.Close();}}publicDataTableGetDT(stringsql){if(sql==null)returnnull;DataTabledt=null;DataSetds=null;try{OpenDB();SqlDataAdaptersda=newSqlDataAdapter(sql,strConnect);ds=newDataSet();sda.Fill(ds);if(ds.Tables.Count<=0){returnnull;}dt=ds.Tables[0];}catch(System.Exceptionex){thrownewException(ex.ToString());}ds.Dispose();returndt;}publicDataSetGetDS(stringsql){DataSetds=null;try{OpenDB();SqlDataAdaptersda=newSqlDataAdapter(sql,strConnect);ds=newDataSet();sda.Fill(ds);sda.Dispose();sda=null;CloseDB();}catch(System.Exceptionex){thrownewException(ex.ToString());}returnds;}publicvoidExecuteNonQuery(stringsql){try{OpenDB();SqlCommandcom=newSqlCommand(sql,conConnection);com.ExecuteNonQuery();com.Dispose();com=null;CloseDB();}catch(System.Exceptionex){thrownewException(ex.ToString());}}}privatevoidbutton1_Click(objectsender,EventArgse){stringUser=textBox1.Text.ToString().Trim();stringxm=textBox2.Text.ToString().Trim();stringmm=textBox3.Text.ToString().Trim();stringdh=textBox4.Text.ToString().Trim();g().Trim();//stringsql_="update用户表set用户名='"+User+"',姓名='"+xm+"',密码='"+mm+"',身份证号='"+sf+"',联系='"+dh+"',部门编号='"+bm+"'where用户名="+User;stringsql_="update用户表set姓名='"+xm+"',密码='"+mm+"',联系='"+dh+"',部门编号='"+bm+"'where用户账号="+User;sql_=string.Format(sql_);try{conConnection.ExecuteNonQuery(sql_);stringsql="select用户账号,密码,姓名,身份证号,联系,用户表.部门编号,部门名from用户表,部门表where用户表.部门编号=部门表.部门编号and用户账号='"+User+"'";this.dataGridView1.DataSource=conConnection.GetDT(sql);}catch(System.Exceptionex){MessageBox.Show(ex.ToString());}textBox2.Text="";textBox3.Text="";textBox4.Text="";textBox5.Text="";}boolflagshow=false;privatevoidbutton3_Click(objectsender,EventArgse){stringstrConnnect="DataSource=(local);InitialCatalog=报刊订阅管理系统;IntegratedSecurity=True";SqlConnectionconConnection=newSqlConnection(strConnnect);conConnection.Open();SqlCommandcom=newSqlCommand("select用户账号form用户表",conConnection);com.CommandText="select*from用户表";SqlDataReaderdr=com.ExecuteReader();while(dr.Read()){User=dr["用户账号"].ToString();if(User.Trim()==textBox1.Text){flagshow=true;stringstrConnect="DataSource=(local);InitialCatalog=报刊订阅管理系统;IntegratedSecurity=True";stringcmd="select用户账号,密码,姓名,身份证号,联系,部门编号from用户表where用户账号="+User;SqlConnectionconConnect=newSqlConnection(strConnect);conConnect.Open();SqlDataAdaptersda=newSqlDataAdapter(cmd,conConnect);DataSetds=newDataSet();sda.Fill(ds,"用户表");dataGridView1.DataSource=ds.Tables[0].DefaultView;conConnect.Close();}//else//{//MessageBox.Show("请输入本人账号!");//}//textBox1.Text="";}//dr.Close();//conConnection.Close();if(flagshow==true){}else{MessageBox.Show("请输入本人账号!");}textBox1.Text="";}privatevoidbutton2_Click(objectsender,EventArgse){this.Hide();Form4form4=newForm4();form4.Show();}}}调试与运行结果及存在的问题主界面里选择用户的类型,如图4-1所示:图4-1报刊订阅管理系统用户界面点击管理员进入管理员登录界面,那么为用户登录界面。登录界面主要由管理员〔用户名〕和密码的信息,如图4-2所示:图4-2管理员和用户登录界面如果输入的用户名和密码不正确或不存在,那么会提示错误,如图4-3所示:图4-3提示界面用户还可以注册新账号,如图4-4所示:图4-4用户注册界面如果输入的用户账号已有用户注册过,那么会提示已存在,如图4-5所示:图4-5注册错误提醒界面填入的信息正确,就会分别进入到管理员界面和用户界面。管理员与用户能操作的权限不一样,所以两个界面的菜单也不同,如图4-6和4-7所示:图4-6报刊订阅管理系统界面图4-7用户订阅界面管理员实现的录入用户和报刊信息,可以根据用户〔报刊〕信息里所显示的内容添加,修改,删除用户〔报刊〕,并进行调整,如图4-8和4-9所示:图4-8用户信息界面图4-9报刊信息界面管理员实现的查询功能可根据用户、报刊、部门分别查询订阅报刊的情况。报刊、部门查询也与用户查询相同,如图4-10和4-11所示:图4-10根据用户查询界面图4-11根据用户界面查询演示管理员实现的统计功能可以根据用户、报刊进行统计共订阅了几份报刊,并显示出总额为多少。报刊统计也与用户统计相同,如图4-12所示:图4-12根据用户统计界面管理员也可以实现系统维护,数据备份和数据恢复功能,如图4-13和4-14所示:图4-13管理员登陆备份界面图4-14管理员界面备份界面用户可以修改信息,在用户账号里填写本人账号后,会显示自己的信息,然后根据自己原来的信息进行修改,如图4-15所示:图4-15修改信息界面

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论