案例四用VC制作个工资管理系统_第1页
案例四用VC制作个工资管理系统_第2页
案例四用VC制作个工资管理系统_第3页
案例四用VC制作个工资管理系统_第4页
案例四用VC制作个工资管理系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 可修改 欢迎下载 精品 Word 可修改 欢迎下载 精品 Word 可修改 欢迎下载 精品 WordA、课程设计实施步骤同学们可按以下步骤完成所选题目的设计并写出设计报告。第一步:问题分析在对所选题目进行调研的根底上,明确课题背景及该选题要做什么。依据调查结果,进一步分析和表达用户的需求。1系统的功能需求:围绕选题,明确系统的主要功能;2用户操作需求:系统应以怎么的方式与用户进行交互。第二步:总体设计1系统的功能划分:主要给出系统的功能结构图;2系统流程:主要给出系统工作流程示意图。第三步:详细设计与实现1类设计:给出系统中设计的类的功能、结构等的说明;2系统的主要代码:类的实现及程序主要代

2、码及其说明;第四步:测试以运行结果的形式给出程序的测试过程,需要运行界面截图与文字说明,缺一不可。第五步:形成设计报告对设计结果的合理性、标准程度和实际运行的结果以报告的形式进行提交。B、课程设计报告要求课程设计报告有四个方面的要求:1问题描述。包括此问题的理论和实际两个方面。2解决方案。包括:1总体设计:应合理划分系统功能模块,系统工作流程合理、符合实际;2详细设计与实现:类的设置是问题域中客观存在事物的放映和抽象,代码符合程序编写标准;3测试:对系统应进行全面的功能测试,以保证系统的可靠运行。3报告撰写格式要标准,具体参见样例。案例四 用VC+制作一个工资管理系统关键词:VC+数据库 数据

3、表 控件绑定 统计计算4.1 课程设计的目的和意义工资管理是任何企事业单位都需要进行的一项工作,因此,开发制作工资管理系统具有较大的社会现实意义,同时工资管理系统的最大特征是数据处理,它是数据库应用系统的典范,它具有一切数据库应用系统的特征,如数据录入,数据统计和数据报表等,其系统结构与现实生活紧密结合,具体直观。工资管理系统也是数据库应用开发中经常进行例证的好例子,它的开发应用简单而又不失一般性。作为一个案例,我们需要重复进行一些过程,如创立工程框架,引入数据源,建立消息映射,最终实现统计计算。本程序比拟简单,目的是让大家对VC的编程逐步加以理解,它的意义是非常重要的。4.2 系统功能设计在

4、本系统的设计中,将主要实现如下的一些功能:增加记录功能、修改记录功能、删除记录功能、刷新记录功能,最后实现统计计算功能。4.3 数据库与数据表的设计作为工资管理系统,它是数据库应用系统数据处理的典范,数据库应用系统开发的前提是首先开发数据库和数据库中的数据表。因此在本案例中,我们采用Microsoft Access 2003创立数据库和数据表。为此我们先定义一个“职工工资数据表的结构,如表所示。表4.1 “职工工资数据表结构字段名称字段类型字段大小小数位数索引必须填写年份数字整型是月份数字整型是输入日期日期/时间默认是职工编号数字整型是姓名文本16是部门文本20是根本工资数字长整型自动是业绩工

5、资数字长整型自动是奖金数字长整型自动是津贴数字长整型自动是各种补助数字长整型自动是应发数数字长整型自动是水电费数字长整型自动是房租数字长整型自动是储蓄数字长整型自动是会费数字长整型自动是保险数字长整型自动是扣除总计数字长整型自动是实发工资数字长整型自动是创立数据库及其数据表的步骤如上:1启动Microsoft Office 2003中的Microsoft Access应用程序,出现图所示界面,通过该界面可以创立一个新的数据库或翻开一个已经存在的数据库。图4.1 新建数据库选择2选择创立新数据库,即选择“空Access数据库选项。3单击“确定按钮之后出现保存对话框,确定保存数据库的文件位置D:

