




已阅读5页,还剩39页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 通信软件技术 专业综合实验教案 一 模拟计费系统 1 计费原理 1 计费方法计费方法 单一方式 单一方式 一般用于报时台 天气预报台等 周期方式周期方式 复式复式 普通电话 单一加周期方式单一加周期方式 启机即计 n 个脉冲 以后每个计费单元计 m 个脉冲 通 话全程计费单元相同 三加一方式三加一方式 我国现行市话计费采用 2 计费费率计费费率 长话长话 国内长途 0 07 元 6 Second 市话市话 现行费率有三个标准 0 11 元 0 10 元 0 09 元 市话计脉冲数 长话计时 长途计费优惠长途计费优惠 00 00 00 07 00 006 折 07 00 00 24 00 00正常 3 计费过程计费过程 字冠分析 Prefix Analysis 长途 时段 注意临界时刻不同费率 市话 计次 注注 长途计详单 市话计次 2 实现要求 通话 主控模块 合法用户 增 加 修 改 删 除 显 示 退出系统查询结算 长 途 市 话 长 途 市 话 图 1 模拟计费系统功能框图 只模拟固定电话呼叫本地或长途固定电话的计费 不考虑特服和智能业务 2 二 路由选择模拟 1 路由选择原理 电话通信的三个要素 终端设备 交换节点 传输手段 1 路由汇接原则路由汇接原则 国内长途网 多级汇接制 原则 国际接口局 北京 上海 广州 C1 结合长话流量和行政区设八个大区交换中心 北京 上海 广州 沈阳 西安 南京 武汉 成都 C2 省交换中心 C3 地区交换中心 C4 县交换中心 C5 端局 本地网设置汇接局 TA 和端局 C5 例例 一次长途呼叫的选路过程 2 中继概念中继概念 中继线中继线 TRK Trunk 时隙 中继组中继组 TKG Trunk Group 具有相同属性的中继线集合 路由路由 RTE Route 直连二个局间中继组的集合 路由块路由块 RTB Route Block 能够到达某一目的局的路由集合 3 路由选择基本原理路由选择基本原理 Prefix Analysis RTB RTE TKG TRK 局间路由有直达路由和各级迂回路由 根据中继线忙忙 闲状态闲状态和优先级优先级选路 对于同级路由的不同中继线一般采用循环选择 以体现负荷分担 2 实现要求 3 主控模块 密码管理 增 加 用 户 密 码 修 改 删 除 用 户 中继维护 增 加 中 继 删 除 中 继 选路 1 选路成功 2 中继忙 路由选择退出系统 拨打电话 图 2 路由选择模拟功能框图 合法用户 三 设计报告要求 1 完成实验的情况 包括对每个任务的理解 实现中遇到的问题 解决 问题的思路和方法 2 完成部分的程序框图和典型程序清单 未完成部分的原因分析 3 心得体会和自己的设想 库结构 算法等 四 系统设计步骤 1 设置默认路径 2 建立项目 3 建库 4 建表 修改表结构 建索引 5 向表中输入原始数据 6 建表单 7 编程 函数 1 INT n 2 Scope 范围子句 RECORD n 第 n 条记录 NEXT n 当前记录起向下 共 n 条 REST 当前记录起至末记录止 ALL 全部记录 1 SET TALK ON OFF 2 SET DEFAULT TO c1Device c2Path c3DevicePath 3 SET PATH TO cPath 4 CLEAR 5 MemVarName e 6 STORE e TO MemVarList 5 7 PUBLIC MemVarList 8 LOCAL MemVarList 9 私有变量 未经 PUBLIC 和 LOCAL 定义而直接使用的变量 10 e1 11 OPEN DATABASE DbcFileName 12 CLOSE ALL 13 USE DbfFileName 14 BROWSE 15 LIST DISPLAY Scope FIELDS FieldExpressionList FOR l1 16 GO GOTO RECORD n TOP BOTTOM 17 SKIP m 18 LOCATE Scope FOR l1 19 CONTINUE 20 APPEND BLANK 21 REPLACE Scope FieldName1 WITH e1 FieldName2 WITH e2 FOR l1 22 DELETE Scope FOR l1 23 RECALL Scope For l1 24 PACK 25 SET ORDER TO TAG TagName ASCENDING DESCENDING 26 SUM nFieldExpressionList Scope TO MemVarList FOR l1 27 SELECT nWorkArea cAliasName 28 DO PrgFileName 29 DO FORM ScxFileName 30 RETURN TO MASTER 31 WAIT cPromptMessage TO MemVarName 32 ACCEPT cPrompMessage TO MemVarName 33 INPUT cPromptMessage TO MemVarName 34 nRow nColumn SAY e GET VarName READ 35 IF l1 Commands1 ELSE 6 Commands2 ENDIF 36 DO CASE CASE l1 Commands1 CASE lN CommandsN OTHERWISE CommandsN 1 ENDCASE 37 DO WHILE l Commands1 LOOP Commands2 EXIT Commands3 ENDDO 38 FOR MemVarName n1InitialValue TO n2FinalValue STEP n3Increment Commands1 LOOP Commands2 EXIT Commands3 ENDFOR 39 ThisForm ObjectName Attribute AtrrtibuteName Attribute Name Caption Visible Value WindowState 40 ThisForm ObjectName Method Method Load Init Show Release SetFocus GotFocus LostFocus 7 运行 本科专业综合实验指导书本科专业综合实验指导书 程控交换机计费程控交换机计费 及路由选择模拟系统实现及路由选择模拟系统实现 李玲李玲 张海蓉张海蓉 吉林大学通信工程学院吉林大学通信工程学院 1 目 录 题目一 程控交换机模拟计费系统 1 一 设计目的 1 二 设计要求 1 三 计费原理 2 1 计费方法 2 2 计费原则 3 3 计费费率 3 4 计费过程 3 四 预习要求 3 五 实现要求及实现步骤 4 1 实现要求 4 2 实现步骤 4 六 时间安排 5 七 设计报告要求 6 题目二 路由选择的模拟系统 7 一 设计目的 7 二 设计要求 7 三 路由选择原理 8 1 路由管理 8 2 路由的分类 10 3 路由的选择规则 10 四 预习要求 12 五 实现步骤 13 六 时间安排 13 七 设计报告要求 13 八 路由的局数据表 13 2 附录 基于 FOXPRO 的学生成绩管理系统实例 15 一 系统基本结构 15 二 数据库设计 16 1 学生基本情况数据库 student dbf 16 2 教学计划数据库 course dbf 17 3 学生选课及其成绩数据文件 score dbf 17 4 学校系号及系名称对照表 dept dbf 17 三 程序清单 18 1 主控程序 main prg 18 2 基本数据录入 编辑程序 sub11 prg 20 3 教学计划的录入 编辑程序 sub12 prg 24 4 学生选课及成绩录入 编辑成绩程序 sub13 prg 26 5 学生个人成绩查询程序 sub21 prg 28 6 单科成绩查询程序 sub22 prg 29 7 综合指标查询程序 sub23 prg 31 8 打印程序 34 9 密码程序 34 1 题目一 程控交换机模拟计费系统 一 设计目的 使学生通过该系统的设计了解程控交换机计费系统的原理 计费方 式和实现过程 并根据此掌握程控交换机中各项数据之间的组织关系和 调用关系 通过本次综合实验提高学生的程序综合设计 调试和管理的 能力 为学生毕业后从事通信工程的设计 开发 程控交换机的维护打 下良好的基础 二 设计要求 1 学习计费原理 掌握计费实现的全过程 达到根据不同的目的 字冠 在各种日期类型 各种时刻通话均能计算出话费 记入数据库或 数据结构 并可用作数据的查询 统计和打印 2 该系统应完成的功能总体模块如下 用户进入系统应首先判断是否为合法用户 一般通过密码 口令 一次通话记录编辑 主控模块 合法用户 增加修改删除显示 退出系统查 询结 算 长途市话 长途市话 图 1 程控交换机模拟计费系统功能模块 2 来实现 主控模块是整个系统的控制中心 与各模块相连 一般通过菜单调 用子功能模块或子程序完成 一次通话记录的增添 修改 删除 显示等功能模拟主叫电话呼叫 被叫电话的一次通话过程的计费记录 在本次实验中只模拟固定电话呼 叫本地或长途固定电话的计费 不考虑特服和智能服务 话单的统计则根据一些关键字对数据库或数据结构进行统计 在统 计中 长途计费要求列出每一次通话详细清单 如被叫号码 日期 时 间 计费金额等 市话则只需列出总的金额即可 话单打印需要在屏幕或打印机上列出所需要的信息 三 计费原理 1 计费方法 程控交换机的计费一般是计入脉冲数 这样可根据脉冲数的多少来 灵活掌握各地区的费率情况 然后在计费分检时 按单位脉冲的单价计 算出帐单 目前程控交换机中常用的计费方法有七种 适合于不同呼叫 的计费要求 单一方式单一方式 在被叫用户取机应答时刻计入一组脉冲 以后无论用 户通话时长多少 都不再记 一般用于报时台 天气预报台等 周期方式 复式 周期方式 复式 在被叫用户取机应答时刻记入一组脉冲 然 后按某个周期为时间单位进行循环监视 每到一个周期点 便记入同样 的脉冲数 目前我国的长途电话业务采用这种方式计费 周期为 6second 单一加周期方式单一加周期方式 启机即计 n 个脉冲 以后每个计费单元计 m 个脉冲 通话全程计费单元相同 三加一方式三加一方式 类似于周期方式 但第一个周期按 3 个时间单位计 算 以后的周期按一个单位来监视 我国现行市话计费采用这种方式 前三个单位为 2 个脉冲 之后每 1 个单位为 1 个脉冲 卡尔松方式卡尔松方式 周期点的监视由系统随机产生 与摘机时刻无关 3 准卡尔松方式准卡尔松方式 与卡尔松方式的区别在于第一组脉冲不计费 单一加准卡尔松方式单一加准卡尔松方式 单一方式与准卡尔松方式的结合 2 计费原则 1 日历表 Calendar HO 假日 WE 周末 WD 工作 日 以往我国将日期分为不同值 不同值费率不同 现在此项规定已 经取消 2 时间切换表 Scale 每天各时段定义不同的费率 例如 00 00 00 07 00 00长途计费为 6 折 07 00 00 24 00 00长途计费为正常 3 计费费率 现行的市话和国内长途的计费费率为 长话长话 长途计费为 0 07 元 6 Second 市话市话 现行费率有三个标准 0 11 元 0 10 元 0 09 元 如采用 0 10 元的标准 通话前 3 分钟为 0 20 元 之后每增加 1 分钟 0 10 元 4 计费过程 根据被叫号码字冠进行处理 若字冠表明是国内长途电话 通过系统时间判断此时通话所采取的 费率 最后由通话时长与费率的乘积得到本次呼叫的费用存入数据库 注意在具体实现时应考虑临界切换时刻的不同费率 若呼叫表明是市话 应根据通话时长计算出本次呼叫的脉冲数 再 根据费率计算通话费用存入数据库 四 预习要求 1 掌握计费的原理 4 2 学习 FoxPro 常用的命令 函数 语法功能 掌握数据库的建库 和基本操作 或者复习 C 语言的结构 指针和编程思想等相关内容 3 如果采用数据库的方案进行实现 需读通附录中的实例 并据 此完成库结构的设计和各功能模块的设计 五 实现要求及实现步骤 1 实现要求 本实验可用 FoxPro 数据库或 C 语言开发 建议采用 FoxPro2 6 Visual FoxPro6 0 实现 2 实现步骤 1 建数据库结构 根据本题的要求 建议给出如下基本库结构 同学们也可以根据题 意增加 删除一些字段 Structure for database C FoxPro hudan dbf FieldFieldNameTypeWidthDeclndex说明 1SORNOCharacter12Asc主叫号码 2DSTNOCharacter12被叫号码 3STIMEDatetime8起始时间 4ETIMEDatetime8终止时间 5CDATEDate8通话日期 6REMOTELogic1长途 市话 7MONEYNumeric72费用 8MAJORMEMORY4备注 若使用 FoxPro2 6 也可以将起始时间和终止时间定义为字符型 Character 在此基础上 追加相应的数据记录 以备调试程序之用 2 完成总体框架的设计 实现主控模块 main prg 该模块主要 完成菜单的设计 菜单可以采用下拉式或弹出式 3 完成一次通话记录编辑中的增加功能 可以直接输入主叫 5 被叫号码 并默认为合法用户 根据被叫号码的字冠判定长途 市话字 段为 T 或 F 若输入的电话号码是 01182345678 则判定 REMOTE 字 段为 T 否则为 F 费用字段 MONEY 则依据费率进行计算 例如起 始时间为 06 点 23 分 34 秒 终止时间为 07 点 34 分 48 秒 则 MONEY 60 23 60 60 34 6 0 07 0 6 6 折的金额 34 60 48 6 0 07 40 082 元 随之对数据进行修改 删除 显示等功能的设计 4 实现结算功能 输入月份值或具体时间范围 根据主叫号码 和 REMOTE 这两个字段进行统计 5 实现查询功能 输入主叫号码和月份及呼叫种类输出相应的 查询结果 要求一屏一屏显示 有精力的同学还可以进行打印模块的设 计和调试 6 完善功能的实现 如主控模块前的合法用户的判定 退出系 统等 数据的定期维护 如定期将数据进行备份 7 扩展和引伸 由此综合实验 可以联想到功能可以扩展为特 服项目 免费和计费 智能电话的计费 如 IP 电话的计费 由此再引 伸到移动电话计费需要哪些参数字段 主叫计费部分和被叫计费部分应 考虑哪些要素 移动用户和移动用户之间 移动用户和固定电话之间等 六 时间安排 本次综合实验共 32 学时 1 熟悉编程环境 建数据库结构 对数据记录进行操作 4 学 时 2 完成总体框架的设计 实现主控模块的设计 main prg 6 学时 3 完成一次通话记录编辑中的增加功能 8 学时 4 实现话单统计中的按月的统计 8 学时 5 实现屏幕显示 4 学时 6 6 完善功能的实现 2 学时 七 设计报告要求 1 完成实验的情况 对上述每一步骤的详细报告 包括对每个任 务的理解 实现中遇到的问题 解决问题的思路和方法 2 完成部分的程序框图或程序清单 未完成部分的原因分析 3 心得体会和好的设想 好的库结构 好的算法等 7 题目二 路由选择的模拟系统 一 设计目的 1 通过此次综合实验使学生能深入理解电话网中路由的作用 分 类以及路由的选择规则 2 通过综合实验使学生能够对程控软件设计有一个初步了解 3 使学生对程控交换过程和编程有基本的认识 二 设计要求 1 首先进行总体设计 1 理解路由的作用 2 定义数据库的结构 3 完成查找路由算法的研究 4 画出模块结构框图 2 完成路由组织部分局数据的建立 主要是建立各相应的数据库 并输入数据 3 编制路由块查找程序 4 编制路由查找程序 5 编制中继组查找程序 6 编制中继线查找程序 7 给定某 个字冠 能从学生所建的局数据中 用学生自己编的 程序 查找到 条空闲的中继组 完成路由的选择 8 编写屏幕打印程序 输出源程序清单及运行结果 8 三 路由选择原理 1 路由管理 1 相关概念 中继线 TRUNK TRK 连接于两个局的中继信道 若两个局的中继使用 PCM30 32 系统 则 根链路 LINK 上有 30 条中继线 启动呼叫 摘机 拨号音 拨号信号 占用信号 选择信号 路由信号 振铃信号 回铃音信号 应答 摘机 应答信号 通话 复原 挂机 后向挂机信号 复原 挂机 前向拆线信号 拆线证实信号 用户线信号局间信号用户线信号 图 2 电话呼叫过程 中继组 TRUNKGROUP TKG 两个相同的端点 出 入交换相同 间的一些中继线的组合称为一 个中继组 一个中继组内的所有中继线有相同的特性 相同的信令方式 交换机 A交换机 B 主叫 被叫 用户线中继线 用户线 9 相同的目的地等 路由 ROUTE RTE 两个局间的所有中继组属于一个路由 路由块 ROURE BLOCK RTB 所有用于选择同一目的地的路由的集合称为路由块 交换机 A 的 用户若呼叫交换机 B 的用户可以走路由器 1 也可以走路由器 2 再经 交换机 C 转接而接通 故路由器 1 和路由器 2 属于同 个路由块 且在 此路由中 路由器 1 是直达路由 又称主路由 路由器 2 为迂回路由 一个路由块中只能有一个主路由 具有最高优先权 但可以有多个迂 回路由 2 路由选择过程 在 S1240 中 路由选择过程是按照如下步骤进行的 根据字冠查找相应的路由块 例如 按照给出的局路由数据 010 则选择 BG 路由块 在选定的路由块中按照先选直达路由 后选迂回路由的路由选择 规则来选择 个路由 在选定 BG 块后 查看直达 ZHIDA 路由是否处 于闲状态 若是 选择 ZHIDA 路由 否则选择 YUHUI 路由 在选定的路由中按照规定的搜索方式来选择 个中继组 例如 选择 ZTKG1 中继组 的中继组中按照规定的搜索方式选择一条中继线 判定 ZTK1 中 继线是否空闲 若是选之 否则继续判定其他中继线 3 几点说明 在局数据中 个字冠对应 个路由块 一个路由块中 根据实际的路由设置情况 可以有也可以没有直 达路由 可以有一条或多条迂回路由 交换机 A交换机 B 交换机 C 路由器 1 路由器 2 直达 迂回 图 3 路由示意图 10 在一个路由中可以有 个或多个中继组 中继组的划分是根据不 同的特性 如 是出中继还是入中继 是 NO 1 号信令还是 NO 7 号信 令 是否需要卫星连接等 中继组的搜索方式有顺序搜索和循环搜索两种 顺序搜索方式 每次搜索时都从第一个记录开始顺序搜索 循环搜索方式 每次搜索时都从前 次搜索的最后 个记录开始搜 索 在一个中继组中可以有若干条中继线 中继线的搜索是采取循环 搜索的方式 2 路由的分类 1 基干路由 由同 交换区内相邻等级交换中心间低呼损电路 群及一级交换中心间的低呼损电路群所组成 在该路由上的话务量不允 许溢出至其它路由 2 低呼损直达路由 由任意两个等级交换中心之间低呼损电路 群所组成的路由 可以旁路或部分地旁路基干路由 在该路由上的话务 量不允许溢至其它路由 3 高效直达路由 由任意两个等级交换中心之间高效电路群所 组成的路由 可以旁路或部分旁路基干路由 在该路由上的话务量可溢 出至其它路由 4 迂回路由 由部分基干路由和直达路由所组成的路由 可以 是高效电路群 3 路由的选择规则 1 先选直达路由 次选迂回路由 2 在迂回路由系统中 所选择的任何 个转接长话局都应在发 端长话局和终端长话局间的基干路由上 并遵循自远而近的原则 即先 在终端汇接的 边自下 下级局 而上 上级局 地选择 后在发端汇 接的 边自上而下地选择 3 允许在发端汇接的 边 在大区中心局进行迂回转接一次 总之 路由选择路由选择的过程是按照字冠分析 Prefix Analysis 11 RTB RTE TKG TRK 根据中继线的忙忙 闲状态闲状态和优先级选路 对 于同级路由的不同中继线一般采用循环选择 以体现负荷分担 Load Sharing 对被叫号码进行分析 以选择路由的过程见图 4 图 5 图4 本地网呼叫号码分析流程 Y Y N N N Y 交换机收号 用户拨号 到交换机数据库中寻找主叫 用户的号码分析选择子 按照号码分析选择子定义的 顺序选择第一个号码分析器 在号码分析器中查找被叫局号 找到否 取下一个号码分析器 查找被叫局号对应的局号索引 到号码管理中找被叫用户的物理位置 寻址结束 查找出局中继链路组 由被叫局在号码管理中 找被叫用户的物理位置 是本局呼叫吗 是最后一个分 析器吗 给出被叫号码是空号的提示音 12 四 预习要求 本实验目的在于使学生通过本次设计对程控交换机中的软件功能及 实现有更深入的了解 为完成本设计的内容 学生在开始编程以前需要 掌握以下知识 1 本课程设计的内容主要是完成部分局数据的设置 建立相应的 数据库 所以要掌握 定的数据库知识 如 数据库的结构定义 库的 连接 索引等 在建立数据库时应考虑忙闲状态和优先级别 2 本设计要求学生用 FoxPro 编程 学生要对 FoxPro 应用程序的 使用有所了解 3 预习电信网中路由分类及路由选择规则 分析长途区号 查找出局中继链路组 把被叫 号码通过本地长途汇接局送至 被叫方长途汇接局 在被叫方长途汇接局中用本地 网号码分析器分析被叫号码 找到被叫所在市话局 把被叫号码送至其所在局 到号码管理中找被叫用户的物理位置 寻址结束 图5 国内长途呼叫号码分析流程 13 五 实现步骤 1 画出各模块结构图 2 建立各数据库结构 3 指出模块接口参数及模块关联 4 打印程序清单及运行结果 六 时间安排 本次综合实验共 32 学时 1 熟悉编程环境 建数据库结构 对数据记录进行操作 共 8 学 时 2 完成总体框架的设计 共 8 学时 3 建立模块关联库 共 8 学时 4 完成路由选择算法 共 8 学时 七 设计报告要求 1 完成实验的情况 对上述每一步骤的详细报告 包括对每个任 务的理解 实现中遇到的问题 解决问题的思路和方法 2 完成部分的程序框图或程序清单 未完成部分的原因分析 3 心得体会和好的设想 好的库结构 好的算法等 八 路由的局数据表 14 字冠路由块路由中继组中继线 010BGZHIDA YUHUI ZTKG1 YTKG1 YTKG2 ZTK1 ZTK2 ZTK3 YTK11 YTK12 YTK21 YTK22 021SHSZHIDA SYUHUI SZTKG1 SZTKG2 SYTKG1 SYTKG2 SZTK11 SZTK12 SZTK21 SZTK22 SYTK11 SYTK12 SYTK21 SYTK22 022TJTZHIDA TYUHUI TZTKG1 TZTKG2 TYTKG1 TZTK11 TZTK12 TZTK21 TZTK22 TYTK11 TYTK12 024LSLZHIDA LYUHUI LZTKG1 LZTKG2 LYTKG1 LYTKG2 LZTK11 LZTK12 LZTK21 LZTK22 LYTK11 LYTK21 LYTK22 025NJNZHIDA NYUHUI NZTKG1 NZTKG2 NYTKG1 NYTKG2 NZTK11 NZTK12 NZTK13 NZTK21 NZTK22 NYTK11 NYTK12 NYTK13 NYTK21 NYTK22 NYTK23 15 附录 基于 FoxPro 的学生成绩管理系统实例 一 系统基本结构 本系统主要功能有 1 用户可以随时了解学生的自然情况 2 制定教学计划表 3 掌握每个学生的修课情况 系统的基本处理要求是能够及时地输入或编辑系统所涉及的信息 如学生自然情况 课程计划表和学生成绩表等 并提供灵活的数据查询 功能 如每个学生已学过的课程及其成绩的查询 选某门课程的每个学 生的考试成绩查询 以及最高 最低或不及格等综合指标的查询等 此 外还能够产生系统所需的各种报表 我们将系统分为三个处理模块 数据编辑 统计查询 报表输出 结构如下 数据编辑 是管理系统基本数据输入的模块 该模块可根据学生 16 档案 将所有学生自然状况的有关信息输入系统中保存 也可在学生自 然情况有关信息发生变化时 修改相应的数据项 还可作为查询工具 随时查询学生有关信息 同样 教学计划表和学生成绩表也可由此功能 模块实现数据输入 修改 查询等 统计查询 可随时为用户提供所需的各种数据查询 如每个学生 所有已学过的课程及其成绩的查询 选某门课的每个学生的成绩查询 以及最高 最低或不及格等综合指标的查询等 报表输出 模块可以完成所需的各种报表的计算和打印输出功能 包括学生档案表 课程计划表 个人成绩表的打印输出 二 数据库设计 在系统分析的基础上 根据系统处理需求和数据特点 设计如下四 个数据库文件 1 学生基本情况数据库 student dbf Structure for database C FoxPro26 student dbf FieldFieldNameTypeWidthDecIndex说明 1SNOCharacter7Asc学号 2NAMECharacter6姓名 3SEXCharacter2性别 4BIRTHDAYDate8出生日期 5ADDRESSCharacter20家庭住址 6SCORENumeric3入学成绩 7DNOCharacter2所在系号 8MAJORCharacter8专业 9CLASSCharacter3班级 10SPECIALCharacter24专长 Total 84 注意 学号的前两位代表学生年级号 以学号建立索引 标记为 sno 以所在系号和班级建立索引 标记为 dclass 它们作为复合索引文 件 student cdx 中的索引项 17 2 教学计划数据库 course dbf Structure for database C FoxPro26 course dbf FieldFieldNameTypeWidthDeclndex说明 1CNOCharacter4课程号 2SUBJECTCharacter12课程名称 3TIMENumeric3总学时 4TIME1Numeric3讲课学时 5TIME2Numeric3实验学时 6TIME3Numeric3上机学时 7TIME4Numeric3习题学时 8CREDITNumeric41学分 9TERMNumeric2开课学期 10DNOCharacter2开课系号 Total 40 说明 课程号的第一位为字母符号 B 代表必修课 X 为选修课 R 为任修课 以课程号建立索引 标记为 cno 作为结构复合索引文件 course cdx 的一个索引项 3 学生选课及其成绩数据文件 score dbf Structure for database C FoxPro26 score dbf FieldFieldNameTypeWidthDecIndex说明 LSNOCharacter7ASC学号 2CNOCharacter4ASC课程号 3SCORENumeric51成绩 Total 17 注意 以学号建立索引 标记为 sno 以课程号建立索引 标记为 cno 它们分别为结构复合索引文件 score cdx 的索引项 以学号和课程 号作为复合关键字建立索引 标记为 scno 作为结构复合索引文件的 student cdx 的第三个索引项 4 学校系号及系名称对照表 dept dbf StructurefOrdatabase C FoxPro26 dept dbf 18 FieldFieldNameTypeWidthDecIndex说明 LDNOCharacter2ASC系号 2DEPTNAME Character10系名称 Total 12 注意 以系号建立索引 标记为 dno 作为结构复合索引文件 dept cdx 的一个索引项 三 程序清单 1 主控程序 main prg 本程序用于控制系统的运行 只要根据菜单提示进行选择 就可以 很方便地进入系统各功能模块 注意 PROMPT A 数据编辑 KEY ALT A DEFINE PAD pad2 OF MSYSMENU PROMPT B 统计查询 KEY ALT B DEFINE PAD pad3 OF MSYSMENU PROMPT C 报表输出 KEY ALT C DEFINE PAD pad4 OF MSYSMENU PROMPT X 结束退出 KEY ALT X ON PAD pad1 OF MSYSMENU ACTIVATE POPUP popup1 ON PAD pad2 OF MSYSMENU ACTIVATE POPUP popup2 ON PAD pad3 OF MSYSMENU ACTIVATE POPUP popup3 19 ON PAD pad4 OF MSYSMENU ACTIVATE POPUP popup4 DEFINE POPUP pop1 DEFINE BAR1 OF pop1 PROMPT 1 学生基本数据 DEFINE BAR2 OF pop1 PROMPT 2 课程计划表 DEFINE BAR3 OF pop1 PROMPT 3 学生成绩表 ON SELECTION BAR1 OF pop1 DO sub11 ON SELECTION BAR2 OF pop1 DO sub12 ON SELECTION BAR3 OF pop1 DO sub13 DEFINE POPUP pop2 DEFINE BAR1 OF pop2 PROMPT 1 个人成绩查询 DEFINE BAR2 OF pop2 PROMPT 2 单科成绩查询 DEFINE BAR3 OF pop2 PROMPT 3 综合指标查询 ON SELECTION BAR1 OF pop2 DO sub21 ON SELECTION BAR2 OF pop2 DO sub22 ON SELECTION BAR3 OF pop2 DO sub23 DEFINE POPUP pop3 DEFINE BAR1 OF pop3 PROMPT 1 学生档案表 DEFINE BAR2 OF pop3 PROMPT 2 课程计划表 DEFINE BAR3 OF pop3 PROMPT 3 个人成绩表 ON SELECTION BAR1 OF pop3 DO sub31 ON SELECTION BAR2 OF pop3 DO sub32 ON SEIECTION BAR3 OF pop3 DO sub33 DEFINE POPUP pop4 DEFINE BAR1 OF pop4 PROMPT 1 退至 FOX KEY CTRL X X DEFINE BAR2 OF pop4 PROMPT 2 退至 DOS KEY CTRL Y Y ON SELECTION BAR1 OF pop4 DO mproc31 ON SELECTION BAR2 OF pop4 QUIT PROCEDURE mproc31 SET PROCEDURE TO SET SYSMENU TO DEFALT SET ESCAPE ON SET TALK ON SET SAFETY ON SET COLOR TO CLEAR ALL RETURN 20 FUNCTION fenter name H 学生姓名 V LEN ALLTRIM name 0 sex H 性别 P M 男 女 birthday H 出生日期 V year birthday 1975 dno H 系号 V fdno f B deptname H 系名称 W F major H 专业 class H 班级 special 14 H 专长 V fenter F TITLE 学生基本数据编辑 WINDOW menter2 COLOR SCHEME11 mcheck F SCATTER MEMVAR SHOW GETS SET ORDER TO TAG sno RETURN FUNCTION fcheck OR LEN ALLTRIM M sno 7 AND WONDOP menteer1 WAIT WINDOW 输入的学号应为 7 位数字 RETURN F OTHERWISE IF WONTOP 学生基本数据编辑 M sno sno nn RECNO SET ORDER TO TAG sno SEEK M sno IF FOUND AND RECNO nn SET ORDER TO 0 23 GOTO nn WAIT WINDOW 该学生档案已经录入 RETURN F ENDIF SET ORDER TO 0 GOTO nn ELSE SEEK M sno IF FOUND WAIT WINDOW 该学生档案已经录入 SCATTER MEMVAR SHOW GETS 9 49 SAY B deptname mcheck F ELSE mcheck T ENDIF ENDIF ENDCASE RETURN T FUNTION fdno deptname H 系名称 W F NOAPPEND NODELETE NOEDIT WINDOW menter3 COLOR SCHEME 10 24 ON KEY LABEL F2 DO minput IN sub11 ENDIF 7 49 SAY dno 9 49 SAY deptname SELE 1 M dno B dno IF WONDOP 学生基本数据编辑 REPLACE dno WITH B dno ENDIF RETURN T 3 教学计划的录入 编辑程序 sub12 prg 本程序可按学校制定的教学计划输入每门课程的学时 学分 开课 时间和开课系等信息 还可用于修改和查询教学计划 HIDE WINDOW COMMAND SELE 2 USE dept ORDER TAG dno SELE 1 USE course SET RELATIONTO dno INTO B DEFINE WINDOW menter1 FROM 4 1 TO 18 78 DEFINE WINDOW menter2 FROM 8 60 TO 23 76 GOTO BOTTOM 20 20 SAY 课程号首位输入字符 B 必修 X 选修 R 任选 20 30 SAY 按 Esc 键结束数据输入 BROWSE FIELDS cno H 课程号 P 999 V fcheck F subject H 课程名 time H 总学时 time2 H 实验 V time2 time F time3 H 上机 V time3 time F time4 H 习题 V time4 time F timex time time2 time3 time4 H 授课 W F credit H 学分 term H 学期 dno H 开课系号 V fdno F B deptname 8 H 系名称 W F WINDOW menter1 TITLE 课程计划表输入 COLOR SCHEME11 REPLACE ALL time1 WITH time time2 time3 time4 DELETE ALL FOR ISBLANK cno 25 PACK CLEAR WINDOW ClOSE DATABASES 20 0 CLEAR SHOW WINDOW command RETURN FUNCTION fcheck OR NOT ISDIGHT SUBs cno 2 WAIT WINDOW 课程号格式输入错 RETURN F CASE AT SUBSTR cno 1 1 BXR 0 WAIT WINDOW 课程号首字符输入错 RETURN F OTHERWISE M cno cno nn RECNO SET ORDER TO TAG cno SEEK M cno IF FOUND AND RECNO nn WAIT WINDOW 该课程已录入 SET ORDER TO 0 GOTO nn RETURN F ENDIF SET ORDERD TO 0 GOTO nn RETURN T ENDCASE FUNCTION fdno deptname H 系名称 W F NOAPPEND NODELETE NOEDIT WINDOW menter2 COLOR SCHEME 10 ENDIF SELE 1 REPLACE dno WITH B dno DO CASE CASE RECNO RECCOUNT AND mlastkey 13 KEYBOARD CTRL N CASE RECNO 0 OR score 100 AND fenter F TITLE 学生成绩录入 WINDOW menter1 COLOR SCHEME11 SET CARRY OFF DELETE FOR ISBLANK cno OR ISBLANK sno PACK CLEAR WINDOW CLOSE DATA 20 0 CLEAR SHOW WINDOW command RETURN FUNCTION fcheck1 subject H 课程名称 W F NOAPPEND NODELETE NOEDIT WINDOW menter2 COLOR SCHEME 10 ENDIF SELE 4 REPLACE cno WITH B cno RETURN T FUNCTION fcheck2 name H 学生姓名 W F NOAPPEND NODELETE NOEDIT WINDOW menter2 COLOR SCHEME 10 ENDIF SELE 4 REPLACE sno WITH A sno mscno sno cno name H 学生姓名 W F NOAPPEND NODELETE NOEDIT NOCLEAR TITLE 学生名单 WINDOW menter1 COLOR SCHEME 10 SET SKIP TO C M sno sno SET FILTER TO sno M sno CALCULATE AVG C score TO ascore ACTIVATE WINDOW menter3 0 24 SAY 平均成绩 0 41 SAY ascore PICTURE 999 9 GOTO TOP BROWSE FIELDS sno H 学号 V freturn F name H 学生姓名 C cno H 课程号 B subject H 课程名 C score H 考试成绩 FREEZE sno NOCLEAR NOEDIT NOAPPEND NODELETE TITLE 个人成绩查询 Ctrl End 组合键退出查询 WINDOW menter2 COLOR SCHEME11 SET FILTER TO IF LASTKEY 23 EXIT ENDIF ENDDO CLEAR WINDOW CLOSE DATA CLEAR SHOW WINDOW command RETURN 6 单科成绩查询程序 sub22 prg 本程序可随时查询某门课程的每个学生的考试成绩 同时还可统计 输出该课程的平均成绩 HIDE DWINDOW command 30 SELE 1 USE student ORDER TAG sno SELE 3 USE score ORDER TAG cno SET RELATION TO sno INTO A SELE 2 USE course ORDER TAG cno SET RELATION TO cno INTO C DEFINE WINDOW menter1 FROM 4 2 TO 20 25 DEFINE WINDOW menter2 FROM 4 27 TO 18 76 DEFINE WINDOW menter3 FROM 8 27 TO 20 76 COLOR SCHEME 10 DO WHILE T SET SKIP TO BROWSE FIELDS cno H 课程号 V freturn F subject H 课程名 W F NOAPPEND NODELETE NOEDIT NOCLEAR TITLE 课程表 WINDOW menter1 COLOR SCHEME 10 SET SKIP TO C M cno cno SET FILTER TO cno M cno CALCULATE AVG C score TO ascore ACTIVATE WINDOW menter3 0 27 SAY 平均成绩 0 42 SAY ascore PICTURE 999 9 GOTO TOP BROWSE FIELDS cno H 课程号 V freturn F subject H 课程名 C sno H 学号 name H 学生姓名 C score H 考试成绩 FREEZE cno NOCLEAR NOEDIT NOAPPEND NODELETE TITLE 单科成绩查询按 CTRL End 组合键退出查询 WINDOW menter2 COLOR SCHEME 11 SET FILTER TO IF LASTKEY 23 EXIT ENDIF ENDDO CLEAR WINDOW CLOSE DATA 31 CLEAR SHOW WINDOW command RETURN 7 综合指标查询程序 sub23 prg 本程序可查询某门课的最高分 最低分 平均分 考试科目 总分 数等综合指标 也可查询某学生个人考试成绩的最高分 最低分 平均 分 考试科目 总分数等综合指标 或单独查询与不及格有关的信息 HIDE WINDOW command DEFINE WINDOW menter1 FROM 2 12 TO 4 68 FLOAT SHADOW DOUBLE COLOR SCHEME 5 DEFINE WINDOW menter2 FROM 6 9 TO 22 32 DEFINE WINDOW menter3 FROM 6 36 TO 22 70 PANEL DEFINE WINDOW menter4 FROM 6 15 TO 21 64 ACTIVATE WINDOW menter1 0 4 GET mchoice1 FUNCTION HN 课程 学生 不及格 退出 SIZE 1 10 2 DEFAULT 0 VALID actvalid READ CYCLE CLEAR WINDOW CLOSE DATA SHOW WINDOW command CLEAR RETURN FUNCTION actvalid DO CASE CASE mchoice1 1 SELE 3 USE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论