版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计论文:有线电视收费系统PAGE56毕业设计论文有线电视收费系统摘要本有线电视收费系统采用了目前比较流行的面向对象的可视化语言MicrosoftVisualBasic6.0开发设计,是马鞍山电视大学开放教育计算机科学与技术专业葛亮同学的毕业设计。本系统采用DATA技术,在系统中使用数据集控件DATA来连接数据库,同时采用大量VB语言和SELECT语言来完成一些功能。在界面设计中,采用一个多文档窗体集中管理,多个单文档仅供调用,实现分支功能的操作效果。本有线电视收费系统不是专门为某个特定的有线电视台设计开发的,而是一个通用的有线电视收费系统,适用于中小型的有线电视台进行收费管理,主要完成关于有线电视收费的一些相关功能,如:查询、添加、删除人员和交费管理,欠费管理等等。本有线电视收费系统功能相对完善,界面友好,操作简单,不乏是一个有线电视台收费管理人员进行有线电视收费的首选系统。关键词:数据库、模式、多文档SummaryCopiesofcableTVchargesystemadoptprevailingfacingtargetvisuallanguageMicrosoftVisualBasic6.0isdeveloped,itistheTVuniversityofMa’anShanThiscableTVchargesthesystemisnotdesignedforsomespecificcableTVstationspeciallyanddeveloped,butainterchangeablecableTVchargethesystem,issuitableformediumandsmall-scalecableTVstation'schargingtomanage,finishessomerelevantfunctionsaboutthefactthatthecableTVchargemainly,forinstance:Inquireabout,add,deletepersonandpayduestomanage,owethefeetomanageetc..ThesystematicfunctionisrelativelyperfectthatthiscableTVcharges,theinterfaceisfriendly,itissimpletooperate,itisthatacableTVstationchargestheadministrativestaffcarriesonthefirst-selectedsystemthatthecableTVchargednottolack.Keyword:Database,mode,manyfiles目录一、前言……………4二、章节详细介绍第一章VB6.0简介………6第二章系统分析…………9第三章系统设计…………11第四章用户手册…………19第五章展望………………26结束语附录:源程序代码参考文献前言任务来源当初我们选择计算机科学与技术专业学习时,我们就应该明白,对于这个专业,并不仅仅像其他专业一样多看一些书,多学一点理论知识就行了。计算机专业重要的是实际操作,学生的动手能力是极为必要的。操作能力强于你的理论知识,这是由我们学的这个专业的特点所决定的。计算机专业的毕业生要做毕业设计,是任何时候都无法避免与否定的。最简单的说,我们能够有机会加强我们的电脑操作;有机会将我们所学到的知识融入我们所设计的系统中,对所学知识有综合归纳作用;有机会让我们测试一下我们自己解决问题的能力,经及检测我们所学知识的不足之处,让我们更了解我们自己所学知识的掌握程度。作为一位马鞍山电视大学开放教育计算机科学与技术专业的学生,毕业设计是必不可少的,当然我也不例外。于是,本人选择了有线电视收费系统。二、任务要求:有线电视收费系统的主要任务是用计算机系统对有线电视用户的各种信息进行正常管理,如查询、删除、添加等。针对系统服务对象的具体要求,设计了本有线电视收费系统。设计本有线电视收费系统主要有以下几点要求:(1)对有线电视用户的变动进行管理。一个有线电视台的客户群不会是一成不变的,它总是在不断地变化:有加入、有退出。因此设计有线电视收费系统时应该考虑到这些情况。(2)对客户交费情况进行管理。系统可以对客户交费的日期、期限、金额进行统计,也可以对客户资料进行查询修改。(3)对欠费用户进行统计和管理。这样可以避免由于用户欠费而造成经济损失,并根据用户交费金额和期限判断该用户是否欠费。三、课题特点及意义:(1)特点:本有线电视收费系统特点是运用VB开发系统。系统界面友好,简单易用,功能通用;而且使用了一个多文档窗体集中管理,其余用单文档窗体仅供调用。(2)意义:通过设计有线电视收费系统,让我们去了解如何开发一个简单的运用系统,开发一个运用系统需要分几个步骤以及设计思想对系统的重要性;让我们明白系统相关方面的知识(系统是由哪些模块、哪些功能组成)等。第一章VB6.0简介1.1VisualBasic简介很长时间以来,由于Basic程序设计语言具有语法简单的特点,因此,该语言一直被用作为电脑初学者的入门语言。但是,随着科技的发展、科学事件的驱动,面向对象、可视化等程序设计概念的导入,Basic语言也被赋予了新的内涵,这就是VisualBasic语言的由来。实际上,VisualBasic语言的功能已非常强大,用户可以用它方便地完成大部分的设计任务,从平面设计、数据库处理到多媒体控制等。无论用户是一个Windows编程新手,还是已经具有丰富的Windows程序设计经验,利用VisualBasic提供的良好开发环境,用户均可快速地完成所需任务。下图为VisualBasic的基本界面:何谓VisualBasic?其中“Visual”中文意义为“可视化”,它提供了一种创建图形用户界面(GUI)的方法。利用这种方法,用户不必书写复杂的描述界面元素外观和位置的程序代码,而只需将系统提供的对象放在屏幕上的适当位置,即可设计出一个优秀的应用程序界面。此外,用户除了可以使用单独的VisualBasic程序设计环境进行程序设计外。VisualBasic程序设计系统还被包括在Excel、Access等众多Windows应用软件中,以供用户进行二次开发。目前在编制网页上使用较多的VBScript(Thevisualbasicscriptingedition)脚本语言实际上是一个VisualBasic的子集。无论用户是编制一个小的实用程序,还是开发一个大型的专业系统,甚至是开发一个跨越Internet的分布式应用系统,VisualBasic都为用户提供了合适的工具。利用VisualBasic的数据访问特性,用户可以创建数据库、前端应用程序、适用于大多数流行数据库格式(包括SQLServer和其他专业级数据库)的服务器组件。利用ActiveX技术允许用户使用其他应用程序提供的功能,如MicrosoftWord、MicrosoftExcel,甚至可直接使用由VisualBasic专业版和企业版创建的应用程序和对象。VisualBasic的Internet功能允许用户使用程序方便地通过Internet和Internet访问文档和应用程序,甚至创建Internet服务器程序。用户最终创建的程序是一个真正的.EXE文件,该文件可自由发布。VisualBasic6.0是美国微软公司提供的开发工具套件中的一员,它共有三个版本:标准版、专业版、企业版。其中标准版是为初学者了解基于Windows的应用程序开发而设计的;专业版是为专业人员创建客户/服务器应用程序而设计的;企业版是为创建更高级的分布式、高性能的客户/服务器或Internet/Internet上的应用程序而设计的。1.2VisualBasic6.0安装和启动1.2.1VisualBasic6.0的系统要求VB6.0必须安装后方可使用。在安装VB6.0之前必须确认自己的计算机能够满足最低安装要求。微处理器:486DX66或最高,建议使用Pentium或更高的微处理器。内存:在Windows95/98下至少需16M以上,WindowsNT4.0至少需32M以上。硬盘空间:标准版:典型安装48M,完全安装80M;专业版:典型安装48M,完全安装80M;企业版:典型安装128M,完全安装147M;MSDN(用于文档,使用VB帮助文件所必须):至少需要67M;InternetExplorer4.x:大约需要66M;另外可根据需要安装一些附加控件。显示设备:VGA或更高分辨率的显示器,建议使用SuoerVGA;读入设备:CD-ROM驱动器;操作系统:Windows95或更高版本,带ServicePack3或更高版本的WindowsNT4.0。1.2.2VisualBasic6.0的安装VB6.0三个版本的安装方法相同,在安装程序启动后,只要根据提示一路点击“下一步”即可,安装是可以改变路径的。值得一提的是,安装时会提示你希望“典型安装”还是“自定义安装”,一般选择都是直接点击“典型安装”。1.2.3VisualBasic6.0的启动和退出VB6.0安装完成后,在“开始”菜单的“程序”组中将多出一个“MicrosoftVisualBasic6.0中文版”菜单选项。单击其中的“MicrosoftVisualBasic6.0中文版”即可启动VB。VB启动后,首先显示“新建工程”对话框。双击新建选项卡中的“标准EXE”项(缺省选项)或直接单击“打开”按钮,进入VB的集成开发环境。在集成开发环境中集中了许多不同的功能,如程序设计、编辑、编译和调试等。这也是VB与其他传统开发工具的不同点。单击VB窗口的“关闭”按钮或选择“文件”菜单中的“退出”命令时,VB会自动判断用户是否修改了工程的内容,并询问用户是否保存文件或直接退出。系统分析系统分析(SystemAnalysis)就是在系统规划所确定的某个开发项目范围内,明确系统的目标和拥护的需求,提出系统的逻辑方案,即了解用户要“做什么”,把用户要解决的问题、要求、目标分析清楚,从信息处理功能上提出系统的设计方案。系统分析阶段的主要活动有:(1)系统的初步调查:明确系统开发的目标和规模,形成系统开发建议书;(2)可行性研究:进一步确定系统目标、规模与功能,提出系统开发初步方案计划,形成可行性研究和系统开发任务书;(3)现行系统的详细调查:详细调查现行系统的工作过程,建立先行系统的逻辑模型,发现现行系统存在的主要问题,形成现行系统的调查报告;(4)新系统逻辑方案的提出:明确用户信息需求,提出新系统的逻辑方案,形成系统说明书。2.1问题的提出问题的提出亦可称为问题的定义(ProblemDefinition),就是弄清用户需要计算机解决的问题是什么,即明确问题的性质、工程的目标和规模。我们在开发有线电视收费系统之前,必须了解用户的要求,用户以此系统来解决什么问题。以有线电视收费系统为例,用户希望建立的系统可以进行客户的添加、删除、修改和查询等。另外,用户不希望任何人都可以对客户数据库进行添加、删除、修改,以防止数据库被别人破坏。用户希望可以方便的对客户资料进行管理。2.2可行性研究在问题提出以后,就要进行可行性研究。可行性研究是为了确定系统的开发是否有必要,系统在开发以后是否会有用户使用,即系统的开发是否具有可行性。现代社会是一个科学技术飞速发展的社会,科学技术已经深入到世界的各个角落。由于有线电视在中国的发展速度很快,随着使用有线电视的客户群越来越大,人数越来越多,以往的手工收费方式已经不能适应其发展的需要。随着客户人数的急剧增加,人工管理不但麻烦,而且成本高、易出错。所以,开发一个有线电视收费系统是非常可行的,而且是非常有必要的。2.3需求分析需求分析(RequestmetAnalysis)的主要任务是在于完全弄清用户对软件系统的确切要求基础上,对问题做进一步的细划和精确。2.4系统设计依据有线电视收费系统的实际情况和实际工作流程,系统可分为用户登录、用户注册、客户资料添加、修改和删除、客户资料查询、交费管理和欠费查询等子功能。2.5性能描述有线电视收费系统提供了数据添加、删除、修改和查询资料等功能,能够方便对客户资料进行管理,而且操作方便、简单易懂,轻松上手。另外,还对用户交费和欠费情况进行了统计和管理。达到提高工作效率、提高管理规范化程度的目的。第三章系统设计系统设计(systemdesign)的主要目的和任务是将系统分析阶段所提出反映用户需求的系统逻辑方案转换成可以实施的基于计算机的技术(物理)方案。3.1功能设计■功能结构(模块层次图)依据系统分析阶段的用户要求,即整个系统的功能描述,采用模块化设计(ModularDesign)的方法,通过层次图(HierarchyChart)来表示软件的分层结构。所谓模块化设计方法就是把整个系统软件按照规定的原则为一个较小的相对独立但又相关的模块。其核心是模块独立性(ModuleIndependence),而这是通过加强模块内的联系和减少模块间的联系来实现的。以有线电视收费管理系统为例,采用自上向下逐步细化的方法,可将有线电视收费系统结构分层、系统管理员子系统的分层结构、用户查询子系统的分层结构为图所示;有线电视收费系统有线电视收费系统管理员客户资料添加管理员修改密码注销管理员添加客户交费管理交费管理帐目查询交费查询欠费查询修改资料3.2数据库的建立■设计工具简介1、VB6.0数据库简介:在VB6.0中数据库指的是可以存储一个或多个表(.DBF)视图的关系数据库。所谓的关系数据库就是多个表的集合,每个表形成一定公共字段与另外的表相联系。一般来说数据库可按下列步骤设计:i.确定需要的表。着手把信息分成各个独立的主题,每个主题对应于一个表。ii.确定所需字段。确定在每个表中要保存哪些信息,每个信息为一个字段。iii.确定表之间的关系。值得注意的是在创建表时,必须确保一个表的每个字段都要直接描述该表的主题,另外,每张表应尽可能收集所需的全部信息,如果存在多张表保存同类信息的情况,应该将所有和同一主题相关的信息合并到一个表中。2、创建数据库在本系统中,采用的是用MicrosoftAccess建立数据库,然后由VisualBasic6.0中的DATA控件连接Access数据库的方法。下面介绍怎样在MicrosoftAccess中建立数据库:首先,打开“开始”菜单中“程序”一项,选择“MicrosoftAccess”。再选择“新建”按钮,确定保存路径,给数据库命名,出现以下界面:选择“使用设计器创建表:,在表中输入组成各个表的字段名称和数据类型来创建所需要的表。在本系统中,共创建了五个表,各个表组成字段如下:系统密码表:该表中的系统密码字段是为了增加系统安全性而设置的,只有在正确输入了系统密码后,才能对管理员资料、密码、客户资料等进行修改或删除。这样防止任何人在注册之后都可以修改客户资料,一定程度上保证了数据的安全性。字段名称数据类型系统密码文本管理员表:该表的设置是用来存放管理员资料,其中管理员姓名字段不允许有重复,个人密码和性别字段是由自己设置,注册时间不允许输入,是取注册当日的系统时间。字段名称数据类型管理员姓名文本个人密码文本性别文本注册日期日期/时间用户资料表:该表的设置是用来存放客户资料,其中用户号不允许重复,而且由系统自动产生,其他的各字段由操作该系统的管理员输入,交费期限是以月为单位,即该字段为6,则代表用户此交费金额为6个月的有线电视使用费。是否可用是在系统判断该用户欠费期限后决定,如超过6个月则为不可用,低于6个月为可用。字段名称数据类型用户号文本用户姓名文本家庭住址文本联系电话文本身份证号码文本安装时间日期/时间上次交费时间日期/时间交费总额货币交费期限数字是否可用是/否用户欠费表:该表的设置是为了统计用的欠费情况。该表的数据是在用户资料表数据基础上得到的,如欠费起始时间、欠费期限是根据用户的上次交费时间和交费期限与目前系统时间对比而得到的。字段名称数据类型用户号文本欠费起始时间日期/时间欠费期限数字应交欠费货币删除用户号表:该表是为了让系统自动产生用户号而设置的。将已经删除的用户号码用单独的一个表存放起来,当系统需要添加用户时,就可以先从删除用户号表中帛取已经不用的号码,如果该表为空,则按照系统中的计算方法产生一个新的号码。这样就避免了少数用户存在,却产生了无穷大的号码的情况。该表的数据也不需要管理员输入,而是在删除用户时自动添加。字段名称数据类型用户号文本窗体设计按照窗体在主窗体中顺序:(1)管理员注册:(frmrogedit.frm)本窗体由四个text文本枢控件,一个combo控件,五个lable控件,两个command按钮控件,一个data控件组成,Data控件连接的是管理员表。该窗体的主要功能是注册管理员。(2)管理员注销:(frmdelete.frm)本窗体由四个lable控件,两个text控件,一个frame控件,两个command控件,三个data控件组成。三个data控件连接的分别是管理员表,管理员表和系统密码表,其中一个是用于查询的。该窗体的主要功能是删除管理员。(3)修改密码:(frmkey.frm)本窗体由四个command控件,两个data控件,两个frame控件,七个lable控件,七个text控件和一个ssTab控组成。两个data控件分别连接的是管理员表和系统密码表。该窗体的主要功能是修改管理员个人密码和系统密码。设计界面如下:(4)添加客户:(frmadd.frm)本窗体由四个command控件,八个text控件,十个lable控件,两个data控件组成。两个data控件分别连接的是删除用户号表和用户资料表。该窗体的主要功能是管理员向数据库中添加客户资料。(5)修改、删除客户资料:(frmclient.frm)本窗体由一个adodc控件,一个combo控件,十二个command控件,五个data控件,十一个lable控件,一个MSHFlexGrid控件和十四个text控件组成。Adodc控件连接的是用户资料表,五个data控件连接的分别是用户资料表系统密码表,用户欠费表,用户删除号表。该窗体的主要功能是在查询的基础上对客户资料进行修改和删除等操作,并在同时判断该用户是否欠费而确定能否删除,在删除后,将用户写入用户删除号表。设计界面如下:(6)交费管理:(frmmanage.frm)本窗体由一个combo控件,两个data控件,六个command控件,两个frame控件,二十二个lable控件和十五个text控件组成。两个data控件连接的是用户资料表和用户欠费表。该窗体的主要功能是在查询的基础上了解该用户的上次交费情况和目前欠费情况,并进行交费管理。设计界面如下:(7)交费查询:(frmcout.frm)本窗体由三个command控件,两个data控件,九个lable控件,两个MSFlexGrid控件和三个text控件组成。两个data控件连接的都是用户资料表,其中一个是用户查询的。该窗体的主要功能是按照输入的日期查询当天的交费情况。(8)欠费查询:(frmincount.frm)本窗体由三个command控件,两个data控件,八个lable控件,两个MSFlexGrid控件和三个text控件组成。两个data控件连接的是用户欠费表。该窗体的主要功能是按照输入的数据查询到目前为止欠费期限与输入数据相吻合的用户。设计界面如下:(9)帮助:(frmhelp.frm)本窗体有九个lable控件组成。包括一些与系统设计有关的信息。(10)管理员登录:(frmface.frm)本窗体三个data控件,两个text控件和六个lable控件组成。三个data控件分别连接的是管理员表,用户资料表,用户欠费表。该窗体的主要功能是在输入正确的管理员姓名和个人密码后,能够实现登录。并且在登录成功后,判断用户资料表哪些用户已经欠费,将其加入用户欠费表中。(11)主窗体(MDIform.frm)本窗体采用了MDI窗体,用于集中管理所有其它普通窗体,完成其它窗体调入与调出,从而形成IDE。在该MDI窗体中,设计了主菜单(用鼠标右键单击“工具”,从下拉菜单中,选择“菜单编辑器”,然后调出“菜单编辑器”界面,此时可以在该界面中,输入一级、二级、三级等菜单,输入完毕后,按下“确定”按钮即可!),可以从主菜单中调出其它窗体,以便于灵活运用与管理该系统。另外,在该MDI窗体中,加入image控件,toolbar控件以及stutas控件。其中,toolbar控件可以象主菜单那样的功能,方便系统的操作。本窗体主菜单中包括五个部分:用户管理(用户注册,用户注销,修改密码),客户管理(添加客户,删除、修改客户),交费管理(交费管理),帐目查询(交费查询,欠费查询),帮助。工具栏中共包括八个部分:用户注册,修改密码,用户注销,客户管理,添加客户,交费管理,帮助和退出。第四章用户手册在运行程序后,出现以下登录界面:如果你还不是该系统的管理员,需要进行注册,点击注册按钮,出现以下界面:输入管理员姓名,密码,确认密码;在性别这一栏选择“男”或“女”。该窗体中的注册日期是不允许用户写的,系统会根据系统时间来自动填写,注册时间就是注册当天的系统时间。填写完资料后,按“确定”按钮,系统在刷新数据库后弹出一对话框提示注册成功。如果资料没有填写完整或管理员姓名与已有管理员重复,在按下“确定”按钮后会弹出对话框提示“重新输入”或“填写完整”。在注册成功后,如果要继续注册,按上述步骤重复。如不需要注册,则点击“取消”。如果你已经是本系统管理员,则在登录界面中的文本框上填写自己的管理员姓名和密码,然后按“登录”按钮。如果填写成熟,系统会提示错误信息,让你重新填写。两栏都填写正确后,则可以成功登录。在成功登录或成功注册后,都会进入主界面,如下图:下面将逐个介绍系统中的各个窗体:1.点击主菜单中“用户管理”,下拉菜单中有“用户注册”、“用户注销”、“修改密码”三项,与工具栏上同名的按钮作用相同。“用户注册”与前面介绍的登录窗体上的注册完全相同。在点击“用户注销”后,出现以下窗体:本窗体的主要功能是删除指定的管理员。在本系统中,为了保证数据的安全性,规定只有知道系统密码的管理员才能对数据进行删除、修改等操作。在本窗体中如果系统密码为空,按“确定”按钮后,会提示不能进行该操作。在确定系统密码正确,要删除的管理员存在后,按“确定”按钮,需要确定是否真的要删除该管理员。在确定删除后,系统会将数据库中该管理员删除。如果管理员表已经为空,会提示“该表为空”。如果不需要删除,则按“取消”按钮。就会回到主窗体。在点击“修改密码”后,会出现以下界面:在本窗体中,有两个主要功能,修改管理员个人密码和系统密码。在修改个人密码时,要输入管理员姓名、旧个人密码,新个人密码和确认密码。如果管理员姓名不存在、旧个人密码不正确或新个人密码和确认新密码不相符,按下“确认”按钮后,都会提示重新输入。如果数据输入都正确,会请你确认是否修改密码,在得到确认后,则会将数据库中的数据修改。在修改系统密码时,要输入旧系统密码、新系统密码和确认密码,其它与修改个人密码方法相同。2.点击主菜单“客户管理”,下拉菜单中有“添加客户”、“删除、修改客户”二项,与工具栏上的“添加客户”“客户管理”按钮作用相同。点击“添加”后,出现以下窗体:客户是第一次使用有线电视,需要到电视台开户。管理员需要将此客户的资料加入数据库,这个工作就在本窗体中完成。在输入数据之前,点击“添加”按钮,在用户号一栏会出现由系统自动产生的用户号,所以用户号是不需要管理员输入的。然后输入各项数据,必须全部不为空。“安装时间”和“首次交费时间”要用时间格式输入。否则按“确定”按钮时,会提示将数据填写完整。将数据填写完整后,按“确定”按钮,就会将该客户的资料添加到数据库中。按“取消”按钮则取消添加操作,按“退出”按钮则关闭本窗口,回到主窗体。点击“修改、删除客户资料”后,出现以下界面:本窗体的主要功能是在查询的基础上对客户资料进行修改或删除该客户的资料。由于要进行数据库的更改,所以在一开始必须输入系统密码,如果没有系统密码或密码不正确,进行修改、删除的按钮都会是灰色不可用的。可以看到在还没有进行查询操作时,下方会出现所有客户的资料。管理员可以查询需要更改资料的客户,有两种查询方法,即按“用户号”和按“身份证号码”进行查询。在窗体中的下拉框中可以选择按什么方式进行查询。如果选择了“用户号”,则在查询条件处输入需要查询客房的用户号;如果选择了“身份证号码”,则输入客户的身份证号码。然后点击“提交”按钮,如果查询成功,则在窗体中会出现该客户的资料;如果不存在该用户,则会提示没有该用户,重新输入查询条件。窗体中“第一”、“上一条”、“下一条”、“最后一条”按钮是用来在文本框中浏览客户资料的。点击“第一条”按钮,数据库当前记录则移动到第一条;“最后一条”使当前记录移动到最后一条;“上一条”是指当前记录的上一条;“下一条”是指当前记录的下一条。如果要修改客户资料,先按下“修改”按钮,然后在需要修改的一栏输入新的数据,然后按“确定”按钮,在得到确认后,系统会将新数据写进数据库。如果要删除该客户的资料,则点击“删除”按钮。系统会在用户欠费表中查询确认该用户是否还有欠费,如果有欠费,则提示不能删除该用户,如没有欠费,则在得到确认后删除该客户的资料。3.点击主菜单中“交费管理”,下拉菜单中有“交费管理”一项,与工具栏上的“交费管理”按钮作用相同。在点击“交费管理”后,出现以下窗体:本窗体的主要功能是在查询 的基础上对客房交费的情况进行管理。管理员可以查询需要更改资料的客户,有两种查询方法,即按“用户号”和按“身份证号码”进行查询,在窗体中的下拉框中可以选择按什么方式进行查询。如果选择了“用户号”,则在查询条件处输入需要查询客户的用户号;如果选择了“身份证号码”,则输入客户的身份证号码。然后点击“提交”按钮。如果不存在该用户,则会提示没有该用户,重新输入;如果查询成功,则在窗体中会出现该客户的资料。其中“用户交费情况”一栏中交费时间,交费金额,交费期限是用来统计本次交费情况,在查询时没有实际意义。“用户欠费情况”一栏中的数据是该用户的欠费情况。在客户交费时,管理员需要输入数据:交费时间为系统自动给出的系统时间;交费期限为客户本次交费的时间长度,输入形式为正整数,代表几个月,交费金额为客户本次所交的金额,输入形式为正整数,代表多少元。输入完毕后,点击“刷新”按钮,这时,系统将客户本次交费后将要写进数据库的数据显示在各个文本框中。“用户欠费情况”中上次交费时间、上次交费期限、上次交费金额为客户本次交费的情况。是否欠费是系统进行计算后判断该客户在本次交费后,是否还欠费,如果没有欠费,则该项为否,欠费起始起始时间、欠费期限、欠费金额都为0;还有欠费,则该项为是,欠费起始起始时间、欠费期限、欠费金额都为过后的与之对应值。需要说明的是,此时数据库中此客户的数据仍然为交费前的情况。在确认数据都无误后,点击“交费”按钮,此时系统将这些数据写进数据库,完成整个交费过程。点击“退出”按钮退出本窗体。4.点击主菜单中“帐目查询”,下拉菜单中有“交费查询”、“欠费查询”二项,此二项在工具栏中并没有与之相应的按钮。在点击“交费查询”后,出现以下窗体:本窗体的主要功能是进行交费的帐目查询。首先要查询日期一栏中输入一个日期,需要注意的是由于select语言的格式要求,输入的日期形式一定要为“月/年/日”。输入完毕后,点击“查询”按钮,下方的列表中将会显示出在本日交费的客户资料,交费人数文本框中会统计出在本日交费的总人数,交费总额将会统计出本日客户交费的总金额,以便于管理员按照时间进行帐目核对。点击“显示所有用户信息”,文本框将会清空,下方的列表框将会显示出所有客户的资料。在点击主菜单“帐目查询”中的“欠费查询”后,出现以下界面:本窗体的主要功能是进行欠费的帐目查询。首先在欠费月数一栏中输入一个正整数,代表几个月。输入完毕后,点击“查询”按钮,下方的列表中将会显示出在到目前为止欠费期限为输入月数的客户资料,交费总人数文本框中会统计出在欠费的总人数,欠费总额将会统计出这些欠费用户所欠的总金额,以便于管理员了解欠费情况,及时催还欠款。点击“显示所有欠费用户信息”,文本框将会清空,下方的列表框将会显示出所有欠费客户的资料。第五章展望一、应用前景由于本有线电视收费系统,是一个通用的有线电视收费系统,并不是专门为某一特定的有线电视台开发的,故可以适合任何中小型有线电视台使用。本系统简单、通用、易操作。在管理的同时,加入了有关操作功能,如:交费查询和欠费查询等功能,使用方便。二、发展前景现代社会是一个网络世界,如果任何东西不与NetWork有一点联系,似乎觉得和点落伍,缺少E的灵气。开发软件当然也不例外。现在都在提什么软件共享,开放源代码。如果有机会,本人会把此系统上传至网上,让大家“共享”一下,并开放源代码。为了顺应网络时代发展的要求,顺应C/S结构的要求,在本人的系统基础上,还可以开发出基于C/S结构(在服务器上安装一个版本,在客户机上安装另一个版本)的网络收费系统,以适应不同操作系统环境下的需求。让本人的有线电视收费系统也沾一些E的灵气!三、存在问题在设计本系统数据库时,由于本人数据库方面的知识掌握有限,在建数据库时难免会出现一些问题,如:在定义变量时,所用的类型不一定准确;一些高级的功能不能实现等等。结束语经过开发本有线电视收费系统以后,我发现我的收获非浅,各方面的知识得到了更好的掌握与了解,提高了本人解决问题的能力。最后,在此感谢那些在开发此有线电视收费系统过程中,给予我支持、帮助的人,以及我的指导老师。设计者:葛亮200有线电视收费系统源代码一.主窗体MDIFORM菜单栏代码PrivateSubaddclient_Click()调用“添加客户窗体”frmadd.ShowEndSubPrivateSubclientdelete_Click()调用“客户管理窗体”frmclient.ShowEndSubPrivateSubcount_Click()调用“交费查询窗体”frmcout.ShowEndSubPrivateSubdelete_Click()调用“注销用户窗体”frmdelete.ShowEndSubPrivateSubhelp_Click()调用“帮助窗体”frmhelp.ShowEndSubPrivateSubincount_Click()调用“欠费查询窗体”frmincout.ShowEndSubPrivateSubjiaofeia_Click()调用“交费管理窗体”frmmanage.ShowEndSubPrivateSubkey_Click()调用“修改密码”frmkey.ShowEndSubPrivateSubregedit_Click()调用“注册用户窗体”frmregedit2.ShowEndSub工具栏代码PrivateSubToolbar1_ButtonClick(ByValButtonAsMSComelLib.Button)SelectCaseButton.keyCase“zc”regedit_ClickCase“zx”delete_ClickCase“xg”key_ClickCase“kh”clientdelete_ClickCase“hand”jiaofeia_ClickCase“add”addclient_ClickCase“help”help_ClickCase“close”IfMsgBox(“真的要退出该系统吗?”,vbYesNo+32,“提示”)=vbYesThenUnloadfrmaddUnloadfrmclientUnloadfrmcountUnloadfrmdeleteUnloadfrmhelpUnloadfrmincountUnloadfrmkeyUnloadfrmmanageUnloadfrmregedit2UnloadmeEndIfEndSelectEndSub二.登陆窗体frmface代码PrivateSubForm_Activate()DoUntilData3.Recordset.EOFData3.Recordset.deleteData3.Recordset.MoveNextLoopEndSub“登陆”按钮代码PrivateSubLabel4_Click()IfText1.Text=“”ThenMsgBox(“管理员不能为空”)ExitSubEndIfIfText2.Text=“”ThenMsgBox(“请填写个人密码”)ExitSubEndIfSq1=“select管理员表.*from管理员表where管理员姓名=’”&Text1.Text&”’”Data1.RecordSource=sq1Data1.RefreshIfData1.Recordset.RecordCout<1ThenMsgbox(“该管理员不存在,请重新填写”)Text1.Text=“”Text2.Text=“”ElseIfText2.Text=Data1.Recordset(“个人密码”)ThenDoUntilData2.Recordset.EOFdate1=Data2.Recordset(“上次交费时间”)time1=Data2.Recordset(“交费期限”)time1=30*time1date1=date1+time1t1=Date–date1Ift1>0ThenT1=Va1(t1)Time2=Int(t1/30)Data3.Recordset.AddNewData3.Recordset(“用户号”)=Data2.Recordset(“用户号”)Data3.Recordset(“欠费起始时间”)=date1+1Data3.Recordset(“欠费时间”)=time2Data3.Recordset(“应交欠费”)=12*Va1(time2)Data3.Recordset.UpdateData3.RefreshEndIfData2.Recordset.MoveNextLoopMDIForm1.ShowUnloadMeElseIfText2.Text<>Data1.Recordset(“个人密码”)ThenMsgBox(“密码不正确,请重新填写”)Text2.text=“”EndIfEndIfExitSubElseIfText1.Text<>Data1.Recordset(“管理员姓名”)or‘管理员或密码不正确’Text2.text<>Data1.Recordset(“个人密码”)ThenMsgBox(“管理员姓名或密码不正确,请重新填写”)‘要求重写管理员和密码’Text1.text=“”Text2.Text=“”ExitSubEndIfData1.Recordset.MoveNextLoopEndSub“注册”按钮代码PrivateSubLabe15_Click()Frmregedit3.Show‘显示注册窗体’“退出”按钮代码PrivateSubLabe16_Click()IfMsgBox(“真的要退出系统吗?”,vbYesNo+32,“提示”)=vbYesThenDountilData3.Recordset.EOFData3.Recordset.deleteData3.Recordset.MoveNextLoopUnloadMeEndIfEndSub三.用户注册窗体frmregedit代码启动窗体代码PrivateSubForm_Load()Combo1.AddItem“女”‘向下拉框中添加可选项’Combo1.AddItem“男”Text4.Text=DateEndSub“确定”按钮代码PrivateSubCommand1_Click()IfText1.Text=“”OrText2.Text=“”OrText3.Text=“”OrCombo1.Text=“”ThenMsgBox(“请将管理员的资料填写完整”)ExitSubEndIfIfText2.Text<>Text3.TextThenMsgBox(“请确认密码!”)Text2.Text=“”Text3.Text=“”ExitSubEndIfDoWhileData1.Recordset.EOF=FalseIfText1.Text=Data1.Recordset(“管理员姓名”)Then‘确认要注册的管理员姓名是否有重复’MsgBox(“该管理员已经存在,请另选管理员姓名”)Text1.Text=“”ExitSubEndIfData1.Recordset.MoveNextLoopData1.Recordset.AddNew‘若无重复,向数据库中添加数据’Data1.Recordset(“管理员姓名”)=Text1.TextData1.Recordset(“个人密码”)=Text2.textData1.Recordset(“性别”)=Combo1.TextData1.Recordset(“注册日期”)=Text4.TextData1.Recordset.UpdateData1.RefreshMsgBox(“注册成功”)Text1.text=“”Text2.Text=“”Text3.Text=“”Combo1.Text=“”Unloadfrmregedit2‘注册成功后,直接进入主窗体MDIFORM’MDIForm1.ShowMDIForm1.Enabled=TrueEndSub“取消”按钮代码PrivateSubCommand2_Click()Frmregedit2.Hide‘隐藏注册窗体’EndSub四.用户注销frmdelete窗体代码DimsqllAsString“确定”按钮代码PrivateSubCommand1_Click()IfTextl.Text=″″ThenMsgBox(″请输入系统密码″)EndIfIfText2.Text=″″ThenMsgBox(″请输入要注销的管理员姓名″)ExitSubEndIfspl2=″select系统密码表.*from系统密码表where系统密码=’″&Text1.Text&″’″Datal.RecordSource=sp12Datal.RefreshIfData1.Recordset.RecordCount<1ThenMsgBox(″系统密码不正确,您不能删除管理员″)Text1.Text=″″Text2.Text=″″ElseIfData3.Recordset.RecordCount=0ThenMsgBox(″该表已为空表″)Text1.Text=″″Text2.Text=″″Elsesql1=″SELECT管理员表.*From管理员表WHERE管理员表.管理员姓名=’″&Text2.Text&″’″Data2.RecordSource=sql1Data2.RecoreshIfData2.Recordset.RecordCount<1ThenMsgBox(″该管理员不存在″)Text2.Text=″″ElseIfMsgBox(″真的要删除该管理员吗?″,vbYesNo+32,″提示″)=vbYesThenData2.Recordset.deleteData3.RefreshMsgBox(″该管理员已删除″)Text2.Text=″″ExitSubEndIfEndIfEndIfEndIfEndSub
“取消”按钮代码PrivateSubCommand2Click()UnloadMeEndSub五、修改密码frmkey窗体代码OptionExplicitDimsql1AsInteger修改系统密码—“确定“按钮PrivateSubCommand1Click()IfText5.Text=″″ThenMsgBox(″请输入旧密码″)ExitsubEndIfIfText5.Text<>″″AndText6.Text=″″ThenMsgBox(″请输入新密码″)ExitSubEndIfIfText5.Text<>″″AndText6.Text<>″″AndText7.Text=″″ThenMsgBox(″请确认新密码″)ExitSubEndIfIfText6.Text<>Text7.TextThenMsgBox(″确认密码不一致,请重新确认″)Text7.Text=″″ExitSubEndIfsql1=″select系统密码表.*from系统密码表where系统密码=’″&Text5.Text&″’″Data2.RecordSource=sql1Data2.RefreshIfData2.RecordCount<1ThenMsgBox(″该系统密码不存在,请重新输入系统密码″)Text5.Text=″″ElseIfMsgBox(″真的要修改系统密码吗?″,vbYesNo+32,″提示″)=vbYesThenData2.Recordset.EditData2.Recordset(″系统密码″)=Text7.TextData2.Recordset.UpdateData2.RefreshMsgBox(″修改成功″)Text5.Text=″″Text6.Text=″″Text7.Text=″″EndIfExitSubEndIfEndSub修改系统密码—“取消”按钮PrivateSubCommand2Click()UnloadmeEndSub修改个人密码—“确定”按钮PrivateSubCommand3click()IfText1.Text=″″ThenMsgBox(″请输入管理员姓名″)ExitSubEndIfIfText1.Text<>″″AndText2.Text=″″ThenMsgBox(″请输入旧密码″)ExitSubEndIfIfText1.Text<>″″AndText2.Text<>″″AndText3.Text=″″ThenMsgBox(″请输入新密码″)ExitSubEndIfIfText1.Text<>″″AndText2.Text<>″″AndText3.Text<>″″AndText4.Text=″″ThenMsgBox(″请确认新密码″)ExitSubEndIfIfText3.Text<>Text4.TextThenMsgBox(″确认密码不一致,请重新确认″)Text4.Text=″″ExitSubEndIfSql1=″select管理员表.*from管理员表where管理员姓名=’″&Text1.Text&″’″Data1.RecordSource=sql1Data1.RefreshIfData1.Recordset.RecordCount<1ThenMsgBox(″该管理员不存在,请重新输入管理员姓名″)Text1.Text=″″Text2.Text=″″Text3.Text=″″Text4.Text=″″ElseIfMsgBox(″真的要修改个人密码吗?″,vbYesNo+32,″提示″)=vbYesThenData1.Recordset.EditData1.Recordset.(″个人密码″)=Text4.TextData1.Recordset.UpdateData1.RefreshMsgBox(″修改成功″)Text1.Text=″″:Text2.Text=″″:Text3.Text=″″:Text4.Text=″″EndIfExitSub:EndIf:EndSub修改个人密码“取消”按钮PivateSubCommand4Click()UnloadMeEndSub六.添加客户窗体OptionExplicitDimtotalrecordAsIntegerDimnumber,statuAsString“添加”按钮代码PrivateSubCommand1Click()Data1.RefreshData1.Recordset.MoveLasttotalrecord=Data1.Recordset.RecordCount‘统计用户资料表中的总记录数’Data1.Recordset.MoveFirstIftotalrecord>=1Andtotalrecord<10Then‘根据记录数产生新号码’number=Left(Data1.Recordset(″用户号″),8)totalrecord=totalrecord+1number=number+″0″+totalrecordElseIftotalrecord>=10Andtotalrecord<100Thennumber=Left(Data1.Recordset(″用户号″),7)totalrecord=totalrecord+1number=number+″00″+totalrecordElseIftotalrecord>=100Andtotalrecord<1000Thennumber=Left(Data1.Recordset(″用户号″),6)totalrecord=totalrecord+1number=number+″000″+totalrecordElseIftotalrecord>=1000Andtotalrecord<10000Thennumber=Left(Data1.Recordset(″用户号″),5)totalrecord=totalrecord+1number=number+″0000″+totalrecordElseIftotalrecord>=10000Andtotalrecord<100000Thennumber=Left(Data1.Recordset(″用户号″),4)totalrecord=totalrecord+1number=number+″00000″+totalrecordEndIfIfData.Recordset.RecordCount<1Then‘若用户资料表中无记录,则使用新号码为342900001’Text1.Text=″342900001″ElseIfData1.Recordset.RecordCount>=1Then‘若删除号码表中有记录,则从中产生新记录’IfData2.Recordset.RecordCount>=1ThenText1.Text=numberStatu=″add″ElseIfData2.Recordset.RecordCount>=1ThenText1.Text=Data2.Recordset(″用户号″)Statu=″insert″EndIfEndIfText2.Text=″″‘使各文本框处于“添加”状态’Text3.Text=″″:Text4.Text=″″:Text5.Text=″″Text6.Text=″″:Text7.Text=″″:Text8.Text=″″Text9.Text=″″EndSub“取消”按钮PrivateSubCommand2Click()Text1.Text=″″:Text2.Text=″″:Text3.Text=″″Text4.Text=″″Text5.Text=″″:Text6.Text=″″:Text7.Text=″″Text8.Text=″″:Text9.Text=″″EndSub“确定”按钮PrivateSubCommand4Click()IfText2.Text<>″″AndText3.Text<>″″AndText4.Text<>″″AndText5.Text<>″″AndText6.Text<>″″AndText7.Text<>″″AndText8.Text<>″″AndText9.Text<>″″ThenIfMsgBox(″要添加此用户吗?″,vbYesNo+32,″提示″)=vbYesThenDoUntilDatal.Recordset.EOf=FalseData1.Recordset.MoveNextLoopData1.Recordset.AddNew‘若确认添加,则刷新数据库’Datal.Recordset(″用户名″)=Text1.TextDatal.Recordset(″用户姓名″)=Text2.TextDatal.Recordset(″家庭住址″)=Text3.TextDatal.Recordset(″联系电话″)=Text4.TextDatal.Recordset(″身份证号码″)=Text5.TextDatal.Recordset(″安装时间″)=Text6.TextDatal.Recordset(″上次交费时间″)=Text7.TextDatal.Recordset(″交费总额″)=Text8.TextDatal.Recordset(″交费期限″)=Text9.TextDatal.Recordset(″是否可用″)=-1Datal.Recordset.UpdateData1.RefreshIfstatu=″insert″ThenData2.Recordset.DeleteData2.RefreshEndIfMsgBox(″此用户已经被添加到数据库中″)ExitSubEndIfElseMsgBox(″请将用户数据填写完整″)EndIfEndSub“退出”按钮PrivateSubCommand3Click()UnloadMeEndSub七.修改,删除客户资料窗体代码Dimsql1,sql2AsStringDimstatu,statu1AsString窗体启动代码PrivateSubFormLoad()Data4.RecdOnly=TrueCombo1.AddItem″用户名″Command1.Enabled″身份证号码″Command6.Enabled=FalseCommand7.Enabled=FalseEndSub系统密码—“确定”按钮PrivateSubCommand10_Click()IfText2.Text<>″″ThenSql1=″系统密码表,系统密码From系统密码表″Data2.RecordSource=sql1IfText2.Text=Data2.Recordset(″系统密码″)ThenCommand6.Enabled=True‘若系统密码正确,则数据处于可编辑状态’Command7.Enabled=TrueCommand12.Enabled=TrueText4.Enabled=TrueText5.Enabled=TrueText6.Enabled=TrueText7.Enabled=TrueText8.Enabled=TrueElselfText2.Text<>Data2.Recordset(″系统密码″)ThenMsgBox(″系统密码不正确,您不能对客户资料进行编辑″)Text2.Text=″″EndIfEndIfEndSub“提交”按钮PrivateSubCommand11_Click()SelectCaseCombl1.TextCase″用户号″‘确定是根据用户号查询’Sql1=″SELECT用户资料表.*From用户资料表WHERE用户资料表.用户号码=’″&Text1.Text&″’″Data1.RecordSource=sql1‘用sql语句进行查询’Data1.RefreshIfData1.Recordset.RecordCount>=1ThenText9.Text=Daral.Recorddset(″用户号″)Text10.Text=Daral.Recorddset(″用户姓名″)Text14.Text=Daral.Recorddset(″家庭住址″)Text11.Text=Daral.Recorddset(″联系电话″)Text12.Text=Daral.Recorddset(″身份证号码″)Text13.Text=Daral.Recorddset(″安装时间″)Text3.Visible=FalseText4.Visible=FalseText5.Visible=FalseText6.Visible=FalseText7.Visible=FalseText8.Visible=FalseText9.Visible=TrueText10.Visible=TrueText11.Visible=TrueText12.Visible=TrueText13.Visible=TrueText14.Visible=TrueStatu1=″select″ElseIfDatal.Recordset.recordCount<1ThenMsgBox(″没有此用户!″)Textl.Text=″″EndIfCase″身份证号码″‘确定是根据身份证号码查询’Sq12=select用户资料表.*from用户资料表where用户资料表。身份证号码=’″&Text1.Text&″’″Datal.RecordSource=sq12Datal.RefreshIfDatal.Recordset.RecordCount>=1ThenText9.Text=Datal.Recordset(″用户号″)Text10.Text=Datal.Recordset(″用户姓名″)Text14.Text=Datal.Recordset(″家庭住址″)Text11.Text=Datal.Recordset(″联系电话″)Text12.Text=Datal.Recordset(″身份证号码″)Text13.Text=Datal.Recordset(″安装时间″)Text3.Visible=FalseText4.Visible=False:Text5.Visible=False:Text6.Visible=FalseText7.Visible=FalseText8.Visible=False:Text9.Visible=True:Text10.Visible=TrueText11.Visible=TrueText12.Visible=True:Text13.Visible=True:Text14.Visible=TrueStatu1=″select″ElseIfData2.Recordset.RecordCount<1ThenMsgBox(″没有该用户″)Text1.Text=″″EndIfEndSelectEndSub“第一条”按钮PrivateSubCommand1_Click()Text3.Visible=True‘将用于浏览信息的文本框设为可视’Text4.Visible=TrueText5.Visible=TrueText6.Visible=TrueText7.Visible=TrueText8.Visible=TrueText9.Visible=FalseText10.Visible=FalseText11.Visible=FalseText12.Visible=FalseText13.Visible=FalseText14.Visible=FalseIfData4.Recordset.RecordCount>=1Then‘浏览数据库信息’IfData4.Recordset.BOF=FalseThenData4.Recordset.MoveFirstCommand3.Enabled=TrueCommand4.Enabled=TrueEndIfElseMsgBox(″该表已为空表″)EndIfEndSub“上一条”按钮PrivateSubCommand2_Click()Text3.Visible=TrueText4.Visible=TrueText5.Visible=TrueText6.Visible=TrueText7.Visible=TrueText8.Visible=TrueText9.Visible=FalseText10.Visible=FalseText11.Visible=FalseText12.Visible=FalseText13.Visible=FalseText14.Visible=FalseIfData4.Recordset.BOF=FalseThenData4.Recordset.MovePreviousEndIfCommand3.Enabled=TrueCommand4.Enabled=TrueIfData4.Eecordset.Bof=TrueThenCommand1.Enabled=FalseCommand2.Enabled=GalseEndIfIfData4.Recordset.RecordCount=0ThenMsgBox(″该表已为空表″)Command1.Enabled=TrueCommand2.Enabled=TrueEndIfEndSub“下一条”按钮PrivateSubCommand3_Click()Text3.Visible=TrueText4.Visible=TrueText5.Visible=TrueText6.Visible=TrueText7.Visible=TrueText8.Visible=TrueText9.Visible=FalseText10.Visible=FalseText11.Visible=FalseText12.Visible=FalseText13.Visible=FalseText14.Visible=FalseIfData4.Recordset.RecordCount>=1ThenIfData4.Recordset.EOF=FalseThenData4.Recordset.MoveNextCommand2.Enabled=TrueCommand1.Enabled=TrueEndIfIfData4.Recordset.EOF=TrueThenCommand3.Enabled=FalseCommand4.Enabled=FalseEndIfElseIfData4.Recordset.RecordCiunt=0ThenMsgBox(″该表已为空表″)Command1.Enabled=FalseCommand2.Enabled=FalseExitSubEndIfEndSub“最后一条”按钮PrivateSubCommand4Click()Text3.Visible=TrueText4.Visible=TrueText5.Visible=TrueText6.Visible=TrueText7.Visible=TrueText8.Visible=TrueText9.Visible=TrueText10.Visible=TrueText11.Visible=TrueText12.Visible=TrueText13.Visible=TrueText14.Visible=TrueIfData4.Recordset.RecordCount>=1ThenData4.Recordset.MoveLastCommand1.Enabled=TrueCommand2.Enabled=TrueElseMsgBox(″该表已为空表″)EndIfEndSub“删除”按钮Privat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 演出经纪人之《演出经纪实务》测试卷附答案详解
- PETS一级笔试模拟试题(含详细答案解析)
- 广东省河源市东源县2027届数学九上期末达标检测模拟试题含解析
- 轨道交通运营期施工防护方案
- 髂静脉压迫综合征弹力袜穿戴日常指导规范共识
- 2027届广东省深圳高级中学数学九上期末经典模拟试题含解析
- Oracle数据库工程师面试题及详细答案(实操完整版)
- 车间安全教育培训试题及答案
- 管廊突发事件调度处置规程
- 2026年安管人员继续教育试题及答案
- 直读光谱仪培训课件
- T/CECS 10270-2023混凝土抑温抗裂防水剂
- 《足太阴脾经络》课件
- 2024年版高校助教聘请合约3篇
- 肇庆市2025届高中毕业班第一次模拟考试(一模)生物试卷(含答案详解)
- 完整版:美制螺纹尺寸对照表(牙数、牙高、螺距、小径、中径外径、钻孔)
- 路灯基础现浇混凝土检验批质量验收记录
- 盐酸青藤碱的稳定性和溶解性研究
- 《田螺姑娘》儿童故事ppt课件(图文演讲)
- 食品有限公司生产车间安全风险分级清单
- 体格检查评分标准(心脏)
评论
0/150
提交评论