《C#Windows程序设计》任务与指导手册.docx

上传人:b****1 文档编号:13823592 上传时间:2023-06-17 格式:DOCX 页数:51 大小:1.26MB
下载 相关 举报
《C#Windows程序设计》任务与指导手册.docx_第1页
第1页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第2页
第2页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第3页
第3页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第4页
第4页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第5页
第5页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第6页
第6页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第7页
第7页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第8页
第8页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第9页
第9页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第10页
第10页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第11页
第11页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第12页
第12页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第13页
第13页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第14页
第14页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第15页
第15页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第16页
第16页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第17页
第17页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第18页
第18页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第19页
第19页 / 共51页
《C#Windows程序设计》任务与指导手册.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《C#Windows程序设计》任务与指导手册.docx

《《C#Windows程序设计》任务与指导手册.docx》由会员分享,可在线阅读,更多相关《《C#Windows程序设计》任务与指导手册.docx(51页珍藏版)》请在冰点文库上搜索。

《C#Windows程序设计》任务与指导手册.docx

《C#Windows程序设计》任务与指导手册

《程序设计》任务书

1.任务与要求

(1)先修课程:

《程序设计语言》、《数据库程序设计》《基于的应用程序设计》、《数据结构》等。

(2)课程设计题目:

《图书管理系统》

若自选题目,则需在课程设计第一天上报题目名称,以及开发工具和数据库。

(3)时间:

周,周。

(4)开发工具和环境

开发语言:

数据库:

、、等任选。

应用程序:

应用程序()。

(5)设计报告正文字数不少于千字(只包含部分核心代码,每个代码段不超过行),报告附录应包括主要源代码。

要求层次清楚、整洁规范,不得相互抄袭,凡正文内容有整段相同者一律以作弊论处。

明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,积极认真地做好准备工作。

课程设计中,学会应用理论知识,收集、归纳相关资料,以及解决实际问题的方法。

严格要求自己,自信但不固执,独立完成课程设计任务,善于接受教师的指导和听取同学的意见,有意识地树立严谨的科学作风,要独立思考,刻苦钻研,勇于创新,按时完成课程设计任务。

2.考勤、考核与成绩

(1)严格考勤制度,每次上机都要记录,学生有事必须请假。

考勤记录影响最终成绩。

(2)在课程设计的最后一次上机之前,必须向老师申请考核,考核时要求演示程序并回答老师提出的问题。

(3)最终成绩以考核成绩为主,考核成绩占,考勤占,平时成绩占。

(4)课设最后一周内提交实训报告。

.设计报告

()要求采用统一格式的报告封面。

()目录,要求目录层次结构清晰、合理。

()正文,要求包括概况、系统分析与设计、系统实现、总结等方面内容。

系统分析与设计可包括:

系统功能分析、概念模型、数据表结构、三层架构、类的设计等。

系统实现可包括:

数据库实现(脚本)、程序界面、界面操作、关键技术及实现代码、调试中遇到的问题等。

总结可包括:

结论(已完成功能、涉及的主要技术)、下一步工作安排、收获与体会等。

()附录,要求包括数据库对象(含存储过程等)的脚本代码,以及主要源程序代码。

《图书管理系统》设计指导书

.设计题目

图书管理系统

.设计目的

通过对图书管理系统的系统分析、系统设计、编码和调试等工作的实践,熟悉管理信息系统的开发过程、设计方法及相关编程技术,熟练掌握数据库设计的基本理论及方法。

.设计任务

要求完成一个具有一定实用价值的图书管理系统,主要任务包括:

①在环境下建立图书管理系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:

数据表、视图、约束、存储过程和触发器等;

②掌握编程技术,对数据库进行连接和操纵;

③掌握使用语言开发一个数据库应用系统的基本方法和步骤,熟悉一些基础功能的实现方法,如:

数据维护(插删改等操作),数据查询、浏览和导出,统计与报表,用户登录和权限管理等。

④了解或应用程序的多层体系结构及三层架构方案设计思想。

指导书说明:

()开发环境与目标:

微软、,基于结构的应用程序。

()仅给出了部分功能的设计与实现,以说明面向对象分析与设计的一般方法以及关键编程技术,其它功能部分需要自己完成。

.设计准备

系统准备

操作系统:

数据库系统:

客户端开发工具:

知识准备

熟悉的使用;

熟悉语言及其数据库编程技术。

了解图书馆相关业务知识

.系统分析

需求概要

()图书管理系统的基本功能需求包括:

