电信终端计费系统开发.docx
- 文档编号:6231440
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:101
- 大小:1.45MB
电信终端计费系统开发.docx
《电信终端计费系统开发.docx》由会员分享,可在线阅读,更多相关《电信终端计费系统开发.docx(101页珍藏版)》请在冰豆网上搜索。
电信终端计费系统开发
电信终端计费系统开发
1.1系统设计
1.1.1系统功能分析
终端计费系统开发的目的是能够实现对不同型号的程控交换机对计费中心定时或即时传下来的原始话单信息进行及时准确的分类、查询、浏览、修改、删除、统计、话单信息的打印等。
能够及时查询客户的通话数据,避免引起话费争议,提高客户的满意度。
使管理更科学、更方便、更合理。
同时,也能够帮助电信计费有关人员提高工作效率和服务质量。
为电信局减少不必要的损失。
从而有效的提高电信局经济的效益。
通过对电信局计费中心日常工作的分析,可将终端计费系统的功能概括成如下方面。
(1)号码管理:
包括固定电话和公用电话基本信息的录入、修改、删除、查找、添加、查询等管理。
(2)字冠管理:
包括固定电话和公用电话地方基本字冠的录入、修改、删除、查找、添加、查询等管理。
(3)原始话单管理:
包话对程控交换传下来的原始话单信息的导入、浏览、删除等管理。
(4)费率管理:
包括固定电话和公用电话基本费率的录入、修改、删除、查找、添加、查询等管理。
(5)关于系统:
对有关系统的简介和对用户的管理(包括用户注册、用户删除、用户修改)。
(6)计费统计管理:
即时计费、定时周期计费、对已统计的计费表的浏览(包括对统计表的删除、删除统计表的字段、对最近操作进行恢复、查看统计表)等管理。
考虑系统的安全性,需要对用户进行安全认证,因此还需要实现以下系统用户的管理功能。
(1)用户登录认证。
(2)用户管理,包括用户注册、删除用户、修改用户信息等(只有高级管理员才有此权限)。
(3)登录日志的记录和删除日志(只有高级管理员才有此权限,普通用户只能对数据进行浏览)。
1.1.2系统功能模块设计
根据系统所要实现的功能,按照结构化程序设计的原则将整个系统划分为如图1-1所示的若干个功能模块。
图1-1计费系统功能模块图
1.1.3操作流程图
根据系统功能模块的划分和计费管理系统的实际工作流程,画出如图1-2所示的计费管理系统操作流程图。
导入
图1-2计费系统操作流程图
2.1数据库设计
2.1.1数据库需求设计
在前面的1.1节里已经对计费系统操作流程进行了分析,在它的基础上,我们可以列出以下计费管理系统所需的数据项和数据结构。
(1)固话表:
号码、地名、基本月租等。
(2)公话表:
号码、地名、基本月租等。
(3)字冠表:
地名、类型、本地字冠号
(4)费率表:
主叫类型、通话类型、日期类型、费率、首次三分钟等。
(5)登录日志:
工号、登录日期等
(6)用户注册:
工号、密码、密码验证等。
2.1.2数据库概念结构的设计
Access数据库是OfficeXP软件包中的产品之一,是一个关系数据库
(RDBMS),与其他的关系数据库管理系统相比,Access具有简单易学、方便实用等特点,易于开发数据库应用程序。
Access通过数据库的方式来处理数据,在Access的数据库中包含了表、表之间关系、查询、报表、宏和数据访问页等对象。
其实可以把数据库看成是一个相关对象的容器,创建数据库是使用Access进行数据处理的第一步。
在Access中可使用以下三种方法创建数据库:
(1)用数据库向导创建数据库;
(2)创建空的数据库;
(3)用现有文件创建数据库;
本系统所采用的数据库就是通过Access(数据库向导)来创建的。
而且要创建三个数据库:
计费系统库、话单库、统计库。
2.1.3数据库逻辑结构设计
从图1-2计费系统操作流程图,可以看得出要建立六个基本的数据表来存储系统所必备的信息。
这六个表分别为固话表、公话表、字冠表、费率表、登录日志表、用户注册表。
实际上,还要建立统计表。
但统计表的建立是在进行计费时通过程序来完成建立过程的。
后面的章节会介绍到关于这方面的内容。
六个数据表的结构如表2.1到表2.6所示。
表2.1固话表
字段名称数据类型
ID自动编号
号码数字
地名文本
基本月租数字
表2.2公话表
字段名称数据类型
ID自动编号
号码数字
地名文本
基本月租数字
表2.3字冠表
字段名称数据类型
ID自动编号
地名文本
类型文本
本地字冠号数字
表2.4费率表
字段名称数据类型
ID自动编号
主叫类型文本
通话类型文本
费率文本
日期类型文本
首次三分钟货币
表2.5字冠表
字段名称数据类型
ID自动编号
工号文本
登录日期日期\时间
表2.6用户注册表
字段名称数据类型
ID自动编号
工号文本
密码文本
密码确认文本
2.1.4数据库的创建
创建数据库时可以先创建一个空数据库,然后往数据库中添加相应的对象,这是一种较复杂但又非常灵活的创建数据库方法。
创建数据库的步骤如下。
(1)
在Access中执行[文件][新建]命令,出现[新建文件]对话框。
(2)在[新建文件]对话框中选择[新建]选项中的[空数据库],弹出[文件新建数据库]对话框;
(3)在[文件新建数据库]对话框中选择保存文件的位置并输入要创建的数据库名称,然后单击[创建]按钮,出现如图2-1所示的[数据库]窗口。
空数据库创建完毕。
图2-1数据库窗口
2.1.5数据表的创建
创建表其实就是创建表的结构,表的结构包括表中每个字段的字段名、字段的数据类型和字段属性,为表中的每个字段设置好字段名、字段的数据类型和字段属性后,表也就创建好了。
创建表之前首先需要打开数据库窗口,然后在数据库窗口中通过以下四种方法进行创建:
(1)通过输入数据创建表;
(2)使用表向导创建表;
(3)使用表的设计视图创建表;
(4)通过导入或链接已有的数据创建新表;
一般采用“使用表向导创建表”来创建表,本系统所用到的表大部分都
采用此方法来创建表。
2.1.6数据库版本的转换
本系统采用数据控件的形式访问数据库,VisualBasic6.0中的数据控件不支持Access2000以上版本的格式数据库,为了访问数据库,必须将高版本格式的数据库转化为低版本的数据库格式。
具体操作如下:
用高版本的Access打开数据库文件.mdb,执行[工具][数据库实用工具][转换数据库][到早期Access数据版本]命令,输入新的数据库文件路径及文件名,单击[确定]即可。
将数据转换成较低版本后,不能在数据库直接修改数据库中表的结构。
如果需要修改,必须将它转换回高版本的Access数据库格式后才能修改,修改完后再转换成低版本格式的数据库。
2.3工程文件及主窗体的创建
数据创建完后,下一步就到系统功能的开发和实现。
本系统采用中文版VisualBasic6.0来编写,而用DAO作为数据访问的对象。
2.3.1创建工程文件
启动VisualBasic6.0,新建一个工程文件,为工程添加必要的引用对象和部件库,执行[工程][引用]命令,打开[引用]对话框,在[可用的引用]列表框中选择“MicrosoftDAO3.6ObjectLibrary”。
这样工程中就可以使用DAO对象库了。
[引用]对话框界面如图2-2所示,其中前4项是系统创建工程时自动添加的。
图2-2[引用]对话框
系统中还需要使用表格来显示数据和插入一个音效来播入一个音频文件,为此需要给工程添加表格部件和音效对象。
添加方法:
[执行][部件]命令,打开部件对话框,在[控件]选项卡中选择[MicrosoftDataGridControl6.0(OLEDB)],在[插入对象]选项卡中选择[音效],然后点击[确定]按钮,相应的控制件就会被添加到工具箱上。
保存工程,工程文件命名为工程1。
2.3.2主控模块的设计
为了提高系统的安全性,用户必须通过登录认证才能使用本系统。
程序运行后首先显示的是登录窗体,用户输入正确的工号和密码才能启动主窗体。
为了实现这个功能,一种解决办法是将窗体设为启动模块,另一种办法是将启动模块设置为Main过程,在Main过程中显示登录模块进行登录认证,根据认证结果确定是否显示主窗体。
本系统采用的是第一种方法。
在工程文件中执行[工程][工程1属性]命令,打开[工程1属性]对话框,在[通用]选项卡的[启动对象]列表框选取form1(登录模块),单击[确定]按钮。
如图2-3所示。
图2-3[工程1属性]对话框
2.4模块变量
2.4.1变量的定义
在程序中,常用变量来临时存储数据,每个变量声有属于自己的名字和数据,变量的名字简称为变量名,变量的类型决定该变量可存储哪种类型的数据,以及变量作用的范围。
全局变量的作用域是整个应用程序。
局部变量的作用域只是在过程中可用。
在这里我们先介绍本系统设计要用到的一些全局变量,而一些局部变量过程中用到再做介绍。
全局变量只能在模块(Module1)中定义,且必须用Public关键字定义。
因此,首先要在工程中添加一个Module1模块。
添加模块的方法:
在工程里执行[工程][添加模块]命令,就可以在工程中添加一个Module1模块,本系统的Module1模块中定义以下变量:
Publicdirtablename
Publict,strar
Publicv'判断是否结算过
Publicgonghao,gonghao1
Publicp'判断登录级别
Publicdingshihour
Publicdingshiname1
2.5登录模块的创建
2.5.1窗体的创建
执行[工程][添加窗体]命令,给工程添加一个新窗体,窗体的主要属性设置如表2-7所示
表2-7登录窗体属性
属性名属性值说明
名称form1窗体名称
caption登录窗体标题
pictureBitTamp窗体背景图片
StartUpPositoon2-屏幕中心启动后居屏幕的中心
2.5.2登录窗体实现的功能
窗体右上角有日期和时间的显示。
“计费系统”标题反复从右向左移动。
向文体框输入密工号和密码后,通过过单击“确认”,验证工号和密码有效后,方可进入主界面。
同时,如果是试用本系统,系统会提示只能试用4次,超过了第4次,就无法再进入主界面,如果你想继续使用本系统,就必须输入本软件提供的序列号。
输入了序列号后就可以永久的使用本软件。
2.5.3窗体界面的设计
登录窗体界面布局如图2-4所示(图中标有主要控件的名称)而在试用期间系统会有相关的提示如图2-5和2-6所示。
图2-4登录窗体界面
图2-5序列号输入窗口
图2-6提示框
所用到的控件包括:
Label、Text、Command、Timer、data1。
主要控件的属性如表2-8所示。
属性名属性属性值说明
Label3caption工号标签
Label4caption密码标签
Label1caption计费系统标签
Command1(0)caption确定按扭控件
Command1
(1)caption取消按扭控件
Text1(0)borterstyle1-fixedsingle文本框
Text1
(1)borterstyle1-fixedsingle文本框
2.5.4登录窗体功能的实现
功能实现的代码如下:
OptionExplicit
DimiAsInteger
DimexamdbAsDatabase
DimexamtblAsTableDef
Dimb,name1,now1
PrivateSubcommand1_click(IndexAsInteger)
DimnameAsString
DimpasswordAsVariant
IfText1(0).Text=""OrText1
(1).Text=""Then
MsgBox"用户名和密码不能为空!
"
ExitSub
EndIf
Data1.DatabaseName=App.Path+"\计费系统"
Data1.RecordSource="用户注册"
Data1.Refresh
name="工号='"&Text1(0).Text&"'"
Data1.Recordset.FindFirstname
IfData1.Recordset.NoMatch=FalseThen
IfData1.Recordset.Fields("密码").Value=Text1
(1).TextThen
name1=Text1(0).Text
now1=Now
Data1.DatabaseName=App.Path+"\计费系统"
Data1.RecordSource="登录日志"
Data1.Refresh
Data1.Recordset.AddNew
Data1.Recordset.Fields("工号").Value=Text1(0).Text
Data1.Recordset.Fields("登录日期").Value=Now
Data1.Recordset.Update
gonghao=Text1(0).Text
LoadForm2'启动主界面
Form2.Show
UnloadForm1
ExitSub
EndIf
GoToz
Else
z:
i=i+1
Ifi=3ThenUnloadForm1
Ifi<>3Then
MsgBox("输入有误!
输入三次不正确将自动退出!
")
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadForm1
EndSub
PrivateSubForm_Activate()
Dima,c
Dimxiluehao
Text1(0).SetFocus
c=Dir(App.Path+"\购买1")
Ifc=""Then
g:
xiluehao=InputBox("为了您能够长期的使用本软件,请您输入-本软件提供正规的序列号!
","序列号")
Ifxiluehao<>""Then
Ifxiluehao=Trim(123456789)Then
Kill(app.path+"\购买2")
OpenApp.Path+"\购买1"ForRandomAs#4Len=20
Put#4,1,xiluehao
Close#4
MsgBox"欢迎使用本软件!
"
Else
MsgBox"输入的是无效的序列号!
"
GoTog
EndIf
Else
a=Dir(App.Path+"\购买2")
Ifa=""Then
b=1
OpenApp.Path+"\购买2"ForRandomAs#3Len=20
Put#3,1,b
Close#3
EndIf
OpenApp.Path+"\购买2"ForRandomAs#3Len=20
Get#3,1,b
Ifb>4Then
MsgBox"警告:
该软件已经过期,请购买正式版!
",48,"-注意"
Close#3
End
EndIf
Ifb<>4Then
MsgBox"这是你第"+Str(b)+"次试用本软件,你还可以试-用"+Str(4-b)+"次!
"
Else
MsgBox"这是你第"+Str(b)+"次试用本软件,这是最后-一试用。
如果你要继续使用,请购正版!
"
EndIf
b=b+1
Put#3,1,b
Close#3
EndIf
EndIf
EndSub
PrivateSubForm_Load()
i=0
Timer1.Enabled=True
EndSub
PrivateSubTimer1_Timer()
IfLabel1.Left+Label1.Width>0Then
Label1.MoveLabel1.Left-200
Else
Label1.Left=Label1.Width
EndIf
Label2(0).Caption=Format(Date,"dddddd")
Label5.Caption=Format(Time,"ttttt")
EndSub
动态变量i是用来记录用户登录失败的次数,如里连续4次登验证失败,则退出整个系统。
而动态变量b是用来记录试用本软件的次数,如果试用已经超过4次则不能再继续试用。
要继续使用必须输入本软件提供的系列号。
否则,将无法登录到主界面。
2.6系统主界面模块的创建
2.6.1模块分析
主界面模块实现为计费系统提供各种有关计费重要的操作项目,为用户提供一个简洁、方便的人机操作界面。
2.6.2窗体的创建
执行[工程][添加窗体]命令,给工程添加一个新窗体,窗体的主要属性设置如表2-9所示
表2-9主界面窗体属性
属性名属性值说明
名称form2窗体名称
captionform2窗体标题
pictureBitTamp窗体背景图片
StartUpPositoon2-屏幕中心启动后居屏幕的中心
Borderstyle1-FixedSingle窗体固定边界,禁止用户改变大小
将窗体保存为form2.frm。
2.6.3模块主界面的设计
在窗体上添加控件。
窗体布局运行结果如图2-7所示。
主要控件属性如表1-9所示。
三个标签Label1、Label2、Label3。
两个Timer控件:
Timer1、Timer2。
6个单选钮,Option1—Option6。
两个命令按钮command1、command2。
一个Data1。
图2-7主界面
表2-9主界面窗体主要控件属性
控件属性属性值说明
Option1caption号码管理
Option2caption字冠管理
Option3caption系统管理单选框
Option4caption费率管理
Option5caption计费统计
Option8caption原始话单
Label1caption计费系统
Optionfont宋体Option、Label1这两个属性值设置一
Label1fontcolor&HooooooFF&样
Timer1
Timer1interval50时钟
确定
Command1caption退出命令按钮
Command2font宋体
fontcolor&HococoFF&
应该注意的是Data1、Label2和Label3的属性是在程序运行过程中通过命令赋给的。
Label1用来显示当前时间和日期,Label3用来提示是否已经到了定期计费的时间。
Data1数据控件用来存取数据库信息。
当定期计费时间到时,通过命令自动指向在文件统计库.mdb里新成的统计数据表,以便于在表中添加数据。
2.6.4模块功能实现的代码
OptionExplicit
DimexamdbAsDatabase
DimexamtblAsTableDef
Dimexamfld(4)AsField
Dimzjhm,pjhm,qssj,zcsj
Dimdingshiname
Dimi'确定字体颜色的改变
********退出***********
PrivateSubcommand1_click()
UnloadForm2
EndSub
********Label1文字标题颜色改变********
PrivateSubForm_Click()
Ifi=1Then
Label1.ForeColor=&HFF0000
i=2
Else
Label1.ForeColor=&HFF&
i=1
EndIf
EndSub
PrivateSubForm_Load()
i=1
Timer1.Enabled=True
EndSub
PrivateSubCommand2_Click()
DimmsgAsInteger
IfOption2.ValueThen'字冠管理
LoadForm7
Form7.Show
EndIf
IfOption1.ValueThen'号码管理
Form9.Show
EndIf
IfOption5.ValueThen
'启动进行计费
LoadForm10
Form10.Show
EndIf
IfOption8.ValueThen
LoadForm3'启动原始话单
Form3.Show
EndIf
IfOption4.ValueThen
LoadForm6'启动费率管理
Form6.Show
EndIf
IfOption3.ValueThen'系统简介
Form8.Show
EndIf
EndSub
PrivateSubTimer1_Timer()
'判断是否到结算日期
OpenApp.Path+"\定时周期"ForRandomAs#5Len=20
Get#5,1,t'定时日期
Get#5,3,dingshihour
Get#5,2,v'是否结算过
IfVal(t)<>Day(Now)OrVal(dingshihour)<>Hour(Now)Then
v=0
Put#5,2,v
Else
Ifv<>2Then'没有结算过
Label3.Caption="今天是结算日期!
正在导入数据...."
Close#5
*******************表的生成*********************
dings
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电信 终端 计费 系统 开发
![提示](https://static.bdocx.com/images/bang_tan.gif)