6、VC+写作案例CH4并给定数据库名称:工资管理数据库;然后出现图所示界面。图4.2 数据库中的数据表设计界面在数据库设计界面中,用户可以翻开已经存在的数据表,也可以创立新的数据表。(4)单击“设计菜单,即出现一个数据表设计器,用户可以在其中设计一个新的数据表结构,如图所示。图4.3 数据表设计器在Microsoft Access 2003数据库设计器中,用户可以定义数据表的字段名称、字段类型、字段大小等数据表结构的内容。数据表结构一经确定,用户可以翻开该数据表,在数据表中输入一些根本数据,以在后面的系统设计中表达设计的效果。最后,系统自动将创立的数据表保存在“D:VC+写作案例CH432资管理

7、数据库中,将创立的数据表命名为“职工工资数据表。注意,在微软的Microsoft Access各版本之间,如在Microsoft Access 98与Microsoft Access 2003中,采用旧版本创立的数据库及其数据库中的数据表如要在新的版本中运用,往往需要在新版本中进行转换才行。4.4 创立工资管理系统根本框架在前面我们已经创立了“工资管理数据库、“职工工资数据表。它可为应用程序提供一个数据源。应用程序就是对该数据源的记录进行访问、增加、删除以及数据管理的一切操作。有了这一切的工作,用户就可以着手进行应用系统的构建了。与前面的案例一样,在VC+应用系统创立中,需要通过向导先创立一个

8、应用程序框架,然后再参加数据控件,与数据源进行绑定,并进行程序的修改与加工制作。创立“工资管理系统应用程序框架的步骤如下:(1)结束数据库的创立并启动VC+,出现VC+主控界面。(2)在VC+主控界面中单击“文件|新建菜单项,出现新建工程类型选择对话框,在工程类型列表中选择MFC AppWizard(EXE)工程类型。(3)输入工程名称为“工资管理系统,并选择Win32平台类型。(4)单击“确定按钮,进入文档类型设置。(5)选择单文档类型,即创立一个单文档界面的应用程序,设置资源使用语言为中文,选择文档查看体系结构支持。(6)单击“下一步按钮,进入框架设置的第2步,出现图所示对话框。在该对话框

9、中,需要用户对数据库的类型作一些相关的选择。图4.4 程序框架设置的第2步(7)选择“查看数据库不使用文件支持;这时候Data Source按钮处于可用状态或激活状态;在这一种选择下,VC+将为应用系统引入数据环境,即数据源,该数据源就是我们在前面创立的“工资数据库,而不使用其他类型数据的文件支持。但数据源在系统制作中的引入需要用一定的驱动程序为之进行。(8)单击“Data Source按钮,出现图所示的选择数据源类型的对话框。图4.5 数据源创立类型注意,在ODBC数据源文件列表中,我们已经创立了一个ODBC数据源文件,因此可以在其中直接选择引用即可。如果没有“工资管理数据库这样的文件,那么

10、往往需要用操作系统控制面板中的ODBC程序加以创立,其方法参考案例一:在这里我们选择ODBC数据源类型,即选择一种开放式数据源连接的驱动程序类型作为系统的数据源。往往在单击OK按钮后会出现找不到该数据库文件的信息提示,因为作为ODBC数据源,必须先创立一个数据源名并进行数据源登录。数据源名称创立与登录可以采用多种方式进行,我们将在本课程中分不同的情况加以说明。这里我们将采用一种通用的方法,即在Microsoft Windows98(Microsoft Windows 2000/Me/XP中也一样)中,利用开放式数据源创立与连接的公用程序ODBC进行数据源名称的创立与连接。其方法如下;9翻开Mi

11、crosoft Windows98控制面板。10双击ODBC DataSource(32Bit)程序图标,出现“ODBC数据源管理器对话框,如图所示。11在“用户数据源列表框中选择名称为“MS Access Database的选项。12单击“添加按钮,然后在出现的对话框中选择使用何种驱动程序来安装数据源。如图所示。图1.13 ODBC数据源管理器图1.14 选择安装数据源的驱动程序在图中选择“Microsoft Access Driver*.mdb,作为安装数据源的驱动程序。13单击“完成按钮,出现数据源安装对话框,如图所示。图1.15 数据源安装对话框作为所创立或安装的数据源,需要一个数据源

