免费预览已结束,剩余27页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学课程设计专用纸 No31目 录第1章 系统功能概述11.1 11.2 1第2章 数据库设计12.1 需求分析12.2 E-R模型12.3 关系模型12.4 表结构设计1第3章 系统各功能模块的详细设计23.1 23.2 2参考文献2沈阳理工大学第1章 系统功能概述1.1 学生基本信息管理系统分析学生基本信息管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生基本信息管理系统的任务就显得尤为重要.本系统是参照我们学校的实际情况而设计的一套针对性和功能都比较强的学生基本信息管理系统.本学生基本信息管理系统可实现学生基本信息、学院信息、班级信息等的录入、修改、查询、更新和删除。1.2 系统目标和建设原则1.2.1、系统设计目标本学生管理系统的设计应该尽量达到以下目标(1)保证各方信息交互的畅通和正确;(2)保证软件的安全、可靠、简便性;(3)保证软件的相对实用性;(4)利用信息数据的管理,提高工作效率及质量,提高组织、服务的管理水平;(5)为实现信息化的学生管理提供经验。1.2.2、系统设计原则本学生管理系统应该尽量遵循以下设计原则:(1)简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个学生管理系统来说是非常重要的。(2)实用性:程序应可以满足所有用户的基本需求,具有良好的实用性。(3)针对性:该系统平台针对某一个学校建立一个数据库来管理学生信息,所以具有专业突出和很强的针对性。第2章 数据库设计2.1 需求分析2.1.1需求详述(1)新的一个学期开始之后,学校教工人员可以添加新的班级信息,比如班号、人数等;如果中途有新转来或转走或退学的学生,也可以修改班级信息;学生毕业之后,学校教工人员可以删除该班的所有信息。另外该系统应该提供一个方便的查询班级信息的接口。(2)新的一个学年开始之后,学校教工人员可以添加新的学生学籍信息,比如学号、姓名、性别等;如果学生的基本信息有变化,可以修改学籍的基本信息;如果学生毕业离开了学校,可以删除该生的学籍信息;如果需要查找某个学生的学籍信息,系统应该提供一个方便的查询学籍信息的接口。另外系统需要提供学籍报表的功能。(3)学校教工人员可以管理学院信息,比如某个学院更名了,应该可以更新学员信息;或者某个学院不存在了,应该可以删除该学院的相关信息;如需要查找某个学院的信息,系统应该提供一个方便的查询学院信息的接口。(4)系统运行在Windows平台上,要求有一个较好的图形用户界面,操作要求简单。(5)系统应该有很好的可扩展性,以便学校根据实际情况添加新的功能。2.1.2功能需求本学生管理系统需要完成的功能:(1)班级管理 添加、修改、删除和查询班级信息。(2)学院管理 添加、修改、删除和查询学院信息。(3)学生基本信息管理 添加、修改、删除和查询学生基本信息。2.1.3数据需求 通过分析,总结出本系统对数据的需求如下:(1)院系信息包括:院系编号、院系名称、院长姓名(2)班级信息包括:班级编号、专业名称、班长姓名、人数(3)学生基本信息包括:学号、姓名、性别、民族、出生日期、身份证号、家庭住址、邮编(4)系统信息包括:用户名、密码2.2 E-R模型经过上面的分析,能够提取以下几个实体:学生、班级、院系 、系统等。它们的实体图分别如图1-1、图1-2、图1-3、图1-4所示。学 生学号姓名性别民族出生日期身份证号家庭住址邮编 图1-1班 级班级编号专业名称班长姓名人数图1-2院 系院系编号院系名称院长姓名图1-3系 统用户名密码图1-4在找到所有实体的基础上,需要进一步分析各实体之间的联系。经过分析两两实体之间的联系,然后进行合并,给出所有实体的联系图即E-R图,如图1-5所示。学 生班 级院 系属于属于图1-52.3 关系模型学生基本信息管理系统包含以下实体及其属性:(1)院系信息(院系编号、院系名称、院系职能描述)(2)班级信息(班级编号、专业名称、人数)(3)学生基本信息(学号、姓名、性别、民族、出生日期、身份证号、家庭住址、邮编)(4)系统信息(用户名、密码)2.4 表结构设计院系信息:基本数据如下:班级信息:基本数据如下:学生基本信息:基本数据如下:系统信息:基本数据如下:第3章 系统各功能模块的详细设计3.1 查询模块的详细设计查询板块主要是利用VB工程实现学生基本信息,班级信息,院系信息的查询,页面的设计如下图:3.1.1查询学生基本信息学生基本信息查询窗体:其中combo1主要是实现查询条件的多样化,即可以实现利用不同的条件进行查询,combol的初始选项为“学号”项。text1则主要是接收查询信息,用来匹对相关信息,如果相符则输出相符的元组。输出框下面的主要是与数据源相连,以实现对数据源中的数据进行查询,查询窗口主要实现查询功能,输出框与相连之后可以实现对查询结果的输出。DataGride的数据源与Adodc1相连,以实现查询结果的显示功能。学生基本信息查询是以模糊查询的方式完成的,如下窗体,是按姓氏模糊查询的结果:是按姓别模糊查询的结果:实现代码如下:Private Sub Command1_Click()Dim str As String If Combo1.List(0) = Combo1.Text Then str = select * from 学生基本信息 where 学号 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(1) = Combo1.Text Then str = select * from 学生基本信息 str = str & Where 学生基本信息.姓名 Like & Trim(Text1.Text) & % Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(2) = Combo1.Text Then str = select * from 学生基本信息 where 性别= & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(3) = Combo1.Text Then str = select * from 学生基本信息 where 民族 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(4) = Combo1.Text Then str = select * from 学生基本信息 where 出生日期 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(5) = Combo1.Text Then str = select * from 学生基本信息 where 身份证号 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(6) = Combo1.Text Then str = select * from 学生基本信息 where 家庭住址 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(7) = Combo1.Text Then str = select * from 学生基本信息 where 邮编 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh End IfEnd SubPrivate Sub Command2_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem 学号 为组合列表框添加各选项Combo1.AddItem 姓名Combo1.AddItem 性别Combo1.AddItem 民族Combo1.AddItem 出生日期Combo1.AddItem 身份证号Combo1.AddItem 家庭住址Combo1.AddItem 邮编Combo1.Text = 学号 让组合框初始选中姓名项Text1.Text = 清空文本框End Sub3.1.2查询班级信息班级信息查询窗体:可以输入班级编号进行查询,如下所示:实现代码如下:Private Sub Command1_Click()Dim str As String If Combo1.List(0) = Combo1.Text Then str = select * from 班级信息 where 班级编号 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(1) = Combo1.Text Then str = select * from 班级信息 where 专业名称 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(2) = Combo1.Text Then str = select * from 班级信息 where 班长姓名= & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(3) = Combo1.Text Then str = select * from 班级信息 where 人数= & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh End IfEnd SubPrivate Sub Command2_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem 班级编号 为组合列表框添加各选项Combo1.AddItem 专业名称Combo1.AddItem 班长姓名Combo1.AddItem 人数Combo1.Text = 班级编号 让组合框初始选中姓名项Text1.Text = 清空文本框End Sub3.1.3查询院系信息院系信息查询窗体:可以输入院系编号进行查询,如下所示:实现代码如下:Private Sub Command1_Click()Dim str As String If Combo1.List(0) = Combo1.Text Then str = select * from 院系信息 where 院系编号 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(1) = Combo1.Text Then str = select * from 院系信息 where 院系名称 = & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh ElseIf Combo1.List(2) = Combo1.Text Then str = select * from 院系信息 where 院长姓名= & Trim(Text1.Text) & Adodc1.RecordSource = str Adodc1.Refresh End IfEnd SubPrivate Sub Command2_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()Combo1.AddItem 院系编号 为组合列表框添加各选项Combo1.AddItem 院系名称Combo1.AddItem 院长姓名Combo1.Text = 院系编号 让组合框初始选中姓名项Text1.Text = 清空文本框End Sub3.2 管理模块的详细设计3.2.1学生基本信息编辑学生基本信息编辑窗体:初始状态将“首记录”和“前移”按钮设置为不可编辑状态,并将“确定”和“取消”按钮设置为不可编辑状态,如下图所示:在此窗体上可以实现学生基本信息的移动浏览以及学生基本信息的添加、查询以及修改功能。移动功能如下所示:学生基本信息的添加功能的实现如下所示:单击添加按钮,“确定”为可编辑状态,添加为不可编辑状态,同时文本框为空:输入要添加的学生信息,单击确定按钮:学生基本信息的删除功能的实现如下所示:实现代码如下:Private Sub CmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled = FalseCmdDel.Enabled = FalseCmdOk.Enabled = TrueCmdEsc.Enabled = TrueEnd SubPrivate Sub CmdDel_Click()x = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub CmdEsc_Click()Adodc1.RefreshCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdFirst_Click()Adodc1.Recordset.MoveFirst 记录指针移到首记录(显示首记录)CmdFirst.Enabled = False 让首记录按钮无效CmdPre.Enabled = False 让前移按钮无效CmdNext.Enabled = True 让后移按钮有效CmdLast.Enabled = True 让末记录按钮有效在Label6上显示当前记录号/记录总数:Label10.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdLast_Click()Adodc1.Recordset.MoveLast 移到末记录 CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False CmdLast.Enabled = FalseLabel10.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdNext_Click()Adodc1.Recordset.MoveNext 记录指针移到下一条记录CmdFirst.Enabled = TrueCmdPre.Enabled = TrueIf Adodc1.Recordset.EOF Then 如果记录指针移到了末记录之后 Adodc1.Recordset.MoveLast 则记录指针移到末记录上 CmdNext.Enabled = False CmdLast.Enabled = FalseEnd IfLabel10.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdOk_Click()Adodc1.Recordset.UpdateCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdPre_Click()Adodc1.Recordset.MovePrevious 记录指针移到前一条记录CmdNext.Enabled = TrueCmdLast.Enabled = TrueIf Adodc1.Recordset.BOF Then 如果记录指针移到首记录之前, Adodc1.Recordset.MoveFirst 则记录指针移到首记录上 CmdFirst.Enabled = False CmdPre.Enabled = FalseEnd IfLabel10.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command10_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()CmdFirst.Enabled = False 首记录按钮无效CmdPre.Enabled = False 前移按钮无效CmdNext.Enabled = True 后移按钮有效CmdLast.Enabled = True 末记录按钮有效CmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = False 取消按钮无效Label10.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd Sub3.2.2班级信息编辑班级信息编辑窗体:初始状态将“首记录”和“前移”按钮设置为不可编辑状态,并将“确定”和“取消”按钮设置为不可编辑状态,如下图所示:此窗体的添加和删除按钮和学生基本信息窗体的相似,在此不在重述。实现代码如下:Private Sub CmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled = FalseCmdDel.Enabled = FalseCmdOk.Enabled = TrueCmdEsc.Enabled = TrueEnd SubPrivate Sub CmdDel_Click()x = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub CmdEsc_Click()Adodc1.RefreshCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdFirst_Click()Adodc1.Recordset.MoveFirst 记录指针移到首记录(显示首记录)CmdFirst.Enabled = False 让首记录按钮无效CmdPre.Enabled = False 让前移按钮无效CmdNext.Enabled = True 让后移按钮有效CmdLast.Enabled = True 让末记录按钮有效在Label6上显示当前记录号/记录总数:Label6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdLast_Click()Adodc1.Recordset.MoveLast 移到末记录 CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False CmdLast.Enabled = FalseLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdNext_Click()Adodc1.Recordset.MoveNext 记录指针移到下一条记录CmdFirst.Enabled = TrueCmdPre.Enabled = TrueIf Adodc1.Recordset.EOF Then 如果记录指针移到了末记录之后 Adodc1.Recordset.MoveLast 则记录指针移到末记录上 CmdNext.Enabled = False CmdLast.Enabled = FalseEnd IfLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdOk_Click()Adodc1.Recordset.UpdateCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdPre_Click()Adodc1.Recordset.MovePrevious 记录指针移到前一条记录CmdNext.Enabled = TrueCmdLast.Enabled = TrueIf Adodc1.Recordset.BOF Then 如果记录指针移到首记录之前, Adodc1.Recordset.MoveFirst 则记录指针移到首记录上 CmdFirst.Enabled = False CmdPre.Enabled = FalseEnd IfLabel6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command1_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()CmdFirst.Enabled = False 首记录按钮无效CmdPre.Enabled = False 前移按钮无效CmdNext.Enabled = True 后移按钮有效CmdLast.Enabled = True 末记录按钮有效CmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = False 取消按钮无效Label6.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd Sub3.2.3院系信息编辑院系信息编辑窗体:初始状态将“首记录”和“前移”按钮设置为不可编辑状态,并将“确定”和“取消”按钮设置为不可编辑状态,如下图所示:此窗体的添加和删除按钮和学生基本信息窗体的相似,在此不在重述。实现代码如下:Private Sub CmdAdd_Click()Adodc1.Recordset.AddNewCmdAdd.Enabled = FalseCmdDel.Enabled = FalseCmdOk.Enabled = TrueCmdEsc.Enabled = TrueEnd SubPrivate Sub CmdDel_Click()x = MsgBox(确实要删除当前记录吗?, vbYesNo + vbQuestion, 确认)If x = vbYes Then Adodc1.Recordset.Delete Adodc1.Recordset.MoveNext If Adodc1.Recordset.EOF Then Adodc1.Recordset.MoveLast End IfElse Adodc1.RefreshEnd IfEnd SubPrivate Sub CmdEsc_Click()Adodc1.RefreshCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdFirst_Click()Adodc1.Recordset.MoveFirst 记录指针移到首记录(显示首记录)CmdFirst.Enabled = False 让首记录按钮无效CmdPre.Enabled = False 让前移按钮无效CmdNext.Enabled = True 让后移按钮有效CmdLast.Enabled = True 让末记录按钮有效在Label6上显示当前记录号/记录总数:Label5.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdLast_Click()Adodc1.Recordset.MoveLast 移到末记录 CmdFirst.Enabled = True CmdPre.Enabled = True CmdNext.Enabled = False CmdLast.Enabled = FalseLabel5.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdNext_Click()Adodc1.Recordset.MoveNext 记录指针移到下一条记录CmdFirst.Enabled = TrueCmdPre.Enabled = TrueIf Adodc1.Recordset.EOF Then 如果记录指针移到了末记录之后 Adodc1.Recordset.MoveLast 则记录指针移到末记录上 CmdNext.Enabled = False CmdLast.Enabled = FalseEnd IfLabel5.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub CmdOk_Click()Adodc1.Recordset.UpdateCmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = FalseEnd SubPrivate Sub CmdPre_Click()Adodc1.Recordset.MovePrevious 记录指针移到前一条记录CmdNext.Enabled = TrueCmdLast.Enabled = TrueIf Adodc1.Recordset.BOF Then 如果记录指针移到首记录之前, Adodc1.Recordset.MoveFirst 则记录指针移到首记录上 CmdFirst.Enabled = False CmdPre.Enabled = FalseEnd IfLabel5.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd SubPrivate Sub Command5_Click()MDIForm1.ShowUnload MeEnd SubPrivate Sub Form_Load()CmdFirst.Enabled = False 首记录按钮无效CmdPre.Enabled = False 前移按钮无效CmdNext.Enabled = True 后移按钮有效CmdLast.Enabled = True 末记录按钮有效CmdAdd.Enabled = TrueCmdDel.Enabled = TrueCmdOk.Enabled = FalseCmdEsc.Enabled = False 取消按钮无效Label5.Caption = 记录: & Adodc1.Recordset.AbsolutePosition & / & Adodc1.Recordset.RecordCountEnd Sub3.2.4登录及注册新用户登录及注册新用户窗体:登录窗体如下图所示:输入用户名错误时如下所示:密码输入错误时如下所示:注册新用户如下图所示:当用户名已
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河南省洛阳市汝阳县实验高中高二上化学期中质量跟踪监视试题含解析
- 吉林省延边朝鲜族自治州延吉二中2026届化学高一上期中监测试题含解析
- 北师大万宁附中2026届化学高一上期末预测试题含解析
- 江西省六校2026届高三上化学期中质量检测模拟试题含解析
- 2026届安徽省舒城一中化学高二上期末检测模拟试题含答案
- 河北衡水市安平中学2026届化学高二第一学期期末经典试题含答案
- 2025中国教育区块链行业市场现状及前景分析报告
- 2025中国教育乡村振兴行业市场机遇及政策支持报告
- 2025中国手术机器人临床适用症扩展与付费模式报告
- 2025中国建筑工业化市场发展趋势及战略研究报告
- 养老院洗浴护理课件
- 养老九防培训课件
- 2025全球智能体发展进展、面临挑战与对策建议报告-赛迪智库
- 2026高考物理大一轮复习-第三章 阶段复习(一) 力与直线运动-专项训练【含答案】
- 船舶修理质量通病防治措施
- 2025-2030中国金融租赁行业经营动态及前景趋势预测报告
- 核能数字化应用-洞察及研究
- 大学入团考试试题及答案山东
- 内镜护士考试题库及答案 测试卷
- 建筑公司销售管理制度
- 2025年氯化铝铁混合剂项目市场调查研究报告
评论
0/150
提交评论