学籍管理系统.pptx

上传人:b****1 文档编号:1726833 上传时间:2022-10-23 格式:PPTX 页数:41 大小:744.13KB
下载 相关 举报
学籍管理系统.pptx_第1页
第1页 / 共41页
学籍管理系统.pptx_第2页
第2页 / 共41页
学籍管理系统.pptx_第3页
第3页 / 共41页
学籍管理系统.pptx_第4页
第4页 / 共41页
学籍管理系统.pptx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

学籍管理系统.pptx

《学籍管理系统.pptx》由会员分享,可在线阅读,更多相关《学籍管理系统.pptx(41页珍藏版)》请在冰豆网上搜索。

学籍管理系统.pptx

学籍管理系统的开发,体验MVC,课前准备预习C#数据库的内容下载数据库脚本下载老师的代码,MVC框架的介绍,MVC全名是ModelViewController,是模型(model)视图(view)控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

M-V-C,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。

C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

MVC的优点,耦合性低重用性高生命周期成本低部署快有利软件工程化管理,代码分块(硬性分块),MVC,学籍管理系统,ModelViewController,DomainGUIRepositoryService,类库,类库(ClassLibrary)是一个综合性的面向对象的可重用类型集合,这些类型包括:

接口、抽象类和具体类。

将业务逻辑封装在类库中。

你知道吗?

代码结构,把业务逻辑和用户图形界面强行分离开来。

DoMain领域模型,DomainBase作为一个基类,School,ProfessionalClass,Student为三个子类。

性别Sex用枚举单独定义一个枚举类型。

Domain模型的构造,领域模型是对领域内的概念类或现实世界中对象的可视化表示。

又称概念模型、领域对象模型、分析对象模型。

领域模型中的类都是一个实体。

简单说就是建立数据库是主键配有ID的对象。

判断下面有关学籍管理系统的名词哪个是一个实体?

(1)学生(5)性别

(2)年级(6)姓名(3)班级(7)年龄(4)学院,Domainbase基类的编写,基类的性质子类都会继承,所以要在基类中写子类共有的东西。

注意:

基类和接口不同。

继承接口的子类要重写所有接口中的abstruct(抽象)方法。

DomainBASE子类的编写,domainBase有三个子类,School,ProfessionalClass和Student.根据数据库确定三个子类的属性。

除了domainBase中定义的公共属性之外,班级还有studentNum,SchoolId,Grade和MaxStudentNum等属性;学生还有ClassId和Sex两个属性。

用Student类的代码做一个示例,Domain扩展,DoMain中出现了Sex的一个枚举类型,规定了性别可能出现的几种情况。

定义了一个SexHelper类提供了Sex和String之间相互转换的服务方法。

publicclassSexHelperpublicstaticstringSexToString(Sexsex)publicstaticSexStringToSex(Stringsex),讨论,我们单独为性别定义了一个类型,后期编码经常需要把Sex转换成string类型,其实我们直接把性别定义成string类型更为简单。

但这里引入了一个SexHelper类,提供他们之间的转换服务。

仔细看,类中的函数都是静态的,这样写有什么好处?

恭喜!

领域模型完成了!

接口层,资源接口,服务接口,REPOSITORY接口类图,Service接口类图,休息一下,马上回来!

接下来我们要实现本项目的重点难点Repository。

Repository资源层,什么是Repository?

按照最初提出者的介绍,它是衔接数据映射层和域之间的一个纽带,作用相当于一个在内存中的域对象集合。

客户端对象把查询的一些实体进行组合,并把它们提交给Repository。

对象能够从Repository中移除或者添加,就好比这些对象在一个Collection对象上就行数据操作,同时映射层的代码会对应的从数据库中取出相应的数据。

非常形象地说,Repository就是一个仓库管理员,我们想从仓库中取出什么东西或在仓库中存入什么东西,只要告诉仓库管理员就可以了,仓库管理员可以帮我们实现数据的搬运与管理。

由于仓库管理员的存在,我们感觉不到繁琐的数据管理过程。

重在心法,由于我们的水平问题和章节限制,我们不再深入讲解Repository,我们只要体会Repository是一个怎样的存在。

在visualstudio中建立数据库,鼠标右击UI解决方案,选择添加-新建项,弹出右边的窗口。

建立数据库,鼠标双击新生成的数据库文件,看到左边服务器资源管理器,连接数据库,点击圈内“打开文件”图标,打开数据库脚本文件,导入脚本,选中资源管理器中的数据连接,点击圈内运行或连接,脚本导入成功,鼠标右击服务器资源管理器数据连接的Database.mdf,选择刷新,打开表文件夹,如果出现了Class、School、Student三个表项就代表脚本导入成功!

获取连接字符串,双击解决方案管理器中的Database.mdf,在属性栏中获取连接字符串。

打开UI里的App.config文件在里面创建数据库连接,接下来,我们就要开始写rEPOSITORY类,回顾repository,想想少了什么?

类中只定义了增删查改之类的管理数据方法,并没有连接数据库的方法。

怎么办呢?

定义一个“帮助”类,左边的图是这个“帮助类”的类图,从图中我们可以看出,它添加了connectionString字段,获取了数据库连接,在它里面也定义了很多数据库的执行方法,它就像仓库管理员的大脑一样,类似于一个Controller。

回头想一想,Model,Controller,SchoolRepositoryClassRepositoryStudentRepository,SqlDbHelper,Repository中的Model和Controller,插播一段:

工厂模式(factory),工厂是对象初始化的一种方式,可用于大量对象的初始化。

publicclassApublicclassBpublicclassFactory1publicstaticACreatA()returnnewA();publicstaticBCreatB()returnnewB();,publicclassFactory2pubilcObjectCreat(inti)switch(i)case0:

returnnewA();break;case1:

returnnewB();break;,两种工厂,Factory1,factory2,用到了类的静态方法类的静态方法属于类,可以用类名直接调用初始化对象Objectoa=Factory1.CreatA();Objectob=Factory1.CreatB();,用到了策略者模式需要先建立一个工厂类,然后用工厂类调用Creat()方法。

策略者模式创建的类必须继承自一个父类。

A和B必须有同一个父类。

初始化对象Factory2myFactory=newFactory2();Objectoa=myFactory.Creat(0);Objectob=myFactory.Creat

(1);,工厂类图,Service,在本项目中,Service有三个接口,也有三个类分别继承三个服务接口。

Service隐藏了仓库管理层,直接面向用户,从类图中可看出来,服务字段中自动找了仓库管理员,并进一步封装仓库管理的方法。

让用户感觉不到仓库管理层的存在,实现了让用户直接调用想要的服务。

右图是部分SchoolService类的代码,至此,业务逻辑终于做完了!

休息一下接下来要讲的是GUI的制作GUI和服务的接驳,你发现了什么?

主窗口,编辑窗口,是的,我们需要一个基类窗体,窗口控件的数据,根据不同的事件响应,求得不同的数据源,用控件绑定数据源,控件显示的数据要设置好,因为数据源有很多不同类型的数据,思考,运行一下老师给的代码,你发现那里有问题?

问题出在哪?

该怎么改正?

结束!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1