12、名称,以便于在应用系统制作中加以引用和识别,因此,需要为数据源命名,这里我们将其命名为“人事管理数据库。然后在图115所示对话框中对该数据源进行描述户可以填写如下内容:“该数据库用于创立人事管理系统。数据库文件“人事管理数据库是保存在磁盘文件中的,为此需要引入该数据库作为数据源。14单击“选择按钮,出现图所示的数据库选取对话框。图1.16 数据库文件选取选取数据库文件并确认之后,回到图所示对话框,再在图所示对话框中单击“确定按钮,回到ODBc数琚源管理器对话框,结束数据源的安装过程。此后可以发现,在ODBC数据源管理器中出现了“人事管理数据库这样一个数据源,它就是供用户使用的本地机上的ODBC

13、数据源,如图所示。图数据源安装结束(15)有了本地机上可供用户使用的数据源之后,在图112所示对话框的ODBC列表中选择“人事管理数据库数据源即可(该数据源就是前面安装的适合于本地机用户使用的ODBC数据源文件)。(16)单击OK按钮,出现该数据源中的数据表、数据查询或视图的选择对话框,因为在一个数据源也即一个数据库中,往往存在多个数据表、查询或视图。这里选择的数据表就是“人事管理系统的单文档界面所使用的数据表“人事管理数据表,如图所示。图1.18 选择数据源中的数据表单击OK按钮确认后,即回到数据源设置对话框,如图所示。图1.19 数据源设置对话框(9)单击OK按钮,出现数据源中的数据表,即

14、工资数据库中的数据表。选择“职工工资数据表,如图所示。图4.6 选择职工工资数据表(10)单击OK按钮选定该数据表。然后返回到图所示对话框,完成数据源的创立工作。(11)在图所示对话框中单击“完成按钮,即完成应用程序框架的生成工作,出现工程框架创立的全部信息,该信息将提示用户所创立的应用程序框架包括的内容,如:应用系统名称、界面类型、适合的操作系统、类文档的创立和系统特色等。确认创立信息之后,出现应用程序框架界面,如图所示。图4.7 应用程序框架界面4.5 开发工资处理界面如前所述,应用系统向导只能生成一个应用程序根本框架,该框架还不具备任何功能,我们需要在框架的根底上进行系统各种功能的制作。

15、通常一个应用程序框架生成两个对话框,一个是IDD_ABOUTBOX对话框,它是一个说明该系统的对话框,几乎由向导自动完成,如图所示。图4.8 ABOUTBOX对话框该对话框仍然是根本的,如果用户需要修饰或修改,可以根据自己的需要进行。在根本框架中另外一个对话框就是主对话框IDD_MY_FORM,它是我们加工制作的主要内容,数据源也是专门为该对话框引入的。 主对话框IDD_MY_FORM中控件的参加与布局在工资管理系统中,主对话框主要用于处理工资管理的一切内容。制作该对话框的主要步骤如下:1在主对话框IDD_MY_FORM中将提示文本框“TODO:在这个对话框里设置表格控制。删除。2在主对话框I

16、DD_MY_FORM中放入各种需要的控件,如标签控件、编辑框控件、命令按钮控件,其对话框布局如图所示。图4.9 主对话框IDD_MY_FORM控件布局其中,各个控件的属性设置如表表所示。表4.2 标签对象的根本属性ID标题内容IDC_STATICCAPTION职工工资管理系统IDC_STATICNE年份IDC_STATICYF月份IDC_STATICZGBH职工编号IDC_STATICZGXM职工姓名IDC_STATICZGBM部门IDC_STATICJBGZ根本工资IDC_STATICJJ奖金IDC_STATICYJGZ业绩工资IDC_STATICJT津贴IDC_STATICGZBZ各种补助

