数据库课设说明.docx
《数据库课设说明.docx》由会员分享,可在线阅读,更多相关《数据库课设说明.docx(19页珍藏版)》请在冰豆网上搜索。
数据库课设说明
目 录
1概述1
1.1语言选用1
1.2数据库选用1
2需求分析2
2.1系统需求分析2
2.2数据库需求分析2
2.3性能需求分析3
2.3.1系统处理的准确性和及时性3
2.3.2系统的开放性和系统的可扩充性4
2.3.3系统的易用性和易维护性4
3结构设计4
4行为设计7
5系统开发流程8
6系统使用说明及主要代码9
6.1登陆界面9
6.2系统主界面10
6.3音乐欣赏界面12
6.4公交查询界面13
6.5公交管理界面14
6.6报表输出14
6.7数据还原与备份15
7课程设计体会及心得16
参考文献16
1概述
随着城市经济的发展、规模的扩大以及人口的增长,城市交通问题日益突出。
降低出行时间将使所有的公交利用者产生效益,快速的交通、更好的信息及更好的市场可以提高公交的形象,能够增加公交乘坐者。
城市公共交通运输以其覆盖面广、经济、快捷的特点,成为绝大多数出行者的首选方式,也是各地城市政府大力发展的一种交通方式。
本地市民特别是外来旅游、出差、就医等急需了解本地道路情况的人可以利用本系统方便快捷的查询出所有符合他们要求的公交路线,对他们的出行和生活提供帮助。
我国城市公交乘客信息系统的发展处于一个落后的水平,广大乘客可以获得信息的方式很少,公交信息的完整性和准确性得不到保证,而且还没有专门的机构负责信息的发布和管理。
出于这个目的,在老师的指导下,我设计了这个城市公交线路查询系统。
在对公交乘客出行心理特征进行分析的基础上,考虑乘客选择公交线路决策的因素,进行程序关键部分的框架设计。
1.1语言选用
系统开发选择的编程语言为C#。
选择该语言开发主要有几个原因和目的:
1.C#语言操作简便,界面简介,与VB相比具有较好的优越性和可视性,提供较多的第三方控件。
对于初学者的操作和运用比较简便。
而且C#功能极为强大,可实现各种所需的功能。
2.大二下学期学习的C#课程积累了一定的知识,此次设计为了加深对其进一步的了解。
1.2数据库选用
本次系统开发选用的是SQL2005进行开发。
SQL2005数据库功能比较强大,适合中小型系统的开发,同时对于本学期学习的数据库知识得以运用。
使得这次开发得以达到学以致用,不断深化,应用牢固的目的。
2需求分析
2.1系统需求分析
随着我国经济的高速发展,人们生活水平的提高,越来越多的人开始热衷于到外地旅游。
那么对于这些外来旅游者,首先搞清这个城市的公交路线显的很重要!
本软件不仅能给游客带来方便,也能给广大市民提供方便。
我认为这样的系统应该具有很好的实用性!
开发本系统的目标就是立足广大乘客的实际,着眼于公交业的未来发展,规范公交管理,提高服务质量,方便乘客查询,并为此设计该系统。
本系统采用结构化设计的方法来实现系统总体功能,提高系统的各项指标,即将整个系统合理的划分成各个功能模块,正确地处理模块之间和模块内部的联系以及和数据库的联系,定义各模块的内部结构,通过对模块的设计和模块之间关系的系统来实现整个系统的功能
2.2数据库需求分析
数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的效果产生影响。
合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。
数据库技术是由传统的文件系统发展而来的,从层次模型、网状模型发展到关系模型。
数据库技术是数据管理的最新技术,是计算机科学的一个重要分支,它能指导我们正确地设计数据库系统,它的出现极大地促进了计算机应用的发展。
采用数据库技术的原理和方法可以有效地设计实用的数据库系统。
一个完整的数据库系统包括数据库管理系统(DBMS),数据库管理员(DBA)、数据库(DB)、应用程序和相应的硬件设施。
目前许多数据库管理系统都基于关系模型,关系模型的主要特点是用表格结构表达实体,用键表示实体与实体之间的联系。
与层次模型和网状模型相比,关系模型比较简单,容易为初学者接受。
关系模型是由若干个关系模式组成的集合,关系模式相当于记录类型,它的实例称为关系。
每个关系是一张表格。
表格简单,用户易懂,用户只需用简单的查询语句就可以对数据库进行数据操作,并不涉及到存储结构,访问技术等细节。
关系模型是数学化的模型,要用到集合论,离散数学等知识。
SQL语言是关系数据库的代表性语言,已经得到广泛应用。
在设计数据库时,应注意数据的安全性,保证数据的安全,防止非法用户访问数据库,以免泄露重要信息,同时也能防止非法用户的蓄意破坏,有许多保护数据的方法,如采用用户标识,口令和密码或访问控制等方法。
一个成功的数据库应用系统应具有用户标识,每一个合法用户具有一个用户名和相应的口令,进入数据库应用系统前必须输入正确的口令,否则无法进入系统,这就保证了只有合法的用户才能操作数据库系统。
为了保证数据的合法语义,必须对数据库的数据进行完整性约束,即防止用户输入不合语义的数据。
在设计应用软件时,应严格按照软件工程学的方法进行设计,传统的方法采用瀑布模型,从问题定义、可行性分析、需求分析、概念设计、总体设计、系统实现、编码和软件测试、运行和维护等软件生命周期内,每一阶段均在前一阶段的基础上进行设计,并在每一阶段有相应的文档资料。
设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。
数据库设计一般包括如下几个步骤:
数据库需要分析,数据库概念结构设计,数据库逻辑结构设计。
2.3性能需求分析
为了保证系统能够长期、安全、稳定、可靠、高效的运行,城市公交查询系统应该满足以下的性能需求:
2.3.1系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。
在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足企业对信息处理的需求。
由于公交查询系统的查询功能对于整个系统的功能和性能完成举足轻重。
作为系统的很多数据来源,而车票数量和时间又影响企业的决策活动,其准确性很大程度上决定了公交查询系统的成败。
在系统开发过程中,必须采用一定的方法保证系统的准确性。
2.3.2系统的开放性和系统的可扩充性
公交查询系统在开发过程中,应该充分考虑以后的可扩充性。
通过软件的修补、替换完成系统的升级和更新换代。
2.3.3系统的易用性和易维护性
公交查询系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。
这就要求系统能够提供良好的用户接口,易用的人机交互界面。
要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面,缩短用户对系统熟悉的过程。
公交查询系统中涉及到的数据是公交公司的相当重要的信息,系统要提供方便的手段供系统维护人员进行数据的备份,系统意外崩溃时数据的恢复等工作。
3结构设计
数据库表的结构如下所示:
1login表
login表存放登陆系统所需要的用户名和密码,登录时需要访问此表。
表1login表
字段名
数据类型
长度
是否为空
是否为主键
说明
Pid
int
4
否
是
登陆编号
sname
varchar
50
否
否
登陆名
spwd
varchar
50
否
否
登录密码
2路线表
路线表存放站名等数据,查询需要访问此表。
表2路线表
字段名
数据
类型
长度
是否为空
是否为主键
说明
公交路线编号
varchar
50
否
是
公交路线编号
票价
char
10
是
否
票价
起点
nchar
10
是
否
起点
终点
nchar
10
是
否
终点
总站数
int
4
是
否
总站数
开始时间
varchar
50
是
否
开始时间
结束时间
varchar
50
是
否
结束时间
更新日期
varchar
50
是
否
更新日期
备注
text
是
否
备注
3车辆表
车辆表存放车次等数据,添加修改车次等需要访问此表。
表3车辆表
字段名
数据
类型
长度
是否为空
是否为主键
说明
车次
varchar
50
否
是
车次
车辆类型
varchar
50
否
否
车辆类型
服务类型
varchar
50
否
否
服务类型
票价
varchar
50
否
否
票价
IC卡类型
varchar
50
否
否
IC卡类型
运行区间
varchar
50
否
否
运行区间
4站点表
站点表存放站点等数据,查询站点等需要访问此表。
表4站点表
字段名
数据类型
长度
是否为空
是否为主键
说明
车次
varchar
50
否
否
车次
站点
varchar
50
否
否
站点
E-R图是直观表示概念模型的工具,它有三个基本成分:
(1)矩形框,表示实体类型(考虑问题的对象)。
(2)菱形框,表示联系类型(实体间的联系)。
(3)椭圆形框,表示实体的属性。
各实体属性图如图1所示
图1各实体属性E-R关系图
4
Excel打印
行为设计
Word打印
报表
运行区间
唐山市公交查系统
退出系统
音乐欣赏
安全性
帮助
视图
图3功能图
1.登陆模块:
使用登陆界面进行用户管理,使不同权限用户进行系统的登录,从而实现用户的登陆管理。
登陆后进入主界面,进行权限操作。
2.用户管理模块:
登陆后进入主操作界面进行用户的管理和操作,实现多用户操作。
3.专业应用模块:
该系统为唐山市公交查询系统,实现了一定的公交管理功能领域的专业系统。
4.基本功能:
基本功能为公交线路的查询,修改,显示,添加,删除,浏览等基本功能。
4.统计、计算功能:
通过水晶报表是新统计功能。
5.图表显示功能:
通过水晶报表分析,分组进行数据的条形图等功能的统计,实现图表功能。
6.备份、恢复功能:
系统中包括了对数据的备份和恢复功能。
7.数据导入导出功能:
数据实现了Excel的导入以及数据通过Excel,Word对数据的导出。
同时,水晶报表中导出报表功能进行了报表的导出。
都是创新功能和导出的实现。
8.打印功能:
打印功能实现建立在导出功能上,对Word,Excel进行打印和对报表进行打印可以更加直观便捷的进行。
9.创新功能:
系统实现了Excel,Word导出功能,Excel导入功能,报表分析功能,并带有音乐欣赏功能。
5系统开发流程
开发过程先进性整体系统的设计,确立系统开发实现功能和目的。
之后进行具体的分析与规划。
首先将数据库的建立与表的建立规划好后建立数据库。
建立数据库的同时考虑系统实现的功能会用到那些数据。
之后进行语言的编程。
编程主要要事先规划好,将要建立的功能和窗体具体安排。
之后建立各个窗体,实现各项功能。
在程序设计和开发完成后。
最后进行系统的调试,运行和维护。
至此系统开发完成。
开发流程图如下图:
图4流程图
6系统使用说明及主要代码
6.1登陆界面
登陆界面可以限制不同级别的用户对于公交查询系统的操作。
通过设置登陆名和登陆密码,实现各自进入系统主程序后的操作权限。
界面如图2所示:
图5登陆界面
实现数据库链接的代码如下:
privatevoidbtnOk_Click(objectsender,EventArgse)
{
if(comName.Text==""||txtPassWord.Text=="")
MessageBox.Show("输入登录信息不完整,请重新输入!
","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
else
{
stringmyConnStr="datasource=CHUHONGSHENG-PC;userid=sa;password=199088;database=唐山市公交查询系统";
SqlConnectionmyConn=newSqlConnection(myConnStr);
Program.quanxian=comName.Text;
stringSql="select*fromloginwheresname='"+comName.Text+"'andspwd='"+txtPassWord.Text+"'";
SqlDataAdapterada=newSqlDataAdapter(Sql,myConn);
DataTabledt=newDataTable();
ada.Fill(dt);
inti=dt.Rows.Count;
if(i>=1)
{
Mainmyf=newMain();
myf.Show();
this.Visible=false;
}
else
{
MessageBox.Show("用户名或密码不正确,请重新输入!
","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
privatevoidbtnCancle_Click(objectsender,EventArgse)
{
Name.Text="";
this.txtPassWord.Text="";
}
privatevoidbtnClose_Click(objectsender,EventArgse)
{
this.Close();
Application.Exit();
}
设置椭圆的窗体格式代码:
privatevoidForm1_Paint(objectsender,PaintEventArgse)
{
GraphicsPathMyformpath=newGraphicsPath();
Myformpath.AddEllipse(10,50,this.Width-10,this.Height-50);
this.Region=newRegion(Myformpath);
}
}
6.2系统主界面
登陆系统后显示窗体主界面,进行各项功能的操作。
主界面如图3所示:
图6系统主界面
部分主代码为:
privatevoidShowNewForm(objectsender,EventArgse)
{
FormchildForm=newForm();
childForm.MdiParent=this;
childForm.Text="窗口"+childFormNumber++;
childForm.Show();
}
privatevoidOpenFile(objectsender,EventArgse)
{
OpenFileDialogopenFileDialog=newOpenFileDialog();
openFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(openFileDialog.ShowDialog(this)==DialogResult.OK)
{
stringFileName=openFileDialog.FileName;
}}
privatevoidSaveAsToolStripMenuItem_Click(objectsender,EventArgse)
{
SaveFileDialogsaveFileDialog=newSaveFileDialog();
saveFileDialog.InitialDirectory=Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter="文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";
if(saveFileDialog.ShowDialog(this)==DialogResult.OK)
{
stringFileName=saveFileDialog.FileName;
}
}
privatevoidExitToolsStripMenuItem_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidToolBarToolStripMenuItem_Click(objectsender,EventArgse)
{
toolStrip.Visible=toolBarToolStripMenuItem.Checked;
}
6.3音乐欣赏界面
图7音乐界面
主要代码为:
privatevoidbutton1_Click(objectsender,EventArgse)
{
folderBrowserDialog1.SelectedPath="f:
\\";//初始打开路径
folderBrowserDialog1.ShowNewFolderButton=true;
folderBrowserDialog1.Description="请选择音乐文件目录:
";
folderBrowserDialog1.ShowDialog();
AddFiles(folderBrowserDialog1.SelectedPath,listBox1);
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
{
stringpath=this.openFileDialog1.FileName;
FileInfof=newFileInfo(path);
AddFile(f.FullName);
stringstrTmp=Convert.ToString(num);
for(inti=1;i<=5-strTmp.Length;i++)
strTmp+='';
strTmp+="--"+f.Name;
this.listBox1.Items.Add(strTmp);
}
}
6.4公交查询界面
图8公交查询界面
主要代码:
publicboolExportDataGridview(DataGridViewdgv,boolisShowExcel)
{
if(dgv.Rows.Count==0)
returnfalse;
Microsoft.Office.Interop.Excel.Applicationexcel=newMicrosoft.Office.Interop.Excel.Application();
//Excel.Applicationexcel=newExcel.Application();
excel.Application.Workbooks.Add(true);
excel.Visible=isShowExcel;
for(inti=0;i{
excel.Cells[1,i+1]=dgv.Columns[i].HeaderText;
}
for(inti=0;i{
for(intj=0;j{
if(dgv[j,i].ValueType==typeof(string))
{
excel.Cells[i+2,j+1]="'"+dgv[j,i].Value.ToString();
}
else
{
excel.Cells[i+2,j+1]=dgv[j,i].Value.ToString();
}
}
}
returntrue;
6.5公交管理界面
图9管理界面
6.6报表输出
图10输出报表
6.7数据还原与备份
主代码为:
privatevoidbutton2_Click(objectsender,EventArgse)
{
try
{
if(textBox1.Text.Trim()==""||textBox2.Text.Trim()==""||comboBox1.Text.Trim()=="")
{
MessageBox.Show("请输入完整的备份信息!
","警告",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
else
{
stringmyFilePath=textBox1.Text.Trim()+"\\"+textBox2.Text.Trim()+".bak";
if(!
File.Exists(myFilePath))
{
stringConstr="datasource=CHUHONGSHENG-PC;database=唐山市公交查询系统;userid=sa;password=199088";
SqlConnectioncon=newSqlConnection(Constr);
con.Open();
SqlCommandcom=newSqlCommand();
com.CommandText="BACKUPDATABASE"+comboBox1.Text.Trim()+"TODISK='"+myFilePath+"'";
com.Connection=con;
com.ExecuteNonQuery();
con.Close();
MessageBox.Show("数据库备份成功!
","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
//this.Close();
}
else
{
MessageBox.Show("数据文件已存在,请重命名!
","提示信息",MessageBoxButtons.OK,