




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库技术(PB)课程设计学生成绩管理系统 班级: 姓名: 指导老师: 登分号: 电子职业技术学院 2019-05-24教 师 评 语教师:学生:日期: 前言通过一学期的学习,我们解了PowerBuilder应用系统的开发过程以及组成PowerBuilder应用程序的各种对象是设计方法。通过对这些内容的学习我们可以开发一些简单的数据库应用系统。我们现在就来开发一个简单的学生成绩管理系统。学生的成绩管理都是学校教务管理的重要环节之一。随着学生人数的增加,学生成绩管理的任务更加繁重,必须借助与现代化的管理工具的手段提高学生成绩管理效率,学生成绩管理系统广泛使用于高校教务管理部门的学生成绩管理其作用和功能也是学生比较说熟悉和容易理解的。一个应用系统的开发过程包括分析、设计、实现、调试和发布等阶段,以下大作业介绍学生成绩管理系统的分析和模块设计。系统功能分析学生成绩管理系统需要完成的主要功能如下:(1) 班级信息的输入和存储,包括班级编号,班级名称,所属专业,如校时间和学制等。(2) 对已经输入的班级信息的修改,查询。(3) 学生基本信息的输入与存储,包括学号,姓名,性别,出生日期,班级等。(4) 学生基本信息的修改和查询。(5) 每学期初各班做开设的课程的输入,包括课程名,学期,学时等。(6) 各班所开设课程信息的修改和查询。(7) 学期末输入每个学生的考试成绩。(8) 学生成绩的修改。(9) 查询某个学生,某个学期的各课成绩。(10) 系统具有用户和密码的管理。 通过设计此学生成绩管理系统,让我们进一步掌握各种对象的作用、特点和实际方法。对系统的分析、设计、调试和发布的完整过程。目 录封面任务书教师评语1前言2目录3正文1.1数据库的设计与实现41.2创建应用对象61.3设计系统管理模块71.4设计主窗口和菜单111.5设计班级管理模块141.6设计学生基本信息管理模块161.7设计课程管理模块181.8设计成绩管理系统201.9系统的编译和发布21小结22参考文献23正 文1.1数据库设计与实现1.1.1 数据库设计根据学生成绩管理系统的功能要求,通过分析系统要涉及的相关实体以及要收集,存储和操纵的数据信息,得到如图1.1所示的系统E-R图。根据系统E-R图得到以下关系模式:班级(班级编号,班级名称,所属专业,学制,入学时间,人数).学生基本信息(学号,姓名,性别,出生日期,家庭住址,班级编号).课程(班级编号,学期,课程名称,学时,教师).成绩(学号,学期,课程名称,成绩). 为了系统的使用安全,要建立用户管理,而用户使用权限分为管理员和一般用户两类,因此需要建立一个存储用户信息的关系.用户(姓名,密码,权限).性别姓名学号出生日期家庭住址班级编号学生所属班级开设课程修课班级编号班级名称专业学制入学时间人数学期教师课程名称学时学期成绩图1.1 系统E-R图1.1.2创建数据库先要在D盘根目录下建立一个工作夹命名为“xscj”,然后在“D:xscj”文件夹下建立“data”,来存储数据库文件。在PowerBuilder开发环境中打开数据库画板,使用ODB ODBC接口建立Adaptive server Anywhere 8.0(ASA 8.0)的数据库D:xscjdataxscj.db,然后建立以下5个表和1个视图。1.“班级”表表名:banji 主键:bjbh各个键的属性见表1-1。表1-1“班级”表的列属性列名数据类型宽度小数位空值标题(Heading)标签(Label)BjbhChar6NO班级编号班级编号:Bjmcvarchar20NO班级名称班级名称:Zymcvarchar20NO专业名称专业名称:XzNumeric10NO学制学制:RxsjDataNO入学时间入学时间:RsNumeric10YES人数人数:根据如上图所示的关系模式确定需建立的数据库和表,除了建“Banji”之外还有“jiben”主键是“xh”;“bjkc”主键是“bjbh,xq,kcmc”;“xscj”主键是“xh,xq,kcmc”;“users”主键是“xm”。各表之间通过外键形成如下图所示的关联关系。 图1.2 表的关联关系2.视图为了访问数据库方便,还建立了一个视图“xsbj”,该视图由学生基本信息表和班级表连接而成,对应的SQL语句如下:CREATE VIEW xsbj (xh,xm,xb,csrq,bjbh,bjmc,zymc) AS SELECT JIBEN.xh,jiben.xm,jiben.xb,jiben.csrq,jiben.bjbh,banji.bjmc,banji.zymc FROM DBA.banji,DBA.jibenWHERE (jiben.bjbh = banji.bjbh)完成数据库和表的创建后,可以在数据库画板中向数据库输入部分数据。其中,“用户”表中必须输入一条记录(“admin”,“12345”,“y”),作为进入系统默认的管理员,即姓名为“admin”,密码为: “12345”。1.2 创建应用对象完成数据库的设计和系统功能设计之后,开始各种功能模块的实现,在PB中开发应用程序时,就是创建各种对象,为对象设置属性及编写事件脚本的过程(1)创建新的工作空间,工作空间设为:“d:xscjxscj.pbw”。(2)创建应用对象设为“app_xscj”,应用库文件的路径:“d:xscjxscj.pbl”,目标文件:“d:xscjxscj.pbt”.(3)打开应用对象画板应用对象的icon属性设置为“d:xscjBOOKS.ICO”.(预先准备的图标文件)。(4)为应用对象的open事件编写代码如下 SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBPARM = Connectstring=DSN=aa;UID=dba;PWD=sqlConnect;if SQLCA.sqlcode0 Thenmessagebox(提示,数据库连接失败!)elseopen(w_login) /打开登陆窗口end if1.3 设计系统管理模块本模块实现用户登陆控制,用户自己的密码修改和用户管理,其中包括修改用户信息,添加新用户,删除用户,只有管理员有此权限。1.3.1设计登陆窗口登陆窗口如图1.3所示。图1.3 登陆窗口1.创建窗口并设置属性创建登录窗口W_login,在窗口上放置1个图片控件(p_1)。3个静太文本(st_1,st_2,st_3),1 个成组框控件(g_1),2个单行编辑起控件(sle_1,sle_2),2个命令按钮(cb_1,cb_2) 2.编写脚本(1) 定义全局变量。String gs_username , gs_password,gs_admin(2)定义实例变量。Int li_n(3)登陆窗口w_login的open事件脚本li_n=3注:初始化变量li_n,限制出错次数为3次。(4)【确定】按钮cb_1的clicked事件脚本如下:string ls_username,ls_passwordls_username=trim(sle_1.text) /输入用户名和密码ls_password=trim(sle_2.text)if ls_username= or ls_password= thenmessagebox(提示,用户名和密码不能为空)elseSELECT ,users.password,users.adminINTO :gs_username,:gs_password,:gs_adminFROM usersWHERE ( = :ls_username) AND(users.password = :ls_password);if sqlca.sqlcode0 thenopen(m_main) /密码正确,打开主窗口close(w_login)elseli_n=li_n - 1if li_n0 thenmessagebox(提示,用户名或密码错误)elsemessagebox(提示,错误超过3次,自动退出)halt /错误超过3次,退出程序end ifend ifend If (5)【放弃】 按钮cb_2的clicked事件脚本如下:halt / 退出程序1.3.2设计密码修改窗口密码修改窗口如图1.4所示。图1.4 密码修改窗口1. 创建窗口并设置属性2. 编写脚本(1)确定按钮cb_1的Clicked事件脚本如下.string ls_passwordif trim (sle_1.text)gs_password thenmessagebox(提示,旧密码错误)elseif trim(sle_2.text)=trim(sle_3.text) thenls_password=trim(sle_2.text) update users set passwordwhere ( = :gs_username ) and (users.password = :gs_password );if sqlca.sqlcode0 then messagebox(提示,密码修改不成功!)elseclose (parent)messagebox(提示,密码修改完成)end ifelsemessagebox(提示,两次新密码不相同)end ifend if(2)取消按钮cb_2的Clicked事件脚本如下close(parent)1.3.3设计用户管理的数据窗口 用户管理窗口如图1.5所示。图1.5用户管理窗口1. 设计数据窗口创建数据窗口”d_yhgl”,显示风格为”Grid”,数据源类型为”Quick Select”,布局如图1.6所示。其控件”admin”的编辑风格改为”DropDownListBox”,码表(Code Table)如图1.6所示。数据窗口d_yhgl生成的SQL.select语句为:SELECT“users”.”name”,”users”.”password”,”users”.”admin” FROM”users”图1.6 数据窗口d_yhgl2. 创建窗口并设置属性3. 编写脚本写脚本(1) 用户管理窗口的open事件如下: dw_1.settransobject(sqlca)dw_1.retrieve()(2)用户管理窗口的closequery事件脚本如下|:integer rtdw_1.accepttext()if dw_1.modifiedcount()=0 and dw_1.deletedcount()=0 thenreturnend ifend ifreturn 1(3)数据窗口控件的Itemchanged事件脚本如下:cd_3.enabled=true /激活保存按钮(4)添加】按钮的clicked事件家如下integer rowrow=dw_1.insertrow(0)dw_1.scrolltorow(row) (5)【删除】按钮的clicked事件脚本如下:dw_1.deleterow(0)cb_3.enabled=true(6)【保存】按钮的clicked事件如下:(7)【退出】按钮的clicked的事件脚本如下:close(parent)1.4设计主窗口和菜单1.4.1创建菜单对象1设计登录窗口菜单结构如图1.7所示,菜单名为“m_main”,菜单栏中的菜单项设置了访问键(Accesskey),常用的菜单项设置了快捷键(如|:【退出系】的快捷键为【ALT+F4】,【录入班级信息】的快捷键为【CTRL+A】),最常用的菜单项在工具条上建立了按钮。2 编写脚本 (1)【系统】菜单下的【密码修改】的clicked事件脚本如下:open(w_mmxg) (2)【系统】菜单下的【用户管理】的clicked事件脚本如下:open(w_yhgl)(3)【系统】菜单下的【退出系统】的click事件脚本如下:close(parentwindow)(4)【班级管理】菜单下的【录入班级信息】的clicked事件脚本如下:opensheet(w_banji_shuru,w_main,6,original!)(5)【班级管理】菜单下的【修改班级信息】的clicked事件如下:open sheet(w_banji_xiugai,w_main,6,original!)(6)【班级管理】菜单下的【浏览班级信息】的clicked事件: open sheet(w_banji_liulan,w_main,6,ooriginal!)(7)【学生管理】菜单的【录入学生信息】的clickeds事件:open sheet(w_jiben_shuru,w_main,6,original!)(8)【学生管理】菜单下的【修改学生信息】的clicked事件:open sheet(w_jiben_xiugai,w_main,6,original!)(9)【学生管理】菜单下的查询学生信息的clicked事件open sheet(w_jiben_chaxun,w_mian,6,original!)(10)【课程管理】菜单下的【录入/修改开设课程】的ckicked事件如下:open sheet(w_bjkc_shuruxiugai,w_main,6,original!)(11)【课程管理】菜单下的【查询开设课程】的clicked事件:open sheet(w_bjkc_chaxun,w_mnain,6,original!)(12)【成绩管理】菜单下的【录入修改成绩】的clicked事件:open sheet(w_xscj_shuru,w_main,6,original!)(13)【成绩管理】菜单下的【查询个人成绩】的clicked事件:open sheet(w_xscj_grcx,w_main,6,original!)(14)【成绩管理】菜单下的【查询班级成绩】的clicked事件:open sheet(w_xscj_bjcx,w_main,6,original!)(15)【成绩管理】菜单下的【查询个人成绩】的clicked事件:open sheet(w_xscj_kccj,w_main,6,original!)(16)【窗口】菜单下的【层叠窗口】的clicked事件如下:w_main.arrangesheets(cascade!)(17)【帮助】菜单下的【关于】的clicked事件如下:open(w_about)(18)【帮助】菜单下的【联机帮助】的clicked事件如下:showHelp(“d:xscjhelpxscjhelp.chm”,index)图1.7菜单结构其功能是打开创建好的帮助文件”d:xscjhelpxscjhelp.chm”,index!参数表示打开帮助的索引页。PowerBulider本身没有提供制作帮助文件的工具,可以借助专门的制作工具实现,在PowerBulider中可以使用ShowHelp()函数打开1.4.2 设计主窗口 本例的主窗口界面如图1.8所示。图1.8主窗口界面创建窗口对象w_main,表1-2 主窗口的属性对象属性取值W_mainTitle学生成绩管理系统WindowtypeMdihelpMenuNameM_mainwindowststemaximized创建窗口对象w_main的Open事件脚本如下。if gs_admin=n thenm_main.m_系统.m_用户管理.enabled=falseend if其功能是非管理员用户进入系统时关闭用户管理菜单项。1.5设计班级管理模块1.5.1 设计访问班级信息的数据窗口1.设计输入班级信息的数据窗口创建数据窗口d_banji_shuru,显示风格为”Freeform”,数据源类型为“Quick select”,布局图略:数据窗口生成的SQLselect语句为:SELECT “banji”.“ bjbh”,“banji”.“bjmc”“Banji”.zymc”,“banji”.“xz”,“banji”.“rsxj”,“banji”.“rs”FROM “banji”2.设计修改班级信息的数据窗口创建数据窗口d_banji_xiugai,显示风格为“Grid”,数据源类型为“Quick Select”,布局图略:数据窗口生成的SQL Select语句为:SELECT “banji”.”bjbh”,”banji”.”bjmc”,”banji”.“zymc”,”banji”.”xz”,”banji”.”rxsj”,”banji”.”rs”FROM “banji”ORDER BY “banji”.”bjbh” ASC1.5.2 设计访问学生信息窗口1. 设计输入窗口创建窗口对象w_shuru,放置一个数据窗口控件,八个命令按钮,如下图1.9所示。图1.9 输入窗口(1)【按钮的clicked事件脚本:dw_1.scrolltorow(1)(2)【】按钮的clicked事件脚本:dw_1.scrollnextrow()(4)【】按钮的clicked事件脚本:dw_1.scrolltotrow(dw_1.rowcount()2. 设计修改窗口创建窗口对象w_xiugai,放置一个数据窗口控件,四个命令按钮:窗口布局如下图1.10所示。图1.10修改窗口窗口和控件的事件脚本与以上输入窗口的对应相同3. 设计输入班级信息窗口通过继承输入窗口w_shuru生成输入班级信息窗口w_banji_shuru,将数据控件dw_1的DataObject属性设置为d_banji_shuru,将窗口的Title属性改为“录入班级信息”,此窗口完成了。4. 设计修改班级信息窗口通过继承输入窗口w_xiugai生成输入班级信息窗口w_banji_xiugai,将数据控件dw_1的DataObject属性设置为d_banji_xiugai,将窗口的Title属性改为“修改班级信息”,此窗口完成了。5. 设计浏览班级窗口创建窗口对象w_banji_liulan,放置一个数据窗口控件,如下图1.11所示。图1.11 班级信息浏览窗口窗口的open事件脚本如下:dw_1.settransobject(sqlca)dw_1.retrieve()1.6 设计学生基本信息 本模块实现学生基本信息的输入、修改和查询。1.6.1设计访问学生的基本信息的数据窗口1.设计输入学生基本信息的数据窗口创建数据窗口d_jiben_shuru,显示风格为“”,数据源类型为“”其布局如图略其中,列控件“xb”的编辑风格改为“RadloButtons”,列控件“bjbh”的编辑风格为“DropDownw”,其(DataWindow)属性设置为“d_banji_xiugai”,(DispiayColumn)和(DataColumn)属性都设置为“300”,(Lies in DropDown)属性设置为“6”。(VScrollbar)属性设置为“True”. 数据窗口生成的SQLselect语句为SELECT”jiben”.”xh”,”jiben”.”xm”,”jiben”.”xb”,”jiben”.”csrq”,”jiben”.”jizz”,”jiben”.”bjbh”FROM “jiben”2.设计修改学生基本信息的数据窗口创建数据窗口d_jiben_xiugai,显示风格为“”,数据源类型为“”,数据窗口生成的SQLselect语句为:SELECT “jiben”.”xh”,”jiben”.”xm”,”jiben”.”xb”,“jiben”.”csrq”,”jiben”.”jizz”,”jiben”.”bjbh”FROM “jiben”ORDER BY |“jiben”.”xh” ASC3.设计查询学生基本信息窗口 创建数据窗口为d_jiben_chaxun,显示风格为“Grid”,数据源类型为“SQLselect”,其中定义3个string型检索参数变量mxh、mxm、mbj,数据窗口 生成的SQLelect语句为:SELECT “banji”.”bjmc”,”jiben”.”xh”,”jiben”.“xm”,”jiben”.”xb”,”jiben”.”csrq”,”jiben”.”jtzz”,”banji”.”bjbh”FROM “jiben”,”banji”WHERE (“banji”.”bjbh”=”jiben”.”bjbh”)AND(“jiben”.”xh”like :mxh)AND(“jiben”.”xm”like :mxm)AND(“jiben”.”xh”like :mbj)ORDER BY “jiben”.”xh” ASC1.6.2 设计访问学生基本信息的窗口1.设计输入学生基本信息窗口通过继承输入窗口w_shuru生成输入班级信息窗口w_jiben_shuru,将数据控件dw_1的DataObject属性设置为d_jiben_shuru,将窗口的Title属性改为“录入学生基本信息”,此窗口完成了。2.设计修改学生基本信息窗口通过继承输入窗口w_xiugai生成输入班级信息窗口w_jiben_xiugai,将数据控件dw_1的DataObject属性设置为d_jiben_xiugai,将窗口的Title属性改为“修改学生基本信息”,此窗口完成了。如图1.12所示。图1.12数据窗口d_jiben_xiugai3.设计查询学生基本信息窗口查询学生基本信息窗口如下图1.13所示。图1.13查询学生基本信息窗口首先创建窗口对象,在窗口中放置2个静态文本控件,1 个下拉表控件,1 个单行编辑器控件,1个命令按钮1个数据窗口控件和一个线形控件,以及有对查询按钮的open事件脚本.1.7设计课程管理模块1.7.1设计访问课程信息的数据窗口1.设计输入班级课程信息的数据窗口创建数据窗口d_xscj_shuru,显示风格为Grid,数据源类型为“SQL Select”,其布局如图1.14所示。图1.14数据窗口d_bjkc_shuru其中,列控件 “bjbh”的编辑风格改为“DropDownDW”,其 属性设置为“D_banji_xiugai”,Dispiay Column 属性和 Data Window 属性都设置为“bjbh”,Lines in DropDOWN 属性设置为“300”,VScrollBar属性设置为“True”数据窗口d_bjkc_shuru生成的语句为SQLselect语句为:SELECT “bjkc”.”bjbh”,”bjkc”.”xq”,”bjkc”.”kcmc”,”bjkc”.”xs”,”bjkc”.”jsxm”FROM “bjkc”2.设计查询班级课程信息的数据窗口创建数据窗d_bjkc_chaxun,显示风格为“Grid”,数据源类型为“SQL Select”,其中,定义两个 string 型检索参数变量mxq,mbjmc,分别表示学期,班级,形成带检索参数的的数据窗口。数据窗口生成SQLselect语句为:SELECT “bjkc”.”kcmc”,”bjkc”.”xs”,”bjkc”.”jsxm”,FROM ”bjkc”,”banji”WHERE(“banji”.”bjbh”=”bjkc”.”bjbh”)AND(“bjkc”.”xq”=:mxq)AND(“banji”.”bjmc”=:mbjmc)1.7.2设计访问课程信息的窗口1.设计输入修改班级课程信息的窗口 输入修改班级信息的窗口的窗口的布局如下图1.15所示:图1.15输入修改班级课程信息的窗口首先,从祖先窗口w_xiugai继承生成窗口对象w_bjkc_shuruxiugai ,调整其大小,然后将数据窗口控件dw_1的DataObject属性设置为d_bjkc_shuru,2.设计查询班级开设课程的窗口首先创建一个窗口对象w_bjkc_chaxun,在窗口中放置2个静态文本控件,2个下拉列表控件,1个命令按钮、,1 个数据窗口控件 编写脚本(1)编写窗口w_bjkc_chaxun的open事件脚本。(略)(2)【查询】按钮的事件脚本。(略)1.8设计成绩管理模块1.8.1设计访问成绩信息的数据窗口1.设计输入成绩的数据窗口创建数据窗口d_xscj_shuru,显示风格为”Grid,数据源类型为”SQLselect”,数据来源与xscj成绩表 和视图xsbj,其中,学号,学期,课程,课程名称和成绩为xscj的列,姓名是的xsbj列。2.设计查询学生个人某学期各课成绩的数据窗口创建数据窗口d_xscj_grcx,显示风格为Grid,数据源类型为”QuickSelect”,在【Summary】条中添加一个计算域控件,计算数据窗口中成绩总和数据窗口的检索参数为mxh.mxq,分别对应与学号和学期。数据窗口生成的SQLselect语句为:SELECT “xscj”.”kcmc”,”xscj”.”cj”FROM “xscj”,”xsbj”WHERE (“xscj”.”xh”=:mxh) AND(“xscj”.”xq”=:mxq) 效果图如下:3.设计要查询某班级某学期全体学生各课成绩的数据窗口创建数据窗口d_xscj_bjcx,显示风格为”CrossTab”,数据源类型为”SQLselect”,数据来源于xscj和视图xsbj在【Header1】条中添加两个计算域控件,对应的表达试分别为mbjmc和mxq,3个文本控件,其文本分别为“成绩单”,“班级:”和“学期:”。数据窗口检索参数为mxq和mbjmc,分别对应学期和班级名称数据窗口 生成的SQL select语句为:SELECT “xscj”.”xh”,”xscj”.”xm”,”xscj”.”kcmc,”xscj”.”cj”,”xscj”.”xq”,”xsbj”.”bjmc”FROM “xscj”,”xsbj”WHERE(“xscj”.”xh”=”xsbj”.”xh”)AND(“xscj”.”xq”=:mxq) AND(“xscj”.”bjmc”=:mbjmc)ORDER BY “xscj”.”xh” ASC4.设计查询某班级某学期,全体学生某课成绩的数据窗口创建数据窗口d_xscj_kccx,显示风格为”N_UP”,数据源类型为”SQLselect”,数据来源于xscj和视图xsbj在【Header】条中添加两个计算域控件,对应的表达试分别为mbjmc和mkcmc,3个文本控件,其文本分别为“成绩单”,“班级:”和“课程:”。数据窗口检索参数为mxq和mbjmc,mkcmc分别对应学期和班级名称和课程名称数据窗口 生成的SQL select语句为:SELECT “xscj”.”xh”,”xscj”.”xm”,”xscj”.”kcmc,”xscj”.”cj”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高考地理试题分类汇编:人口解析版
- 2025年调酒师岗位职业技能资格知识考试题与答案
- 基于无人机三维激光扫描的输电精益化管理
- 2025关于住宅房屋租赁合同范本
- 2025合同丧失声明样本
- 2025四川兼职劳动合同
- 2025租房合同范本标准版
- 2025年动画制作员劳动合同2篇
- 皮革冲孔机安装合同6篇
- “破解七陷阱”突破NA-高考化学考点复习(解析版)
- 阿尔茨海默症的护理
- (2025)公共基础知识考试试题附及答案
- 中国五矿笔试题库及答案
- 2025年茶叶加工工职业技能竞赛参考试题库500题(含答案)
- 加强未成年思想道德教育
- 马克思主义与社会科学方法论课后思考题答案
- 内蒙古交通集团招聘储备人员真题2024
- 医疗器械网络销售质量管理规范宣贯培训课件2025年
- DB33∕T 1152-2018 建筑工程建筑面积计算和竣工综合测量技术规程
- 2025年税务师考试个人所得税试题及答案
- 青少年学生法制教育班会课省公开课一等奖全国示范课微课金奖课件
评论
0/150
提交评论