大作业学校管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程大作业-----学校管理信息系统MISOS
(Management Information System Of School)
前言
在现代化的今天,计算机应用已普及到人类生活和工作的各个方面。
随着各种信息交流量的急剧增加,信息作为人类社会三大资源之一,将会得到广泛应用。
学校作为一个信息不断流动且信息业务广泛的单位,其自身的工作量极大,由于传统的工作方式而带来的种种不便,使得工作人员频繁奔波在各个部门之间,每天都是重复性的工作,其效率极低。
因此,有必要建立起一套与之工作方式相适应的管理系统,尽可能的利用计算机替代原始的重复性的手工管理工作。
本系统就是在这样的情况下产生的。
由于学校管理信息系统是一个庞大的系统工程,本人能力有限,只能将其部分功能展示出来,因而本系统是MISOS的测试版。
如在使用中给您带来不便请谅解!
系统分析与设计
1.问题提出
随着信息化社会的到来,一场信息的革命已经开始,人们越来越感到信息化的到来给我们带来的不止是一件新鲜的事物,而是的的确确给我们的工作和生活所带来的改变。
(1) 学生信息网络化
如今,实现网上录取,不论是北大、清华,还是天大、南大,都已实现了网上录取。
这样一来,传统的流程便显得有些多余,学生一旦被录取,学校便发送录取通知书,并同时完成存档。
如此一来,学校如果有一套系统,便可在存档的同时将学生的部分情况存入学生管理系统的数据库,同时发送录取通知书,一举两得。
(2) 人工统计的失误较多
依目前的工作方式来计算、统计,需要大量的工作人员进行一次次反复重复的计算,当然会耗费大量人力、物力,这样自然提高了管理的成本。
与此同时,还会有大量数据需要不断重复的添加,修改,删除,也会造成数量统计上的不准确。
因此,不能跟上整个工作的运行速度,也不能及时搜索所需要的数据,更不能实时的提供准确,详实的数据以供参考与分析。
(3) 计算不准确
这尤其体现在财务方面。
其实在统计,分析等工作中也有这样的问题。
2.系统目标设计
学校管理系统可以用于业务管理,学生管理,信息服务等方面的工作,有如下3个方面的目标。
◆支持学校实现规范化的管理。
◆支持学校高效率完成业务管理中的人事、财务、传统办公等工作,还可以完成学生管理中的新生注册、学籍管理、成绩管理、教学计划等方面的工作,同时支持Internet等新业务。
◆支持企业进行相关方面的科学决策,分析统计。
3.开发设计思想
本系统开发设计思想有以下几点。
◆尽量采用现有软硬件资源,进行资源整合,提高软硬件的利用律。
同时加以先进的管理运行方案,从而达到充分利用公司现有资源,提高系统开发水平和应用
效果的目的。
◆系统应符合学校管理的规定,满足公司日常工资管理工作需要,并达到操作过程中的直观、方便、实用、安全等要求。
◆系统采用C/S体系结构。
Client(客户端)负责提供表达逻辑、显示用户界面信息访问数据库服务器;Server(服务器端)则用于提供数据服务。
系统分析等前期工作应尽量详细完善,以便应付以后的变化。
对于一些安全性要求不高的信息和一些必要的信息可以方便地采用Brower/Server的方式进行发布与访问。
◆系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
◆系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
4.开发和运行环境选择
操作系统采用Microsoft WindowsNT/2000。
同时采用Microsoft SQL Server2000数据库管理系统做后台数据处理使用,前端采用PowerBuilder8.0 Enterprise作为应用开发工具。
客户端软件在Windows98、Windows ME以及Windows2000下均可安装使用。
Microsoft SQL Server2000是一种大型数据库应用软件,其具有简单易操作,使用广泛,尤其是中小型企事业单位。
特别是它与Windows OS良好的兼容性,使其具有其他同类数据库软件所不可比拟的优势。
另外它的成本较低,很适于学校这样的非企业单位。
和Microsoft SQL Server2000相比,PowerBuilder8.0有着其专业数据库开发工具的优势。
其面向对象、开发效率高、维护性好等优点特别适合开发数据库应用系统。
系统需求:
1)硬件资源:
服务器端:P4 Server(或高级PC机)配置:P4 CPU,512M Memory, RAID DISK, 网卡等;
客户端:普通PC,要有网卡;
其它要求:集线器(HUB),网线等;
2)软件资源:
服务器端:Windows2000 Server/Advanced ;
客户端:Windows98/ME/NT/2000均可;
5.系统功能分析
(1)(1)新生注册:将学生信息录入表中,分配每位新生一个学号,这个学号是这
个学生在校期间的唯一标识。
(2)(2)教学计划:在开学前,各部系要将新学期的教学计划提交教务处。
其中
包括:班级设定、课程设定、排课、(它决定着教师的安排,教室的安排,教师的工资结算等众多问题)。
(3)(3)学籍管理:在学校管理系统中,尤为重要的一项工作就是学籍管理。
其
中对学生的奖惩,学籍变动,考试等许多方面起重要的作用。
(4)(4)统计、查询、打印:在系统使用过程中,准确详实的统计分析会给相关
部门提供有价值的信息,在需要的时候,不仅可以迅速查到所需内容,更能及时打印出来,既方便有快捷。
6.用户权限
对于访问此系统的用户主要分为三类:
第一类:匿名用户(guest)。
此类用户只具有查询检索的功能,可通过指定机器进行操作或通过Internet进行浏览。
第二类:管理人员(Manager)。
管理人员是指教务处,学生处等管理部门的工作人员。
他们必须在系统管理员的权限指派下方能进行管理。
其基本具有增、删、改、查的功能。
他们不具备给予其他人员权限的权利。
第三类:系统管理员(System Manager)此用户具有最高的权限,可对整个数据库进行操作。
7.软件系统功能模块设计(HIPO图及每一个模块的作用)
HIPO图:在系统功能分析的基础上,考虑PowerBuilder程序编制的特点,得到如下图所示的功能模块图。
各功能模块的作用
(1)(1)新生注册:将学生信息录入表中,分配每位新生一个学号,这个学号是这个学生在校期间的唯一标识。
录入学生个人情况。
(2)(2)班级设定:在教学计划和招生中起重要作用的一项功能。
录入设定的班级。
(3)(3)课程设定:与班级设定一样,是为教学计划和招生服务的。
录入设定的课程。
(4)(4)排课:这是教学计划中最为关键的一项工作,它决定着教师的安排,教室的安排,教师的工资结算等众多问题。
安排课程、班级与教师。
(5)(5)学籍管理:在学校管理系统中,尤为重要的一项工作就是学籍管理。
其中对学生的奖惩,学籍变动,考试等许多方面起重要的作用。
尤
其是成绩管理,这里使用的是由课程录入(即统一阅卷时的成绩录入)
和学生录入(即由个人录入本人的各课成绩)
(6)(6)统计人数比例:在系统使用过程中,准确详实的统计出各班人数比例情况。
(7)(7)查询打印:可对学生、课程、班级等进行查询打印。
(8)(8)教师管理:录入教师个人情况。
(9)(9)工资管理:对本系统中的教师的工资进行管理,按科学算法进行工资发放,并对其进行实时有效的监督和管理。
数据库设计
实体联系图, 说明每个实体的作用。
教师、学生、班级、课程实体关系模型图
数据库逻辑结构设计
为了实现该管理系统各个模块的功能,首先应对各种数据进行系统的、有序的归类和整理。
在此,建立一个名为 MISOS的数据库,在该库中主要包括以下几个表:
(1) 学生表(student)
表所记录的为所有学生的详细信息,在新生注册时,可在此表加入新的记录,也可根据此表查询有关学生的相关资料。
其结构如下
表所记录的为所有教师的详细信息,可在此表加入新的教师记录,也可根据
表所记录的为所有教师的详细信息,可在此表加入新的教师记录,也可根据
标题名称列名数据类型精度可否为空主关键字学号Sid Integer 4 是
课程号cid Integer 4 是成绩Score Unsigned
smallint
摘要Abstract Varchar 50 √
其表记录关于某门课程在某个学期由那个教师教那个班多少学时。
可利用它
标题名称列名数据类型精度可否为空主关键字课程编号cid integer 是班号Cpid char 10 是
学期Term Unsigned
smallint
学时Hours Unsigned
smallint
教师编号Tid Integer 是备注Memo Varchat 50 √
根据以上的E-R图设计如下的数据库物理结构
应用程序对象、登录窗口、主窗口、菜单的设计和相应脚本
一、应用程序的创建
1.创建工作空间:
misos.pbw
2.创建应用程序:
misos.pbl
open事件脚本:
application-script
/********************************
* Event: Open打开事件 *
* Function : 初始化 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
//为事务对象SQLCA赋值
//为事务对象SQLCA赋值
SQLCA.DBMS = "ODBC"//为事务对象SQLCA赋值
SQLCA.AutoCommit = False//程序通过提交语句(COMHIT)提交事务SQLCA.DBParm = "Connectstring='DSN=misos'"//与数据库管理系统相关的一组连接参数
connect using sqlca;//通过事务对象将应用程序与数据库建立连接
//测试数据库连接是否操作成功,若失败则显示错误信息
if sqlca.sqlcode<>0 then
Messagebox ("错误警告","不能连接数据库, 错误是"+sqlca.sqlerrtext,stopsign!)
return
end if
open(w_info_miso)
二、登录窗口的设计
1.进入系统界面
2.登录窗口图示
3.登录窗口主要控件
掩码编辑器(em_1),单行编辑框(sle_1),静态文本框(st_3),以及控制按钮(cb)。
4.登录窗口主要脚本
/********************************
* Event: Open打开事件 *
* Function : 初始化 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
cb_1.Enabled = False
em_1.SetFocus()
/**********************************
* Event: EnterKey事件 *
* Function : 输入用户帐号 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**********************************/
integer code
// 如果用户按回车键或Tab键则验证用户密码
if keydown(KeyEnter!) or keydown(KeyTab!) THEN
code=integer(em_1.text) // 将用户输入的用户帐号赋予code
if code<>12345 then
st_3.Text = "警告信息:用户帐号有误,请重新输入"
st_3.TextColor = rgb(255,0,0)//红色
em_1.Text=""
em_1.SetFocus()
else
st_3.Text = "请输入密码"
st_3.TextColor = rgb(0,255,255) // 粉蓝色
sle_1.Enabled = TRUE
sle_1.BackColor=rgb(255,255,255)
sle_1.Text = ""
sle_1.SetFocus()
em_1.Enabled=False
end if
end if
/**********************************
* Event: EnterKey事件 *
* Function : 输入用户密码 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**********************************/
string mm
// 如果用户按回车键或Tab键则验证用户密码
if keydown(KeyEnter!) or keydown(KeyTab!) THEN
mm=string(sle_1.text) // 将用户输入的用户帐号赋予code if mm<>"admin" then
st_3.Text = "警告信息:用户密码有误,请重新输入"
st_3.TextColor = rgb(255,0,0)//红色
sle_1.Text=""
sle_1.SetFocus()
else
st_3.Text = "请单击Enter键登录"
st_3.TextColor = rgb(0,255,255) // 粉蓝色
cb_1.Enabled = TRUE
cb_1.SetFocus()
sle_1.Enabled=False
end if
end if
/****************************
* Event: EnterKey事件 *(同时兼有Clicked点击事件)
* Function : 登录系统 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
******************************/
open(w_main)
close(w_login)
/********************************
* Event: Enterkey事件 * (同时兼有Clicked点击事件) * Function : 关闭登录窗口 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
close(parent)
messagebox("提示","已经退出系统了",none!)
三、应用程序主窗口
1.运行界面图示及属性设置
四、主菜单设计
1.菜单的结构图
2.介绍各个菜单的脚本
“退出”菜单下“退出系统”子菜单项的Clicked事件脚本为Close ( ParentWindow )
messagebox("提示","已经退出系统了",none!)
//其功能是关闭主窗口w_main
五、具体脚本
依次介绍:
新生注册(班级设定、课程设定与排课的脚本与其雷同故省略) w_edit_student
w_edit_student-script
/**************************************************
* Event: Open打开事件 *
* Function: 初始化窗口及其控件 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************************/
// 说明变量
long rsm
string xq, hh
// 初始化控件和数据窗口
dw_1.ShareData(dw_2) // 两个数据窗口控件共享Datawindows dw_1.SetTransObject(sqlca) // 为数据窗口dw_1指定事务对象SQLCA dw_2.SetTransObject(sqlca) // 为数据窗口dw_2指定事务对象SQLCA rsm = dw_1.retrieve() // 检索数据,将符合条件的记录数赋予rsm
if rsm<=0 then // 如果没有检索出数据
cb_2.Enabled = FALSE // 置“删除”按钮使不能
else // 如果检索出数据
cb_2.Enabled = TRUE // 置“删除”按钮使能
end if
COMMIT USING SQLCA ; // 建立数据库连接
dw_1.SetRowFocusIndicator(Hand!) // 将dw_1的行光标设置成手形
dw_1.SetFocus()
dw_1-script
/******************************************************
* Event: RowFousChanged行光标改变事件 *
* Function: 从数据窗口滚动到当前行 *
* Author: J.R.Wang *
* Create date: 2002/12/12
******************************************************/
// 如果从数据窗口的当前行与主数据窗口的当前行不同
// 置从数据窗口的当前行为主数据窗口的当前行
if dw_2.getrow()<>currentrow then
dw_2.scrolltorow(currentrow)
end if
/**********************************************
* Event: Scrollvertical垂直滚条改变事件 *
* Function: 从数据窗口滚动到主数据窗口 *
* 当前页的第一行 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**********************************************/
dw_2.scrolltorow(long(dw_1.object.datawindow.firstrowonpage))
cb_1-script
/********************************
* Event: Clicked事件*
* Function: 增加课程*
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
long row, rsm
//dw_1.ShareData(dw_2) // 两个数据窗口控件共享Datawindows
row = dw_2.InsertRow(0) // 在数据窗口中插入一条记录
if row = -1 then // 插入无效报错
messagebox("插入错误","无法增加, 请重新插入",Exclamation!)
else
dw_1.ScrollToRow(row) // 滚动到row行
dw_2.ScrollToRow(row) // 滚动到row行
dw_1.SetRow(row) // 置row为当前行
dw_2.SetRow(row) // 置row为当前行
dw_2.Object.sname[row] = "无" // 在姓名字段填入“无”
dw_2.Object.sex[row] = "男" // 在性别字段填入“男”
cb_2.Enabled = TRUE // 使命删除令按钮cb_2为使能
end if
return
cb_2-script
/***************************************
* Event: Clicked事件 *
* Function: 修改新的数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************/
integer rc
long rsm
rsm = dw_2.RowCount() // 计算数据窗口中的记录个数
if rsm<1 then // 如果无记录
MessageBox("警告信息", "操作失败", exclamation!) // 显示错误信息return
end if
rc = dw_1.Update() // 更新数据
if (rc > 0) then
COMMIT USING SQLCA ;
MessageBox("应答信息", "存盘完毕,按Enter键继续")
end if
班级设定、课程设定、排课的窗口
教师管理w_edit_teacher
w_edit_teacher-script
/**************************************
* Event: Open打开事件 *
* Function: 初始化窗口及其控件 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************/
// 说明变量
long rsm
string xq, hh
// 初始化控件和数据窗口
dw_1.ShareData(dw_2) // 两个数据窗口控件共享Datawindows dw_1.SetTransObject(sqlca) // 为数据窗口dw_1指定事务对象SQLCA dw_2.SetTransObject(sqlca) // 为数据窗口dw_2指定事务对象SQLCA
rsm = dw_1.retrieve() // 检索数据,将符合条件的记录数赋予rsm
if rsm<=0 then // 如果没有检索出数据
cb_2.Enabled = FALSE // 置“删除”按钮使不能
else // 如果检索出数据
cb_2.Enabled = TRUE // 置“删除”按钮使能
end if
COMMIT USING SQLCA ; // 建立数据库连接
dw_1.SetRowFocusIndicator(Hand!) // 将dw_1的行光标设置成手形
dw_1.SetFocus()
dw_1-script
/*********************************************
* Event: RowFousChanged行光标改变事件 *
* Function: 从数据窗口滚动到当前行 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************************/
// 如果从数据窗口的当前行与主数据窗口的当前行不同
// 置从数据窗口的当前行为主数据窗口的当前行
if dw_2.getrow()<>currentrow then
dw_2.scrolltorow(currentrow)
end if
/**********************************************
* Event: Scrollvertical垂直滚条改变事件 *
* Function: 从数据窗口滚动到主数据窗口 *
* 当前页的第一行 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**********************************************/
dw_2.scrolltorow(long(dw_1.object.datawindow.firstrowonpage))
cb_1-script
/********************************
* Event: Clicked事件*
* Function: 增加课程*
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
long row, rsm
//dw_1.ShareData(dw_2) // 两个数据窗口控件共享Datawindows
row = dw_2.InsertRow(0) // 在数据窗口中插入一条记录
if row = -1 then // 插入无效报错
messagebox("插入错误","无法增加, 请重新插入",Exclamation!)
else
dw_1.ScrollToRow(row) // 滚动到row行
dw_2.ScrollToRow(row) // 滚动到row行
dw_1.SetRow(row) // 置row为当前行
dw_2.SetRow(row) // 置row为当前行
dw_2.Object.sname[row] = "无" // 在姓名字段填入“无”
dw_2.Object.sex[row] = "男" // 在性别字段填入“男”
cb_2.Enabled = TRUE // 使命删除令按钮cb_2为使能
end if
return
cb_2-script
/*********************************
* Event: Clicked事件 *
* Function: 修改新的数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************/
integer rc
long rsm
rsm = dw_2.RowCount() // 计算数据窗口中的记录个数
if rsm<1 then // 如果无记录
MessageBox("警告信息", "操作失败", exclamation!) // 显示错误信息return
end if
rc = dw_1.Update() // 更新数据
if (rc > 0) then
COMMIT USING SQLCA ;
MessageBox("应答信息", "存盘完毕,按Enter键继续")
end if
工资管理w_salary
w_salary-script
/**********************************
* Event: Clicked事件 *
* Function : 教师编码输入处理 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**********************************/
sle_1.setfocus()
jsbh = integer(sle_1.text)
SELECT tname INTO :jsxm
FROM teacher WHERE tid = :jsbh;
st_2.text = "您好"+jsxm+"!"
st_2.TextColor = rgb(255,0,0)
select workrate into :gzdj from teacher where tid = :jsbh;
select cid,hours into :kchbh,:ksh from report2 where tid = :jsbh; select onemoney into :kchdj from course where cid = :kchbh;
ms = (ksh*kchdj+gzdj*1000)/12
st_3.text = "您的月薪为"+string(ms)
st_3.TextColor = rgb(255,0,255)
sle_1.text = ""
统计比例w_graphics_total_students
w_graphics_total_students-script
/**************************************
* Event: Open打开事件 *
* Function: 初始化窗口及其控件 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************/
// 初始化控件和数据窗口
dw_1.SetTransObject(sqlca) // 为数据窗口dw_1指定事务对象SQLCA dw_1.reset()
cb_1.setfocus()
cb_1-script
/*********************************
* Event: Clicked事件 *
* Function: 检索数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************/
dw_1.retrieve()
查询打印w_selectandprint
w_selectandprint-script
/********************************************
* Event: Clicked事件 *
* Function : 打印数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************************/
// 说明变量
integer rc
long rsm
int code
Long Job
// 提示信息
code = messagebox('提示信息','确实打印吗?',information!,YesNo!,1)
// 打印报表
if code = 1 then // 如果选择打印
this.enabled=False // 使当前命令按钮使不能
Job = PrintOpen() // 启动打印作业并返回作业号
printdatawindow(job,dw_*) // 打印数据窗口控件dw_*的内容
PrintClose(Job) // 关闭打印作业并把打印页面发送到打印机上
this.enabled=TRUE // 使当前命令按钮使能
end if
学生、课程、教师、班级查询的脚本与成绩查询雷同故省略
tab_1.tabpage_5.cb_13-script(成绩查询)
dw_5.SetTransObject(sqlca) // 为数据窗口dw_5指定事务对象SQLCA dw_5.reset()
dw_5.SetFocus()
integer cid,kchh
string kch
kchh = integer(sle_5.text)
cid = kchh
select cname into :kch from course where cid = :kchh;
st_6.text = "课程 "+kch+" 的成绩"
dw_5.retrieve(cid)
由课程录入成绩(与由学生录入成绩的脚本雷同故省略)
w_edit_score
w_edit_score_cou
integer kchh //定义变量
/**************************************
* Event: Open打开事件 *
* Function: 初始化窗口及其控件 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************/
// 初始化控件和数据窗口
dw_1.SetTransObject(sqlca) // 为数据窗口dw_1指定事务对象SQLCA sle_1.setfocus()
cb_1.Enabled = false
sle_1-script
/**************************************
* Event: Enter事件 *
* Function: 检索数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
**************************************/
integer cid
string kch
kchh = integer(sle_1.text)
cid = kchh
dw_1.retrieve(cid)
commit using sqlca;
cb_1.enabled = true
cb_1-script
/********************************
* Event: Clicked事件*
* Function: 增加新成绩*
* Author: J.R.Wang *
* Create date: 2002/12/12 *
********************************/
long row, rsm
row = dw_1.InsertRow(0) // 在数据窗口中插入一条记录
if row = -1 then // 插入无效报错
messagebox("插入错误","无法增加, 请重新插入",Exclamation!) else
dw_1.ScrollToRow(row) // 滚动到row行
dw_1.SetRow(row) // 置row为当前行
dw_1.Object.cid[row] = kchh
cb_2.Enabled = TRUE // 使命删除令按钮cb_2为使能end if
return
cb_2-script
/*********************************
* Event: clicked事件 *
* Function: 删除成绩 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************/
int code, rc, czry
long rsm, row, num1, num2, flag
row = dw_1.GetRow() // 取当前行
rsm = dw_1.RowCount() // 计算数据窗口中的记录个数
if row>0 and row<=rsm then // 删除的当前行在有效范围flag = dw_1.DeleteRow(row) // 删除当前行
rsm = rsm - 1 // 记录个数减1
if rsm<=0 then // 如果无记录
cb_2.Enabled = FALSE // 置“删除”按钮使不能
else // 如果有记录
cb_2.Enabled = TRUE // 置“删除”按钮使能
end if
else
messagebox("删除错误","无法删除, 请重新操作",Exclamation!) // 显示错误信息
end if
return
cb_3-script
/*********************************
* Event: Clicked事件 *
* Function: 修改新的数据 *
* Author: J.R.Wang *
* Create date: 2002/12/12 *
*********************************/
integer rc
long rsm
rsm = dw_1.RowCount() // 计算数据窗口中的记录个数
if rsm<1 then // 如果无记录
MessageBox("警告信息", "操作失败", exclamation!) // 显示错误信息return
end if
rc = dw_1.Update() // 更新数据
if (rc > 0) then
COMMIT USING SQLCA ;
MessageBox("应答信息", "存盘完毕,按Enter键继续")
end if
由学生录入成绩w_edit_score_stu
小结
1.本系统的主要特色。
本系统简洁实用,特别适合普通教育体系及非综合性高等教育学院使用。
由于是测试版,它的可扩展性极佳,有利于开发人员在试用的基础上,扩展系统性能,增加组建等。
另外,纯中文的用户友好界面使得人们使用得更得心应手!2.写出学习本课程的体会。
通过学习本课程,使我受益匪浅。
特别是通过学习本课程,使我在数据库编程和处理数据库等问题上有了长足的进步。
在学习的过程中使我的编程思想有了质的变化。
不论是SQL Server 还是PB8中的数据库我基本上有所了解和掌握,前后台的连接上也做了几次成功的尝试,在编程中着重掌握了数据窗口的使用和基本脚本语句的用法。
在嵌入式SQL中掌握了其基本用法并在程序中使用。
相信通过自己的努力和不断的再学习,会使我在使用PB8的编程中更加得心应手。