学生选课.docx
- 文档编号:30128156
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:28
- 大小:927.06KB
学生选课.docx
《学生选课.docx》由会员分享,可在线阅读,更多相关《学生选课.docx(28页珍藏版)》请在冰豆网上搜索。
学生选课
目录
目录1
绪论2
1开发背景2
2开发工具2
3涉及的主要内容2
第一章需求分析4
1.1酒店内部人员信息4
1.2酒店材料方面信息4
1.3酒店顾客方面信息4
第二章总体设计5
2.1数据查询模块5
2.2数据更新模块5
2.3安全设计6
第三章数据库设计7
3.1概念结构设计7
3.2逻辑结构设计9
3.3物理结构设计9
第四章详细设计11
4.1界面:
11
4.2具体思路流程13
第五章程序编码17
5.1在主界面里面的代码17
5.2系统设置界面代码如下19
}第六章功能完善20
6.1用户登录界面如下:
21
6.2接下来进入系统设置界面:
21
课程总结23
学习体会24
致谢25
参考文献26
绪论
1开发背景
这学期我们刚刚学完数据库系统概论和软件基础及面向程序设计C++这几门课程,这个餐饮管理的课程设计是为了培养我们对软件设计的动手动脑的实践能力,从而达到:
1、进一步学习和掌握数据库原理的基础知识和理论。
2.学习SQL Server数据库管理系统的基本功能和建立数据库各种对象的方法。
3.熟练掌握和使用SQL语言操纵数据库
4.理解和掌握利用数据库所学的理论知识来设计数据库的基本方法和步骤。
5.通过上机操作和调试程序,提高我们的理论联系实际和动手操作能力。
该课程设计通过让我们亲自动脑来了解将来工作时做软件工程项目的基本步骤,从而达到了就业见习的目的。
其次通过对我们的训练,使我们的实践能力得到加强,在以后的工作中能够发现问题,解决问题,从而更好地去开发新的数据库,以便更好的服务广大用户。
随着社会的发展,新式的餐饮店层出不穷,随处可见,人们的生活方式也在逐渐改变,餐饮不单单是一种消费,更是一种时尚,一种享受。
然而,在这机遇与竞争并存的状态下,要想使得自己的餐饮具有特色,取得成功,就要具备标准的、科学的管理体系。
餐饮管理系统不是单纯的用于结账的工具,它是一套具备标准的、科学的管理体系,是根据当前的餐饮市场调查设计而成的。
企业只有拥有符合自身的标准的管理系统,才能更好的完善企业管理,提高企业的竞争能力。
2开发工具
硬件:
装有windows操作系统的计算机
软件:
SQLServer2000及BorlandC++Builder
3涉及的主要内容
该餐饮管理系统主要由登录主界面,操作台主界面,前台管理、菜单管理
库存管理、供应管理、员工管理、数据查询、报表分析、系统设置十个模块组成。
(1)登录主界面:
主要是输入帐号和密码登录选择工种,然后登录到用户操作主界面。
不同的角色能够执行的主界面的操作不同。
(2)操作主界面:
用来选择需要进行的操作。
(3)前台管理:
主要用于开台管理,付账管理
(4)菜单管理:
主要是对菜单的增加、删除、修改、更新
(5)库存管理:
主要是实现多库存的增加、删除、修改、更新
(6)供应管理:
主要是对供应商所供给的原料的管理和修改
(7)员工管理:
主要是实现对员工的增加、删除、修改、更新以及任务分配
(8)数据查询:
主要是对当前的数据进行查询
(9)报表分析:
员工信息报表、菜单信息报表、会员信息报表、供应信息报表
(10)系统设置:
实现对部门的信息的增加,删除,查询,修改,和实现对员工登录信息
的查询,增加,删除,修改。
第一章需求分析
1.1酒店内部人员信息
龙门酒店有若干名员工,包括一名总经理,多名部门主管和一些其他员工。
总经理负责酒店的日常运营,部门主管负责监督自己管辖范围内的员工。
员工负责自己所在部门分配给自己的任务。
员工中每个成员的详细信息包括员工号、员工姓名、性别、年龄、电话号码、详细地址、职称、月薪、部门编号,其中员工号在酒店中是唯一的。
酒店下面有多个部门,每个部门都有一个唯一的部门编号,还有部门名称和联系电话,一个部门有唯一的部门主管。
1.2酒店材料方面信息
酒店出示有一份菜单,菜单上有各种酒菜,每样酒菜都有详细信息包括酒菜编号、酒菜名称、酒菜类别、价格,每样酒菜都有一个唯一编号。
酒店仓库中存放有做菜的原材料及酒和饮料,这些原材料的详细信息包括原料编号、原料名称、原料类别、进货量、单价、进货日期、库存量。
为保证酒店能够及时供应酒菜,需要供应商信息以方便联系。
供应商信息包括供应商编号、供应商姓名、联系方式、地址、供应货物名。
1.3酒店顾客方面信息
酒店可以注册会员,会员可以享受折扣优惠。
会员的信息包括会员证号、会员姓名、性别、联系方式、家庭住址、注册日期、注册员工号。
每个会员有唯一一个会员证号。
无论是一般客人还是会员,在酒店消费过后都会有一张消费清单记录,清单上的信息应包括座位号、酒菜编号、酒菜名称、价格、就餐时间,是否会员、折扣、收款员、消费总额等。
第二章总体设计
2.1数据查询模块
在查询模块中,通过相应的操作可以查询该酒店中各个方面的信息:
实现对酒店员工的查询
实现对酒店菜样及饮品的查询
实现对酒店会员的查询
实现对原材料供应商的查询
实现对顾客订餐情况的查询
实现对原材料订单情况的查询
跟踪库存原材料库存状态信息
2.2数据更新模块
包括对餐饮方面,仓库方面,供应商方面,维护(录入、更新和删除)有关员工的数据
维护(录入、更新和删除)酒店菜样及饮品的数据
维护(录入、更新和删除)库存原材料的数据
维护(录入、更新和删除)原材料供应商数据
维护(录入、更新和删除)原料订单的数据
维护(录入、更新和删除)会员的数据
维护(录入、更新和删除)顾客的订餐消费数据
跟踪顾客的订餐消费情况
报告酒店员工的情况
报告酒店的菜样及饮品情况
报告酒店库存原材料的库存情况
报告酒店会员的情况
报告供应商的情况
报告原材料订单的情况
报告顾客的订餐消费信息
报告酒店的运营情况
2.3安全设计
登录界面,首先不同的角色在登录之后,所能够进行的操作是不同的。
经理有最大的权限,员工的权限根据自己的职位而定。
在对各项信息的修改过程中,不同的人的修改权限也是不同的。
例如,经理可以根据需要查询酒店管理系统的所有功能,而员工只能查询与修改自己工作职责内的模块,比如修改自己的密码,查询管理等。
第三章数据库设计
3.1概念结构设计
龙门酒店有若干名员工,包括一名总经理,多名部门主管和一些其他员工。
总经理负责酒店的日常运营,部门主管负责监督自己管辖范围内的员工。
员工负责自己所在部门分配给自己的任务。
员工中每个成员的详细信息包括员工号、员工姓名、性别、年龄、电话号码、详细地址、职称、月薪、部门编号,其中员工号在酒店中是唯一的。
酒店下面有多个部门,每个部门都有一个唯一的部门编号,还有部门名称和联系电话,一个部门有唯一的部门主管。
酒店出示有一份菜单,菜单上有各种酒菜,每样酒菜都有详细信息包括酒菜编号、酒菜名称、酒菜类别、价格,每样酒菜都有一个唯一编号。
酒店仓库中存放有做菜的原材料及酒和饮料,这些原材料的详细信息包括原料编号、原料名称、原料类别、进货量、单价、进货日期、库存量。
为保证酒店能够及时供应酒菜,需要供应商信息以方便联系。
供应商信息包括供应商编号、供应商姓名、联系方式、地址、供应货物名。
酒店可以注册会员,会员可以享受折扣优惠。
会员的信息包括会员证号、会员姓名、性别、联系方式、家庭住址、注册日期、注册员工号。
每个会员有唯一一个会员证号。
无论是一般客人还是会员,在酒店消费过后都会有一张消费清单记录,清单上的信息应包括座位号、酒菜编号、酒菜名称、价格、就餐时间、是否会员、折扣、收款员、消费总额等。
下图3-1是酒店系统的总体ER图设计,在龙门酒店旗下拥有多个部门,每一个部门有数名员工服务,员工与员工之间又有领导与被领导的关系,每一个员工可以为多名消费者服务,同时,酒店还有数个仓库,每一个仓库可以放多种不同的原料,每一种原料可以为多个供应商供应,每一个供应商也可以供给酒店多种原料,酒店,部门,员工,消费者,仓库,原料,供应商之间的具体联系如下所示
3-1酒店总体ER图
图3-2为部门实体的ER图,其属性包括部门号,部门名称,主管号和联系电话
3-2部门实体ER图
图3-3是登录人员的ER图,其属性包括员工号和员工密码
3-3登录人员实体ER图
下图为员工实体的ER图,其属性包括员工号,员工姓名,性别,年龄,电话号码,职称,月薪,详细地址,入职日期和所在部门
3-4员工实体ER图
3.2逻辑结构设计
员工(员工号、员工姓名、性别、年龄、电话号码、详细地址、职称、月薪、所在部门)
部门(部门号、主管号、部门名称、联系电话)
菜单(酒菜号、酒菜名称、酒菜类别、价格)
原料(原料号、原料名称、原料类别、库存量)
供应商(供应商号、供应商姓名、联系方式、地址、供应货物名)
会员(会员号、会员姓名、性别、联系方式、家庭住址)
登录(员工号、密码)
餐位(座位号、餐位类型、状态)
消费(座位号、酒菜号、酒菜名称、价格、就餐时间、是否会员、折扣、收款
员工号、消费总额)
供应(供应商号、原料号、供应日期、供应数量、总额、单价)
注册(会员号、注册日期、注册员工号)
仓库(仓库号、主管人员)
3.3物理结构设计
在这个餐饮管理系统中,其中登录界面,查询管理和系统设置这三个模块功能的设计,其中涉及实体或联系的属性列表分别如下所示:
(1)部门实体的属性主管号为其主码,不许为空,其列表如下表3-1所示,与其对应的实体ER图为3-2
3-1部门实体的属性列表
列名
数据类型
允许Null
主管号
Char(10)
不
部门名称
Char(10)
是
联系电话
Char(10)
是
(2)登录人员的主码为员工号,不允许为空,它的属性列表如下表3-2所示,与其对应的实体ER图为3-3
3-2登录人员实体的属性列表
列名
数据类型
允许Null
员工号
Char(10)
不
密码
Char(10)
是
(3)下表3-3为员工实体的属性列表,员工号为其主码不允许为空
与其所对应的的员工实体ER图如上图3-4
3-3员工属性列表3-3
列名
数据类型
允许Null
员工号
Char(10)
不
员工姓名
Char(10)
是
性别
Char(10)
是
年龄
Char(10)
是
电话号码
Char(10)
是
职称
Char(10)
是
月薪
Char(10)
是
详细地址
Char(10)
是
入职日期
Char(10)
是
所在部门
Char(10)
是
第四章详细设计
4.1界面:
经过我们的不断修改,最后生成的登录模块功能的界面、显示总功能的界面、部门资料设置功能界面、修改员工密码界面虽然不是很完美,但总体来说还是令人满意的。
如下图4-1是登录界面的截图,当登录人员登录系统时,界面上所显示的账号、密码必须输入,经理,服务员两者之中也必须选填其一,否则,系统将提示出错信息
4-1登录界面截图
下图4-2是系统所有功能的显示界面,该系统的所有功能都可以由该界面进入,当完成操作功能后退出到该界面,可以继续其他的功能,其中查询管理可以查询酒店中的菜食供应,系统设置里包括部门资料的修改,添加,删除,查询和登录人员的查询并修改登录人员的密码及登录人员的添加,具体界面如下所示
4-2功能模块界面截图
图4-3为部门资料设置界面,按动界面上的查询、删除、修改按钮可以实现相应的功能
4-3部门资料设置界面截图
下图4-4所示为登录人员的有关的设置,其中可以实现登录人员的查询、删除、修改、增加,当修改登录人员的密码时,如果两次输入的新密码不一样,则系统会提示出错信息,当两次输入相同时才能得到修改。
4-4修改密码设置截图
4.2具体思路流程
系统的登录流程图如图4-5所示
4-5登录流程图
系统由打开登录界面准备登录开始,只有每一项的输入与选择都正确才能成功登录,每当输入有误或选择不正确都会给出提示出错信息,回到重新输入的状态,登录成功后,系统的登录可执行操作说明图如图4-6所示
4-6登录可执行操作说明图
系统的删除员工流程图如图4-7所示,当输入的员工号不存在时,系统无法实现删除功能,给出提示信息后回到初始界面,当输入员工号有效才能执行正确的操作,给出删除成功信息,回到初始界面。
4-7删除员工流程图
系统的查询部门流程图如图4-8所示,该功能与上面的对员工的有关操作有相似之处,对所要查找的对象都必须有效才能执行
4-8查询部门流程图
其中具体信息的查询,删除,修改,增加具体如下:
系统的查询员工流程图如图4-9所示,当员工号存在时,将员工信息打印出来,进程结束,当员工号不存在,员工资料为空,进程结束
4-9查询员工流程图
系统的修改部门流程图如图4-10所示,当部门号不存在,操作结束,当部门号有效,将修改的详细信息填入界面提示的位置,当输入为空时,点击确定后系统提示出错,重新回到输入界面,具体如下所示
4-10修改部门流程图
第五章程序编码
5.1在主界面里面的代码
AnsiStringStr_id,Str_code,Str_name,Str_tablecode,Str_SQL;
Str_id=Edt_id->Text;
Str_code=Edt_code->Text;
if(Str_id=="")
{
ShowMessage(AnsiString("账号不能为空!
"));
return;
}
if(Str_code=="")
{
ShowMessage(AnsiString("密码不能为空!
"));
return;
}
Str_SQL="select*from登录where员工号='"+Str_id+"'";
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(Str_SQL);
ADOQuery1->Open();
Str_tablecode=ADOQuery1->FieldByName("密码")->AsString;
Str_tablecode=TrimRight(Str_tablecode);
if(Str_tablecode!
="")
{
if(Str_tablecode!
=Str_code)
ShowMessage(AnsiString("密码输入有误!
"));
else
{
if((!
RBn_manager->Checked)&&(!
RBn_serveror->Checked))
{
ShowMessage(AnsiString("请选择您的职位!
"));
return;
}
if((RBn_manager->Checked)&&(Str_id[1]!
='b'))
{
ShowMessage(AnsiString("您输入的职称有误!
"));
return;
}
Str_SQL="select*from员工where员工号='"+Str_id+"'";
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Add(Str_SQL);
ADOQuery2->Open();
Str_name=ADOQuery2->FieldByName("员工姓名")->AsString;
Str_name=TrimRight(Str_name);
Form2->Show();
Form2->Caption="欢迎"+Str_name+"进入酒店管理系统!
";
if(Str_id[1]=='c')
{
Form2->SBn_2->Enabled=true;
Form2->SBn_3->Enabled=true;
}
if(Str_id[1]=='f')
Form2->SBn_4->Enabled=true;
if(Str_id[1]=='h')
{
Form2->SBn_1->Enabled=true;
Form2->SBn_2->Enabled=true;
Form2->SBn_5->Enabled=true;
Form2->SBn_6->Enabled=true;
}
if(Str_id[1]=='s')
Form2->SBn_6->Enabled=true;
if(Str_id[1]=='b')
{
Form2->SBn_1->Enabled=true;
Form2->SBn_2->Enabled=true;
Form2->SBn_3->Enabled=true;
Form2->SBn_4->Enabled=true;
Form2->SBn_5->Enabled=true;
Form2->SBn_6->Enabled=true;
}
Form2->SBn_7->Enabled=true;
Form2->SBn_8->Enabled=true;
}
}
else
ShowMessage(AnsiString("不存在这样的员工,请查询后重新输入!
")
5.2系统设置界面代码如下
在用户修改登录信息模块代码中增加,修改模块如下:
Str_name=Edt_mcode->Text;
Str_phone=Edt_mok->Text;
if(Str_name==""||Str_phone=="")
{
if(tag==1)
ShowMessage("请输入增加员工的密码!
");
elseif(tag==2)
ShowMessage("请输入修改员工的密码!
");
return;
}
if(Str_phone==Str_name)
{
Form1->ADOQuery1->Close();
Form1->ADOQuery1->SQL->Clear();
if(tag==2)
{
Str_SQL="update登录set密码='"+Str_name+"'where员工号='"+Str_id+"'";
Form1->ADOQuery1->SQL->Add(Str_SQL);
Form1->ADOQuery1->ExecSQL();
ShowMessage("修改成功!
");
}
elseif(tag==1)
{
Str_SQL="insertinto登录values('"+Str_id+"','"+Str_name+"')";
Form1->ADOQuery1->SQL->Add(Str_SQL);
Form1->ADOQuery1->ExecSQL();
ShowMessage("添加成功!
");
}
Panel5->Enabled=false;
Edt_mid->Clear();
Edt_mcode->Clear();
Edt_mok->Clear();
tag=0;
}
else
{
ShowMessage("输入的两次密码不一样!
");
return;
}
第六章功能完善
6.1用户登录界面如下:
这个是用户登录界面,在这个界面中,要实现的功能是:
用户输入帐号和密码然后选择自己的工种,进入登录。
其操作信息的思路如下:
点击登录,首先判断输入的帐号是否为空,如果为空,则提示一下信息1;如果不为空,再接下来判断密码是否为空,如果密码为空,提示信息2;再接下来判断在table这张表中是否存在该用户的登录信息。
如果不存在,提示信息3;如果存在,在判断密码是否正确,如果密码不正确,则提示信息4;如果密码正确,则再判断是否选择了职称,如果没有选择职称,则提示信息5;接下来再判断选择的职位是否正确,如果是员工,点击了经理的工种,则提示信息6;当输入了正确的职位,也就是选择了正确的工种。
则才能登录进去。
123
456
6.2接下来进入系统设置界面:
选项卡,包括两项操作:
部门资料设置,登录资料操作。
首先输入部门号,再判断部门号是否存在,如果输入为空,点击确定的时候
提示1;如果输入不为空,点击确定之后,就可以选择要进行的操作。
如果选择删除,则判断这个部门号是否存在,如果不存在,则提示2,信息和
上面相同,如果存在,则提示信息3;如果选择修改,则判断这个部门号是否存在,如果不存在,则提示信息同2,如果存在,则在修改区部分会由不可操作变为可操作。
提示输入要修改的内容。
1234
当输入一个操作的时候,判断条件同上,如果通过,则在输入主管的时候如果主
管不存在,提示信息4;如果存在,点击确定提示在用户登录界面,提示查询,
删除情况和上述类似。
在修改情况中:
如果密码没有输入,则提示1;如果两次
输入的内容不一致,则提示2;通过则提示3
123
添加的时候,提示同上所述。
课程总结
刚开始接触C++Builder还是有困难的,尤其是里面的组建的各个用法,好多需要从网络上搜索到控件,然后在帮助里查询方法。
在界面设计的时候,代码的考虑情况尤其的多,很容易迷惑,里面几转周折才想到了尽可能多的情况。
但是还是有很多情况没有考虑的,这在以后的学习中还是要多加练习。
从需求分析阶段不断地搜索资料,想充分了解自己所做的课题在客户或者公司中的需求,由于《数据库系统》这门课刚结束,又是首次做系统开发,画数据流图等软件流程做起来很生疏,在完成设计的过程中,需要不断的翻阅资料和老师课上所的讲义,根据数据流图,不断地修改需求,总算整了一个像样点的需求分析。
经过不断地测试,不断地改进,还是发现了不少问题,并解决。
由于时间比较仓促,而且设计人员比较少,本系统的很多功能没能够得到实现,还有就是能够实现的的功能也还有许多地方有很大的改善空间,对于系统的不完善之处是由于设计者的水平有限,还需要不断地的学习,积累开发系统的经验,提高设计能力。
学习体会
通过这个系统的设计,我发现如果要设计一个完善的系统不但需要考虑完善,而且要好好设计界面。
在界面中更好的设计出令客户满意的系统。
初次做这样的系统,真是困难重重,深刻体会到做一个软件,里面需要的很多东西我们没有接触过,去图书馆找书的时候发现,我们所学的仅仅是皮毛,还有很多东西需要我们去发掘,就算是借一本书看完,还是会发现有很多东西没有吃透,这就需要我们不断的实践,不断地发现问题思考问题。
刚开始做课程设计,一头雾水,没有任何的头绪,不知从何处下手,很感谢老师和同学的帮忙,让我明白了,我是在做什么,怎么做,如何
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 选课