B
UserScxt
varchar(lO)
□
Remark
varchar[5O)
K-2012&2MLMUV_..anage-dbc.User
UserID
UserPassvjord
UserSort
Remark
boss
zxiazxz
1
===
user
zxmzxz
0
=='=
第五章详细设计
5.1用户登录功能
建立一个窗口,从公共控件中添加label,button控件到窗口,编辑按钮程序,插入图片;连接数据库User表对管理员输入的信息进行验证,判断是否可以通过;调用getNumber()函数随机生成验证码,保证安全性。
关于验证码,每次调用getNumber()函数都会生成一个新的验证码,应当把验证码保存到Session中需要比较时再拿出来,注意验证码不分大小写。
相关运行截图如下:
5-1-1登陆界面
5-1-2登录验证
5-1-3登陆出错
5-1-4登陆成功
5.2客房类型管理功能
建立一个窗口,从公共控件中添加label,button,textbox,GirdView等控件到窗口,编辑按钮程序,插入图片;GirdView需要配置数据源,对数据库中
的内容进行显示
对客房类型的的信息进行编辑,包括类型(普通,贫民,豪华)客房面积
(30,60,90)额定床数(1,2,3,4)额定人数(1,2,3,4)价钱(50,500)电视(有,无)电话(有,无)空调(有,无)卫生间(有,无)这些属性,对客房类型进行增删改查功能操作。
关于GirdView控件事件的说明
被单击时发生。
它们分别在网格控件处理分页操作之前和之后激发。
RowCancelingEdit在一个处于编辑模式的行的Cancel按钮被单击,但是在该行退出编辑模式之前发生。
RowComma单击一个按钮时发生。
RowCreated创建一行时发生。
RowDataBound—个数据行绑定到数据时发生。
RowDeleting,RowDeleted这两个事件都是在一行的Delete按钮被单击时发生。
它们分别在该网格控件删除该行之前和之后激发。
RowEditing当一行的Edit按钮被单击时,但是在该控件进入编辑模式之前发生。
RowUpdating,RowUpdated这两个事件都是在一行的Update按钮被单击时发生。
它们分别在该网格控件更新该行之前和之后激发。
SelectedIndexChanging,SelectedIndexChanged这两个事件都是在一行的Select按钮被单击时发生。
它们分别在该网格控件处理选择操作之前和之后激发。
Sorting,Sorted这两个事件都是在对一个列进行排序的超链接被
单击时发生。
它们分别在网格控件处理排序操作之前和之后激发相关运行截图如下:
5-2-1客房类型管理界面
客朗理菅理客龍谡西床查闻畜尸查询呑户入住客户箔葺月户菅理系矩帮曲退出护统
电■视
&U
3
3
5X.UUIMJ
无
30
1
L
5D.0000
无
无
誉通间
9D
4
3
他nnon
5-2-2客房类型管理添加功能界面
5.3客房管理功能
建立一个窗口,从公共控件中添加label,button,textbox,GirdView等控件
到窗口,编辑按钮程序,插入图片;GirdView需要配置数据源,对数据库中的
内容进行显示
对客房的的信息进行编辑,包括房间号码客房面积(30,60,90)额定人数
(1,2,3,4)房间楼层(一楼,二楼,三楼)额定床数这些属性,对客房进行增删改查等功能操作。
关于ListBox控件
首先来说控件的属性,
(1)ltems:
使用此属性获取列表控件项的属性。
此属性可用于确定列表控件中的选定项。
添加items时既可以设计时静态添加,也可以在代码中动态添加。
如果不想显示设计时添加的items,可以在代码中添加
this.listBox1.ltems.Clear();只显示在代码中添加的选项。
(2)Selectedltems:
获取包含ListBox中当前选定项的集合。
(3)SelectioModes:
获取或设置在ListBox中选择项所用的方法。
一共有四个值可选;默认为:
SelectionMode.One,只能选中一个;属性值为none时不能选择;当属性MultiExtended时,按下Shift键的同时单击鼠标或者同时Shift键和箭头键之一(向上键、向下键、向左键和向右键),会将选定内容从前一选定项扩展到当前项。
按Ctrl键的同时单击鼠标将选择或撤消选择列表中的某项;当该属性
设置为MultiSimple时,鼠标单击或按空格键将选择或撤消选择列表中的某项。
接下来说一哈数据绑定,通常数据都是可变的,所以说就需要数据绑定。
数据绑定有几种,一种就是绑定从数据库中获取的DataTable或者是DataSet;另外一
种就是自定义一个类,绑定自定义类中的数据。
c#中的数据绑定与ASP.NET中的数据绑定还有一点区别,ASP.NET中绑定数据后还要调用一个DataBind方法,而在c#中就不需要。
而DisplayMember获取或设置要显示的属性。
相关运行截图如下
5-3-1客房类型管理添加功能界面
5.4客房查询与客户入住功能
建立一个窗口,从公共控件中添加label,button,textbox,listbox,GirdView等控件到窗口,编辑按钮程序,插入图片;GirdView需要配置数据源,对数据
库中的内容进行显示输入查询条件,包括的属性有房间号码房间类型房间楼底额定床数额定人数实际人数其他条件,与数据库的数据进行比对,查找该客房信息。
数据库提供房间的信息,根据住户需求,判断用户是否入住;若选择入住,则进行登记,跳转到客户入住界面。
客户入住的功能实现与客房查询基本相似,客户入住是对住户的基本信息进行记录。
将客户的基本信息包括身份账号,姓名,性别,籍贯,以及入住的时间,关于入住时间这里要添加一个日历的控件是一个传统的单月份日历,用户可以使用该日历查看和选择日期。
Calendar控件提供的功能:
1、显示一个日历,该日历会显示一个月份
2、允许用户选择日期、周、日。
3、允许用户选择一定范围内的日期。
4、允许用户移到下一月或上一月。
5、已编程的方式控件选定日期的显示。
相关运行截图如下
害样樊梨菅埠吝序訓吝房奄询咅户査诅吝户入件咅户勞韋用户訓系纯帮朋退出奈纯・日x
5.5客户查询和客户结算功能
建立一个窗口,从公共控件中添加label,button,textbox,listbox,GirdView等控件到窗口,编辑按钮程序,插入图片;GirdView需要配置数据源,输入身
份证号和姓名,从数据库中查找客户;点击结账按钮,确认用户是否结账,入已经结账则显示确认的信息;若在住的人选择结账,即跳转到客户结算界面,输
入应收金额,确认是否对住户打折,这里面包括VIP等节假日的因素不便多说,
点击结账按钮确认用户结账相关运行截图如下
■黛馆■理頼•晦嗟奘呈苜理1-:
邮事曲理]--誉轴團•陌闵雪切■陷底曲•ES«M]-[«_L口j」:
富
石恳最琲圣由管聲齊庙杳询¥,曲谊咅户入佐言轴算用F埠钳熬肋占出奈纯
巻戸賀滔I亘I三□「
输丿亘询余斗
勇怕证岳社电ffiB'
5-5-2已经结账的客户界面
9*真7B趣轍陪降型魂晤罢昔理I章能理1腐腊应D-EBRWJ-MH»SI【巨”
睿唐魁!
誉理存房百理吾馬查迥客户直询前入住喜户結貝用户昔理空统帮助卿毯-艸富
輔苫.游件
躺证号如魚I辜舌丨
查—
5-5-3需要结账的用户界面
5-5-5已结算客户界面
5-6用户管理功能
建立一个窗口,从公共控件中添加label,button,textbox,listbox,GirdView等控件到窗口,编辑按钮程序,插入图片;GirdView需要配置数据源,编辑新
用户信息,添加新的管理员,进行保存,新建立的用户将添加到数据库中,可以使用新用户进行登录
相关运行截图如下
5-6-1用户管理功能界面
小结
时间非常快就过去了,这两个星期不敢说自己有多大的进步,获得了多少知识,但起码是了解了项目开发的部分过程。
虽说上过数据库上过管理信息系统等相关的课程,但是没有亲身经历过相关的设计工作细节。
这次实习证实提供了一个很好的机会。
通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们前边所学到的仅仅是皮毛,还有很多需要我们掌握的东西我们根本不知道。
同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。
在这个过程中我们将深刻理解所学知识,同时也可以学到不少很实用的东西。
从各种文档
的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。
亲身体验了一回系统的设计开发过程。
很多东西书上写的很清楚,貌似看着也很简单,思路非常清晰。
但真正需要自己想办法去设计一个系统的时候才发现其中的难度。
经常做到后面突然就发现自己一开始的设计有问题,然后又回去翻工,在各种反
复中不断完善自己的想法。
我想有这样的问题不止我一个,事后想想是一开始
着手做的时候下手过于轻快,或者说是根本不了解自己要做的这个系统是给谁用的。
因为没有事先做过仔细的用户调查,不知道整个业务的流程,也不知道用户需要什么功能就忙着开发,这是作为设计开发人员需要特别警惕避免的,不然会给后来的工作带来很大的麻烦,甚至可能会需要全盘推倒重来。
所以以后的课程设计要特别注意这一块的设计。
按照要求,我们做的是宾馆管理。
说实话,我
对这个是一无所知的,么一个流程。
盲目开始设计的下场我已经尝过了,结果就是出来一个四不像的设计方案,没有什么实际用处。
没有前期的调查,仅从指导书上那几条要求着手是不够的。
在需求分析过程中,我通过上网查资料,去图
书馆查阅相关资料,结合我们的生活经验,根据可行性研究的结果和客户的要求,分析现有情况及问题,由于忘记了一些C#语言的规范使得在调试过程中一些错误没有发现,通过这次课程设计,我对调试掌握得更加熟练了,意识到了程序语言的规范性以及我们在编程时要有严谨的态度,同时在写程序时如有一定量的注释,既增加了程序的可读性,也可以使自己在读程序时更容易。
我们学习并应
用了SQL语言,对数据库的创建、修改、删除方法有了一定的了解,通过导入表和删除表、更改表学会了对于表的一些操作,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
很多事情不是想
象中的那么简单的,它涉及到的各种实体、属性、数据流程、数据处理等等。
很多时候感觉后面的设计根本无法继续,感觉像是被前面做的各种图限制了。
在做关系模型转换的时候碰到有些实体即可以认为是实体又可以作为属性,为了避免
冗余,尽量按照属性处理了。
物理结构设计基本没有碰到问题,这一块和安全
性、完整性不觉就会在物理结构设计中添加一些安全设置:
主键约束、check约
束、default定义等。
最后才做索引的部分,对一些比较经常使用搜索的列,外键上建立索引,这样可以明显加快检索的速度,最后别忘记重要的安全性设置,限制用户访问权限,新建用户并和数据库用户做相应的映射。
不管做什么,我
们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来她并没有你以前觉得的那样,自己
也是可以的。
如果没有自信,没有目标,没有信心就不可能把事情做好,当其他人都在迷茫的时候,自己一定要坚信目标,大学毕业出去即面临找工作,从学习这个专业,到以后从事这方面的工作都需要不断地去学习去实践,这次实践可以
给我们敲一个警钟,我们面临毕业,面临择业,需要这些实践经验,在困难面前要勇于尝试,这是这次课程设计给我的最大感想!
以上基本是这次实习的体会
了,设计进行的非常艰难,编码非常不容易,才发现做一个项目最重要的不在于如何实现,而是实现之前的需求分析和模块设计。
创新很难,有些流行的系统其实现并不难,难的在于对市场的分析和准确定位。
设计,是一个任重道远的过程。
但在做课程设计的过程中也遇到很多问题,一开始时其中最大的问题是不知道用哪种编译工具,后来选择了MicrosoftVisualStudio,在编写程序时,编写
程序起来也有点困难,但是也越来越顺利了。
经过调试后终于把自已想到实现的功能一步步实现了,通过这次课程设计使我收获了好多,熟悉了C#的运用,还
复习了数据库相关语句的编写。
此次课程设计让我感受颇多:
做一个数据库其实是一件很有趣的事情。
想到自己可以创建一个小型的数据库系统,有点学习后的满足感。
数据库的建立并非难事,难点在于数据库的连接和编程语言的选择。
C#勺功能很强大,这也是我以后需要学习的课程,于是我毅然选择了它。
再就是建立数据库系统的步骤,我的经验就是要先总体规划,再局部整理。
先做好总的界面,再通过该界面的布置一步一步实现其功能!
同时我体会到:
熟练的编程能力,对知识运用的强烈渴望及其创新和团队的合作精神设做好一个大型数据库的基础。
因此通过此次课程设计我明显感觉到自身的不足,并希望以后能更加用心地运用所学知识和学习新的知识。
参考文献
[1]C#程序设计教程电力出版社2009
[2].施平安清华大学出版社,2005
[3]杨文龙,软件工程,电子工业出版社,1997
[4]数据库系统概论高等教育出版社2006
附录
C#语