《安师后营美食查询Version10》课外实践报告.docx
- 文档编号:13016440
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:27
- 大小:758.87KB
《安师后营美食查询Version10》课外实践报告.docx
《《安师后营美食查询Version10》课外实践报告.docx》由会员分享,可在线阅读,更多相关《《安师后营美食查询Version10》课外实践报告.docx(27页珍藏版)》请在冰点文库上搜索。
《安师后营美食查询Version10》课外实践报告
《数据库实用技术》课外实践报告
项目名称:
安师后营美食查询Version1._0
所在班级:
2011级本信管班
小组成员:
张毛支宁博
赵勇常鸿飞
许朋朋
指导教师:
高峰
起止时间:
12月10日——12月30日
项目基本信息
项目名称
安师后营美食查询Version1._0
项目简介
以安阳师范学院后营小吃街的主要餐饮的菜名为查询对象,使用SQL建立数据库,C#语言编写winForm应用程序实现按照条件查询,并且可以添加、删除或者修改数据库的记录等功能。
小组成员
张毛支宁博
赵勇常鸿飞
许朋朋
任务分工
赵勇:
组长,负责项目的策划,信息采集,数据库的建立
张毛:
程序的编写和调试,触发器、存储过程的编写,管理员的管理、添加功能的窗体、窗体的艺术设计、代码的设计、编写
支宁博:
信息采集,数据库的建立
常鸿飞:
信息采集,数据库的建立
许朋朋:
辅助计算程序的编写和调试,添加功能的窗体、代码的设计、编写
一、问题描述及分析
1.1背景
后营餐馆小吃丰富多样,“吃什么?
”对于很多同学来书是个问题!
我们也深受此问题的困扰,考虑到可以运用所学知识建立数据库,按照自己的意愿去查询想吃的东西,并且价格和店家一目了然。
由此我们的‘安师后营美食查询Version1._0’设想呼之欲出了!
1.2数据需求
1、后营主要餐馆和小吃摊的名称和地点
2、菜名和价格
3、各种菜品的简介
1.3事务需求
1、根据搜集到的信息建立数据库
2、设计系统流程图,根据流程图在VS2008中建立winform应用程序
3、设计winform的界面并且完善代码
二、解决方案(或数据库系统设计)
2.1E-R模型设计
图-1E-R图
2.2数据字典
(1)数据项
数据文件:
盖饭表
文件组成:
菜名,价格,店家,标签
数据项:
菜名
数据类型:
可变长度字符型
数据长度:
20
数据项:
价格
数据类型:
可变长度字符类型
数据长度:
10
数据项:
店家
数据类型:
可变长度字符类型
数据长度:
20
数据项:
标签
数据类型:
可变长度字符类型
数据长度:
50
数据文件:
面食表
文件组成:
菜名,价格,店家,标签
数据项:
菜名
数据类型:
可变长度字符型
数据长度:
20
数据项:
价格
数据类型:
可变长度字符类型
数据长度:
10
数据项:
店家
数据类型:
可变长度字符类型
数据长度:
20
数据项:
标签
数据类型:
可变长度字符类型
数据长度:
50
数据文件:
小吃表
文件组成:
菜名,价格,店家,标签
数据项:
菜名
数据类型:
可变长度字符型
数据长度:
20
数据项:
价格
数据类型:
可变长度字符类型
数据长度:
10
数据项:
店家
数据类型:
可变长度字符类型
数据长度:
20
数据项:
标签
数据类型:
可变长度字符类型
数据长度:
50
(2)数据流定义:
查询
名称:
查询
简述:
用户根据标签查询菜名
数据来源:
数据库Menus中的盖饭表、面食表、小吃表
数据去向:
在窗体中显示
数据组成:
菜名+价格+店家
三、系统实现
3.1开发环境
硬件环境:
AMDAthlonIIX4640processor+4G内存+500G硬盘+百兆兆网卡+百兆局域网
软件环境:
Windows7
开发工具:
Microsoftvisualstudio2008+SQLSever2005
开发语言:
C#+winform+T-SQL
3.2系统流程图
图-2系统流程图
3.3系统功能模块及结构描述
查询功能:
用户进入系统后选择查询功能,根据意愿选择查询选项,按照条件筛选,得到查询结果
管理功能:
管理者进入系统后选择管理功能,输入管理名和密码登录,进入管理页面,对数据库中的数据进行添加,删除和修改,并且能够查看数据库中的数据
3.4系统调试
在系统调试过程中我们遇见了很多问题,这些问题在我们不断的查找和思考以及借助工具书和网络查询得到解决,以下为其中的主要几个问题:
1.在做查询页面的时候,我们的设想是根据菜名查询,后来发现这个模糊查询的方法很麻烦,然后我们就在每个菜名的后面加了一个标签,根据标签来查询菜名就变得简单多了。
2.在做管理页面设计的时候,对于添加的设计我们完成的很好,并且通过调试都成功了,但是在做修改和删除的时候我们遇到了麻烦,因为修改和删除的时候必须要针对表中已经有的数据修改,后来通过查询,我们就做了数据绑定,把表中已经有的数据通过数据绑定绑定到控件上可供选择,这样我们的问题就解决了并且通过调试完全能够实现功能
四、使用说明
1.查询:
进入系统,点击查询按钮,在跳出的页面中选择你想查询的选项,点击之后就进入了主查询窗口,通过下列框选择查询的条件,点击“查询”按钮就可以看见查询结果了
2.管理:
进入系统后点击“管理”按钮,输入管理名和密码登录,进入管理页面,可以对数据库中的数据进行添加,删除和修改,并且能够查看数据库中的数据
五、问题及解决方法
本系统能够实现对数据库中的数据的查询和管理,而且能够把结果直接展示出来,但是同时还存在很多不足之处,比如:
(1)查询的筛选条件很单一,
解决办法:
设置多条件筛选查询
(2)数据库数据不够完善,
解决办法:
完善数据库
(3)数据的属性单一,没有详细介绍和评价,
解决办法:
针对每条记录添加属性,添加详细介绍和评价
(4)数据库的表之间没有关联
解决办法:
表之间建立关联,创建触发器
(5)没有设置主键,导致重复添加
解决办法:
设置主键,避免重复添加
(6)必须添加的属性没有标明
解决办法:
标明必须添加的属性,防止数据垃圾产生
以后我们会针对这些问题不断完善,不断改进。
六、课外实践总结
经过这次的项目设计,使我们对《数据库实用技术》这门课的知识不但有了更深入的了解,更有了突破性的实践应用,也掌握了winform和C#语言的应用。
在项目的设计制作过程中,我们遇到了很多的困难。
在设计窗体应用程序的过程中,为了了解更多的知识,我从图书馆借了3本书,分别是《C#WindowsForm程序设计》、《SQLServer2005从入门到精通(应用技术基础)》和《C#开发应用1200例》,在遇到问题的时候从课本中查找可能出现错误的地方,也上网查了很多资料。
在自学的过程中,自己的知识和学习方法都有了长足进步。
当看着自己设计的程序顺利运行时,那种感觉是无法用语言体会的,这种收获是无法仅从课本得到的。
七、源代码
1、数据库代码
createdatabaseMenus
useMenus
--创建盖饭表并插入数据
createtable盖饭表
(
菜名nvarchar(20)notnull,
价格nvarchar(10)notnull,
店家nvarchar(20)notnull,
标签nvarchar(50)notnull,
)
insertinto盖饭表values('泡椒腰花盖饭','10元','川渝美食','椒类')
insertinto盖饭表values('糖醋里脊盖饭','10元','川渝美食','糖醋')
insertinto盖饭表values('红烧肉盖饭','10元','川渝美食','红烧')
insertinto盖饭表values('土豆红烧肉盖饭','10元','川渝美食','红烧')
insertinto盖饭表values('香菇香肠盖饭','10元','川渝美食','爆炒')
insertinto盖饭表values('红烧肥肠盖饭','10元','川渝美食','红烧')
insertinto盖饭表values('回锅腊肉盖饭','9元','川渝美食','回锅')
insertinto盖饭表values('鱼香肉丝盖饭','8元','川渝美食','鱼香')
insertinto盖饭表values('鱼香烘蛋盖饭','8元','川渝美食','鱼香')
insertinto盖饭表values('红烧排骨盖饭','9元','川渝美食','红烧')
insertinto盖饭表values('酸辣土豆丝盖饭','6元','川渝美食','酸辣')
insertinto盖饭表values('红烧茄子盖饭','6元','川渝美食','红烧')
insertinto盖饭表values('红烧茄子盖饭','6元','重庆幺妹美食','红烧')
insertinto盖饭表values('鱼香肉丝盖饭','7元','重庆幺妹美食','鱼香')
insertinto盖饭表values('烧腐竹盖饭','6元','桃园快餐','家常')
insertinto盖饭表values('烧小白菜盖饭','5元','桃园快餐','家常')
insertinto盖饭表values('酸辣白菜盖饭','5元','桃园快餐','家常')
insertinto盖饭表values('尖椒排骨盖饭','9元','川渝美食','椒类')
insertinto盖饭表values('香干回锅肉盖饭','8元','川渝美食','回锅')
insertinto盖饭表values('包菜酱肉盖饭','7元','重庆幺妹美食','酱肉')
insertinto盖饭表values('木耳酱肉盖饭','7元','重庆幺妹美食','酱肉')
insertinto盖饭表values('金针菇土豆丝酱肉盖饭','7元','重庆幺妹美食','酱肉')
insertinto盖饭表values('地三鲜盖饭','6元','重庆幺妹美食','家常')
insertinto盖饭表values('地三鲜盖饭','6元','川渝美食','家常')
insertinto盖饭表values('茄子酱肉盖饭','7元','川渝美食','酱肉')
insertinto盖饭表values('尖椒豆皮盖饭','7元','川渝美食','椒类')
insertinto盖饭表values('韭菜鸡蛋盖饭','7元','川渝美食','家常')
insertinto盖饭表values('家常豆腐盖饭','6元','重庆幺妹美食','家常')
insertinto盖饭表values('酸辣血旺盖饭','6元','川渝美食','酸辣')
insertinto盖饭表values('土豆鸡块盖饭','8元','重庆幺妹美食','家常')
insertinto盖饭表values('青菜火腿盖饭','7元','重庆幺妹美食','家常')
--创建面食表并插入数据
createtable面食表
(
菜名nvarchar(20)notnull,
价格nvarchar(10)notnull,
店家nvarchar(20)notnull,
标签nvarchar(50)notnull,
)
insertinto面食表values('飘香拌面','4元','福建馄饨王','拌面类')
insertinto面食表values('辣子鸡面','6元','福建馄饨王','汤面类')
insertinto面食表values('鸡汤面','5元','李记滋补鸡血汤','汤面类')
insertinto面食表values('鸡血面','7元','李记滋补鸡血汤','汤面类')
insertinto面食表values('大郎劲面','6元','大郎劲面','汤面类')
insertinto面食表values('香爆肉劲面','6元','大郎劲面','汤面类')
insertinto面食表values('鸡蛋面','5元','侯记擀面皮','汤面类')
insertinto面食表values('西红柿鸡蛋面','5元','老砂锅','汤面类')
insertinto面食表values('热干面','4元','武汉热干面','汤面类')
insertinto面食表values('热干面','6元','游子热干面','汤面类')
insertinto面食表values('爆炒刀削面','6元','山西面食馆','汤面类')
insertinto面食表values('油泼裤袋面','5元','山西面食馆','汤面类')
insertinto面食表values('香辣担担面','5元','山西面食馆','汤面类')
insertinto面食表values('牛肉拉面','5元','兰州拉面馆','汤面类')
insertinto面食表values('牛肉拉条','6元','兰州拉面馆','汤面类')
insertinto面食表values('鸡蛋炝锅面','5元','桃园快餐','汤面类')
insertinto面食表values('肉丝炝锅面','6元','桃园快餐','汤面类')
insertinto面食表values('小盘鸡面','6元','桃园快餐','汤面类')
insertinto面食表values('大盘鸡面','6元','纪师傅大盘鸡','汤面类')
--创建小吃表并插入数据
createtable小吃表
(
菜名nvarchar(20)notnull,
价格nvarchar(10)notnull,
店家nvarchar(20)notnull,
标签nvarchar(50)notnull,
)
insertinto小吃表values('酱香饼','1-5元','小吃北街','饼类')
insertinto小吃表values('蒸饺','3元','福建馄饨王','饺类')
insertinto小吃表values('馄饨','4元','福建馄饨王','饺类')
insertinto小吃表values('猪肉大葱饺子','5元','口口香饺子馆','饺类')
insertinto小吃表values('牛肉芹菜饺子','5元','口口香饺子馆','饺类')
insertinto小吃表values('猪肉三鲜饺子','5元','口口香饺子馆','饺类')
insertinto小吃表values('韭菜鸡蛋饺子','5元','口口香饺子馆','饺类')
insertinto小吃表values('汤圆','4元','口口香饺子馆','饺类')
insertinto小吃表values('杂粮煎饼','3元','小吃南街','饼类')
insertinto小吃表values('灵宝肉夹馍','3元','小吃南街','饼类')
insertinto小吃表values('铁板里脊','3元','小吃南街','饼类')
insertinto小吃表values('月亮饼','2元','小吃南街','饼类')
insertinto小吃表values('新乡芝麻饼','1-3元','小吃南街','饼类')
insertinto小吃表values('高炉烧饼','1元','小吃南街','饼类')
insertinto小吃表values('东北熏肉大饼','2-5元','小吃南街','饼类')
insertinto小吃表values('烤面筋','1元','小吃南街','烧烤类')
insertinto小吃表values('奥尔良烤鸡腿','7元','小吃南街','烧烤类')
insertinto小吃表values('奥尔良烤鸡翅','4元','小吃南街','烧烤类')
insertinto小吃表values('大脸鸡排','11元','小吃南街','烧烤类')
--创建存储过程
USEMenus
GO
CREATEPROCEDUREmenus_info
AS
INSERTINTO盖饭表VALUES('麻辣鸡丝盖饭','9元','川渝美食','麻辣味')
GO
--执行存储过程
EXECUTEmenus_info
--创建存储过程
CREATEPROCEDUREdo_action@XBIT,@stringCHAR(10)OUTPUT
AS
BEGIN
EXECmenus_info
IF@X=0
BEGIN
UPDATE盖饭表SET价格='10',店家='后营美食'WHERE菜名='红烧肉盖饭'
SET@string='修改成功'
END
ELSE
IF@X=1
BEGIN
DELETEFROM盖饭表WHERE菜名='红烧肉盖饭'
SET@string='删除成功'
END
END
--执行存储过程
DECLARE@stringCHAR(10)
EXECdo_action0,@stringOUTPUT
SELECT@string;
--创建触发器
CREATETRIGGER小吃表_UPDATE
ON面食表AFTERUPDATE
AS
BEGIN
DECLARE@old_店名char(10),@new_店名char(10)
SELECT@old_店名=店家FROMdeleted
SELECT@new_店名=店家FROMinserted
UPDATE小吃表SET店家=@new_店名WHERE店家=@old_店名
END
--执行触发器
update面食表set店家='福建馄饨王'where店家='福建小吃'
go
select*from小吃表where店家='福建馄饨王'
2、C#代码
图-3欢迎页面
代码:
namespace安师后营美食查询Version1._0
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Form2Form=newForm2();
Form.Show();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
管理登录界面Form=new管理登录界面();
Form.Show();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
MessageBox.Show("软件名称:
安师后营美食查询系统version1.0\n软件功能:
针对安师后营的饭馆主要菜名小吃等进行查询和管理\n设计者:
张毛毛\n");
}
}
图-4查询选项页面
图-5盖饭查询页面
代码:
publicpartialclassFormgaijiao:
Form
{
DBHelperdb=newDBHelper("server=.;initialcatalog=Menus;integratedsecurity=true");
publicFormgaijiao()
{
InitializeComponent();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidFormgaijiao_Load(objectsender,EventArgse)
{
stringsql="SELECT[标签]FROM盖饭表GROUPBY[标签]";
DataTabledt=db.GetDataSet(sql).Tables[0];
comboBox1.DataSource=dt;
comboBox1.DisplayMember="标签";
comboBox1.ValueMember="标签";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringtype=comboBox1.Text;
stringsql="SELECT[菜名],[价格],[店家]FROM盖饭表WHERE[标签]='"+type+"'ORDERBY[价格]ASC";
DataTabledt=db.GetDataSet(sql).Tables[0];
dataGridView1.DataSource=dt;
}
图-6面食查询页面
图-7小吃查询页面
图-8管理登录界面
代码:
public管理登录界面()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringuserName=textBox1.Text.Trim();
stringpwd=textBox2.Text.Trim();
if(userName=="张毛毛"&&pwd=="123")
{
MessageBox.Show("登录成功!
");
this.Close();
FormguanliForm=newFormguanli();
Form.Show();
}
else
{
MessageBox.Show("请输入用户名或者密码!
");
}
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
this.Close();
}
图-9菜单管理界面
代码:
publicpartialclassFormguanli:
Form
{
DBHelperdb=newDBHelper("server=.;initialcatalog=Menus;integratedsecurity=true");
publicFormguanli()
{
InitializeComponent();
}
privatevoidcomboBox2_SelectedIndexChanged(objectsender,EventArgse)
{
string
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 安师后营美食查询Version10 安师后营 美食 查询 Version10 课外 实践 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)