读者管理、图书管理、借阅管理、用户登录与用户管理等;其它功能需求包括:

预约借书*、统计与报表*、数据备份*、书架管理*、期刊管理*、期刊借阅*、论文管理*、论文借阅*等。

(*表示留待以后完成,下同)

()相关领域概念:

借书证(读者)、图书、借还书记录。

()系统主要用户:

将图书馆工作人员划分为读者以及管理员,读者能够进行系统登录、图书查询、图书借阅记录查询、图书借阅等;管理员能够进行系统登录、读者管理、图书管理、借阅管理、用户管理;。

读者管理

读者管理即借书证管理,包括的操作有:

办理借书证、借书证变更、借书证挂失、解除挂失、补办借书证、注销借书证。

读者借书证号、姓名、性别、所在单位、读者类别、办证日期、照片等。

(另可加:

电话、邮箱等)

读者类别读者类别号、类别名称、可借书本数、可借书天数、可续借次数。

图书管理

包括业务(用例):

新书入库、图书信息维护、图书变卖与销毁处理等。

图书信息书号、书名、作者、出版社、出版日期、、分类号、语言、页数、单价、内容简介、图书封面、图书状态等;(图书状态包括:

在馆、借出、遗失、变卖、销毁)

借阅管理

包括业务用例:

借书、续借、还书等。

还书过程涉及超期罚款、遗失图书罚款等业务规则。

罚款规则:

()超期罚款规则应罚款金额超期天数*罚款率,罚款率元天,罚款率可能随时间或读者类别而变化;实际罚款金额<应罚款金额,根据实际情况可以进行减免。

()遗失罚款规则遗失图书应罚款金额*图书单价;实际罚款金额在(*图书单价,*图书单价)之间。

()遗失罚款规则优先于超期罚款规则。

借阅信息借书顺序号、借书证号、书号、借书操作员、借书日期、应还日期,续借次数、还书操作员、还书日期,超期天数、应罚款金额,实际罚款金额

用户登录与用户管理

包括用例:

用户登录、密码修改、用户管理,为本系统的基础和主要功能。

用户包括类:

读者、管理员。

管理员是读者,但读者不一定是管理员;读者与管理员间存在(对)联系。

读者信息读者信息密码。

管理员信息用户号、用户名、密码、管理角色

读者查询与预约借书

读者(非管理员用户)的功能需求,包括操作:

未归还图书查询与续借等。

统计与报表*

包括:

馆藏图书统计、借阅情况统计、借阅时段统计等等。

馆藏图书统计可按图书类别、入馆时间统计图书数量、金额等,可得图书分布情况;

借阅情况统计可按单位(含专业、年级)、图书类别、借阅时间(年、学期、月份)等统计借阅次数和天数,统计结果可作为订购新书的参考依据;

借阅时段统计按工作日(星期一、二、、、)和时段(、、、、)统计借还书次数,可得各时段的借阅工作量,并可依此安排借阅管理人员。

数据备份*

用户备份是对数据库进行备份,由系统管理员操作。

系统功能与用户角色

表系统功能与用户角色关系表

序号

系统功能

系统管理

读者

读者管理

图书管理

借阅管理

用户登录

密码修改

用户管理

读者预约

统计与报表

数据备份

数据库概念模型

图图书管理系统概念模型()

.系统设计与实现

数据库设计与实现

.读者类别表()

序号

字段名

数据类型

说明

读者类别【主键】

()

读者类别名称【唯一、非空】

可借书数量

可借书天数

可续借的次数

罚款率(元天)

证书有效期(年)【非空,表示永久有效】

.读者信息表()

序号

字段名

数据类型

说明

读者编号借书证号【主键】

()

读者姓名

()

性别,男女

读者类别【外键】【非空】

()

单位代码单位名称

()

电话号码

()

电子邮箱

读者登记日期办证日期

读者照片

()

证件状态,个:

有效、挂失、注销

已借书数量(缺省值)

()

读者密码(初值),可加密存储

管理角色,读者、借书证管理、图书管理、借阅管理、系统管理,可组合

分析提示:

()可将管理员另外建表,与读者信息分开单独进行设计。

()单位可以采用名称,若采用代码则需另建一张表:

单位代码与名称对照表,这样便于按单位统计。

()管理角色()也可设计为个类型字段。

.图书信息表()

序号

字段名

数据类型

说明

图书序号【标识列,主键】

()

图书编号或条码号(前文中的书号)

()

书名

()

作者

()

出版社

出版日期

()

书号

()