17、IDC_STATICRDF水电费IDC_STATICFZOU房租IDC_STATICCX储蓄IDC_STATICHF会费IDC_STATICBX保险IDC_STATICYFHJ应发合计IDC_STATICKCHJ扣除合计IDC_STATICSFGZ实发工资表4.3 编辑框控件的根本属性和编辑内容ID编辑内容IDC_EDITNF年份IDC_EDITYF月份IDC_EDITZGBH职工编号IDC_EDITZGBM所在部门IDC_EDITZGXM职工姓名IDC_EDITJBGZ根本工资IDC_EDITJJ奖金IDC_EDITYJGZ业绩工资IDC_EDITJT津贴IDC_EDITGZBZ各种补助ID

18、C_EDITRDF水电费IDC_EDITFZOU房租IDC_EDITCX储蓄IDC_EDITHF会费IDC_EDITBX保险IDC_EDITYFHJ应发合计IDC_EDITKCHJ扣除合计IDC_EDITSFGZ实发工资表4.4 命令按钮对象的根本属性ID标题内容IDC_BUTIONFIRST|?-第一条IDC_BUTIONNEXT-?下一条IDC_BUTIONPREV?-前一条IDC_BUTIONLAST-?|最后一条IDC_BUTIONSUM执行统计IDC_RADIOADD增加记录IDC_RADIODELETE删除记录IDC_RADIOUPDATE刷新记录表4.5 分组控件对象的根本属性I

19、D标题IDC_STATICDATA工资数据处理IDC_STATICBROWSE工资数据浏览IDC_STATICADDDELETUPD增加与删除IDC_STATICCOUNT个人工资统计 为编辑框控件建立数据字段映射在对话框中的一切编辑框控件,均是用于进行数据处理和数据显示的,但首先我们应该为它们建立字段映射,即将创立的数据集中的每一个字段与一个编辑框进行“数据绑定。我们以其中的一个编辑框,即“年份编辑框为例,说明为编辑框与数据集中的字段建立映射关系的方法。为此进行如下操作:1在主对话框IDD_MY FORM中选取“年份编辑框控件。2用鼠标右键单击该对话框,出现一个快捷菜单。3在快捷菜单中单击“

20、建立类向导,出现类向导对话框。4在类向导对话框中将页面切换至Member Variables页面并设置类名为CmySet。该对话框列出了数据集的全部字段名、字段类型和字段的成员变量名称,但成员变量名是在创立数据源时自动生成的,往往不便于与编辑框建立映射关系,为此将全部成员变量名称删除,并重新定义字段的成员变量名称。重新定义后的字段变量名称如图所示。图4.10 重新定义的字段变量名称(5)在Classname列表中选择CmyView,出现为编辑框控件与字段成员变量建立消息映射的页面,如图所示。图 编辑框控件与字段变量映射页面(6)选中IDC_EDITNF(年份编辑)控件资源索引,再单击Add V

21、ariable按钮,出现变量选择列表框。在字段选择列表框中选择“年份成员变量,如图所示。图4.12 字段成员变量列表(7)单击OK按钮,即完成“年份编辑框与“年份字段成员变量的映射。采用相同的方法为全部编辑框控件建立消息映射,然后编译对话框,那么发现可以在编辑框中修改数据表中的记录。 为命令按钮增加函数并编制过程代码事实上,在前面我们已经在编辑框与数据集之间建立了一种映射关系,但处理数据的功能还不是很完善。为此我们需要用一些命令来完成对数据的操作,需要为命令按钮建立函数和编制过程代码。同样,在对话框中存在多个命令按钮,我们以“第一条记录命令按钮为例来说明建立函数与编制过程的方法。1.“第一条记

22、录命令按钮的过程代码1在对话框中选取“第一条记录命令按钮。2用鼠标右键单击该命令按钮,出现一个快捷菜单。3在快捷菜单中单击“建立类向导菜单项,出现一个消息映射的对话框。4在消息映射的对话框中选择Message Maps页面,选择消息类型为“ON_CLICKED并单击Add Function按钮,出现一个函数命令对话框,建议接受系统命名的函数名即可。5确认函数名后单击Edit Code按钮,出现代码编辑框,在代码编辑框中编辑命令按钮的代码,如下所示:这样,“第一条记录命令按钮的过程代码就编辑完成了。采用同样的方法,我们可以编辑其他命令按钮的过程代码。2“下一条记录命令按钮的过程代码3“前一条记录

