版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江苏理工学院课程设计报告课程名称 数据库原理及应用 设计题目 邮局订报管理系统姓 名 施坡 专业班级 12东计B 学 号 12961119日期 2013226 201239成绩江苏理工学院课程名称数据库原理及应用课程代码设计题目邮局订报管理系统设计时间2013年 2 月 26 日 -2013 年3月 9 日系(院)计算机科学与信息工程学院专业计算机科学与技术班级12961119课程设计任务(条件)、具体技术参数(指标)通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数
2、据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解。本次课程设计包含两大部分内容:设计软件和设计报告.其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1、每位同学提交设计的数据库和应用程序相关文档,并提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统ER图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。2、课程设计报告电
3、子版排版顺序: 任务书 目录 正文 附录。3、每个同学要针对自己的系统,写出对设计技术的分析、对系统的测试、在编码和调试过程中遇到的问题和解决方法等.4、课程设计报告最后写出本次设计的心得体会。课程设计工作进度计划课程设计第1周第1天:布置任务、交代课题、安排设计事宜第1周第2天:调研,书籍和资料的准备第1周第3天第5天:系统分析和设计第2周第1天-第3天:编程和测试,撰写设计报告第2周第4天-第5天:课程设计检查,交设计报告四、主要参考资料1数据库原理及应用 钱雪忠主编 北京邮电大学出版社 2012,6, 第三版2 陈刚等编著。Powerbuilder 案例开发程序设计教程。北京.清华大学出
4、版社。20123 杨诏主编.Powerbuilder 8。0 编程实用技术与案例。北京.水利水电出版社.20124 卫海登。 Powerbuilder 9.0 课程设计案例精编.北京.中国水利水电出版社。20125 王晟编著。Powerbuilder数据库开发经典案例解析。北京.清华大学出版社。2012目录一、需求分析11。1用户需求11。2系统功能需求11.3系统软硬件环境确定2二、系统功能设计22。1系统功能结构22。2系统功能处理流程2三、系统数据库设计33。1数据库概念设计33。2数据库逻辑设计33。3数据库物理设计3四、系统实现44。1数据库连接的实现44.2用户登录功能的实现54。
5、3 用户订购报纸功能的实现124。4用户查看自己已订阅报纸的功能的实现144。5 用户退订报纸功能的实现154。6 管理员查看报纸信息的实现164。7管理员查看用户信息的实现174。8 管理员查看用户订阅信息的实现184。9 管理员进行搜索功能的实现194。10 管理员插入报纸功能的实现214.11 管理员删除报纸功能的实现234。12关于26五、小结27六、参考文献。28一、需求分析1。1用户需求1、可随时查询处可订购报纸的详细情况,如报纸编号(PNO)、报纸名称(PNA)、报纸单价(5、版面规格(PSI)、出版单位(PDW)等,这样便于客户选定。2、客户查询报纸情况后即可订购所需报纸,可订
6、购多种报纸,每种报纸可订若干份,交清所需金额后,就算订购处理完成.3、为便于邮局投递报纸,客户需写明如下信息:客户姓名(CAN)、电话(CAD)、地址(CAW)及邮政编码(CAY),邮局将即时为每一客户编制唯一代码(CNA).4、邮局对每种报纸订购人数不限,每个客户可多次订购报纸,所定报纸亦可重复。5、 能对报纸、客户等信息进行添加、修改、删除、查询、打印等基本操作。6、 能根据订报要求订购各报纸,并完成一次订购任务后汇总总金额,模拟付钱、开票操作.7、 能明细查询某客户的订报情况及某报纸的订出情况。8、 能统计出某报纸的总订购量与总金额及某客户订购报纸种数、报纸份数与总订购金额等。1.2系统
7、功能需求1、在SQL Server中建立各相应的关系模式对应的库表,并确定索引等。2、能对各库表进行输入,添加,修改,删除,查询,打印等基本操作。3、查询功能:能根据邮局订报管理系统,管理员实现报纸的管理功能,用户实现报纸订阅和退订功能。4、统计功能:能名细查询每报纸的总订数量与总金额及客户订购报纸种类,份数和总金额。5、要求子系统设计界面友好,功能操作方便合理,并考虑子系统在安全性,完整性方面的功能要求.6用户管理功能,如:用户登陆等.1。3系统软硬件环境确定系统开发工具为局域网或校园网网络环境,网络中有一台安装了windowsxp的服务器,服务器上安装了SQL Server 2000,本子
8、系统使用C开发。二、系统功能设计2。1系统功能结构1、查询报纸2、订报纸3、开票4、付钱结算5、订购后的查询6、统计2。2系统功能处理流程图21 系统流图三、系统数据库设计3。1数据库概念设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接决定对应用系统的效率以及实现的效果的影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库也有利与应用系统程序的实现.在充分的寻求分析基础上,经过逐步抽象,分析,充分研讨,可画出如下反映邮局订报子系统数据的整体CANOCAYOCAWCADPNOPNPPRPSIPDWNUMsub_newscustom
9、er_infoNews_infonm图31 图3。2数据库逻辑设计1、数据库关系模式News_info(PNO,PN,PPR,PSI,PDW)报纸(报纸编号,报纸名称,报纸价格,版面规格,出版单位)customer_info(CAN,CAD,CAW,CAY)客户(客户名称,电话,地址,邮政编码)sub_news(PNO,CAN,NUM)订购(报纸编号,客户名称,数量)2、数据库的视图3。3数据库物理设计本系统使用的数据库是SQL 2000,根据已设计出的关系模式及各关系模式的完整性约束要求,在SQL 2000数据库系统中实现这些逻辑结构.数据库表的创建本系统使用的数据库名为newspaper下
10、面是创建数据库及其表结构的命令:CREATE TABLE LOGININ(CNO varCHAR(20) PRIMARY KEY,PSW varCHAR(20)CREATE TABLE Customer(CNO varCHAR(20) PRIMARY KEY,CNA varCHAR(50) ,CTE varCHAR(15),CAD varCHAR(50),CPO varCHAR(10),FOREIGN KEY(CNO) REFERENCES LOGININ(CNO))CREATE TABLE news_info (PNO varCHAR(20) PRIMARY KEY,PNA varCHAR(
11、50) ,PPR FLOAT,PSI varCHAR(50),PDW varCHAR(50)CREATE TABLE Subcribe(CNO varCHAR(20),PNO varCHAR(20),NUM SMALLINT,FOREIGN KEY(CNO) REFERENCES LOGININ(CNO),FOREIGN KEY(PNO) REFERENCES news_info(PNO),PRIMARY KEY(CAN,PNO)四、系统实现4。1数据库连接的实现class connectionSqlConnection conn;public SqlConnection connectget
12、return this.conn;public void CreateConnection()conn = new SqlConnection(”data source=。;initial catalog=SubcribPost;user ID=sa”);this。conn。Open();SqlCommand command = this。conn。CreateCommand();static void Main()conn = new connection();conn.CreateConnection();Application.EnableVisualStyles();Applicati
13、on。SetCompatibleTextRenderingDefault(false);Application。Run(new logFrm()4.2用户登录功能的实现using System;using System.Collections。Generic;using System。ComponentModel;using System。Data;using System.Data。SqlClient;using System.Drawing;using System。Text;using System。Windows。Forms;namespace邮局订报publicpartialclas
14、sadmin : Form public admin() InitializeComponent(); privatevoid button1_Click(object sender, EventArgs e) string username = textBox1.Text;string password = textBox2。Text;SqlConnection sqlCon = newSqlConnection();SqlCommand LogInCommand = newSqlCommand();SqlDataAdapter userAdapter = newSqlDataAdapter
15、();DataSet dt = newDataSet(); sqlCon。ConnectionString = ”Data Source=。;Initial Catalog=newspaper;Integrated Security=True;”; LogInCommand。Connection = sqlCon; LogInCommand。CommandText = ”SELECT username,password From user where username=” + username + ” and password=” + password + ”; userAdapter。Sel
16、ectCommand = LogInCommand; userAdapter.SelectCommand。Connection = sqlCon; sqlCon。Open(); userAdapter.Fill(dt, ”UserInfo);/填充数据集if (dt。Tables0。Rows.Count 0) MessageBox.Show(” 登陆成功”);this。Visible = false;Form1 fr = newForm1(1); fr.ShowDialog(); elseMessageBox。Show(” 失败”); privatevoid admin_Load(object
17、 sender, EventArgs e) textBox1。Focus(); privatevoid button2_Click(object sender, EventArgs e) this。Close(); privatevoid button3_Click(object sender, EventArgs e) this。Visible = false;Form1 fr = newForm1(0); fr。ShowDialog(); privatevoid label2_Click(object sender, EventArgs e) 1、 管理员登录图4-1 登录图42 管理员界
18、面2、已注册用户登录图43 普通用户登录点击确定后即可进入用户订报界面。3、新用户登录图44 新用户登录图45 信息提示注册个人信息的代码:using System;using System.Collections.Generic;using System。ComponentModel;using System。Data;using System。Data。SqlClient;using System。Drawing;using System.Text;using System。Windows。Forms;namespace邮局订报publicpartialclassyonghu : Form
19、 public yonghu() InitializeComponent(); privatevoid button5_Click(object sender, EventArgs e) SqlConnection sqconn = newSqlConnection(”Data Source=.;Initial Catalog=newspaper;Integrated Security=True”);string sql = String。Format(insert into customer_info(CAN,CAD,CAW,CAY) VALUES(0,1,2,3), textBox1.Te
20、xt, textBox2.Text, textBox3.Text, Convert。ToUInt64(textBox4.Text);try sqconn。Open();SqlCommand command = newSqlCommand(sql, sqconn);int count = command。ExecuteNonQuery();if (count 0) MessageBox。Show(注册成功, 注册信息, MessageBoxButtons。OK, MessageBoxIcon。Information); else MessageBox。Show(注册失败”); catch (Ex
21、ception ex) MessageBox.Show(ex.Message, ”操作数据库错误!”, MessageBoxButtons。OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); 确定后即进入订报界面。4.3 用户订购报纸功能的实现选好报纸后,输入要订购的份数,点击订购,即完成报纸的订购.图47 用户界面using System;using System.Collections。Generic;using System。ComponentModel;using System.Data;using System.Data.
22、SqlClient;using System.Drawing;using System。Text;using System。Windows.Forms;namespace邮局订报publicpartialclassdinggou : Form public dinggou() InitializeComponent(); privatevoid dinggou_Load(object sender, EventArgs e) SqlConnection sqconn = newSqlConnection(”Data Source=。;Initial Catalog=newspaper;Inte
23、grated Security=True;”);string stri = select distinct PNA from news_info ”;try sqconn。Open();SqlDataAdapter sdat = newSqlDataAdapter(stri, sqconn);DataSet Dset = newDataSet(); sdat。Fill(Dset);boBox1.DataSource = Dset。Tables0; catch (Exception ex) MessageBox.Show(ex。Message, ”操作数据库错误!, MessageBoxButt
24、ons。OK, MessageBoxIcon.Exclamation); finally sqconn。Close(); privatevoid button6_Click(object sender, EventArgs e) int mon = 0, num = 0;SqlConnection sqconn = newSqlConnection(Data Source=。;Initial Catalog=newspaper;Integrated Security=True;);string stri = String。Format(”select PPR,PNUM from news_in
25、fo where PNA=0, comboBox1。Text);/ string stri_i = String。Format(select CAD,CAW from customer_info where CAN=0”, comboBox2.Text);SqlCommand com;try sqconn。Open(); com = newSqlCommand(stri, sqconn);SqlDataReader re = com。ExecuteReader(); re。Read(); mon=Convert.ToInt32(re0); num = Convert。ToInt32(re1);
26、 catch (Exception ex) MessageBox。Show(ex.Message, ”操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon。Exclamation); finally sqconn.Close(); if (num = Convert.ToInt32(textBox2。Text)int money = mon Convert。ToInt32(textBox2。Text); stri = String。Format(insert into sub_news() VALUES(0,1,2)”, comboBox1。Text,
27、textBox2.Text, Convert。ToInt32(textBox1。Text));string stru = update news_info set NUM=” + (num - Convert。ToInt32(textBox2。Text));try sqconn.Open(); com = newSqlCommand(stri, sqconn);int count = com。ExecuteNonQuery(); com = newSqlCommand(stru, sqconn);int co = com。ExecuteNonQuery();if (count 0 & co 0
28、) MessageBox.Show(”订报成功”, ”订阅报纸”, MessageBoxButtons.OK, MessageBoxIcon。Information); else MessageBox。Show(”订报失败”); catch (Exception ex) MessageBox。Show(ex。Message, ”操作数据库错误!, MessageBoxButtons。OK, MessageBoxIcon.Exclamation); finally sqconn。Close(); elseMessageBox。Show(”报纸剩余数量不足!”); 4.4用户查看自己已订阅报纸的功
29、能的实现图410用户查看4.5 用户退订报纸功能的实现用户在已订阅栏里可选择想要退订的报纸,然后点击退订按钮即可实现报纸的退订.图4-11 已定报纸using System;using System。Collections。Generic;using System。ComponentModel;using System。Data;using System。Data。SqlClient;using System。Drawing;using System.Text;using System。Windows.Forms;namespace邮局订报publicpartialclassstate : F
30、orm public state() InitializeComponent(); / private void state_Load(object sender, EventArgs e)/ / this.button2。Visible = false;/ privatevoid button1_Click(object sender, EventArgs e) SqlConnection sqconn = newSqlConnection(”Data Source=。;Initial Catalog=newspaper;Integrated Security=True”);string s
31、tri = String。Format(”select PNO 报纸编号,CAN 客户姓名,NUM 报纸数量 from sub_news where CAN=0”,textBox1.Text);try sqconn。Open();SqlDataAdapter sdat = newSqlDataAdapter(stri, sqconn);DataSet Dset = newDataSet(); sdat.Fill(Dset, ”sub_news”);this。dataGridView1.DataSource = Dset。Tables”sub_news”;/if (this.dataGridVi
32、ew1。Rows.Count != 0) catch (Exception ex) MessageBox.Show(ex。Message, 操作数据库错误!, MessageBoxButtons。OK, MessageBoxIcon。Exclamation); finally sqconn。Close(); privatevoid textBox1_TextChanged(object sender, EventArgs e) 4。6 管理员查看报纸信息的实现图412管理员查看4。7管理员查看用户信息的实现图4-13管理员查看4.8 管理员查看用户订阅信息的实现图414管理员查看using S
33、ystem;using System。Collections。Generic;using System.ComponentModel;using System。Data;using System。Data.SqlClient;using System.Drawing;using System。Text;using System。Windows。Forms;namespace邮局订报publicpartialclasstongji : Form public tongji() InitializeComponent(); privatevoid tongji_Load(object sender
34、, EventArgs e) SqlConnection sqconn = newSqlConnection(Data Source=。;Initial Catalog=newspaper;Integrated Security=True”);string stri = ”select distinct PNA from news_info ”;try sqconn。Open();SqlDataAdapter sdat = newSqlDataAdapter(stri, sqconn);DataSet Dset = newDataSet(); sdat。Fill(Dset);b
35、oBox1.DataSource = Dset。Tables0; catch (Exception ex) MessageBox。Show(ex。Message, ”操作数据库错误!”, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqconn。Close(); privatevoid button1_Click(object sender, EventArgs e) string name = comboBox1。Text;SqlConnection sqconn = newSqlConnection(”Data So
36、urce=。;Initial Catalog=newspaper;Integrated Security=True”);string stri = String.Format(select news_info。PNA 报纸名称,sum(。sub_news。NUM) 总定数量 from sub_news,news_info where news_info。PNA = sub_news。PNO and news_info.PNA=0group by PNA, name);try sqconn。Open();SqlDataAdapter sdat = newSqlDataAdapter(stri,
37、sqconn);DataSet Dset = newDataSet(); sdat.Fill(Dset, ”newspaper”);this。dataGridView1。DataSource = Dset。Tablesnewspaper”; catch (Exception ex) MessageBox。Show(ex.Message, ”操作数据库错误!”, MessageBoxButtons。OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); privatevoid button2_Click(object sender, Ev
38、entArgs e) SqlConnection sqconn = newSqlConnection(”Data Source=。;Initial Catalog=newspaper;Integrated Security=True);string stri = String.Format(”select customer_info。CAN 客户姓名,sum(sub_news.NUM) 总定数量 from customer_info,sub_news where sub_news。CAN = customer_info。CAN and customer_info。CAN=0 group by
39、customer_info.CAN , textBox1。Text);try sqconn.Open();SqlDataAdapter sdat = newSqlDataAdapter(stri, sqconn);DataSet Dset = newDataSet(); sdat。Fill(Dset, ”newspaper);this.dataGridView1.DataSource = Dset。Tables”newspaper”; catch (Exception ex) MessageBox。Show(ex。Message, 操作数据库错误!, MessageBoxButtons。OK,
40、 MessageBoxIcon。Exclamation); finally sqconn。Close(); int sum = 0;int money = 0;for (int i = 0; i dataGridView1。RowCount; i+) sum += Convert。ToInt32( dataGridView1。Rowsi.Cells1。Value); 4。9 用户查询报纸功能的实现(1)客户订报情况图4-16客户订报using System;using System.Collections.Generic;using System.ComponentModel;using Sy
41、stem.Data;using System.Data.SqlClient;using System。Drawing;using System。Text;using System。Windows。Forms;namespace邮局订报publicpartialclassstate : Form public state() InitializeComponent(); / private void state_Load(object sender, EventArgs e)/ / this。button2.Visible = false;/ privatevoid button1_Click(
42、object sender, EventArgs e) SqlConnection sqconn = newSqlConnection(”Data Source=。;Initial Catalog=newspaper;Integrated Security=True”);string stri = String.Format(”select PNO 报纸编号,CAN 客户姓名,LEI 报纸类型,NUM 报纸数量 from sub_news where CAN=0”,textBox1。Text);try sqconn。Open();SqlDataAdapter sdat = newSqlData
43、Adapter(stri, sqconn);DataSet Dset = newDataSet(); sdat。Fill(Dset, ”sub_news);this。dataGridView1.DataSource = Dset.Tables”sub_news;/if (this。dataGridView1。Rows。Count != 0) catch (Exception ex) MessageBox.Show(ex。Message, 操作数据库错误!, MessageBoxButtons。OK, MessageBoxIcon。Exclamation); finally sqconn。Clo
44、se(); privatevoid textBox1_TextChanged(object sender, EventArgs e) (2)报纸的订出情况图417报纸的订出情况using System;using System。Collections。Generic;using System。ComponentModel;using System.Data;using System.Data。SqlClient;using System.Drawing;using System。Text;using System。Windows.Forms;namespace邮局订报publicpartial
45、classtongji : Form public tongji() InitializeComponent(); privatevoid tongji_Load(object sender, EventArgs e) SqlConnection sqconn = newSqlConnection(Data Source=。;Initial Catalog=newspaper;Integrated Security=True”);string stri = ”select distinct PNA from news_info ”;try sqconn。Open();SqlDataAdapte
46、r sdat = newSqlDataAdapter(stri, sqconn);DataSet Dset = newDataSet(); sdat。Fill(Dset);boBox1。DataSource = Dset。Tables0; catch (Exception ex) MessageBox。Show(ex。Message, ”操作数据库错误!”, MessageBoxButtons。OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); privatevoid button1_Click(object sender, EventArgs e) string name = comboBox1。Text;SqlConnection sqconn = newSqlConnection(”Data Source=。;Initial Catalog=newspaper;Integrated Security=True”);string stri = String.For
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026贵州贵阳观山湖区铭廷小学语文教师招聘备考题库附参考答案详解(基础题)
- 2026湖南岳阳市云溪区“四海揽才”教师人才校园招聘13人备考题库带答案详解(达标题)
- 2026四川成都市青羊区光华社区卫生服务中心人员招聘2人备考题库及参考答案详解(综合题)
- 2026浙江金华市浦江县教育系统招聘教师20人备考题库含答案详解(典型题)
- 2026中国统计信息服务中心(国家统计局社情民意调查中心)招聘10人备考题库【名师系列】附答案详解
- 2026上海市消防救援局招聘500名政府专职消防员备考题库附参考答案详解【模拟题】
- 2026江苏镇江市润州区卫生健康系统事业单位招聘专业技术人员21人备考题库附参考答案详解(能力提升)
- 宁银理财2026届春季校园招聘备考题库及答案详解(网校专用)
- 2026四川大学华西医院许艺苧研究员课题组博士后招聘备考题库附完整答案详解(典优)
- 2026陕西西安市高新第一学校招聘备考题库【历年真题】附答案详解
- 2026年国家公务员考试《申论》真题(副省级)试卷及答案
- 2026年湖北国土资源职业学院单招职业技能考试题库及答案详细解析
- 3小时吃透DeepSeek智能办公
- 广东粤财投资控股有限公司招聘笔试题库2026
- 2026届江苏省苏锡常镇四市高三一模教学情况调研(一)物理试题(含答案)
- 第10章 成立新企业
- 2026年南京机电职业技术学院单招综合素质考试题库附参考答案详解(综合卷)
- 2026年畜牧业疫病防控培训
- 2026及未来5年中国原子力显微镜(AFM)行业市场竞争态势及发展趋向研判报告
- 企业员工信息安全培训
- 2026年麻醉药品、精神药品规范化使用与管理培训考试题测试题库及答案
评论
0/150
提交评论