欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    524555608课程设计(论文)C++研究生信息管理系统论文.doc

    • 资源ID:4018623       资源大小:1.52MB        全文页数:33页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    524555608课程设计(论文)C++研究生信息管理系统论文.doc

    目 录第1章 概 述21.1 项目的目的和意义21.2项目体系结构及开发环境21.3系统基本功能2第2章 系统设计42.1系统的模块划分42.2系统的模块流程图52.3数据库设计62.4数据库关系图9第3章 系统的详细设计及实现113.1公共类113.2系统登录与主窗体133.3 系统管理163.4 专业管理183.5 课程管理213.6 研究生管理243.7 成绩管理273.8 用户管理293.9 登录选择代码303.10 退出选择代码303.11 其他公共代码31总结32参考文献33第1章 概 述1.1 项目的目的和意义研究生信息管理是一项非常重要的工作,它关系到整个学校的工作效率。一个好的信息管理系统能够方便系统管理人员对学校的基本数据进行维护,包括信息的增加,修改以及对各项信息的变动等操作。采用研究生管理信息系统不仅可以节省人力物力,而且可以增强学校资料的安全性,提高学校的管理能力。运用该系统,可以清晰地了解研究生的课程、专业、成绩等信息,并根据需要添加、删除、修改相应的信息。不同的角色,登录得到的界面不同,拥有的权限也不同,这样,起到了对学校资料的保护的作用。整个系统的管理员可以根据学校情况添加、删除、修改、角色的权限,很方便管理。当用户忘记密码时,可以通过当时创建用户时所填的工作号进行找回,方便、安全。1.2项目体系结构及开发环境1本系统采用Client/Server体系结构。2系统开发环境1) 开发平台:Microsoft Visual Studio 20052) 开发语言:C#3) 数据库:Access20033系统运行环境客户端:操作系统: Windows 2000、Windows XP服务器端:数据库:Access20031.3系统基本功能在以上环境下对研究生信息管理系统进行开发与设计。研究生信息管理涉及专业、课程、成绩、个人信息等管理,需要处理大量数据和信息,而且对这些数据和信息的准确性、及时性都要求非常高,任何的错误和遗漏都会造成学校管理的混乱:若采用纯人工的方法进行管理有一定难度。因此,目前大多数学校都开始采用计算机技术来实现研究生信息的管理。该系统的功能主要包括以下几个方面:1系统管理员添加年级信息、班级信息、所开设的课程信息和系统用户信息,对用户进行权限设置并对其进行维护;2普通管理员录入研究生的基本信息,并在以后的教学中对研究生信息进行基本维护;3老师对研究生的成绩进行录入,并对成绩进行分析;给每位研究生选择课程,并可以对研究生的信息和成绩进行查询;4每位研究生可以根据自己的需要对以上录入的信息进行适当的查询。 第2章 系统设计2.1系统的模块划分研究生信息管理系统是学校教务系统中不可缺少的一个子系统,它涉及到学生、课程、成绩、专业等信息的增删改查。研究生信息管理系统包括以下八个模块:1 登录模块登录模块提供用户登录界面,用户输入正确的用户名和密码后,系统会核对用户名和密码,调用该用户的权限并进入相应权限的系统主窗口(即导航页面),从而可以选择进入相应的子系统。并提供用户忘记密码找回功能。2系统管理模块系统管理模块主要添加用户和新建角色等基本信息,包括添加用户、新建角色。能对用户信息创建的操作。3用户管理模块用户管理模块主要用于管理用户信息和重新登录,包括更改密码、重新登录,能对密码进行修改操作。4课程管理模块课程管理模块主要对课程信息进行管理,包括添加课程、浏览课程。能对课程信息进行添加、修改和删除等操作。5成绩管理模块成绩管理模块主要对学生成绩信息进行管理,包括添加成绩、浏览成绩。能对学生成绩进行添加、修改和删除等操作。6专业管理模块专业管理模块主要对专业信息进行管理,包括添加专业、浏览专业。能对专业信息进行添加、修改和删除等功能。7研究生管理模块研究生管理模块主要对研究生信息进行管理,包括添加信息、浏览信息。能对研究生的基础信息进行添加、修改和删除等操作。8帮助手册模块帮助手册模块主要对各模块进行介绍。系统功能模块图如图2-1所示。(系统登录)Form1.cs(系统主界面)frmmain.cs帮助手册用户管理研究生管理成绩管理课程管理专业管理系统管理图2-1 系统功能模块图2.2系统的模块流程图研究生管理信息系统由系统管理、专业管理、课程管理、研究生管理、成绩管理、用户管理等模块组成,具体如下:1系统登录模块: 可以登录系统主功能模块,找回用户密码。2系统管理模块:可以添加新用户,新建角色,并且为角色赋予权限。3专业管理模块:可以浏览、添加、修改、删除专业信息。4课程管理模块:可以浏览、添加、修改、删除课程信息。5研究生管理模块:可以浏览、添加、修改、删除研究生基本信息。6成绩管理模块:可以浏览、添加、修改、删除研究生成绩信息。7用户管理模块:可以修改密码,重新登录。研究生管理信息系统模块结构如图2-2所示:研究生管理信息系统用户管理成绩管理研究生管理课程管理专业管理系统管理添加研究生成绩添加新用户新建角色重新登录修改密码删除研究生成绩修改研究生成绩浏览研究生成绩删除研究生修改研究生浏览研究生添加研究生删除课程修改课程浏览课程添加课程删除专业修改专业浏览专业添加专业图2-2 系统模块结构2.3数据库设计该系统的数据库数据库命名为masterMIS,数据库中共包括八张表:1. 用户信息表(userinfo),包含用户的名称,口令和角色;2. 角色信息表(roles),包含角色名称和与该角色相关的权限;3. 专业信息表(majorinfo),包含学校所开专业的名称及其详细介绍;4. 课程信息表(courseinfo),包含学校所开设课程的名称及其详细介绍;5. 研究生基本信息表(studentinfo),包含研究生的学号、姓名、性别、专业等基本信息;6. 成绩信息表(scoreinfo),包含研究生的学号、课程、成绩等信息;7. 教师信息表(teacherinfo),包括教师的姓名等信息。8. 找回信息表(zhaohui),包含用户名、工作号等信息。根据前面的分析,研究生信息管理系统数据库(masterMIS)表的结构、表字段的数据类型及相关说明如下:1.系统用户表(userinfo)系统用户表“userinfo”用于存放系统用户的相关数据。其结构如表2-1所示。表2-1 系统用户表列名说明数据类型约束UName用户名字符串,长度为16主键PWD用户密码字符串,长度为16非空续表2-1RoleName权限字符串,长度为16取值为“系统管理员”、 “教师”“普通管理员”、“学生”2. 角色信息表(roles)角色信息表“roles”结构如表2-2所示。表2-2 学生信息表列名说明数据类型约束RoleName角色名字符串,长度为10主键SystemManage系统管理Bit非空MajorManage专业管理Bit-CourseManage课程管理Bit-ScoreManage成绩管理Bit-3. 专业信息表(majorinfo)专业信息表“majorinfo”结构如表2-3所示。表2-3 课程信息表列名说明数据类型约束MID专业编号字符串,长度为10-MName专业名称字符串,长度为20主键MRemark专业描述字符串-4. 研究生基本信息表(studentinfo)研究生基本信息表“studentinfo”结构如表2-4所示。表2-4 研究生基本信息表列名说明数据类型约束SID研究生学号整数16主键SName研究生姓名字符串,长度为10-SSex性别字符串取值“男”或“女”SPID身份证号整数-SBirth出生日期整数-TID老师编号整数-MName专业名称字符串,长度16SRemark备注字符串5. 成绩信息表(scoreinfo)成绩信息表“scoreinfo”结构如表2-5所示。表2-5 成绩信息表列名说明数据类型约束RID成绩编号整数16主键SID学号整数-CName课程名称字符串,长度16-Score分数整数-6. 教师信息表(teacherinfo)教师信息表“teacherinfo”结构如表2-6所示。表2-6 教师信息表列名说明数据类型约束TID教师编号整数,长度16主键TName用户名字符串,长度16-7. 找回信息表(zhaohui)找回信息表“zhaohui”结构如表2-7所示。表2-7 找回信息表列名说明数据类型约束Zhucehao注册号整数,长度16主键Xingming用户名字符串,长度16-8. 课程信息表(courseinfo)课程信息表“courseinfo”结构如表2-8所示。表2-8 选课信息表列名说明数据类型约束CID课程编号整数16主键CName课程名称字符串,长度为10-CDate学时整数-CNum学分整数-MName专业名称字符串,长度为10-CRemark课程描述字符串-2.4数据库关系图一般情况下,数据库中所包含的表都不是独立存在的,而是表与表之间有一定的关系,称为关联。如果数据库中的信息不能满足正常的依赖关系,就会破坏数据的完整性和一致性。根据本实例的特点,需要设置课程信息表、专业信息表、研究生信息表、成绩信息表和教师信息表之间的关系。设置用户信息表与角色信息表之间的关系,如图2-3、2-4所示。图2-3 数据库关系图图2-4 角色关系图其中图2-3中成绩信息表中的学生号与研究生信息表中的学生号关联,研究生信息表中的教师号、专业名称分别与教师信息表中的教师号和专业信息表中的专业名称关联, 专业信息表中的课程名与课程信息表中的课程名关联。 图2-4中用户信息表中的角色名与角色信息表中的角色名关联。第3章 系统的详细设计及实现3.1公共类考虑到系统的各个模块都需要访问数据库,因此最好的方法是编写一些访问数据库的方法,如返回数据集的公共查询方法,执行数据操作的公共方法,并把它们放在一个公共的类(database)中,然后在各模块中调用这些方法来实现对数据库的访问。同样,在用户登录时,可能需要记录一些关于用户的信息,例如用户名、用户权限等,因此也需要使用到一些公共的静态变量,把这些变量放置在一个名为“Classshard”的类中。3.1.1添加database公共类首先为系统添加一个名为“database”的公共类,用于存放访问数据库的公共方法。添加公共类的方法和步骤如下:(1)选择【项目】->【添加类】菜单项,将弹出【添加新项】对话框,保留默认的选择,在“名称”文本框中输入“database”。(2)单击【添加】按钮,则类“database”已经被添加到项目中,并自动切换到该类的代码窗口。(3)设置database类的访问修饰符为“Public”。3.1.2 编写公共方法因为在这些方法中需要使用到OleDbConnection、OleDbDataAdapter、DataSet和MessageBox,所以首先应当引入以下命名空间:using System.Data;using System.Data.OleDb;using System.Windows.Forms;然后为“database”类声明几个公共变量:public OleDbConnection dataConnection = new OleDbConnection();public OleDbDataAdapter dataAdapter;public DataSet dataSet = new DataSet();public OleDbCommand command;/定义数据库连接字符串.string connstr = "Provider = Microsoft.Jet.OLEDB.4.0;" + "Data Source=.masterMIS.mdb"1.公共查询方法GetDataFromDBGetDataFromDB是一个返回数据集的公共查询方法,如果正常访问则返回查询结果;否则返回null。代码如下:public DataSet GetDataFromDB(string sqlStr) try dataConnection.ConnectionString = connstr; dataAdapter = new OleDbDataAdapter(sqlStr, dataConnection); dataSet.Clear(); dataAdapter.Fill(dataSet); /填充数据集 dataConnection.Close(); /关闭连接 catch (Exception ex) MessageBox.Show(ex.Message); dataConnection.Close(); if (dataSet.Tables0.Rows.Count != 0) return dataSet; /若找到相应的数据,则返回数据集 else return null; /若没有找到相应的数据,返回空值 2.公共查询方法UpdateDBUpdateDB用于对数据进行添加、修改和删除操作,若操作成功则返回true;否则返回false。代码如下:public bool UpdateDB(string sqlStr) try dataConnection.ConnectionString = connstr; dataConnection.Open(); /打开数据库 command = dataConnection.CreateCommand(); command.CommandText = sqlStr; command.ExecuteNonQuery(); dataConnection.Close(); /关闭连接 return true; catch (Exception ex) MessageBox.Show(ex.Message); return false; 3.2系统登录与主窗体登录是每一个成功项目中不可缺少的模块,好的登录模块可以保证系统的可靠性和安全性。本节首先为“研究生信息管理系统”制作了一个登录模块,登录成功后,应当进入系统的主窗体(导航界面),因此本节还详细介绍了主窗体的设计。3.2.1 登录界面设计新建一个Windows应用程序,命名为“From1”,使用statusbar、Label、TextBox、Button、timer控件将出现的默认窗体Form1设计成如图3-1所示。 图3-1 登录界面3.2.2 登录代码接下来编写登录模块的代码。【登录】按钮用于验证输入的用户名和用户密码,若正确则进入系统主界面;否则弹出错误提示,并等待用户的重新输入。登录时,需要记录登录的用户名和用户权限,因此在“Classshard”公共类中声明公共静态成员,声明后“Classshard”公共类的代码如下:namespace 研究生信息管理系统 public class Classshard /数组“userInfo”用于记录登录的用户名和用户权限 public static string userInfo = new string2; 【忘记密码】按钮是若用户忘记密码,可根据创建用户时输入的工作号对密码进想找回。如图3-2所示。图3-2 找回密码界面实现代码如下:try DataSet dt = new DataSet(); database tb = new database(); string sqlst = "Select zhucehao ,xingming from zhaohui where xingming='" + txtUserName.Text.Trim() + "'"/工作号与数据库相对,一样则显示密码dt = tb.GetDataFromDB(sqlst);.若登录3次连续密码输入错误,系统就会自动关闭该用户的登录。如图3-3所示。图3-3 登录错误连续3次 点击【登录】后即进入研究生信息管理系统主界面。根据权限不同。以下图3-4、3-5、3-6、3-7分别为系统管理员界面、普通管理员界面、教师界面、学生界面。图3-4 系统管理员界面图3-5 普通管理员界面 图3-6 教师界面 图3-7 学生界面3.3 系统管理系统管理模块包括添加用户和新建角色两个功能,在添加用户界面中首先需要通过dataSet把数据库中的数据和ComBox控件绑定起来,设置为键值对。在主界面中选择【系统管理】【添加用户】命令菜单,即可进入添加用户界面,如图3-7所示。在该界面中可以建立新的用户,并可以在【角色】下拉列表框中选择角色描述。单击【确定】按钮时需要判断信息是否输入完整,并且判断用户名是否已经存在和两次输入的密码是否一致。如果用户信息填写完整并且用户名称不重复,则添加成功,否则添加失败。工作号则是用于找回密码设置的。图3-7 添加用户界面在该窗体中使用TextBox、 Button、ComboBox控件。【添加】代码实现如下:if (textBox2.Text.Trim() = textBox3.Text.Trim()string sql1, sql; sql1 = "insert into userinfo values('" + textBox1.Text.Trim() + "','" + textBox2.Text.Trim() +"','" + comboBox1.Text.Trim() + "')"/插入信息sql = "insert into zhaohui values('" + textBox5.Text.Trim() + "','" + textBox1.Text.Trim() + "')" /插入信息database db = new database(); bool b, a;b = db.UpdateDB(sql1);/修改信息 a = db.UpdateDB(sql); /修改信息 if (b = true && a = true) if (MessageBox.Show("添加成功!继续添加吗?", "添加用户", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes)在主界面中选择【系统管理】【新建角色】命令菜单,即可进入新建角色界面,如图3-8所示。在该界面中可以建立新的角色,并且选择【权限】选项组中的复选框,该角色就具有相应的权限。图3-8 新建角色界面在新建角色界面中,也要首先判断输入的信息是否完整,角色的名称是否重复。在该窗体中使用了TextBox、Button、 CheckBox控件。【创建】代码实现如下:sqlstr = "insert into roles values('" + textBox4.Text.Trim() + "'," + checkBox1.Checked + "," + checkBox2.Checked + "," + checkBox3.Checked + "," + checkBox4.Checked + ")"database dc = new database(); bool b; b = dc.UpdateDB(sqlstr);/修改信息 if (b = true) if (MessageBox.Show("添加成功!继续添加吗?", "添加用户", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes)3.4 专业管理在主界面中选择【专业管理】【添加专业】命令菜单,即可进入添加专业界面,如图3-9所示。用户可以在该窗体中设置专业信息。单击【确定】按钮,如果专业信息填写完整并且专业名称不重复则添加成功,否则添加失败。在该窗体中使用了TextBox、Button控件。图3-9 添加专业界面【确定】代码如下:string sql1 = "select * from majorinfo where MName='" + textName.Text.Trim() + "'"db.GetDataFromDB(sql1); /查询信息if (db.GetDataFromDB(sql1) != null)MessageBox.Show("专业名称发生重复,请重新输入!", "提示");elsestring sql = "insert into majorinfo(MName,MRemark) values('" + textName.Text.Trim() + "','" + textRemark.Text.Trim() + "')"db.UpdateDB(sql); /修改信息MessageBox.Show("添加专业成功!");textName.Clear();textRemark.Clear();选择【专业管理】【浏览专业】命令菜单或者单击工具栏上的【浏览专业】按钮,即可进入浏览专业界面,如图3-10所示。此界面中有DataGridvied、button控件。图3-10 浏览专业界面删除专业信息时首先要判断是否有与该专业相关的课程信息,如果有则提示先删掉课程信息再删掉专业信息修改专业信息时首先要把选择的那条数据信息显示在专业修改界面的各个控件中,然后根据所选的那条数据的唯一编号,对这条数据信息进行修改。【修改】代码如下:database db = new database(); string sql1 = "select * from courseinfo where CName='" + dataGrid1dataGrid1.CurrentCell + "'" if (db.GetDataFromDB(sql1) != null)MessageBox.Show("该专业名已经存在,请重新输!"); elsestring sql = "update majorinfo set MName='" + ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim() + "',MRemark='" + ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber1.ToString().Trim() + "' where MID=" + ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber2;db.UpdateDB(sql);/修改信息MessageBox.Show("修改专业成功!");【删除】代码如下: sql = " delete * from majorinfo where MName not in (select distinct MName from courseinfo) and MID=" + ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber2.ToString().Trim();db.UpdateDB(sql); /修改信息MessageBox.Show("删除专业'" + ds.Tables0.RowsdataGrid1.CurrentCell.RowNumber0.ToString().Trim() + "'成功", "提示"); 3.5 课程管理在主界面中选择【课程管理】【添加课程】命令菜单,即可进入添加课程界面,如图3-11所示。用户可以可以在该窗体中设置课程信息。在添加课程信息前,要把专业名称绑定在界面上的ComboBox控件中提供用户选择。在添加课程信息时要判断信息的完整性,并且还要判断在同一专业中是否添加了相同课程。单击【确定】按钮,如果课程信息项填写完整并且在同一专业中课程名称不重复则添加成功,否则添加失败。在该窗体中使用了 ComboBox、Button、 TextBox控件。图3-11 添加课程界面加载代码如下:database db = new database();string connstr = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=.masterMIS.mdb"db.dataConnection.ConnectionString = connstr;db.dataConnection.Open();/数据库打开string sql1 = "select MID,MName from majorinfo"OleDbDataAdapter adp1 = new OleDbDataAdapter(sql1, db.dataConnection);DataSet ds = new DataSet();adp1.Fill(ds, "major");comboMajor.DataSource = ds.Tables"major".DefaultView;comboMajor.DisplayMember = "MName"omboMajor.ValueMember = "MID"db.dataConnection.Close();/数据库关闭【确定】代码如下:database db = new database();if (comboMajor.Text.Trim() = "" | textName.Text.Trim() = "" | textDate.Text.Trim() = "" |textNum.Text.Trim() = "")MessageBox.Show("请输入完整的专业信息", "提示");else string sql1 = "select * from courseinfo where MName='" + comboMajor.Text.ToString() + "' and CName='" + textName.Text.Trim() + "'" db.GetDataFromDB(sql1);/查询信息 if (db.GetDataFromDB(sql1) != null) MessageBox.Show("在同一专业不能添加相同的课程", "提示"); else string sql = "insert into courseinfo (MName,CName,CDate,CNum,CRemark) values ('" + comboMajor.Text.Trim() + "'," + "'" + textName.Text.Trim() + "','" + textDate.Text.Trim() + "','" + textNum.Text.Trim() + "','" + textRemark.Text.Trim() + "')" db.UpdateDB(sql);/修改信息 MessageBox.Show("添加课程成功!"); 选择【课程管理】【浏览课程】命令菜单或者单击工具栏上的【浏览课程】按钮,即可进入课程浏览界面,在专业栏中选择专业名称,在课程列表中将会显示该专业的课程信息。浏览课程界面如图3-12所示。图3-12 浏览课程界面在浏览课程信息时首先需要把专业名称加载到TreeView控件中,然后根据选择的专业名称,把该专业的课程信息显示在DataGridview控件中。删除课程信息的代码与修改专业信息的代码相似,只是在该部分中设置了一个界面的Tag属性,用来传递编号到另一个界面,并且根据此编号修改这条数据信息。在该窗体中使用了TreeView、Button、 DataGridview控件。加载到TreeView控件代码如下:TreeNode node = new TreeNode();node.Text = connect1.GetString(0).ToString();treeView1.Nodes.Add(node);sql = "select CID,CName from courseinfo where MName='" + node.Text + "' order by CName desc"string connstr1 = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=.masterMIS.mdb"datab2.dataConnection.ConnectionString = connstr1;/连接数据库mand = datab2.dataConnection.CreateCommand();mand.CommandText = sql;datab2.dataConnection.Open();/数据库打开connect2 = mand.ExecuteReader();while (connect2.Read() TreeNode node1 = new TreeNode(); node1.Text = connect2.GetString(1); node1.Tag = connect2.GetValue(0); node.Nodes.Add(node1);/添加节点信息 【修改】代码如下:database db = new database();int n = this.dataGrid1.CurrentCell.RowIndex;string sql = "update scoreinfo set Score='" + textBox1.Text.ToString().Trim() + "' where RID=" + dataGrid1.Rowsn.Cells3.Value.ToString();db.UpdateDB(sql);/修改信息MessageBox.Show("成绩修改成功!");【删除】代码如下:database db = new database();if (dataGrid1.CurrentCell.RowIndex >= 0 && dataGrid1.DataSource != null) int n = this.dataGrid1.CurrentCell.RowIndex; string sql = "delete * from scoreinfo where RID=" + dataGrid1.Rowsn.Cells3.Value.ToString(); db.UpdateDB(sql);/修改信息 MessageBox.Show("删除信息成功!"); String sl = "select distinct (select SName from studentinfo where studentinfo.SID=scoreinfo.SID) as 姓名," +"CName as 课程名称,Score as 成绩,RID as 编号 from scoreinfo,majorinfo where CName='" + dataGrid11, dataGrid1.Cur

    注意事项

    本文(524555608课程设计(论文)C++研究生信息管理系统论文.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开