资源描述
数据库系统原理课程设计指导书
———————————————————————————————— 作者:
———————————————————————————————— 日期:
2
个人收集整理 勿做商业用途
《数据库系统原理》课程设计指导书
一、课程设计目的
《数据库原理及应用》课程设计是为配合数据库系统原理课程的教学而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要.通过。本课程设计的主要目标是:
1.通过课程设计使学生进一步巩固所学的知识,加深对数据库系统、程序设计语言的理论知识的理解和综合应用水平。
2.通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
3.培养学生自主学习、独立设计、独立调试程序的能力。
4.培养学生初步的软件设计能力,形成良好的编程风格。
二、课程设计要求
1、在对数据库理论及知识理解的基础上;重点是针对具体的实际问题选择并设计合适的数据库表加以应用,并在此基础上完成相关的算法与程序。
2、给出系统的概要设计、详细设计。包括:数据流图,E—R图,数据库表、程序流程图、功能模块图的设计、编码实现等。
4、撰写规范化的课程设计报告。
5、在选题时除了提供的参考项目外,大家也可根据自己现实工作或生活的实际需要和能力,选择课程设计题目,要求难易适中,业务情况容易了解,涉及其他专业的"专业性”不要太强。
6、考虑到设计工作量大,可以2-3个同学一组共同协作完成一个项目的设计与实现,但各成员的工作必须有明确的分工,各组题目不得重复。
三、课程设计内容
1.系统分析与数据库设计阶段
1) 通过社会调查,选择一个实际应用数据库系统的课题。
2)进行系统需求分析和系统设计,写出系统分析和设计报告。
3)设计数据模型并进行优化,确定数据库结构、功能结构和系统安全性和完整性要求.
2.应用程序设计阶段
1)完成数据库定义工作,实现系统数据的数据处理和数据录入。
2)实现应用程序的设计、编程、优化功能,实现数据安全性、数据完整性和并发控制技术等功能,并针对具体课题问题提出解决方法。
3.系统集成调试阶段
对系统的各个应用程序进行集成和调试,进一步优化系统性能,改善系统用户界面。
4.课程设计报告撰写阶段
该阶段应完成以下文档资料的撰写:
1)课程设计的题目、系统的总功能和各子模块的功能。
2)主要算法简述。
3)程序流程图,数据流程图,E-R关系图。
4)使用的数据库表结构的详细情况。
5)课程设计的总结,主要包括以下内容。
l 课程设计中遇到的主要问题和解决方法。
l 创新和得意之处。
l 课程设计中存在的不足,需进一步改进的设想.
l 课程设计的感想和心得体会.
以上内容要求干净整洁,符合课程设计的要求和规范.
四、步骤与安排
依照教学计划课程设计时间为2周,具体安排可参考下表。
序号
设计内容
内容
时间(天)
要求
1
选题与收集资料
选择课题,进行系统设计的准备工作。
1
在小组内进行分工,并进行系统调查,收集相关资料,进一步熟悉开发工具.
2
系统需求分析与功能设计
根据课题的要求进行简单的需求分析,设计相应的数据流图,得出相应的系统功能需要
1
系统数据流图
3
总体设计
根据功能需求,设计系统的总体结构
2
系统总体功能模块图
菜单的设计
4
数据库设计
完成数据库的概念设计、逻辑设计,按数据库设计方法和规范化理论得出符合3NF的逻辑模型
2
ER图设计
ER图转化为相应的关系模式
设计数据库的逻辑模型(以表格),在机器上完成数据库的物理设计
5
应用程序设计
设计并编写输入\输出、查询\统计、数据维护等功能模块的应用程序.
5
根据个人能力,可以选用VB、VC等高级编程语言设计界面,并实现与数据库的连接,最终实现系统的全部功能。
6
程序调试与测试
自行调试程序,成员交叉测试程序.
1
记录测试情况.
7
设计报告与成果提交
撰写设计报告并提交相应资料与成果
2
报告按要求规范书写。
五、考核方式与成绩评定
课程设计的成绩根据学生在课程设计期间的态度、课程设计的完成后演示情况和难易程度,课程设计说明书的质量综合评定。不符合要求的设计报告,抄袭的设计报告或者在设计中完全未参与者将按不及格处理。
考核成绩按优、良、中、及格和不及格五个等级打分(使用百分制参照:优:90-100,良:80-80,中:70—79,及格:60-69,不及格:60以下).
各阶段的图表与文档、数据库作为考核的内容,成绩计分按优、良、中、及、不及格5级评定。
【说明】
1要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作.
2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。
3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容。课题相同者,内容不能相同,否则成绩以不及格计.
4、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
六、课程设计参考题目
题目1:进销存管理系统的设计与实现
系统概述:通过对典型的小型流通型企业的进货、销售、库存的业务流程进行分析,完成具有进货管理、销售管理、库存管理等相关功能的数据库管理应用系统。基本要求:
1、完成进货单(盘盈)、出货单(盘亏)的维护
2、完成库存表的浏览查找
3、完成库存结转功能
4、按时间、按商品类别、顾客、供应商进行进、出货单的统计
5、完成库存表的按时间、按类别进行统计
6、完成客户、供应商的管理
本题目所需的知识点:E—R关系图;数据库表设计,数据库表维护等.
题目2:学生成绩管理系统的设计与实现
系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统.基本要求:
1、完成进学生、班级、课程表的维护
2、完成成绩表的浏览查找
3、完成成绩表的维护
4、按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率
5、统计某学生、某学期的所有课程的平均成绩。
6、完成用户管理功能
7、完成数据备份与恢复功能
本题目所需的知识点:E—R关系图;数据库表设计,数据库表维护等.
题目3:工资管理系统的设计与实现
系统概述:通过对人事管理管理部门中的职称、工资、员工、部门、工资类别等相关内容进行分析,完成具有人员管理、工资管理、部门管理等相关功能的小型数据库管理应用系统,系统需要具备增减工资中应发、应扣类别的灵活性,以适应将来需求的变化。基本要求 :
1、完成进人员、部门、工资类别、职称表的维护
2、根据需要对工资类别进行添加
3、完成工资表的生成,并计算相关数据,进行查询。
4、按部门计算平均工资
5、按人、年统计平均工资
6、完成用户管理功能
本题目所需的知识点:E-R关系图;数据库表设计,数据库表维护等。
题目4:食品消费管理系统的设计与实现
系统概述:通过对学生在学校餐厅的消费流程进行分析,完成具有食品管理、消费管理、餐厅管理等相关功能的小型数据库管理应用系统.基本要求 :
1、完成进人员、餐厅、食品价目表的维护
2、完成消费表的生成,并计算消费折扣.
3、按人员、时间、餐厅统计计算消费总额
4、按食品类别、时间、餐厅统计计算消费总额
5、完成用户管理功能
6、完成数据备份与恢复功能
本题目所需的知识点:E-R关系图;数据库表设计,数据库表维护等。
题目5:机票预定信息系统的设计与实现
系统功能的基本要求:航班基本信息的录入,包括航班的编号、飞机名称、机舱等级等。机票信息,包括票价、折扣、当前预售状态及经手业务员等.客户基本信息,包括姓名、联系方式、证件及号码、付款情况等。按照一定条件查询、统计符合条件的航班、机票等;对结果打印输出。
题目6:长途汽车信息管理系统的设计与实现
系统功能的基本要求:路信息,包括出发地、目的地、出发时间、所需时间等。汽车信息:包括汽车的种类及相应的票价、最大载客量等.票价信息:包括售票情况、查询、打印相应的信息.
题目7:人事信息管理系统的设计与实现
系统功能基本要求:员工各种信息:包括员工的基本信息,如编号、姓名、性别、学历、所属部门、毕业院校、健康情况、职称、职务、奖惩等;员工各种信息的修改;对转出、辞退、退休员工信息的删除;按照一定条件,查询、统计符合条件的员工信息;教师教学信息的录入:教师编号、姓名、课程编号、课程名称、课程时数、学分、课程性质等。科研信息的录入:教师编号、研究方向、课题研究情况、专利、论文及著作发表情况等。按条件查询、统计,结果打印输出。
题目8:超市会员管理系统的设计与实现
系统功能的基本要求:加入会员的基本信息,包括:成为会员的基本条件、优惠政策、优惠时间等.会员的基本信息,包括姓名、性别、年龄、工作单位、联系方式等。会员购物信息:购买物品编号、物品名称、所属种类,数量,价格等.会员返利信息,包括会员积分的情况,享受优惠的等级等。对货物流量及消费人群进行统计输出。
题目9:客房管理系统的设计与实现
系统功能的基本要求:客房各种信息,包括客房的类别、当前的状态、负责人等;客房信息的查询和修改,包括按房间号查询住宿情况、按客户信息查询房间状态等。以及退房、订房、换房等信息的修改。对查询、统计结果打印输出.
题目10:药品进销存信息管理系统的设计与实现
系统功能基本要求:药品信息,包括药品编号、药品名称、生产厂家、生产日期、保质期、用途、价格、数量、经手人等;员工信息,包括员工编号、姓名、性别、年龄、学历、职务等;客户信息,包括客户编号、姓名、联系方式、购买时间、购买药品编号、名称、数量等。入库和出库信息,包括当前库存信息、药品存放位置、入库数量和出库数量的统计。
题目11:学生选课管理信息系统的设计与实现
系统功能基本要求:教师信息,包括教师编号、教师姓名、性别、年龄、学历、职称、毕业院校,健康状况等。学生信息,包括学号、姓名、所属院系、已选课情况等。教室信息,包括,可容纳人数、空闲时间等。选课信息,包括课程编号、课程名称、任课教师、选课的学生情况等。成绩信息,包括课程编号、课程名称、学分、成绩。按一定条件可以查询,并将结果打印输出。
题目12:图书管理系统的设计与实现
系统功能基本要求:图书信息,包括图书编号、图书名称、所属类别等;读者信息,包括读者编码、姓名、性别、专业等;借还书信息,包括图书当前状态、被借还次数、借阅时间等。
题目13:教室管理信息系统的设计与实现
系统功能基本要求:教室信息,包括教室容纳人数、教室空闲时间、教室设备等;教师信息,包括教师姓名、教授课程、教师职陈、安排上课时间等;教室安排信息,包括何时空闲、空闲的开始时间、结束时间等。按照一定条件查询,统计,将结果打印输出。
题目14:职工考勤管理信息系统的设计与实现
系统功能基本要求:职工信息,包括职工编号、职工姓名、性别、年龄、职称等;出勤记录信息,包括上班打卡时间,下班打开时间,缺勤记录等;出差信息,包括出差起始时间、结束时间、统计总共天数等;请假信息,包括请假开始时间,结束时间,统计请假天数等;加班信息,包括加班开始时间、结束时间、统计加班总时间。
题目15:个人信息系统的设计与实现
系统功能基本要求:通讯录信息,包括通讯人姓名、联系方式、工作地点、城市、备注等;备忘录信息,包括什么时间、事件、地点等;日记信息;包括时间、地点、事情、人物等;个人财物管理,包括总收入,消费项目、消费金额、消费时间、剩余资金等。
附:课程设计报告参考实例
学生成绩管理系统的设计与实现
一、绪论
…………………………………………
(绪论是整篇文章的开始,应简要说明选题的缘由,设计与研究工作的目的、范围,相关领域以及前人的工作和知识空白,理论基础的分析、研究方法、研究内容、实验方法,预期结果和意义.)
二、系统需求分析
学生成绩管理工作是学校学生管理工作的重要组成部分,现在相当一部分学校的学生成绩管理工作仍沿用手工方式。随着学校规模的扩大、学生人数的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,按照软件工程原理和数据库技术开发学生成绩管理系统已成为学生管理部门的迫切需要。本实验实现的学生成绩管理系统主要包括以下功能:
1. 完成数据的录入和修改,并提交数据库保存.其中的数据包括:学生信息、课程设置、学生成绩以及操作员信息等;
2.实现信息查询。主要包括:学生信息查询、课程信息查询和成绩查询等;
3.具备一定的安全性管理功能。包括操作员的权限设置、密码设置、重新登录和修改口令等功能。
三、系统设计
3。1系统总体设计
本系统采用C/S体系结构,客户端负责提供表达逻辑、显示用户界面信息、访问数据库服务器,采用PowerBuilder9作为开发工具;服务器端则用于提供数据服务,采用SQL Server2000作为数据库管理系统.
本系统按照功能划分为以下四个模块:学生管理(包括学生信息录入和学生信息查询)、课程管理(包括课程设置和课程查询)、成绩管理(包括成绩录入和成绩查询)和系统管理(包括口令更改、重新登录和操作员管理等)。系统的功能模块图如图1所示:
学生成绩管理系统
图1 系统的功能模块图
3。2数据库设计
3。2。1数据库概念结构设计
本系统主要有学生和课程两个实体集,一个学生可以选修若干门课程,一门课程也可以被多个学生选修,两个实体集之间是多对多联系,联系上有选课成绩。为保证系统的安全性,设置了操作员这一实体集,用来存放合法用户的编号、姓名、密码和权限。本系统的E—R图如图2所示:
学号
选修
成绩
学生
n
m
姓名
所在系
出生日期
性别
课程
课程代码
课程名称
先行课号
学分
操作员
操作员编号
操作员姓名名
密码
权限
图2 系统的E-R图
3.2.2数据库逻辑结构设计
根据关系模型的转换原则,上面的E-R图可转换为如下所示的关系模型:
Student(Sno,Sname,Sex,Sbirth,Sdept)
其中各项含义分别为:学生(学号,姓名,性别,出生日期,所在系)
Course(Cno,Cname,Cpno,Credit)
其中各项含义分别为:课程(课程代码,课程名称,先行课号,学分)
SC(Sno,Cno,Grade)
其中各项含义分别为:选修(学号,课程代码,成绩)
Operator(Operator_id,Operator_name,Password,Permission)
其中各项含义分别为:操作员(操作员编号,操作员姓名,密码,权限)
根据上面的E—R图设计及关系模型的设计,得出数据表的设计,在本系统中主要的数据表如下:
表1 学生信息表Student的表结构
主码
列 名
数据类型
宽度
小数位
空否
备 注
Pk
Sno
Char
5
N
学号
Sname
Char
8
Y
姓名
Sex
Char
2
Y
性别
Sbirth
SmallDatetime
Y
出生日期
Sdept
Char
20
Y
所在系
表2 课程信息表Course的表结构
主码
列 名
数据类型
宽度
小数位
空否
备 注
Pk
Cno
Char
3
N
课程代码
Cname
Char
20
Y
课程名称
Cpno
Char
3
Y
先行课号
Credit
Decimal
3
1
Y
学分
表3 选课成绩表SC的表结构
主码
列 名
数据类型
宽度
小数位
空否
备 注
Pk
Sno
Char
5
N
学号
Cno
Char
3
N
课程代码
Grade
Decimal
5
1
Y
成绩
表4 操作员表Operator的表结构
主码
列 名
数据类型
宽度
小数位
空否
备 注
Pk
Operator_id
Char
4
N
操作员编号
Operator_name
Char
12
Y
操作员姓名
Password
Char
10
Y
密码
Permission
Char
20
Y
权限
下面在系统实施阶段就可以物理实现数据库了,本系统使用前面实验已经建好的服务器端SQL Server数据库—Student,具体创建方法见前面实验。
四、系统实现
结合PowerBuilder进行数据库应用开发的特点,设计过程可按如下步骤进行:
l 创建应用库及应用对象;
l 创建全局变量;
l 创建菜单;
l 创建数据窗口;
l 创建窗口并在窗口中放置所需控件.
4.1创建应用库及应用对象
利用PB8创建工作区间GM。pbw,进一步创建应用库gm.pbl,应对象名为gm,注释为“学生成绩管理系统”.按照下面的方法,设置应用对象的属性:
⑴默认的微帮助:在属性视图的"Genral”标签中,将”MicroHelpDefault"编辑框中的内容设为“就绪”。
⑵取消用户对工具条的控制:将属性视图中"Toolbar"标签中的”ToolbarUserControl”属性设置为不选中状态。
对应用对象的Open事件进行编程,程序代码如下:
open(w_welcome)//打开启动封面窗口
//设置数据库连接参数
SQLCA.DBMS = "ODBC"
SQLCA。AutoCommit = False
SQLCA.DBParm = "Connectstring='DSN=gm'" //数据库为Student
connect;
//判断连接是否成功,若不成功,则提示出错信息,并返回
if sqlca。sqlcode〈〉0 then
messagebox(”错误”,"数据库连接错误,轻检查后重试!”,stopsign!)
close(w_welcome)
return
end if
close(w_welcome)//关闭封面窗口
openwithparm(w_login,”First”)//打开登陆窗口,First参数表明第一次登陆
4.2 创建全局变量
在应用程序中,为了保存全局信息,定义的全局变量如图3所示:
图3 全局变量的定义
4.3菜单设计
根据应用系统的功能要求,设计如图4所示的菜单结构,其中将菜单名称命名为m_main,注释为“主菜单”,其中的图标选用的是系统内置的图标:
图4 系统的主菜单
各菜单项标题、名称及相应的”Clicked”事件中的代码如下:
学生管理(m_student)
学生信息录入(m_student_input):open(w_student_input)
学生信息查询(m_student_query):open(w_student_query)
课程管理(m_course)
课程设置(m_course_set):open(w_course_set)
课程查询(m_course_query):open(w_course_query)
成绩管理(m_score)
成绩录入(m_score_input):open(w_score_input)
成绩查询(m_score_query)
按学生查询(m_score_query_student):open(w_score_query_student)
按课程查询(m_score_query_course): open(w_score_query_course)
系统管理(m_system)
口令更改(m_system_password):open(w_changepassword)
重新登录(m_system_relogin):openwithparm(w_login,”RELOGIN")
操作员管理(m_system_operator):open(w_operator)
退出系统(m_system_exit):close(parentwindow)
4。4创建数据窗口
根据需要创建以下数据窗口:
⑴d_student:学生信息录入数据窗口.创建选项:“Grid”显示风格,“Quick Select”数据源,“student”表选择所有列,按"Sno”排序,“性别”一栏的编辑风格选用”DropDownListBox",增加”男"、”女”两项,“出生日期”的编辑风格选用”EditMask”,内容为”yyyy/mm/dd”.在数据窗口中添加六个命令按钮,属性如表5设置: 表5 d_student数据窗口中命令按钮的属性设置
控 件 名
属 性
值
b_pageprior
Text
上一页
Action
Pageprior
b_pagenext
Text
下一页
Action
Pagenext
b_add
Text
增加
Action
AppendRow
b_delete
Text
删除
Action
DeleteRow
b_save
Text
保存
Action
Update
b_exit
Text
退出
Action
UserDefined
设计样式如图5所示:(注意修改数据窗口的列标题)
图5 d_student数据窗口的设计样式图
⑵d_student2:学生信息查询数据窗口。创建选项:“Grid”显示风格,“Quick Select”数据源,“student”表选择所有列,其他可不变。
⑶d_course:课程设置数据窗口。创建选项:“Grid"显示风格,“Quick Select”数据源,“course”表选择所有列,在数据窗口中添加六个命令按钮,属性设置与d_student相同。
⑷d_course2:课程查询数据窗口。方法与d_student2类似。
⑸d_operator:操作员管理数据窗口。创建选项:“Grid”显示风格,“Quick Select”数据源,“operator”表选择所有列,其他可不变。
⑹d_score:成绩录入数据窗口。创建方法与d_student类似。
⑺d_score_student:按学生_成绩查询数据窗口。创建选项:“Group"显示风格,“SQL Select”数据源,选择打开“student”、“course”和“sc”三个表.一次选择“sc"表的sno列、“student"表的sname列、“sc"表的cno列、“course”表的cname列和“sc"表的grade列,在分组对话框中,选择“sc”表的sno列、“student”表的sname列进行分组.在数据窗口对象的Design视图中选中细目区(detail)中的sc_grade列,在其属性视图的Font选项卡中的TextColor属性后的条件框中输入if( sc_grade 〈60,rgb(255,0,0),rgb(0,0,0)),使不及格的成绩呈红色显示。在组尾区(Group Trailer)中插入一个静态文本框控件和一个计算域控件用于显示“平均成绩:"提示文本和每组的平均成绩,并且在属性视图的Format选项卡中设定计算域控件的显示格式为“0##。0",最终效果如图6所示:
图6 d_score_student数据窗口的设计样式图
⑻d_score_course:按课程_成绩查询数据窗口。创建方法与d_score_student类似。
4.5创建窗口并在窗口中放置所需控件
根据需要创建以下窗口:
⑴w_welcome:封面窗口。创建选项:Title=“欢迎"; WindowType=popup!;ControlMenu=false;Pointer=HourGlass!;st_title.text=“欢迎使用学生成绩管理系统”;St_message.text=“正在连接数据库,请稍等…”。运行效果如图7所示:
图7 封面窗口的运行效果
⑵w_login:登录窗口。创建选项:Title=“请您登录"; WindowType=response!;st_operator_id。text=“操作员编号" ;st_operator_name。text=“操作员姓名”; st_password。text=“口令”;sle_operator_id.text=””; sle_operator_name.text=”"; sle_operator_name.Enabled=false; sle_password.text="”; sle_password.password=true;cb_ok.text=“确定”;cb_exit.text=“退出”;cb_exit.cancel=true。
窗口的“Open”事件代码:
gs_loginparm=message.stringparm //保存传递过来的参数
“操作员编号”编辑框(sle_operator_id)的“Midified"事件代码:
string ls_operator_id
ls_operator_id=sle_operator_id.text
select ”operator"。”operator_name”
into :gs_operator_name
from ”operator"
where "operator”。”operator_id”=:ls_operator_id;
if sqlca.sqlcode<>0 then
sle_operator_name.text="没找到!”
sle_operator_id。text=""
sle_password。text="”
return
end if
sle_operator_name。text=gs_operator_name
“确定”按钮(cb_ok)的“Clicked"事件代码:
string ls_operator_id,ls_operator_name,ls_password,ls_permission
string ls_getpassword
ls_operator_id=sle_operator_id.text
select "operator”.”operator_name”,”operator"."password”,”operator”."permission”
into :ls_operator_name,:ls_password,:ls_permission
from ”operator”
where ”operator”。”operator_id"=:ls_operator_id;
if sqlca。sqlcode〈>0 then
sle_operator_name.text="没找到!"
sle_operator_id。text=""
sle_password.text=””
sle_operator_id。setfocus()
return
end if
sle_operator_name.text=ls_operator_name
ls_getpassword=trim(sle_password.text)
ls_password=trim(ls_password)
if len(ls_password)=0 then ls_password=space(10)
if len(ls_getpassword)=0 or isnull(ls_getpassword) then
ls_getpassword=space(10)
end if
if ls_getpassword<〉ls_password then
messagebox("警告",”口令错误!")
sle_password.text=”"
sle_password.setfocus()
return
end if
close(parent)
gs_operator_id=ls_operator_id
gs_operator_name=ls_operator_name
gs_password=ls_password
gs_permission=ls_permission
if gs_loginparm=”First” then //若是第一次登陆,则打开主窗口
open(w_main) //若重新登陆,则不打开主窗口
end if
//判断操作权限,11--—系统级 其他—-—用户级
if gs_permission="11” then
m_main。m_score。m_score_input.enabled=true
m_main。m_student。m_student_input。enabled=true
m_main。m_course。m_course_set。enabled=true
m_main。m_course.m_course_sel.enabled=true
m_main。m_system。m_system_operator。enabled=true
else
m_main.m_score.m_score_input。enabled=false
m_main.m_student。m_student_input.enabled=false
m_main。m_course.m_course_set.enabled=false
m_main。m_course。m_course_sel.enabled=false
m_main。m_system。m_system_operator。enabled=false
end if
退出按钮 (cb_exit)的“Clicked”事件代码:
close(parent)
运行效果如图8所示:
图8 登录窗口的运行效果
⑶w_main:主窗口.创建选项:Title=“学生成绩管理系统”; MenuName="m_main”;WindowType=mdihelp!;
⑷w_changepassword:口令修改窗口.创建选项:Title=“口令更改"; WindowType=response!;st_oldpassword.text=“旧口令” ;st_newpassword.text=“新口令”; st_renewpassword.text=“确认新口令";sle_oldpassword.text="”; sle_oldpassword.password=true;sle_newpassword.text=”"; sle_newpassword。password=true;sle_renewpassword.text="”; sle_renewpassword.password=true; cb_ok.text=“确定”;cb_exit.text=“退出";cb_exit。cancel=true。
“确定"按钮(cb_ok)的“Clicked”事件代码:
string ls_oldpassword,ls_newpassword,ls_renewpassword
ls_oldpassword=trim(sle_oldpassword。text)
ls_newpassword=trim(sle_newpassword。text)
ls_renewpassword=trim(sle_renewpassword.text)
if len(gs_password)=0 or isnull(gs_password)then
gs_password=space(10)
end if
if len(ls_oldpassword)=0 or isnull(ls_oldpassword) then
ls_oldpassword=space(10)
end if
if len(ls_newpassword)=0 or isnull(ls_newpassword)then
ls_newpassword=space(10)
end if
if len(ls_renewpassword)=0 or isnull(ls_renewpassword) then
ls_renewpassword=space(10)//为设定密码,则将密码规整为10个空格
end if
if ls_oldpassword〈>gs_password then
messagebox("警告","旧口令不对!”)
sle_oldpassword.text="”
sle_oldpassword.setfocus()
return
end if
if ls_newpassword〈>ls_renewpassword then
messagebox("警告","两次输入的新口令不同!")
sle_newpassword.text=”"
sle_renewpassword。text="”
sle_newpassword。setfocus()
return
end if
Update "operator"
set ”password”= :ls_newpassword
where "operator”."operator_id”=:gs_operator_id;
if sqlca.sqlcode<>0 then
rollback;
messagebox(”错误”,"修改口令失败,请重试!”)
return
end if
gs_password=ls_newpassword
commit;
messagebox("提示",”修改口令成功!”)
close(parent)
退出按钮 (cb_exit)的“Clicked”事件代码:
close(parent)
运行效果如图9所示:
图9 口令修改窗口的运行效果
⑸w_operator: 操作员管理窗口。创建选项:Title=“操作员管理"; WindowType=respon
展开阅读全文