分类号(如:

语言,中文,英文,日文,俄文,

德文,法文

页数

价格

入馆日期

内容简介

图书封面照片

()

图书状态,在馆、借出、遗失、变卖、销毁

说明:

为前文中的书号,这里没有设计为关键字,而增加字段作为表关键字,其原因为:

防止新书入库时起始书号输入错误时,因关键字而不易修改。

.借阅信息表()

序号

字段名

数据类型

说明

()

借书顺序号【主键】

读者序号【外键】

图书序号【外键】

续借次数(第一次借时,记为)

借书日期

应还日期

实际还书日期

超期天数

超期金额(应罚款金额)

罚款金额

是否已经还书,缺省为未还

()

借书操作员

()

还书操作员

分析提示:

借阅信息即用于图书的借还管理,同时又是统计分析的主要信息来源,故要求保持其历史信息。

设计时不能以(读者序号图书序号)为关键字,否则读者不能第二次借阅同一本书了。

.数据库实现

内容:

()创建数据库:

()创建登录名:

,密码:

;并设置为数据库的;

()创建上述张数据表及约束;

实现方法:

()采用企业管理器手工操作方法完成创建工作;(自己完成)

()编写脚本文件,并在查询窗口工具中运行并创建;如创建表:

三层架构简介

采用三层体系结构,即表示层、业务逻辑层和数据访问层,如图所示,图中箭头表示调用和依赖关系。

图三层架构示意图

表示层():

也称,提供交互式界面,形式:

或界面。

业务逻辑层():

实现业务功能,为表示层提供服务,形式:

类库。

数据访问层():

实现数据访问功能(如数据库、文件等数据的读取、保存和更新),为业务逻辑层提供服务,形式:

类库。

微软公布的类提供了对数据库的一般访问方法(有类似的类或组件)。

实体类():

描述一个业务实体的类,也即应用系统所涉及的业务对象。

对数据库来讲,每个数据表对应于一个实体类,数据表的每个字段对应于类的一个属性。

表示层、业务逻辑层、数据访问层都依赖于业务实体。

各层之间数据的传递主要是实体对象,业务信息封装在实体对象中。

搭建三层架构解决方案

创建应用程序解决方案,包括个项目:

(窗口应用程序)、(类库)、(类库)、(类库)。

.新建项目(启动项目)

菜单:

“文件”>“新建”>“项目”,在新建项目窗口中,选择“”>“”>“窗口应用程序”,选择项目文件的存储位置,并输入项目名称,如图。

项目即为层,该项目在编译后产生文件。

图新建项目

.添加新项目

菜单:

“文件”>“添加”>“新建项目”,选择“类库”,输入项目名称,如图。

编译后产生文件(后缀文件称为动态链接库)。

图添加新建项目

.添加新项目

操作与类似,项目名称设置为:

编译后产生文件。

.添加新项目

操作与类似,项目名称设置为:

编译后产生文件。

至此,解决方案参见图。

图图书管理项目解决方案

.设置启动项目和项目引用关系

在解决方案中设置为启动项目(“”右键菜单“设为启动项目”)。

项目引用关系如表所示。

如项目引用和,其设置方法:

解决方案中项目“”的右键菜单“添加引用”,并按图进行设置。

表项目引用关系。

×

图给项目添加引用

类总体设计(迭代)

实体类、数据访问层类、业务逻辑层类、表示层窗口类的初步设计如表。

表实体类、数据访问层、业务逻辑层的类设计

类名

说明

实体类模块

()

读者类型实体类

读者实体类

图书实体类

借阅记录实体类

数据访问层

()

读者类型数据表访问类(插、删、改、查、存储过程等)

读者数据表访问类(插、删、改、查、存储过程等)

图书数据表访问类(插、删、改、查、存储过程等)

借阅数据表访问类(插、删、改、查、存储过程等)

对数据库进行访问的通用类

业务逻辑层

()

读者类型管理类,实现插、删、改、查等信息维护操作。

读者管理类,实现借书证办理、变更、补办、挂失、解除挂失、注销等用例中的各种系统操作。

图书管理类,实现图书管理各用例中的系统操作

借阅管理类,实现借书、还书、续借等用例中的系统操作。

用户管理类,

表示层

()

登录窗口类

程序主窗口类,含菜单、工具栏、状态栏等

读者管理窗口类

层实体类设计

在项目中添加个实体类:

、、、,分别对应个数据库表。

实体类的属性与数据库表结构保持一致(名称、类型);实体类应尽量简单,除了实体对象的复制与比较等方法外,不宜添加过多方法。

其实实体类就是实现。

对象关系映射,是为了解决面向对象的类,与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。

本质上就是将数据从一种形式转换到另外一种形式。

是一个广义的概念,适应于关系数据库与应用程序之间的各类数据转换,目前有许多自动转换工具可用,如等,也可手工书写实体类代码来实现。

.类

在项目中添加新建项:

代码类,如图所示。

图添加代码类文件

表字段映射为实体类属性的基本方法(及以上版本)如下:

;

{

{;}

{;}

}

而在及以上版本中可简化为:

{;;}

表字段类型与实体类属性类型的映射关系

字段类型

中类型

实体类设计属性

,

()

[]

[]

在及以上版本中类的实现代码如下:

在(含及以上版本)中类的实现代码如下:

另外,可添加复制构造函数,如下:

()

{

;

;

;

;

;

;

;

}

.类(略)

.类(略)

.类(略)

层类设计

除外,每个数据库表对应一个层类,主要实现该表的插删改查操作。

.类

在项目中添加文件,该类是微软类(参见文件“参考资料微软的类(含完整中文注释)”)的简化版(有源码提供)。

类主要包括的成员函数有:

打开数据库连接、关闭数据库连接、执行语句、执行存储过程等。

表类(简化版)成员

"\;;";

<成员属性>连接的字符串(常量)。

\为服务器名称,可在的“已注册服务器”中查看(菜单:

“视图”>“已注册服务器”)。

需修改为自己的连接。

可手动修改,或可采用的服务器资源管理器得到(菜单:

“视图”>“服务器资源管理器”,“数据连接”>“添加连接”)。

();

<成员属性>数据库连接对象(常量);

()

<成员函数>打开数据库连接

()

<成员函数>关闭数据库连接

()

<成员函数>执行非查询的语句,返回受影响的行数

指定要执行的语句,

例:

"";

(,[])

<成员函数>执行非查询的语句(带参数),返回受影响的行数

参见:

中的()函数代码

()

<成员函数>执行查询语句,返回查询结果中的首行首列

(,[])

<成员函数>执行查询语句(带参数),返回查询结果中的首行首列

(,[],)

<成员函数>执行查询语句(带参数),返回查询结果记录集(对象)

参见:

中的()函数代码

()

<成员函数>执行查询语句,返回查询结果记录集。

为只读对象,它占用的内存空间比小的多。

(,[])

<成员函数>执行非查询的存储过程,返回受影响的行数

指定存储过程的函数实参

参见:

(,[],)

<成员函数>执行查询的存储过程,返回查询结果记录集

参见:

表中标注为必要的类成员,成员、可分别被、替代,大家可以试试将成员改写为带参数的函数。

类与相关组件的用法参见“参考资料用法”。

.类

层的类主要实现对应数据表的插、删、改、查等操作,以及存储过程的调用。

首先,在项目中添加代码类文件,并在文件中添加引用:

;

;

;

然后,在类中添加对表记录的插入()、删除()、修改()等个方法。

注:

带参数[]的(,)方法,支持带列的插入和修改语句。

然后,在类中添加根据关键字查询实体类对象的方法(),这里提取出了另一个方法()。

有个常用的通用转换方法,采用的泛型和反射技术分别实现和到实体类对象的转换;算法要求:

表记录(或)包含了实体类的所有属性,并且表字段名与的属性名相同。

可以另建一个工程(公用模块,可被、、各层引用,在三层架构图中地位如同模块),并将这个方法放入其中;本例采用的是放入类中。

这个方法的代码如下:

而其它查询方法可在每个用例的层设计与实现过程中去发现和完成。

.类

在类中添加对表记录的插入()、删除()、修改()、根据关键字查询实体类对象()等方法。

函数原型如下:

()

()

()

()

而其它查询方法可在每个用例的层设计与实现过程中去发现和完成。

.类(略)

.类

添加表的插入()、删除()、修改()等个方法;不必添加()方法,该表的查询一般是通过书号或读者号(参看借还书等用例)。

层类设计

层类的成员函数设计,可在实现用例的过程中去发现和完成,用例实现主要包括层窗口类、层类、层类等方法的设计与实现。

参见节。

层窗体设计与用例的实现

除主窗体要考虑整体功能结构外,其它功能都是按用例逐一进行设计和实现的。

部分用例的事件流相似且相关,可集中在同一个窗体内实现,如:

借书证挂失、解除、补办与注销。

.用例:

用户登录窗体

用例:

用户登录,参见()节。

()登录窗体设计如下:

登录窗体控件如下:

序号

控件类型

控件()

属性设置

用户编号

用户密码

*

登录

退出

登录信息:

()在文件中添加引用:

;

;

()在类中添加成员;其中在窗体关闭后仍要求存在并可见()。

;登录次数

();

;登录用户信息,可用于整个程序

()层类添加方法:

(登录用例之步骤:

.系统根据借书证号获取读者对象。

()添加“登录”和“退出”按钮的事件和方法:

()修改程序:

()测试点击“登录”从数据库查询到某读者记录,但其照片为时,程序在的成员函数<>()处发生错误,出错语句和原因:

([],);

从“”到“[]”的强制转换无效。

纠错:

在出错语句前添加条件,语句如下:

(!

("[]"[]))

.主窗体界面

()主窗体添加控件:

菜单栏()和状态栏()。

状态栏里添加一个标签(),命名()为:

菜单栏添加菜单项如下:

序号

菜单项

菜单()

属性设置

图书管理

图书管理

新书入库

新书入库

图书信息维护

图书信息维护

读者管理

读者管理

办理借书证

办理借书证

借书证信息变更

借书证信息变更

借书证挂失与解除

借书证挂失与解除

注销借书证

注销借书证

读者类型管理

读者类型管理

借阅管理

借阅管理

借书

借书

续借

续借

还书

还书

用户管理

用户管理

权限管理

权限管理

密码修改

密码修改

()根据登录用户的权限,确定菜单是否可用,并显示登录用户信息,有个问题:

.获取登录窗口中的读者对象。

而进入主窗口时,登录窗口对象已经释放,故只能通过类名(而不是类对象)访问,申明为静态。

在类中:

;

在等其它类中的访问方法:

.读者对象权限的判断方法,分配在层层?

层代码如下:

.根据登录用户权限,在类中初始化菜单。

添加()方法:

 

.用例:

借书证的办理、变更、挂失、解除、补办与注销–窗体

借书证相关用例有:

办理借书证、变更借书证、挂失借书证、解除挂失、补办借书证、注销借书证等。

分析发现第一个步骤都相同,即借书证查询操作;办理新借书证、变更借书证有界面操作,然后再分别做插入和修改操作;而其它的挂失、解除挂失、补办、注销等没有界面操作,可以直接进行各自的业务操作。

方案一设计个窗口:

()查询窗口,并设计个按钮控件:

办理新证、变更、挂失、解除挂失、补办、注销等。

其中办理新证、变更在点击后分别转入下面个窗口;另外个按钮可调用相应业务逻辑方法直接完成。

()办理新借书证窗口,从查询窗口传入相关的信息(参见其用例),完成读者表记录的插入操作。

()变更借书证窗口,从查询窗口传入原借书证对象,完成读者表记录的修改操作。

此方案的设计与实现比较简单,用户操作简易、流畅。

设计改变了系统主菜单,类及其窗体的修改工作如下:

将主窗体菜单(6.8.2节)中的个菜单项“办理借书证”至“注销借书证”去掉个,仅保留一个菜单项,改其名为“借书证管理”,并添加其点击事件,事件的实现代码为:

方案二设计个窗口,如下:

此操作界面的控制较复杂,下面详细介绍其设计思想与实现技术。

()窗口界面设计

将界面设计成个部分:

Ø查询条件工具栏(),其中控件:

查找(),()。

Ø查询结果组控件(),其中控件:

网格控件(,设置),办理借书证()、变更借书证()、挂失()、解除挂失()、注销()、退出();另外,借阅信息()可用于显示读者的历史借阅记录数和未归还图书数量。

Ø读者信息组控件(),其中控件:

确认办证()、确认变更()、撤销();另外,图片控件(,设置,)、打开图片文件()。

()界面操作状态的控制

添加枚举类型,表示种窗口操作状态,参见下列代码。

并在类中添加成员对象,其中:

存放查询结果,并给提供数据。

–存放读者信息,与读者信息组控件内的各控件进行数据交换,并与、层进行数据传递。

–记录当前操作状态。

代码如下:

然后添加窗口类成员函数(),代码如下:

在几个需要进行状态切换的按钮点击事件中调用此函数,如下:

办理借书证()调用();

变更借书证()调用();

撤销()调用();

思考:

确认办证、确认变更的事件该如何切换状态?

()窗口初始化

在窗口类的构造函数()中添加代码:

在类中添加成员函数:

在类中添加成员

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

当前位置:首页 > 考试认证 > 财会金融考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2