23、命令按钮的过程代码4“最后一条记录命令按钮的过程代码5“增加记录选项按钮的过程代码6“删除记录选项按钮的过程代码7“刷新记录选项按钮的过程代码8“执行统计命令按钮的过程代码最后编译执行工程,检验对话框中的数据处理效果,如图所示。图4.13 对话框运行效果 资源文件分析在工程创立完成后,大家可以对已经创立的工程的一些文件进行阅读和分析。人们常说:软件=文档+代码,这一“等式几乎对于一切的开发平台都是适用的;这里的文档包括用户创立的文档和系统派生的文档两类,无论是用户创立的文档或是系统派生的文档,它们往往都是对系统开发的过程的“记录。因此,通过阅读这些“记录,不仅对VC+开发环境有了更深入的了解,

24、而且对整个系统的实现全过程也一清二楚。本小节分析两个文档,一个是工程实现文档,另一个是工程设置文档。1“工资管理系统工程实现文件工资管理系统实现文件记录了该工程创立的声明、编写的过程代码、资源的消息映射、数据集的创立和控件映射等等内容,工程实现文档往往是用户开发过程中编写最多的文档,一切的过程代码编制往往都是在工程实现文档中进行的。“工资管理系统工程实现文档的全部内容如下所示仅供大家在开发实践中参考,假设无必要,也可以略去对这局部的阅读:/工资管理系统View.cpp : implementation of the CMyView class# include “工资管理系统.h# inclu

25、de “工资管理系统# include “工资管理系统# include “工资管理系统# ifdef _DEBUG# define new DEBUG_NEW# undef THIS_FILEstatic char THIS_FILE = _FILE_;# endif/CMyViewIMPLEMENT_DYNCREATE (CMyView, CRecordView)BEGIN_MESSAGE_MAP (CMyView, CRecordView)/AFX_MSG_MAP (CMyView) ON_BN_CLICKED (IDC_BUTTONFIRST, OnButtonfirst)ON_BN_

26、CLICKED (IDC_BUTTONNEXT, OnButtonnext)ON_BN_CLICKED (IDC_BUTTONPREV, OnButtonprev)ON_BN_CLICKED (IDC_BUTTONLAST, OnButtonlast)ON_BN_CLICKED (IDC_RADIODD, OnRadiodd)ON_BN_CLICKED (IDC_RADIODELETE, OnRadelete)ON_BN_CLICKED (IDC_RADIOUPDATE, OnRadioupdate)ON_BN_CLICKED (IDC_BUTTONSUM, OnButtonsum)ON_BN

27、_CLICKED (IDC_RADIOEDIT, OnRadioedit)/AFX_MSG_MAP/Standard printing commandsON_COMMAND (ID_FILE_PRINT, CRecordView : : OnFilePrint)ON_COMMAND (ID_FILE_DIRECT, CRecordView : : OnFilePrint)ON_COMMAND (ID_FILE_PREVIEW, CRecordView : : OnFilePrieview)END_MESSAGE_MAP ()/ / / / / / / / / / / / / / / / / /

28、 / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /CMyView construction/destructionCMyView : : CMyView (): CRecordView (CMyView : : IDD)/AFX_DATA_INIT (CMyView)m_pSet = NULL;/ AFX_DATA_INIT/TODO: add construction code hereCMyView : : CMyView ()void CMyView : : DoDataExchange (CDataExc

29、hange* pDX)CRecordView : : DoDataExchange (pDX);/AFX_DATA_MAP (CMyView)DDX_FieldText (pDX, IDC_EDITNF, m_pSet - m_NF, m_pSet);DDX_FieldText (pDX, IDC_EDITYF, m_pSet - m_YF, m_pSet);DDX_FieldText (pDX, IDC_EDITZGBH, m_pSet - m_ZGBH, m_pSet);DDX_FieldText (pDX, IDC_EDITZGBM, m_pSet - m_BM, m_pSet);DDX

