数据库实训+邮局订报管理系统.docx
- 文档编号:27335351
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:51
- 大小:605.07KB
数据库实训+邮局订报管理系统.docx
《数据库实训+邮局订报管理系统.docx》由会员分享,可在线阅读,更多相关《数据库实训+邮局订报管理系统.docx(51页珍藏版)》请在冰豆网上搜索。
数据库实训+邮局订报管理系统
江苏理工学院课程设计报告
课程名称数据库原理及应用设计题目邮局订报管理系统
姓名施坡专业班级12东计B学号12961119
日期2013-2-26~2012-3-9成绩
江苏理工学院
课程名称
数据库原理及应用
课程代码
设计题目
邮局订报管理系统
设计时间
2013年2月26日——2013年3月9日
系(院)
计算机科学与信息工程学院
专业
计算机科学与技术
班级
12961119
课程设计任务(条件)、具体技术参数(指标)
通过两周的课程设计,要求学生加深对数据库技术相关理论的理解,增强动手能力,掌握使用现行较为流行的数据库理论和数据库开发工具进行数据库管理操作(如建库、建立完整性约束,对数据库中数据进行查询,更改等操作)的方法;具体应用方面,要求学生对SQL语言要有较深入的了解和掌握,对数据库的管理(主要是安全性方面)要有一定程度的了解。
本次课程设计包含两大部分内容:
设计软件和设计报告。
其中设计软件在题目验收时由指导教师检查,具体内容不同,系统要求不同;设计报告作为书面材料提交。
二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)
1、每位同学提交设计的数据库和应用程序相关文档,并提交一份课程设计报告,内容要包含设计题目、设计目的、需求分析、系统功能描述、系统E-R图、关系模式设计、各数据库表的建立(代码)、系统各功能实现(代码)、系统功能评价等。
2、课程设计报告电子版排版顺序:
任务书→目录→正文→附录。
3、每个同学要针对自己的系统,写出对设计技术的分析、对系统的测试、在编码和调试过程中遇到的问题和解决方法等。
4、课程设计报告最后写出本次设计的心得体会。
课程设计工作进度计划
课程设计第1周第1天:
布置任务、交代课题、安排设计事宜
第1周第2天:
调研,书籍和资料的准备
第1周第3天-第5天:
系统分析和设计
第2周第1天-第3天:
编程和测试,撰写设计报告
第2周第4天-第5天:
课程设计检查,交设计报告
四、主要参考资料
[1]《数据库原理及应用》钱雪忠主编北京邮电大学出版社2012,6,第三版
[2]陈刚等编著.Powerbuilder《案例开发程序设计教程》.北京.清华大学出版社.2012
[3]杨诏主编.Powerbuilder8.0《编程实用技术与案例》.北京.水利水电出版社.2012
[4]卫海登.Powerbuilder9.0《课程设计案例精编》.北京.中国水利水电出版社.2012
[5]王晟编著.Powerbuilder《数据库开发经典案例解析》.北京.清华大学出版社.2012
一、需求分析
1.1用户需求
1、可随时查询处可订购报纸的详细情况,如报纸编号(PNO)、报纸名称(PNA)、报纸单价(5、版面规格(PSI)、出版单位(PDW)等,这样便于客户选定。
2、客户查询报纸情况后即可订购所需报纸,可订购多种报纸,每种报纸可订若干份,交清所需金额后,就算订购处理完成。
3、为便于邮局投递报纸,客户需写明如下信息:
客户姓名(CAN)、电话(CAD)、地址(CAW)及邮政编码(CAY),邮局将即时为每一客户编制唯一代码(CNA)。
4、邮局对每种报纸订购人数不限,每个客户可多次订购报纸,所定报纸亦可重复。
5、能对报纸、客户等信息进行添加、修改、删除、查询、打印等基本操作。
6、能根据订报要求订购各报纸,并完成一次订购任务后汇总总金额,模拟付钱、开票操作。
7、能明细查询某客户的订报情况及某报纸的订出情况。
8、能统计出某报纸的总订购量与总金额及某客户订购报纸种数、报纸份数与总订购金额等。
1.2系统功能需求
1、在SQLServer 中建立各相应的关系模式对应的库表,并确定索引等。
2、能对各库表进行输入,添加,修改,删除,查询,打印等基本操作。
3、查询功能:
能根据邮局订报管理系统,管理员实现报纸的管理功能,用户实现报纸订阅和退订功能。
4、统计功能:
能名细查询每报纸的总订数量与总金额及客户订购报纸种类,份数和总金额。
5、要求子系统设计界面友好,功能操作方便合理,并考虑子系统在安全性,完整性方面的功能要求。
6用户管理功能,如:
用户登陆等。
1.3系统软硬件环境确定
系统开发工具为局域网或校园网网络环境,网络中有一台安装了windows xp的服务器,服务器上安装了SQLServer2000,本子系统使用C#开发。
二、系统功能设计
2.1系统功能结构
1、查询报纸
2、订报纸
3、开票
4、付钱结算
5、订购后的查询
6、统计
2.2系统功能处理流程
图2-1系统流图
三、系统数据库设计
3.1数据库概念设计
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接决定对应用系统的效率以及实现的效果的影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
同时,合理的数据库也有利与应用系统程序的实现。
在充分的寻求分析基础上,经过逐步抽象,分析,充分研讨,可画出如下反映邮局订报子系统数据的整体
图3-1E-R图
3.2数据库逻辑设计
1、数据库关系模式
News_info(PNO,PN,PPR,PSI,PDW)
报纸(报纸编号,报纸名称,报纸价格,版面规格,出版单位)
customer_info(CAN,CAD,CAW,CAY)
客户(客户名称,电话,地址,邮政编码)
sub_news(PNO,CAN,NUM)
订购(报纸编号,客户名称,数量)
2、数据库的视图
3.3数据库物理设计
本系统使用的数据库是SQL2000,根据已设计出的关系模式及各关系模式的完整性约束要求,在SQL2000数据库系统中实现这些逻辑结构。
数据库表的创建
本系统使用的数据库名为newspaper下面是创建数据库及其表结构的SQL命令:
CREATETABLELOGININ(
CNOvarCHAR(20)PRIMARYKEY,
PSWvarCHAR(20))
CREATETABLECustomer(
CNOvarCHAR(20)PRIMARYKEY,
CNAvarCHAR(50),
CTEvarCHAR(15),
CADvarCHAR(50),
CPOvarCHAR(10),
FOREIGNKEY(CNO)REFERENCESLOGININ(CNO))
CREATETABLEnews_info(
PNOvarCHAR(20)PRIMARYKEY,
PNAvarCHAR(50),
PPRFLOAT,
PSIvarCHAR(50),
PDWvarCHAR(50))
CREATETABLESubcribe(
CNOvarCHAR(20),
PNOvarCHAR(20),
NUMSMALLINT,
FOREIGNKEY(CNO)REFERENCESLOGININ(CNO),
FOREIGNKEY(PNO)REFERENCESnews_info(PNO),
PRIMARYKEY(CAN,PNO))
四、系统实现
4.1数据库连接的实现
classconnection
{
SqlConnectionconn;
publicSqlConnectionconnect
{
get
{
returnthis.conn;
}
}
publicvoidCreateConnection()
{
conn=newSqlConnection("datasource=.;initialcatalog=SubcribPost;userID=sa");
this.conn.Open();
SqlCommandcommand=this.conn.CreateCommand();
}
}
staticvoidMain()
{
conn=newconnection();
conn.CreateConnection();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(newlogFrm()
}
4.2用户登录功能的实现
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace邮局订报
{
publicpartialclassadmin:
Form
{
publicadmin()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringusername=textBox1.Text;
stringpassword=textBox2.Text;
SqlConnectionsqlCon=newSqlConnection();
SqlCommandLogInCommand=newSqlCommand();
SqlDataAdapteruserAdapter=newSqlDataAdapter();
DataSetdt=newDataSet();
sqlCon.ConnectionString="DataSource=.;InitialCatalog=newspaper;IntegratedSecurity=True;";
LogInCommand.Connection=sqlCon;
LogInCommand.CommandText="SELECTusername,passwordFrom[user]whereusername='"+username+"'andpassword='"+password+"'";
userAdapter.SelectCommand=LogInCommand;
userAdapter.SelectCommand.Connection=sqlCon;
sqlCon.Open();
userAdapter.Fill(dt,"UserInfo");//填充数据集
if(dt.Tables[0].Rows.Count>0)
{
MessageBox.Show("登陆成功");
this.Visible=false;
Form1fr=newForm1
(1);
fr.ShowDialog();
}
else
MessageBox.Show("失败");
}
privatevoidadmin_Load(objectsender,EventArgse)
{
textBox1.Focus();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Visible=false;
Form1fr=newForm1(0);
fr.ShowDialog();
}
privatevoidlabel2_Click(objectsender,EventArgse)
{
}
}
1、}管理员登录
图4-1登录
图4-2管理员界面
2、已注册用户登录
图4-3普通用户登录
点击确定后即可进入用户订报界面。
3、新用户登录
图4-4新用户登录
图4-5信息提示
注册个人信息的代码:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace邮局订报
{
publicpartialclassyonghu:
Form
{
publicyonghu()
{
InitializeComponent();
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
SqlConnectionsqconn=newSqlConnection("DataSource=.;InitialCatalog=newspaper;IntegratedSecurity=True");
stringsql=String.Format("insertintocustomer_info(CAN,CAD,CAW,CAY)VALUES('{0}','{1}','{2}',{3})",textBox1.Text,textBox2.Text,textBox3.Text,Convert.ToUInt64(textBox4.Text));
try
{
sqconn.Open();
SqlCommandcommand=newSqlCommand(sql,sqconn);
intcount=command.ExecuteNonQuery();
if(count>0)
{
MessageBox.Show("注册成功","注册信息",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("注册失败");
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"操作数据库错误!
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
finally
{
sqconn.Close();
}
}
}
}
确定后即进入订报界面。
4.3用户订购报纸功能的实现
选好报纸后,输入要订购的份数,点击订购,即完成报纸的订购。
图4-7用户界面
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace邮局订报
{
publicpartialclassdinggou:
Form
{
publicdinggou()
{
InitializeComponent();
}
privatevoiddinggou_Load(objectsender,EventArgse)
{
SqlConnectionsqconn=newSqlConnection("DataSource=.;InitialCatalog=newspaper;IntegratedSecurity=True;");
stringstri="selectdistinctPNAfromnews_info";
try
{
sqconn.Open();
SqlDataAdaptersdat=newSqlDataAdapter(stri,sqconn);
DataSetDset=newDataSet();
sdat.Fill(Dset);
boBox1.DataSource=Dset.Tables[0];
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"操作数据库错误!
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
finally
{
sqconn.Close();
}
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
intmon=0,num=0;
SqlConnectionsqconn=newSqlConnection("DataSource=.;InitialCatalog=newspaper;IntegratedSecurity=True;");
stringstri=String.Format("selectPPR,PNUMfromnews_infowherePNA='{0}'",comboBox1.Text);
//stringstri_i=String.Format("selectCAD,CAWfromcustomer_infowhereCAN='{0}'",comboBox2.Text);
SqlCommandcom;
try
{
sqconn.Open();
com=newSqlCommand(stri,sqconn);
SqlDataReaderre=com.ExecuteReader();
re.Read();
mon=Convert.ToInt32(re[0]);
num=Convert.ToInt32(re[1]);
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"操作数据库错误!
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
finally
{
sqconn.Close();
}
if(num>=Convert.ToInt32(textBox2.Text))
{
intmoney=mon*Convert.ToInt32(textBox2.Text);
stri=String.Format("insertintosub_news()VALUES('{0}','{1}','{2}')",comboBox1.Text,textBox2.Text,Convert.ToInt32(textBox1.Text));
stringstru="updatenews_infosetNUM="+(num-Convert.ToInt32(textBox2.Text));
try
{
sqconn.Open();
com=newSqlCommand(stri,sqconn);
intcount=com.ExecuteNonQuery();
com=newSqlCommand(stru,sqconn);
intco=com.ExecuteNonQuery();
if(count>0&&co>0)
{
MessageBox.Show("订报成功","订阅报纸",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
MessageBox.Show("订报失败");
}
}
catch(Exceptionex)
{
MessageBox.Show(ex.Message,"操作数据库错误!
",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
finally
{
sqconn.Close();
}
}
else
MessageBox.Show("报纸剩余数量不足!
");
}
}
}
4.4用户查看自己已订阅报纸的功能的实现
图4-10用户查看
4.5用户退订报纸功能的实现
用户在已订阅栏里可选择想要退订的报纸,然后点击退订按钮即可实现报纸的退订。
图4-11已定报纸
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Data.SqlClient;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespace邮局订报
{
publicpartialclassstate:
Form
{
publicstate()
{
InitializeComponent();
}
//privatevoidstate_Load(objectsender,EventArgse)
//{
//this.button2.Visible=false;
//}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectionsqconn=newSqlConnection("DataSource=.;InitialCatalog=newspaper;IntegratedSecurity=True");
stringstri=String.Format("selectPNO报纸编号,CAN客户姓名,NUM报纸数量fromsub_newswhereCAN='{0}'",textBox1.Text);
try
{
sqconn.Open();
SqlDa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 邮局 订报 管理 系统