沈阳理工大学高等职业技术学院学士学位论文
整个C#的类模型是建立在.NET虚拟对象系统(Visual Object System,VOS)的基础之上,其对象模型是.NET基础架构的一部分,而不再是其本身的组成部分。在下面将会谈到,这样做的另一个好处是兼容性。
借助于从VB中得来的丰富的RAD经验,C#具备了良好的开发环境。结合自身强大的面向对象功能,C#使得开发人员的生产效率得到极大的提高。对于公司而言,软件开发周期的缩短将能使它们更好应付网络经济的竞争。在功能与效率的杠杆上人们终于找到了支点。
三、与Web的紧密结合
.NET中新的应用程序开发模型意味着越来越多的解决方案需要与Web标准相统一,例如超文本标记语言(Hypertext Markup Language,HTML)和XML。由于历史的原因,现存的一些开发工具不能与Web紧密地结合。SOAP的使用使得C#克服了这一缺陷,大规模深层次的分布式开发从此成为可能。
由于有了Web服务框架的帮助,对程序员来说,网络服务看起来就象是C#的本地对象。程序员们能够利用他们已有的面向对象的知识与技巧开发Web服务。仅需要使用简单的C#语言结构,C#组件将能够方便地为Web服务,并允许它们通过Internet被运行在任何操作系统上的任何语言所调用。举个例子,XML已经成为网络中数据结构传递的标准,为了提高效率,C#允许直接将XML数据映射成为结构。这样就可以有效的处理各种数据。
四、完整的安全性与错误处理
语言的安全性与错误处理能力,是衡量一种语言是否优秀的重要依据。任何人都会犯错误,即使是最熟练的程序员也不例外:忘记变量的初始化,对不属于自己管理范围的内存空间进行修改,......。这些错误常常产生难以预见的后果。一旦这样的软件被投入使用,寻找与改正这些简单错误的代价将会是让人无法承受的。C#的先进设计思想可以消除软件开发中的许多常见错误,并提供了包括类型安全在内的完整的安全性能。为了减少开发中的错误,C#会帮助开发者通过更少的代码完成相同的功能,这不但减轻了编程人员的工作量,同时更有效地避免了错误的发生。
26
沈阳理工大学高等职业技术学院学士学位论文
.NET运行库提供了代码访问安全特性,它允许管理员和用户根据代码的ID来配置安全等级。在缺省情况下,从Internet和Intranet下载的代码都不允许访问任何本地文件和资源。比方说,一个在网络上的共享目录中运行的程序,如果它要访问本地的一些资源,那么异常将被触发,它将会无情地被异常扔出去,若拷贝到本地硬盘上运行则一切正常。内存管理中的垃圾收集机制减轻了开发人员对内存管理的负担。.NET平台提供的垃圾收集器(Garbage Collection,GC)将负责资源的释放与对象撤销时的内存清理工作。
变量是类型安全的。C#中不能使用未初始化的变量,对象的成员变量由编译器负责将其置为零,当局部变量未经初始化而被使用时,编译器将做出提醒;C#不支持不安全的指向,不能将整数指向引用类型,例如对象,当进行下行指向时,C#将自动验证指向的有效性;C#中提供了边界检查与溢出检查功能。
五、版本处理技术
C#提供内置的版本支持来减少开发费用,使用C#将会使开发人员更加轻易地开发和维护各种商业用户。
升级软件系统中的组件(模块)是一件容易产生错误的工作。在代码修改过程中可能对现存的软件产生影响,很有可能导致程序的崩溃。为了帮助开发人员处理这些问题,C#在语言中内置了版本控制功能。例如:函数重载必须被显式声明,而不会象在C++或java中经常发生的那样不经意地被进行,这可以防止代码级错误和保留版本化的特性。另一个相关的特性是接口和接口继承的支持。这些特性可以保证复杂的软件可以被方便地开发和升级。
六、灵活性和兼容性
在简化语法的同时,C#并没有失去灵活性。尽管它不是一种无限制语言,比如:它不能用来开发硬件驱动程序,在默认的状态下没有指针等等,但是,在学习过程中你将发现,它仍然是那样的灵巧。
如果需要,C#允许你将某些类或者类的某些方法声明为非安全的。这样一来,你将能够使用指针、结构和静态数组,并且调用这些非安全代码不会带来任何其它的问题。此外,它还提供了一个另外的东西(这样的称呼多少有些不敬)来模拟指针的功能--delegates,代表。再举一个例子:C#不支持类的多继承,但是通过对接口的继承,你将获得这一功能。
27
沈阳理工大学高等职业技术学院学士学位论文
4.2 软件开发环境
软件开发环境(Software Development Environment)是指在基本硬件和宿主软件的基础上,为支持系统软件和应用软件的工程化开发和维护而使用的一组软件,简称SDE。它由软件工具和环境集成机制构成,前者用以支持软件开发的相关过程、活动和任务,后者为工具集成和软件的开发、维护及管理提供统一的支持。
开发本系统所用的软件工具集合为, SQL Server数据库开发工具、Visual Studio2008 Photo Shop图片处理工具等。
4.3 系统功能实现
4.3.1 管理员登录
在管理员登录中,主要实现的是对管理员合法性的验证。管理员在此输入其姓名、证件号并通过软键盘输入密码,经过与后台数据库中的记录进行相应的对比确定其为合法用户,管理员才得到进入系统的权限,如图4.1所示:
图 4.1 管理员登录界面
功能实现:
1.由于用户在登录系统时,可能会有某些信息忘记输入,这时可能会出现错误。本系统通过获取用户信息框中的信息并进行判断,如果有未输入的信息,则会警告用户并提示用户将信息输入完整。 4.3.2 档案管理
在这个功能模块中,管理员可以对员工的基本信息进行查看。如果有必要,还可以查看某个员工的详细信息以此来了解此员工的职位及工资。档案管理窗体用于管理所有员工的档案信息,在档案管理窗体中可以添加、修改、删除和查找员工信息,双击某条
28
沈阳理工大学高等职业技术学院学士学位论文
员工信息,可以打开修改员工档案的窗体,在此窗体中可以对信息进行修改并显示员工的详细信息。如图4.2所示。
图 4.2 档案管理窗体
功能实现:
1.档案管理窗体加载时,检索员工档案表员工档案信息表中所有的信息,并将其绑定到DataGridView控件上,同时设置TreeView控件的节点图标以及选择后的节点图标,并且动态的将所有的部门名称添加到TreeView空间中。
2.如果要按姓名查找员工档案,可以在ToolStripTextBox控件的TextChanged事件中编写代码,实现当控件中输入关键字后,马上就能检索出相应的数据
3.当单击TreeView控件中某个部门时,主窗体右侧的DataGridView控件中将显示选中部门的所有员工档案,该功能是在TreeView控件的AfterSelect事件下实现的。
4.当双击某条员工档案后,会弹出相应的窗体用于显示其详细信息,并且可以对详细信息进行修改,该功能是在DataGridView控件的CellDoubleClick事件下实现的。
29
沈阳理工大学高等职业技术学院学士学位论文
4.3.3 添加员工信息
添加员工模块主要是实现对员工的信息进行管理的模块。如果添加员工,单击增加按钮,打开添加员工信息窗体,该窗体可以向数据库中添加新的员工信息,添加员工信息窗体如图4.3所示。
图 4.3 添加员工信息
功能实现:
1.为了使员工档案信息更加生动和形象,在录入员工档案时,需要指定员工的头像,这样当查找某个员工是可以看到该名员工的相片。因此在录入员工档案时,提供了选择员工头像的按钮,当单击“选择员工头像“按钮后,会将选择的头像显示出来。
2.当添加员工信息加载时,使用公共类中的BindDropdownlist方法绑定ComboBox控件,分别用于显示婚姻状况、性别、部门、民族、和担任的职务等。
3.当员工档案信息填写完整后,单击“保存”按钮,首先对输入的数据进行检查验证,如果符合条件,就会将输入的员工档案信息添加到数据库中
4.当为新增的员工选择员工编号时,首先要判断指定的编号在数据库中是否已经存在,该功能就是在输入员工编号文本框TextChanged事件中实现的。
5.单击“修改”按钮,打开修改员工信息窗体,该窗体可以对员工信息进行修改,修改员工信息窗体。
6.当双击某条员工信息或者选中信息后,单击“修改”按钮会打开修改员工信息的窗体,当打开此窗体时,会触发窗体的load事件,首先对ComboBox控件进行数据
30