学生宿舍管理系统C#连接到数据库.docx
- 文档编号:10006738
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:22
- 大小:953.95KB
学生宿舍管理系统C#连接到数据库.docx
《学生宿舍管理系统C#连接到数据库.docx》由会员分享,可在线阅读,更多相关《学生宿舍管理系统C#连接到数据库.docx(22页珍藏版)》请在冰豆网上搜索。
学生宿舍管理系统C#连接到数据库
数据库应用系统综合设计
题目:
学生宿舍管理系统
专业:
网络工程
**********
学号:
***********
班级:
2015级2班
********
2017年6月
1需求分析
随着计算机的发展,网络信息化管理系统已经用于各行各业。
但是目前大多数的高校仍然采取人工管理的方式,人工管理只适用于小型的学校,并且存在很多弊端。
人工管理管理存在效率差、数据不方便查阅、容易失误、耗费很多人力物力等问题。
高校学生宿舍是学生生活休息、学习、交流的场所,对大学生的身心健康有着直接的影响。
随着计算机的发展与网络的推广,基于计算机网络代替人工管理学生宿舍的方式得到了恨大的重视。
人工管理学生宿舍对于小型学校而言还不存在太大的问题,但是对于大型学校来说这种方式产生的矛盾日益突出。
特别是在学生信息量很多的情况下查询某个学生的宿舍信息,需要一条一条的去找,这就显得很麻烦,效率相当低。
反之如果采用计算机网络化的管理,这将会大大缩短工作时间,提高效率,而且利用计算技术对大量数据的保存也十分的便捷。
采取这种方式与人工管理相比还可以节约很多资金,因此,开发一学生宿舍管理系统十分有必要。
目前,计算机管理信息系统逐渐普及,许多高校教学管理系统得到广泛应用,学生宿舍管理系统是管理系统的一种,是高校学生宿舍结合网络技术的应用实例。
然而,针对高校学生宿舍而设计的管理系统十分少见,大多数高校的学生宿舍管理仍处于人工管理阶段,从管理角度来讲,有一定的缺陷和漏洞,手工操作使得宿舍管理员劳动力大,管理不及时。
随着学校的信息化发展,人工管理方式必将会被淘汰。
针对学校的实际情况,设计一套对学生宿舍管理信息系统十分必要。
所设计的这套管理系统将提高宿舍管理部门的工作效率;充分利用资源;减少不必要的人力;减少学校的财政支出;方便宿舍管理部门的人员全面实时的掌握学生学生住宿情况等目的;为宿舍管理部门,开发设计专用系统------学生宿舍管理系统,来进行管理学校的学生宿舍信息,使学生宿舍信息实现标准化的管理和规范化的制度十分必要。
1.1用户需求的获取
学生宿舍管理是当代学校中不可或缺的组成部分,在信息化飞速发展的今天,它的出现已经成了一种必然,本文件从宿舍管理系统的历史和现状进行分析,以求本系统的设计具有实际的意义,并得到它在未来的发展,从而给谁时代的脚步,做出一个高质量的、安全性好的的宿舍管理系统、使其不仅能满足学校现在的需要,也能满足将来一段时间的需要。
1.2系统的功能结构
系统要求用户必须输入正确的用户名和密码才能进入系统。
管理员与用户登陆的账户名及密码不同,登陆成功后具有不同的权限。
学生宿舍管理系统在实现上应该具有如下功能:
1.系统应该提供学生住宿情况的基本登记。
(管理员和用户)
2.系统应提供人员来访登记及结束访问的详细登记。
(管理员)
3.系统应提供查询功能。
对学生的信息、宿舍信息、寝室信息、班级信息的查询(管理员)
4.出入管理。
对外来的人员以及贵重的物品进行登记(管理员)
5.系统应提供增加、删除、修改用户帐户的功能。
(管理员)
6.系统还应具有添加、修改、删除学生及员工基本信息的功能。
(管理员)
7.对用户的管理(管理员)
8.退出系统(管理员与用户)
2系统开发环境及语言
2.1主要开发技术及所需工具简介
数据库技术方面:
采用MycrosoftSqlSever2012;模式方面:
采用C/S模式;开发工具方面:
采用C#。
模式采用C/S模式C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。
对应的优点就是客户端响应速度快。
2.1.1C#
c#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
C#是面向对象的编程语言。
它使得程序员可以快速地编写各种基于MICROSOFT.NET平台的应用程序,MICROSOFT.NET提供了一系列的工具和服务来最大程度地开发利用计算与通讯领域。
C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
2.1.2sqlserver2012
全新一代SQLServer2012为用户带来更多全新体验,,独特的产品优势定能使用户更加获益良多。
企业版是全功能版本,而其它两个版本则分别面向工作组和中小企业,所支持的机器规模和扩展数据库功能都不一样,价格方面是根据处理器核心数量而定。
3概念结构设计
图
1-1
图1-2
4逻辑结构设计
图1-3
学生信息表1-1
姓名
学号
性别
班级
宿舍号
宿舍楼号
系别
赵恒旭
100
男
计科15.2
309
25
计科
范力川
10056
男
计科15.2
309
25
计科
唐智
1212
男
计科15.2
309
25
计科
刘梦昕
153
男
计科15.2
309
25
计科
5系统功能功能设计与实现
5.1学生宿舍信息
图1-4
5.2班级信息管理
图1-6
5.3宿舍信息管理
图1-5
5.4系别信息管理
图1-7
5.5学生入住信息登记
图1-8
5.7贵重物品登记
图1-10
5.6外来人员登记
图1-9
5.8用户管理
图1-11
6程序调试
在设计系统的过程中,存在一些错误是必然的。
对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。
但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。
这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
6.1程序的测试
6.1.1测试的重要性及目的
(1)测试的重要性
软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。
近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。
采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。
测试是所有工程学科的基本组成单元,是软件开发的重要部分。
自有程序设计的那天起测试就一直伴随着。
统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。
而在软件开发的总成本中,用在测试上的开销要占30%到50%。
如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括:
①认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感;
②以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定;
③测试工作枯燥无味,不能引起人们的兴趣;
④测试工作是艰苦而细致的工作;
⑤对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。
这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。
(2)测试的目的
如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。
①软件测试是为了发现错误而执行程序的过程;
②测试是为了证明程序有错,而不是证明程序无错误;
③一个好的测试用例是在于它能发现至今未发现的错误;
④一个成功的测试是发现了至今未发现的错误的测试。
这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。
但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。
首先,测试并不仅仅是为了要找出错误。
通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。
同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。
其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。
6.1.2测试的步骤
与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。
大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。
因此,大型软件系统的测试基本上由下述几个步骤组成:
(1)模块测试在这个测试步骤中所发现的往往是编码和详细设计的错误。
(2)系统测试在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。
(3)验收测试在这个测试步骤中发现的往往是系统需求说明书中的错误。
6.1.3测试的主要内容
为了保证测试的质量,将测试过程分成几个阶段,即:
代码审查、单元测试、集成测试、确认测试和系统测试。
(1)单元测试
单元测试集中在检查软件设计的最小单位—模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。
(2)集成测试
集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。
如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。
(3)确认测试
确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。
经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。
(4)系统测试
软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。
包括恢复测试、安全测试、强度测试和性能测试等。
单独对系统的测试主要从以下几方面入手:
①功能测试:
测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。
功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
②强度测试及性能测试:
测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
③安全测试:
验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。
针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。
经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束。
6.2总结
系统完成后,进行了一系列的调试与测试,主要是针对系统功能是否按照设计要求正常工作,以及系统对大量数据的处理能力。
通过调试,系统功能都能正常工作,但调整了分页中显示的数据条数,修改了部分组件的显示位置,以达到一定美化效果;同时在对大量数据的处理方面,信息录入功能需要一条一条的录入,存在工作量较大的问题,其他功能不存在问题。
通过调试,用户管理功能发现设计上存在不完善的设计考虑,需要进一步完善,此外需要利用其他途径实现SQL与电子表之间的转换。
通过系统调试后,经过指导老师建议,存在以下问题可待优化
1.进一步完善用户管理功能的设计;
2.寻找其他途径实现SQL与电子表之间的转换;
3.可以多建宿舍管理的其他子系统,如宿舍水电收费系统,宿舍人员来访考勤系统,宿舍物件维修管理系统等,进行组合使用.
7结论
通过自己不懈地学习C#的基本知识和开发技巧,以及系统后期的调试与完善,实现了学生宿舍信息管理系统的最基本的功能:
1.实现了信息管理系统的查询功能,包括了快速查询功能和分类查询功能;
2.实现了信息管理系统的信息录入,信息修改和信息删除功能;
3.信息删除功能可批量删除信息,但信息录入功能未能做到批量录入,有点不足;
本次设计对系统进行了详细的需求分析,对开发所需要的主要技术做了阐述。
同时设计并实现了一个简单的学生宿舍管理系统。
该系统基于C/S模式开发,使用C#实现前后台的数据交互,后台选用SQLSever2012作为数据库服务器。
系统经过调试和试运行,能够正常运行。
但是因为初次开发,系统中难免会存在各种问题,有待进一步完善。
学生宿舍是每一位在校同学学习、生活和交流的地方,良好的管理体系对学校和同学都至关重要。
该系统的研发,使后勤和管理人员脱离了人工操作阶段,适应了现代化物管的需要,减轻了工作人员繁重而冗长的工作量。
同时也方便了数据的存储,增加了安全性。
本设计也锻炼了我综合运用以前所学知识的能力和实际动手能力。
附录
namespaceStuApart
{
partialclasslogin
{
///
///Requireddesignervariable.
///
privateSystem.ComponentModel.IContainercomponents=null;
///
///Cleanupanyresourcesbeingused.
///
///
protectedoverridevoidDispose(booldisposing)
{
if(disposing&&(components!
=null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#regionWindowsFormDesignergeneratedcode
///
///RequiredmethodforDesignersupport-donotmodify
///thecontentsofthismethodwiththecodeeditor.
///
privatevoidInitializeComponent()
{
this.label1=newSystem.Windows.Forms.Label();
this.textBox1=newSystem.Windows.Forms.TextBox();
this.label2=newSystem.Windows.Forms.Label();
this.textBox2=newSystem.Windows.Forms.TextBox();
this.button1=newSystem.Windows.Forms.Button();
this.button2=newSystem.Windows.Forms.Button();
this.button3=newSystem.Windows.Forms.Button();
this.SuspendLayout();
//
//label1
//
this.label1.AutoSize=true;
this.label1.Location=newSystem.Drawing.Point(46,54);
this.label1.Name="label1";
this.label1.Size=newSystem.Drawing.Size(41,12);
this.label1.TabIndex=0;
this.label1.Text="用户名";
//
//textBox1
//
this.textBox1.Location=newSystem.Drawing.Point(115,51);
this.textBox1.Name="textBox1";
this.textBox1.Size=newSystem.Drawing.Size(118,21);
this.textBox1.TabIndex=1;
//
//label2
//
this.label2.AutoSize=true;
this.label2.Location=newSystem.Drawing.Point(48,95);
this.label2.Name="label2";
this.label2.Size=newSystem.Drawing.Size(29,12);
this.label2.TabIndex=2;
this.label2.Text="密码";
//
//textBox2
//
this.textBox2.Location=newSystem.Drawing.Point(115,92);
this.textBox2.Name="textBox2";
this.textBox2.Size=newSystem.Drawing.Size(118,21);
this.textBox2.TabIndex=3;
//
//button1
//
this.button1.Location=newSystem.Drawing.Point(48,155);
this.button1.Name="button1";
this.button1.Size=newSystem.Drawing.Size(73,23);
this.button1.TabIndex=4;
this.button1.Text="管理员登录";
this.button1.UseVisualStyleBackColor=true;
this.button1.Click+=newSystem.EventHandler(this.button1_Click);
//
//button2
//
this.button2.Location=newSystem.Drawing.Point(136,154);
this.button2.Name="button2";
this.button2.Size=newSystem.Drawing.Size(61,23);
this.button2.TabIndex=5;
this.button2.Text="学生登录";
this.button2.UseVisualStyleBackColor=true;
this.button2.Click+=newSystem.EventHandler(this.button2_Click);
//
//button3
//
this.button3.Location=newSystem.Drawing.Point(214,154);
this.button3.Name="button3";
this.button3.Size=newSystem.Drawing.Size(75,23);
this.button3.TabIndex=6;
this.button3.Text="重置";
this.button3.UseVisualStyleBackColor=true;
this.button3.Click+=newSystem.EventHandler(this.button3_Click);
//
//login
//
this.AutoScaleDimensions=newSystem.Drawing.SizeF(6F,12F);
this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize=newSystem.Drawing.Size(342,224);
this.Controls.Add(this.button3);
this.Controls.Add(this.button2);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.label2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.label1);
this.Name="login";
this.Text="登录系统";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
privateSystem.Windows.Forms.Labellabel1;
privateSystem.Windows.Forms.TextBoxtextBox1;
privateSystem.Windows.Forms.Labellabel2;
privateSystem.Windows.Forms.TextBoxtextBox2;
privateSystem.Windows.Forms.Buttonbutton1;
privateSystem.Windows.Forms.Buttonbutton2;
privateSystem.Windows.Forms.Buttonbutton3;
}
}
用户手册
1-2登录方式信息表
字段名称
数据类型
说明
admin
admin
刘梦昕
123
文本
文本
文本
数字
管理员
密码
用户名
密码
管理员方式登陆进去
图1-12
以用户方式登陆
图1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生宿舍 管理 系统 C# 连接 数据库
![提示](https://static.bdocx.com/images/bang_tan.gif)