30、_FieldText (pDX, IDC_EDITZGXM, m_pSet - m_XM, m_pSet);DDX_FieldText (pDX, IDC_EDITJBGZ, m_pSet - m_JBGZ, m_pSet);DDX_FieldText (pDX, IDC_EDITJJ, m_pSet - m_JJ, m_pSet);DDX_FieldText (pDX, IDC_EDITSFGZ, m_pSet - m_SFGZ, m_pSet);DDX_FieldText (pDX, IDC_EDITYFHJ, m_pSet - m_YFS, m_pSet);DDX_FieldText (

31、pDX, IDC_EDITKCHJ, m_pSet - m_KCZJ, m_pSet);DDX_FieldText (pDX, IDC_EDITBX, m_pSet - m_NF, m_pSet);DDX_FieldText(pDX, IDC_EDITBX, m_pSet-m_BX, m_pSet);DDX_ FieldText(pDX, IDC_EDITCX, m_pSet-m_CX, m_pSet);DDX _FieldText(pDX, IDC _EDITFZOU, m_pSet-m_FZOU, m_pSet);DDX _FieldText(pDX, IDC _EDITGZBZ, m_p

32、Set-m_GZBZ, m_pSet);DDX _FieldText(pDX, IDC _EDITHF, m_pSet-m_HF, m_pSet);DDX _FieldText(pDX, IDC_ EDITJT, m_pSet-m_JT, m_pSet);DDX _FieldText(pDX, IDC_EDITRDF, m pSet-m_RDF, m pSet);DDX_FieldText(pDX, IDC_EDITYJGZ, m_pSet-m_YJGZ, m_pSet);/AFX_ DATA_ MAPBOOL CMyView : PreCreateWindow(CREATESTRUCT&/T

33、ODO: Modify the Window class or styles here by modifying/the CREATESTRUCT csreturn CRecordView : PreCreateWindow(cs);void CMyView:OnInitialUpdate()m_pSet = &GetDocument()-m_mySet;CRecordView : OnInitialUpdate();GetParentFrame () -RecalcLayout();Resize ParentToFit();/CMyView printingBOOL CMyView : On

34、PreparePrinting(CPrintInfo* pInfo)/default preparationreturn DoPreparePrinting(pInfo);void CMyView:OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/TODO: add extra initialization before printingvoid CMyView : OnBeginPrinting (CDC* /*pDC*/, CPrintInfo* /*pInfo*/)/TODO: add cleanup after printing/

35、 CMyView diagnostics# ifdef _DEBUGvoid CMyView : AssertValid () constCRecordView : AssertValid ();void CMyView : Dump (CDumpContext & sc) constCRecordView : Dump(dc);CMyDoc* CMyView : GetDocument () / non-debug version is inlineASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CMyDoc);Return (CMyDoc*)m_pDoc

36、ument;# endif /_DEBUG/CMyView database supportCRecordset* CMyView : OnGetRecordset()return m_pSet;/CMyView message handlers2“工资管理系统工程设置文档(Set.cpp)工程设置文档用来记录工程中对于头文件的声明设置、预定义变量、给变量赋初值、记录字段变量定义等,请参考如下内容:/工资管理系统:implementation of the CMySet class# include “工资管理系统h# include “工资管理系统Seth# ifdef _DEBUG# de

37、fine new DEBUG_NEW# undef THIS_FILEstatic char THIS FILE = _FILE_;#endif/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /CMySet implementationIMPLEMENT_DYNAMIC (CMySet, CRecordset)CMySet : : CMySet (CDatabase* pdb) : CRecordset (pdb)/AFX_FIELD_INIT(CMySet)m_BX = 0;m_BM = T();m_CX = 0;m_FZOU = 0;m_GZBZ = 0;m_HF = 0;m_JBGZ = 0;m_JJ = 0;m_JT = 0;m_KCZJ = 0;m_SFGZ = 0;m_RDF = 0;m_XM = _T();m_YJGZ = 0;m_YFS = 0;m_ NF = ;m_YF = ;m_ZGBH = 0;m_nFields = 19;/AFX_FIELD_INITm_nDefaultType = snapshot;CString

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论