1、。江苏理工学院课程设计报告课程名称 数据库原理及应用 设计题目 邮局订报管理系统姓 名 施坡 专业班级 12东计B 学 号 12961119 日期 2013-2-26 2012-3-9 成绩 江苏理工学院课程名称数据库原理及应用课程代码设计题目邮局订报管理系统设计时间2013年 2 月 26 日 2013 年3 月 9 日系(院)计算机科学与信息工程学院专业计算机科学与技术班级12961119课程设计任务(条件)、具体技术参数(指标)通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约
2、束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解。本次课程设计包含两大部分内容:设计软件和设计报告。其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)1、每位同学提交设计的数据库和应用程序相关文档,并提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统E-R图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。
3、2、课程设计报告电子版排版顺序: 任务书 目录 正文 附录。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用
5、户登录功能的实现54.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、 能统计出某报纸的总订购量与总金额及某客户订购报纸种数
7、、报纸份数与总订购金额等。1.2系统功能需求 1、在SQL Server中建立各相应的关系模式对应的库表,并确定索引等。2、能对各库表进行输入,添加,修改,删除,查询,打印等基本操作。3、查询功能:能根据邮局订报管理系统,管理员实现报纸的管理功能,用户实现报纸订阅和退订功能。4、统计功能:能名细查询每报纸的总订数量与总金额及客户订购报纸种类,份数和总金额。5、要求子系统设计界面友好,功能操作方便合理,并考虑子系统在安全性,完整性方面的功能要求。6用户管理功能,如:用户登陆等。1.3系统软硬件环境确定系统开发工具为局域网或校园网网络环境,网络中有一台安装了windowsxp的服务器,服务器上安装
8、了SQL Server 2000,本子系统使用C#开发。二、系统功能设计2.1系统功能结构1、查询报纸2、订报纸3、开票4、付钱结算5、订购后的查询6、统计2.2系统功能处理流程图2-1 系统流图三、系统数据库设计3.1数据库概念设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接决定对应用系统的效率以及实现的效果的影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。同时,合理的数据库也有利与应用系统程序的实现。在充分的寻求分析基础上,经过逐步抽象,分析,充分研讨,可画出如下反映邮局订报子系统数据的整体CANOCAYOCAWCADPNOPNPPRPS
9、IPDWNUMsub_newscustomer_infoNews_infonm图3-1 图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数据库系统中实现这些逻辑结构。数据库表的创
10、建本系统使用的数据库名为newspaper下面是创建数据库及其表结构的命令: 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) PR
11、IMARY KEY,PNA varCHAR(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 Sq
12、lConnection connectgetreturn 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.EnableVisu
13、alStyles();Application.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
14、邮局订报 public partial class admin : Form public admin() InitializeComponent(); private void button1_Click(object sender, EventArgs e) string username = textBox1.Text; string password = textBox2.Text; SqlConnection sqlCon = new SqlConnection(); SqlCommand LogInCommand = new SqlCommand(); SqlDataAdapter
15、 userAdapter = new SqlDataAdapter(); DataSet dt = new DataSet(); 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= + pa
16、ssword + ; userAdapter.SelectCommand = LogInCommand; userAdapter.SelectCommand.Connection = sqlCon; sqlCon.Open(); userAdapter.Fill(dt, UserInfo);/填充数据集 if (dt.Tables0.Rows.Count 0) MessageBox.Show( 登陆成功); this.Visible = false; Form1 fr = new Form1(1); fr.ShowDialog(); else MessageBox.Show( 失败); pri
17、vate void admin_Load(object sender, EventArgs e) textBox1.Focus(); private void button2_Click(object sender, EventArgs e) this.Close(); private void button3_Click(object sender, EventArgs e) this.Visible = false; Form1 fr = new Form1(0); fr.ShowDialog(); private void label2_Click(object sender, Even
18、tArgs e) 1、 管理员登录 图4-1 登录图4-2 管理员界面2、已注册用户登录图4-3 普通用户登录点击确定后即可进入用户订报界面。3、新用户登录图4-4 新用户登录图4-5 信息提示注册个人信息的代码: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;namespa
19、ce 邮局订报 public partial class yonghu : Form public yonghu() InitializeComponent(); private void button5_Click(object sender, EventArgs e) SqlConnection sqconn = new SqlConnection(Data Source=.;Initial Catalog=newspaper;Integrated Security=True); string sql = String.Format(insert into customer_info(CA
20、N,CAD,CAW,CAY) VALUES(0,1,2,3), textBox1.Text, textBox2.Text, textBox3.Text, Convert.ToUInt64(textBox4.Text); try sqconn.Open(); SqlCommand command = new SqlCommand(sql, sqconn); int count = command.ExecuteNonQuery(); if (count 0) MessageBox.Show(注册成功, 注册信息, MessageBoxButtons.OK, MessageBoxIcon.Info
21、rmation); else MessageBox.Show(注册失败); catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); 确定后即进入订报界面。4.3 用户订购报纸功能的实现选好报纸后,输入要订购的份数,点击订购,即完成报纸的订购。图4-7 用户界面using System;using System.Collections.Generic;using System.Compo
22、nentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 邮局订报 public partial class dinggou : Form public dinggou() InitializeComponent(); private void dinggou_Load(object sender, EventArgs e) SqlConnection sqconn = new SqlCon
23、nection(Data Source=.;Initial Catalog=newspaper;Integrated Security=True;); string stri = select distinct PNA from news_info ; try sqconn.Open(); SqlDataAdapter sdat = new SqlDataAdapter(stri, sqconn); DataSet Dset = new DataSet(); sdat.Fill(Dset); boBox1.DataSource = Dset.Tables0; catch (Exception
24、ex) MessageBox.Show(ex.Message, 操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); private void button6_Click(object sender, EventArgs e) int mon = 0, num = 0; SqlConnection sqconn = new SqlConnection(Data Source=.;Initial Catalog=newspaper;Integrated Security=True;
25、); string stri = String.Format(select PPR,PNUM from news_info 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 = new SqlCommand(stri, sqconn); SqlDataReader re = com.ExecuteReader(); r
26、e.Read(); mon=Convert.ToInt32(re0); num = Convert.ToInt32(re1); 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 = Stri
27、ng.Format(insert into sub_news() VALUES(0,1,2), comboBox1.Text, textBox2.Text, Convert.ToInt32(textBox1.Text); string stru = update news_info set NUM= + (num - Convert.ToInt32(textBox2.Text); try sqconn.Open(); com = new SqlCommand(stri, sqconn); int count = com.ExecuteNonQuery(); com = new SqlComma
28、nd(stru, sqconn); int co = com.ExecuteNonQuery(); if (count 0 & co 0) MessageBox.Show(订报成功, 订阅报纸, MessageBoxButtons.OK, MessageBoxIcon.Information); else MessageBox.Show(订报失败); catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqcon
29、n.Close(); else MessageBox.Show(报纸剩余数量不足!); 4.4用户查看自己已订阅报纸的功能的实现图4-10 用户查看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
30、 System.Windows.Forms;namespace 邮局订报 public partial class state : Form public state() InitializeComponent(); / private void state_Load(object sender, EventArgs e) / / this.button2.Visible = false; / private void button1_Click(object sender, EventArgs e) SqlConnection sqconn = new SqlConnection(Data
31、Source=.;Initial Catalog=newspaper;Integrated Security=True); string stri = String.Format(select PNO 报纸编号,CAN 客户姓名,NUM 报纸数量 from sub_news where CAN=0,textBox1.Text); try sqconn.Open(); SqlDataAdapter sdat = new SqlDataAdapter(stri, sqconn); DataSet Dset = new DataSet(); sdat.Fill(Dset, sub_news); th
32、is.dataGridView1.DataSource = Dset.Tablessub_news; /if (this.dataGridView1.Rows.Count != 0) catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); private void textBox1_TextChanged(object sender, EventArgs e) 4.6 管理员查看报纸信
33、息的实现图4-12 管理员查看4.7管理员查看用户信息的实现图4-13 管理员查看4.8 管理员查看用户订阅信息的实现图4-14 管理员查看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 邮局订报 public partial class tongji :
34、 Form public tongji() InitializeComponent(); private void tongji_Load(object sender, EventArgs e) SqlConnection sqconn = new SqlConnection(Data Source=.;Initial Catalog=newspaper;Integrated Security=True); string stri = select distinct PNA from news_info ; try sqconn.Open(); SqlDataAdapter sdat = ne
35、w SqlDataAdapter(stri, sqconn); DataSet Dset = new DataSet(); sdat.Fill(Dset); boBox1.DataSource = Dset.Tables0; catch (Exception ex) MessageBox.Show(ex.Message, 操作数据库错误!, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); finally sqconn.Close(); private void button1_Click(object sender, EventArgs e) string n
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100