




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档1引言1.2系统技术及运行环境 1.2.1 Visual Foxpro 6.0 简介1.2.2 系统开发及运行环境1.3系统分析2.3.1 需求分析 2.3.2 可行性分析2.4总体设计2.4.1 设计目标2.4.2 项目规划3.4.3 系统功能图4.5系统详细设计5.5.1 数据库设计 5.5.2 登陆界面设计6.5.3 学生信息录入8.5.4 学生信息修改 9.5.5 学生信息查询 .1.15.6 系管理表单设计125.7 班级管理1.55.8 学生成绩录入175.9 修改学生成绩 .195.10 学生成绩查询 215.11 用户管理225.12 修改用户密码255.13 关于系统
2、266结论27.致凝128.参考文献29.1 引言学生信息管理系统(Student Information Management System ),以下简称SIM§是针对学校人事处的大量业务处理工作而开发的管理软件,是典型的管理信息系统( ManagementInformation System ) 。它是一个教育单位不可缺少的部分, 它的内容对于学校的决策者和管理者来说都至关重要, 它能够为用户提供充足的信息和快捷的查询手段。 能有效的帮助学校和老师掌握学生的情况,为学生提供成绩跟课程方面的查询。在传统模式下利用人工进行学生信息管理,存在着较多的缺点,如:效率底,保密性差,时间一长
3、将产生大量的文件和数据,更不便于查找,更新,维护等。诸如这些情况,令学校管理者对学生的信息管理带来了很大困难,严重影响了教育工作者的工作效率。随着科学技术的不断提高 , 计算机科学日渐成熟,使用日趋成熟的计算机技术来代替传统的人工模式,来实现学生信息的现代化管理,其强大的功能已为人们深刻认识 , 它已进入人类社会的各个领域并发挥着越来越重要的作用。 作为计算机应用的一部分, 使用计算机对学生信息进行管理, 具有着手工管理所无法比拟的优点 . 例如 : 检索迅速、 查找方便、 易修改、 可靠性高、存储量大、数据处理快捷、保密性好、 寿命长、成本低、便于打印等。 这些优点能够极大地提高学生信息管理
4、的效率, 也是学校的科学化、正规化管理 , 与世界接轨的重要条件。 用计算机制作的学生信息管理系统还可以通过功能强大的Internet 网及时的向学生的家长传递该生在校的最新成绩,有助于学校与家长的信息互动,为更好地把握学校的教育方针一定的促进作用!因此,开发这样一套管理软件成为很有必要的事情。2 系统技术及运行环境2.1 Visual Foxpro 6.0简介Visual Foxpro 6.0是计算机优秀的数据管理系统软件之一,正如其名称中的“Visual一样,它采用了可视化的、面向对象的程序设计方法,大大简化了应用系统的开发过程,并提高了应用系统的开发过程,并提高了系统的模块性和紧凑型。是
5、新一代的小型数据库管理系统的杰出代表,它以其强大的性能、完整而又丰富的工具、较高的处理速度、友好的界面以及较完备的兼容性,备受广大用户的欢迎。面前, Visual Foxpro 6.0 是用户收集信息、查询数据、创建集成数据库系统、进行应用系统开发较为理想的微机数据库管理系统。2.2 系统开发及运行环境该运行环境的规定是保证本需求说明的功能得到实际真正体现的基础。(1)运行环境Windows98或更高版本的操作系统数据库系统: Microsoft Visual Foxpro 6.0( 2)开发环境:开发工具: Microsoft Visual Foxpro 6.0数据库系统: Microsof
6、t Visual Foxpro 6.023 系统分析3.1 需求分析21 世纪以来,人类经济高速发展,人们发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。使原本的旧的管理方法越来越不适应现在社会的发展。许多人还停留在以前的手工操作。这大大地阻碍了人类经济的发展。为了适应现代社会人们高度强烈的时间观念,学校信息管理系统软件为学校办公室带来了极大的方便。(一)教育系统学生管理现状分析学校工作流程分析学校工作总体规划由教务人员在学生信息管理系统中完成对运行教务处所需的基本数据的维护,包括这些信息的增加、修改及对各项信息的变动都将在这进行操作。新的学年,教务人员首先加入年级信
7、息,然后编排班级,再对来校学生进行基本的信息录入,新生入学后由教务人员在学籍系统中完成新学生信息的维护。(二)学校具体需求分析学生:对各科成绩的查询任课老师:输入并维护所教科目的学生成绩教务处: 学校全体成员的信息管理,并对任课老师,班主任等输入的信息进行存库,对学生的信息进行必要的维护。通过研究调查,本系统需以下功能:综合学生信息、学生成绩以及信息查询等信息。方便用户了解和管理学生的全面动态信息。良好的界面设计,更人性化的设计理念,使用户拥有更轻松的使用心情。3.2 可行性分析目的:可行性研究的目的是用最小的代价在尽可能的时间内确定问题是否能解决。经济性:由于学校等中小型管理系统并不复杂,且
8、Visual Foxpro 6.0 本身要求的运行环境不高,所以一般 Windows 2000 以上的系统环境都可以使用。实用性:本学生信息管理系统管理系统无太多复杂的操作要求,也没有过分花哨的装饰品,人性化的设计界面可以使操作者轻易运用自如4 总体设计4.1 设计目标本系统可以能减少很多不必要的资源,不用象以前那样用冗余的纸张式的管理。大节省了学校能源。并且计算机的存储与快速查询功能大大提高了学籍管理的效率,并且还提高了学籍信息管理的精确度。方便快速的操作,可减少学籍信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都
9、为学校节约了开支。为学校增加了财富。数据库分析用户需求具体有学籍管理系统提供保存、更新、查询、维护,这就需求数据库结构能充分满足各种信息的输入与输出,实现有组织地、动态地存储大量关联数据,方便用户访问系统中的数据,它与文件系统的重要区别是数据的充分共享,交叉访问,与应用程序的高度独立性。4.2 项目规划学生管理系统是各大中专院校不可缺少的一部分,是一个VF 数据库开发应用程序,它主要包括用户登录、学生信息输入修改、学生信息查询以及学生成绩输入、学生成绩查询、系统用户管理等几个页面,因而该系统具有较强的实用性。204.3系统功能图5系统详细设计5.1 数据库设计(1) deandma.dbf,见
10、表 1表1字段名数据类型备注班级Char (8)主键 Not null系Char (10)Not null专业Char (14)Not null(2) grade.dbf ,见表 2表2字段名数据类型备注学号Char (8)主键 Not null班级Char (10)Not null课程Char (18)Not null成绩Int (5)Not null学期Char (2)Not null备注MemoNull(3) stduents.dbf ,见表 3表3字段名数据类型备注班级Char (8)主键 Not null学号Char (8)Not null姓名Char (8)Not null性别Ch
11、ar (6)Not Null出生日期DatetimeNull政治面貌Char (8)Null身份证号码Char (16)Null入学时间DatetimeNull籍贯Char (16)Null家庭住址Char (28)Null邮政编码Char (6)Null照片GeneralNull备注MemoNull.dbf ,见表4表4用户信息表字段名数据类型备注姓名Char (8)主键 Not null密码Char (6)Not null标识LogicalNot null5.2 登陆界面设计取消为空,请输入!进入“进入”按钮的click事件添加如下的代码:sele yonghuif allt(thisfo
12、rm.text1.value尸二”"messagebox(left(allt(thisform.label1.caption),6)+",64,"提示")thisform.text1.setfocus elseif allt(thisform.text2.value)=""messagebox("密码为空,请输入!”,64,"提示")thisform.text2.setfocus elsen=n+1locate for allt(姓名尸allt(thisform.text1.value);.and. al
13、lt( 密码 )=allt(thisform.text2.value)if found()if thisform.check1.value=1 .and. 标识checked=1thisform.releasedo menu.mprelseif thisform.check1.value=1.and.! 标识messagebox("你不是管理员! ",48,"警告")thisform.check1.value=0elsechecked=0cyonghu=allt( 姓名 )cmima=allt( 密码 )thisform.releasedo menu.m
14、prendifendifelseif n>=3messagebox("你不是合法用户,请与管理员联系!”,48,"警告”)thisform.releaseclear eventquitelsemessagebox(left(allt(thisform.label1.caption),6)+"或密码错误, 请重新输入! ",64," 提示 ") thisform.text1.value=""thisform.text1.setfocusthisform.text2.value=""endif
15、endifendifendif“取消”按钮的 click 事件添加如下的代码nr=messagebox(" 你选择了退出登录,是否退出? ",68," 用户登录 ") if nr=6thisform.releasequit endif5.3 学生信息录入“增加”按钮的click事件添加如下的代码:if this.caption=" 增加"if(bo3.displayvalue="(选 择)").or.(alltrim(thisform.text1.value)=""); .or.(alltrim
16、(thisform.text2.value)="") messagebox("班级、学号和姓名必须填充! !",64,"提示")else locate for alltrim(thisform.text1.value)=alltrim(students.学号)if !eof() =messagebox("此学号已经存在,请重新输入!",64,"提示")thisform.text1.value="" thisform.text1.setfocus else sele stude
17、nts append blank replace 班 级 with alltrim(bo3.value), 学 号 with alltrim(thisform.text1.value);姓名 with alltrim(thisform.text2.value),出生日期 withctod(alltrim(thisform.text4.value); 入学时间 with ctod(alltrim(thisform.text6.value),籍贯 withalltrim(thisform.text7.value);家 庭 住 址 with alltrim(thisform.text8.value)
18、,身 份 证 号 码 withalltrim(thisform.text8.value);备 注 with alltrim(thisform.edit1.value),邮 政 编 码 withalltrim(thisform.text3.value)if alltrim(bo4.value)=""replace 性别with alltrim(bo4.displayvalue)elsereplace 性别with alltrim(bo4.value)endifif alltrim(bo5.value)=""replace 政治面貌with alltrim(
19、bo5.displayvalue)elsereplace 政治面貌with alltrim(bo5.value)endif&& if .not.alltrim(thisform.label17.caption)=""if !pictemp=""wait windows " 正在导入相片,请等待! "at 100,40 timeout 2 nowait&& pictemp=thisform.label17.captionappend general students. 照片 from "&
20、;pictemp"endifpictemp=""this.caption=" 继续 "endifendifelsemand2.clickthis.caption=" 增加 "endif5.4 学生信息修改“修改”按钮的click事件添加如下的代码ith thisformsele studentslocate for allt(学号尸allt(.textl.value)if allt( 学号)=allt(.text1.value)replace 学号 with allt(.textl.value), 姓名 with allt(
21、.text2.value),邮政编码 with allt(.text3.value),;出生日期 with .text4.value, 入学时间 with .text6.value, 籍贯 with allt(.text7.value),;家庭住址 with allt(.text8.value),身份证号码 with allt(.text9.value),性别 with allt(.combo4.value),;政治面貌 with allt(.combo5.value), 备注 with allt(.edit1.value)if !pictemp=""wait window
22、s ”正在导入相片,请等待! "at 100,40 timeout 2 nowaitappend general 照片 from "&pictemp” endifendifsele lslocate for allt( 学号尸allt(.text1.value)if allt( 学号)=allt(students. 学号)replace 学号 with students. 学号,姓名 with students. 姓名,邮政编码 with students.邮政编码,;出生日期with students.出生日期,入学时间with students.入学时间,籍贯
23、with students. 籍贯,;家庭住址with students.家庭住址,身份证号码with students.身份证号码,性别 with students.性别,;政治面貌 with students.政治面貌,备注 with students. 备注,照片 withstudents.照片endifpictemp=""this.enabled=.f.endwith5.5学生信息查询“定位查询”按钮的click事件添加如下的代码if allt(thisform.text1.value)=""messagebox("请输入学号或姓名!&
24、quot;,64,"提示")thisform.textl.setfocuselsesele stulslocate for allt(学号尸allt(thisform.text1.value);.or.allt( 姓名尸allt(thisform.text1.value)if found()go recn()elsewait window at 18,38 nowait ' 没有找到你要查询的信息! endifendifthisform.gridl.refreshthisform.refresh“第一个"按钮的click事件添加如下的代码 sele stu
25、lsskip -1 if bof() this.enabled=.f.mand3.enabled=.f. messagebox("已经到第一条记录了!",64,"提示")go top elsego recn()endifmand2.enabled=.t. mand4.enabled=.t.“单个查询”按钮的click事件添加如下的代码 nxx=1do form xxxg5.6系管理表单设计“增加”按钮的click事件添加如下的代码set order to tagset safety offif alltrim(thisform.text1.value)=
26、""messagebox(" 系名为空,请输入! ",64," 提示 ")thisform.text1.setfocus elselocate for deandma. 系=alltrim(thisform.text1.value) if .not.eof() messagebox(" 系名已经存在,请重新输入! ",48," 提示 ") thisform.text1.value="" thisform.text1.setfocus else append blankrepl
27、ace deandma. 系 with alltrim(thisform.text1.value)thisform.text1.value=""thisform.text1.setfocus endif thisform.list1.clearthisform.list1.init && 重新显示 list 列表thisform.list1.value="" endif“删除”按钮的 click 事件添加如下的代码Set safety offif this.caption=" 取消 "thisform.text2.va
28、lue=""thisform.text2.enabled=.f.thisform.label3.enabled=.f.this.caption=" 删除 "mand1.enabled=.t.mand2.caption=" 修改 " elseif alltrim(thisform.text1.value)=""messagebox("缺少完整信息,无法删除! ",0+48,"警告")thisform.text1.setfocus elsethisform.list1.value
29、=alltrim(thisform.text1.value)nn=messagebox("是否确定删除此系单位,其所属的专业班级的数据库都将删 除! ",1+48," 警告 ")if nn=1t=0use datadeandmago topdo while .not.eof()if alltrim( 系)=alltrim(thisform.text1.value)deletepackt=1endifskipenddoif t=0messagebox("将删除的内容不存在,请重新输入。”,60,"提示”)thisform.text1.s
30、etfocusendifendifthisform.text1.value=""thisform.list1.requerythisform.list1.clearthisform.list1.init && 重新显示 List 列表thisform.text1.value=alltrim(thisform.list1.value)endifendifthisform.refresh5.7班级管理“增加”按钮的click事件添加如下的代码set order to tagset safety offif alltrim(thisform.text1.value
31、尸=”"messagebox("班级名为空,请输入!”,64,"提示")thisform.textl.setfocuselselocate for deandma.班级=alltrim(thisform.text1.value)if .not.eof()messagebox("班级名已经存在,请重新输入! ”,48,"提示")thisform.text1.value=""thisform.text1.setfocuselselocate for deandma. 专业=alltrim(bo2.value)
32、if alltrim(deandma.班级)=""replace deandma. 班级 with alltrim(thisform.text1.value)elseappend blankreplace deandma. 系 with alltrim(bo1.value)replace deandma. 专业 with alltrim(bo2.value)replace deandma. 班级 with alltrim(thisform.text1.value) endifthisform.text1.value=""thisform.text1.se
33、tfocusendifbo2.click && 重新显示 list 列表thisform.list1.value="" endif“删除”按钮的 click 事件添加如下的代码Set safety offif this.caption=" 取消 "thisform.text2.value=""thisform.text2.enabled=.f.thisform.label5.enabled=.f.this.caption=" 删除 "mand1.enabled=.t.mand2.caption=&q
34、uot; 修改 " elseif alltrim(thisform.text1.value)=""=messagebox("缺少完整信息,无法删除!",0+48,"警告")thisform.text1.setfocuselseuse deandma exclusivethisform.list1.value=alltrim(thisform.text1.value)",1+48,"nn=messagebox("是否确定删除此班级,与其相关的数据都将删除!警告 ) if nn=1t=0locate
35、 for alltrim(deandma. 班级 )=alltrim(thisform.text1.value) deletepackt=1if t=0messagebox("将删除的内容不存在,请重新输入。”,64,"提示”)thisform.text1.setfocusendifendifthisform.text1.value=""thisform.list1.requerybo2.click && 重新显示 List 列表thisform.text1.value=alltrim(thisform.list1.value)endif
36、 endif thisform.refresh5.8学生成绩录入“确定”按钮的click事件添加如下的代码xuehao=allt(thisform.text1.value) banji=allt(bo3.value) kecheng=allt(bo4.value) xueqi=allt(bo5.value) chengji=allt(thisform.text2.value) sele grade if chengji=""tt=messagebox("想输入单科成绩吗? ",4+32,"提示") if tt=6thisform.te
37、xt2.setfocuselse endif else*locate for allt( 学号尸xuehao*if eof()locate for allt(课程)=kechengif allt( 学号)="".and.allt(班级)=banjirepl 学号 with xuehao repl 成绩 with val(chengji) repl 学期 with xueqielse* append blank* repl学号withxuehao* repl班级withbanji* repl课程withkecheng* repl成绩withval(chengji)* repl
38、学期withxueqi*endif*elselocate for allt( 学号 )=xuehao .and. allt( 课程 )=kecheng .and. allt( 学 期 )=xueqiif eof()append blankrepl学号with xuehaorepl班级with banjirepl课程with kechengrepl成绩with val(chengji)repl学期with xueqielsett=messagebox(" 该科的成绩已存在,是否覆盖? ",4+32+256," 提示 ")if tt=6repl 成绩 wit
39、h val(chengji)endifendifendifthisform.Command2.clickmand3.enabled=.f.endif“查询”按钮的 click 事件添加如下的代码 sele lsif allt(thisform.text3.value)=""messagebox("请输入学号或姓名!",64,"提示")elselocate for 学 号 =allt(thisform.text3.value).or.姓 名=allt(thisform.text3.value)if eof()messagebox(&qu
40、ot;该班级没有此人! ! ",64,"提示")thisform.text3.value=""thisform.text3.setfocusgo nhereelsethisform.text1.value= 学号endifendif5.9修改学生成绩第年期上一位下一位第一位最后一位姓名二小红 学号,07040401全部课程倨改返回选择系、专业、班级而I彳算机系 3 专业:W丽露访日 眄|口711网络 3 学期:m输入学号或姓名:(07040401 - 1快速查询:“快速查询”按钮的click事件添加如下的代码sele lsbjif allt(t
41、hisform.text1.value尸二”"messagebox("请输入学号或姓名!",16,"提示")thisform.textl.setfocus elselocate for 学 号 =allt(thisform.text1.value).or.姓 名=allt(thisform.text1.value)if eof()messagebox("本班级没有此人,请重新输入!”,64,"提示")thisform.text1.value=""thisform.text1.setfocusel
42、sexuehao=allt(学号)thisform.label8.caption=姓名thisform.label9.caption=学号bo4.clickendifendif“下一位”按钮的 click 事件添加如下的代码mand2.enabled=.t.mand4.enabled=.t.if !allt(bo3.value)=""sele lsbjskip 1if eof()this.enabled=.f.mand5.enabled=.f.messagebox(" 已经到最后一条记录了!",48," 提示 ")go bottome
43、ndifxuehao=allt( 学号 )thisform.label8.caption=allt(姓名)thisform.label9.caption=allt(学号 )“补考统计”按钮的click事件添加如下的代码if allt(bo3.value尸=”"messagebox("请选择班级!",64,"提示")elsebkbj=bo3.valuebkxq=bo4.valuedo form bukaoendif“定位查询”按钮的click事件添加如下的代码if allt(thisform.text1.value尸二”"message
44、box("请输入学号或姓名! ",64,"提示")thisform.text1.setfocuselselocate for allt(students. 学号)=allt(thisform.text1.value).or.;allt(students.姓名尸allt(thisform.text1.value)if found()lsxh=allt(students.学号)lsxm=allt(students.姓名)buxq=allt(bo4.value)do form dgcjelsemessagebox("没有此人,请重新输入",
45、64,"提示")endifendif5.11用户管理Listl的init事件中添加的代码如下sele yonghuthis.additem("管理员") locate for标识二.T.do while found()this.additem("-"+ 姓名)continueenddogo toplocate for标识二.F.this.additem("普通用户")do while found() this.additem("-"+ 姓名) continueenddo“注册”按钮的click事
46、件添加如下的代码24Set safety offsele yonghuif alltrim(thisform.text1.value)=""messagebox("用户名不能为空!",0+48,"警告")thisform.text1.setfocuselselocate for 姓名 =alltrim(thisform.text1.value)if(.not. eof()messagebox("此用户已存在,请重新输入!",64,"警告")thisform.text1.value="&
47、quot;thisform.text1.setfocuselseif alltrim(thisform.text2.value)=""messagebox("密码不能为空!",0+48," 警告")thisform.text2.setfocuselseif (thisform.text2.value)=(thisform.text3.value)append blankrepl 姓名 with alltrim(thisform.text1.value),;密码 with alltrim(thisform.text2.value)if
48、thisform.check1.value=1repl 标识with .T.elserepl 标识with .F.endifthisform.text1.value=""thisform.text2.value=""thisform.text3.value=""thisform.text1.setfocusthisform.text3.enabled=.f.thisform.label4.enabled=.f.thisform.list1.clearthisform.list1.initelsett=messagebox("
49、 确认密码错误,请重新输入! ",0+48," 警告 ")if tt=1thisform.text3.enabled=.t.thisform.label4.enabled=.t.thisform.text3.value=""thisform.text3.setfocusendifendifendifendifendif“删除”按钮的 click 事件添加如下的代码if allt(thisform.text1.value)=""messagebox("请选择或输入用户名",64,"提示"
50、)thisform.text1.setfocuselseuse yonghulocate for 姓名 =allt(thisform.text1.value);.and. 密码 =allt(thisform.text2.value)if eof()messagebox("请选择或输入正确的用户名",64,"提示")thisform.text1.value=""thisform.text2.value=""thisform.text1.setfocuselsett=messagebox(" 一定要删除吗?
51、",4+48," 删除确认 ")if tt=6deletepackendifthisform.list1.clearthisform.list1.initthisform.list1.clickendifendif5.12修改用户密码“修改”按钮的click事件添加如下的代码sele yonghuif allt(thisform.text1.value尸二”"thisform.textl.setfocuselselocate for allt(姓名尸allt(thisform.textl.value)if eof()messagebox("此用户不存在,请重新输入!",64,"提示")thisform.text1.value=""thisform.text1.setfocus()elseif !allt(密码)=allt(thisform.text2.value)messagebox("密码错误,请重新输入!”,64,"提示")thisform.text2.value=""thisform.text2.setfocus()elseif allt(thisform.text3.value尸二”&q
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常识更新:信息化物流师试题及答案
- CPSM考试的疑难解析试题及答案
- CPSM考试战略规划的必要性试题及答案
- 赢在养老:理性投资-商业养老金投资策略之道
- 目前最热CPMM试题及答案
- 媒体传媒公司的广告策略-市场部经理
- 智慧教育:探索未来-跨学科多媒体教学实践
- 物种的形成与演化试题及答案
- CSPM考试辅助材料与试题及答案
- 2025年中国凸版(胶版)彩色印刷机数据监测报告
- 2025年辽阳职业技术学院单招职业技能测试题库必考题
- 2025年广东省佛山市南海区中考一模英语试题(原卷版+解析版)
- 防治传染病知识培训课件
- 2025年高考英语二轮备考策略讲座
- 2025江苏中烟工业招聘128人高频重点模拟试卷提升(共500题附带答案详解)
- 牡丹江锅炉耐火砖施工方案
- 危险化学品目录(2024版)
- GB/T 31586.2-2015防护涂料体系对钢结构的防腐蚀保护涂层附着力/内聚力(破坏强度)的评定和验收准则第2部分:划格试验和划叉试验
- 建筑注浆加固法规范
- 资金管理数学MathematicsofmoneymanagementVinceRalph
- WiFI6技术ppt课件
评论
0/150
提交评论