西南科技大学本科生毕业论文
5.7.3课表的查询
通过课表查询可以查询该课程的详细信息,如上课时间等。在课程查询时,因为有可能同一门课程由不同的老师上,同一个老师可能上很多们课程,所以在查询条件的选择时,把老师和课程同时作为查询条件。程序流程图如5-15所示。
开始输入课程名和教师名课程名与教师名是否存在NY该课程是否有效Y找到该课程记录N停止图5-15课表查询程序流程图
5.8收费管理
在学生自由上机模式中,学生上机是要收费的。所以学生自由上机的前提条件是学生账号上有可用金额。在系统中,设置了收费管理模块来对学生账户余额进行管理。实现账户的充值以及余额的查询。
36
西南科技大学本科生毕业论文
5.8.1账户充值
当学生账户余额不足或是已经用完时可以到机房管理员那里充值账户金额。在系统中充值方式分为两种:一是按照金额充值,另一种是按照时间充值。两种方式是为了方便用户的冲值便捷。用户充值界面如图5-16所示。
图5-16用户充值界面
冲值确认如图5-17,图5-18所示。
图5-17确认提示信息
图5-18提示信息
通过输入充值账户的账号和充值的数量(按金额元或时间分为单位),为学生冲入所需金额。
ProgramAddAccountDimCarNo,msg
Asstring
37
西南科技大学本科生毕业论文
DimDim
FillNumFillMoney
AsAs
integerCurrency
FillMoney=0FillNum=0Input(CarNo)IfCarNo不为空
关闭查询控件
添加查询SQL语句:查找学生帐号等于输入的账号打开查询控件If查找记录=1
thenthen
使查询控件处于编辑状态
If选择按金额充值
then
FillMoney=输入的金额;FillNum=输入金额*60分钟
Output(“你将充入FillNum分钟机时,共计FillMoney元“)Endif
Elseif选择按分钟充值thenFillNum=输入的分钟
FillMoney=FillNum/60分钟
Output(“你将充入FillNum分钟机时,共计FillMoney元“)Endif
Endif
Output(“未选择操作”)Endif
If确认信息为真
then
账户剩余金额=账户剩余金额+FillMoney账户剩余时间=账户剩余时间+FillNum充值记录表.充值时间=现在时间充值记录表.充值金额=FillMoney充值记录表.充值账号=CarNo
38
西南科技大学本科生毕业论文
Endif
EndAddAccount5.8.2账户余额的查询
此功能方便用户查看自己的剩余金额,能够按时的交纳上机费用.提供用户账户余额查询功能。根据用户输入的查询账号,系统自动查询该账号上的余额。
查询的SQL语句为:
sql.Text
:=
format('select
sa_remain_money
from
t_student_account
where
sa_id=''%S''',[]);
将找到的结果显示到文本框里。
edt2.Text:=fieldbyname('sa_remain_money').AsString+'¥';
并且对输入的账号进行验证,因为我们的学生账号由学生学号编排。所以首先验证它不为空,并且对输入的内容进行验证(只能为数字)。验证是对文本框的KeyPress事件中进行。
5.9统计信息的管理
统计信息是统计用户所需的基本信息,方便管理员查看,统计所需信息。5.9.1充值金额的统计
统计规定时间内总共缴纳的金额。对机房自由上机带来的利润有一个直观的印象。方便管理员安排机房开放时间管理。
用户可以根据选定的时间段对已有的收入进行统计。通过两个
TDateTimePick控件来选择时间范围。则系统根据a_money表来统计金额。SQL语句
如下:selectsum(a_money)asallmomeyfromt_accountwherea_time>=:date1
and
a_time<=:date2。、其中date1,date2是两个datetime型的参数。其中插入语句如下:
qry1.Parameters.ParamByName('date1').Value:=dtp1.DateTime;qry1.Parameters.ParamByName('date2').Value:=dtp2.DateTime;edt3.Text:=qry1.Fieldbyname('allmomey').AsString;
而a_money的记录是通过账号充值时以下代码实现的:
39

