个人记账本 - 副本.doc_第1页
个人记账本 - 副本.doc_第2页
个人记账本 - 副本.doc_第3页
个人记账本 - 副本.doc_第4页
个人记账本 - 副本.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

前 言 手机自诞生以来不过数十年光景 但其商用及其更新换代的速度却让人难 以置信 在谷歌 Android 大潮席卷市场 苹果 iOS 系统风靡全球的现在 以往 对于虚拟现实 增强现实 高速无线网络 更绚丽的屏幕 更强悍的图形芯片 以及多核处理器的畅想早已不再遥远 完全集成在一部小小的智能设备当中 在移动互联网大潮的侵袭下 想必未来的智能手机市场还将掀起一场智能化的 革命 手机行业快速的变化需求对手机设计行业提出了更新的要求 智能手机的已经融入我们的生活当中 社交我们有 QQ 微信 影音我们有 百度影音 优酷 土豆 金融我们有支付宝 微信支付 网购我们有淘宝 京 东 各色各样应用占满了手机存储空间 李嘉诚说过 30 岁以后 投资理财的重要性逐渐提升 中年时赚多少钱 已经不重要 反而是如何管钱比较重要 如今 随着生活水平的提高 个人 投资理财在当今社会变得越来越重要 很多人没有记账的习惯 就会导致钱花 完了到头来却不知道花在了什么地方 而使用记账 APP 虽然不能帮我们省钱 却能让我们知道自己的钱花在了什么地方 久而久之 就会对自己的消费情况 有个了解 学会更好的调配自己的资金 避免乱花钱 花冤枉钱的情况 本文着重介绍 Android 记账类应用 个人记账本 它拥有记账 钱包管 理 报表生成 账本分类等功能 相比于同类产品 操作简单 界面清晰 更 加简单易用 1 绪论 1 1 研究背景 Android 系统是基于 Linux 的智能操作系统 2007 年 11 月 Google 与 84 家软件开发商 硬件制造商及电信运营商组建开发手机联盟 共同研发 改良 Android 系统 随后 Google 以 Apache 开源许可证的授权方式 发布了 Android 的源代码 也就是说 Android 系统是完整公开并且免费的 Android 系统的快 速发展 也与它的公开免费不无关系 随着 Android 系统的迅猛发展 它已成为全球范围内具有广泛影响力的操 作系统 它不仅仅是一款手机操作系统 它还广泛的被应用于平板电脑 电视 数码相机 可佩戴设备 这也造就了目前 Android 开发人才需求的快速增长 从 2007 年 11 月 5 日谷歌公司正式向外界展示了这款名为 Android 的操作 系统至今 Android 已经经历了多个版本的更新 如今 Android 7 0 的相关新 闻也层出不穷 这意味着新版本即将到来 1 2 主要技术 1 2 1 Eclipse 集成开发环境 Eclipse 是著名的跨平台的自由集成开发环境 IDE 最初主要用来 Java 语言开发 通过安装不同的插件 Eclipse 可以支持不同的计算机语言 比如 Python 和 C Eclipse 本身只是一个框架平台 但是有了众多插件的支持 使 得 Eclipse 具有很高的灵活性 许多软件开发商都以 Eclipse 为框架开发自己的 IDE Eclipse 的插件机制是轻型软件组件化架构 Eclipse 所有的附加功能都是由 插件提供的 例如支持 Java 以外的其他语言 已有的分离的插件已经能够支持 Ruby Python Perl C C telnet 和数据库开发 插件架构能够支持将任意 的扩展加入到现有环境中 而决不仅仅限于支持各种编程语言 Eclipse 的设计思想是 一切皆插件 Eclipse 核心很小 其它所有功能都以 插件的形式附加于 Eclipse 核心之上 1 2 2 Android 技术 Android 是基于 Linux 的自由且开放源代码的操作系统 主要用于便携设备 如平板电脑 智能手机 其系统架构采用了分层的架构 从底层到高层分别是 Linux 内核层 系统运行库层 应用程序框架层和应用程序层 Android 开发四大组件分别是 活动 Activity 用于表现功能 服务 Service 后台运行服务 不提供界面呈现 内容提供商 Content Provider 支持在多个应用中存储和读取数据 相当于数据库 广播接收器 BroadcastReceiver 用于接收广播 1 2 3 SQLite SQLite 是一款轻型的 遵守 ACID 的关联式数据库管理系统 它的设计目 标是嵌入式的 而且目前已经有许多嵌入式产品在使用它 在嵌入式设备有限 的资源中 它仅需几百 K 的内存空间 它支持 Windows Linux Unix 等主流操作 系统 同时还能够跟很多主流的程序语言相结合 比如 Java C PHP 等 还有 ODBC 接口 比起 PostgreSQL Mysql 这样的著名数据库管理系统来讲 它的处理速度毫不逊色 1 3 论文的主要研究内容 本课题将实现一个 Android 平台的记账应用 它为手机用户提供了丰富的 功能 便于管理生活中一些理财的问题 具体的研究内容如下 1 介绍实现系统的主要技术 包括 Android 技术 SQLite 数据库 2 使用 Android 技术开发记账软件 3 分模块实现该软件的每个子模块和 UI 交互 1 4 本章小结 本章简要介绍了本次课题研究中应用的主要技术以及开发工具 也就是为 什么要选择它们的原因 其中包括开发所使用的 Android 技术以及用于建立数 据库的 SQLite 数据库管理系统 在接下来的开发中均会使用到这些技术与工具 2 分析与设计 2 1 需求分析 在软件生命周期中 其他阶段都是面向软件技术方面的 只有本阶段是面 向用户的 需求分析是对用户的业务活动进行分析的 以便确定在用户的业务 环境中软件系统需要 做什么 软件需求包括两部分 功能性需求和非功能性需求 虽然功能性需求是对 软件系统的一项基本需求 但却并不是唯一的需求 除功能性需求外 软件质 量属性的特性 称为系统的非功能性需求 这些特性包括 系统的易用性 执 行速度 可靠性 处理异常情况的能力与方式等 在决定系统的成功或失败的 因素中 满足非功能性需求往往比满足功能性需求更为重要 有研究表明 客户对系统的不满意很多因素是因为设计者没有与客户进行 良好的沟通而造成的 所以编写需求分析报告要求无歧义性 完整性 可验证 性 一致性 可追踪性 运行和维护阶段的可使用性 下面是在我们经过调 研后得出的客户需求 1 明细界面 显示当前年 月 周 日的收支情况 提供 流水明细 记一笔 按钮进入对应的功能模块 2 钱包界面 管理用户的账户 如现金 支付宝 借记卡 信用卡 查 询剩余金额 还可进行转账功能 3 报表界面 按时间 分类型地对用户的收支情况进行统计分析 4 更多界面 可以设置软件密码 只有密码正确了才能进入该系统 否 则无法操作账本内的数据 还有清空数据的功能 2 2 系统整体设计 根据以上的分析 该软件可按功能集合进行划分 整体结构如图 2 1 所示 明细 钱包 报表 更多 个人记账 本 月收支 日收支 周收支 年收支 记一笔 流水明细 钱包管理 转账 添加账户 显示总余额 类型搜索 时间搜索 设置密码 清空数据 图 2 1 系统结构图 2 3 数据库设计 2 3 1 账本数据库 根据系统设计的分析 本系统需要钱包管理 账本管理 成员管理 收支 类型管理 收支明细管理 密码管理这 6 张表 账户管理表 需要记录账户名称以及余额 表 2 1 钱包管理数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 acountTEXT账户名称 balanceREAL余额 表 2 2 账本管理数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 booksTEXT账本名称 表 2 3 成员管理数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 memberTEXT成员名称 表 2 4 收支类型数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 typeINTEGER类型名称 books idINTEGER所属的账本 ID in outTEXT属于支出 2 或收入 1 表 2 5 收支明细数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 in outINTEGER属于支出 2 或收入 1 type idINTEGER类型 ID moneyREAL金额 date timeTEXT日期 member idINTEGER成员 ID account idINTEGER账户 ID books idINTEGER账本 ID 表 2 6 密码管理数据表 属性属性数据类型数据类型说明说明 idINTEGER自动增加的主键 passTEXT密码 2 4 本章小结 本章首先对系统进行了需求分析 将客户端分为四个大模块来进行管理 分别是明细 钱包 报表 更多 从四大模块入手 再到各个小功能 逐一实 现 同时根据各功能模块的需求 分析哪些数据是需要存储的 从而对数据库 进行初步的设计 3 系统的实现 3 1 系统功能模块实现 MainActivity 作为整个程序的入口 采用 Fragment 来管理明细 钱包 报表 更多四个模块 同时将已经建立好的数据库文件导入 以供存储查询使用 3 1 1 明细模块 根据上面的分析 在明细界面需要显示年 月 周 日的收支情况 以及 需要提供切换账本 记一笔 查看流水明细三个按钮 1 显示收支情况 当 APP 启动的时候 默认进入明细界面 此时需要 去查询收支情况 如下代码是查询月收入的语句 dbHelper queryMonth DateUtils ParseDateToString calendar getTime yyyy MM 1 booksId 其中 DateUtils 的 ParseDateToString 是将 Date 类型的日期转化为指定格式 的 String 类型 因为 queryMonth 方法的日期参数 即第一个参数 类型被定义 为 String 类型 所以需要统一 第二个参数则是代表收支 1 为收入 2 为支出 第三个参数是账本 ID 使用这个方法 就查询不同账本在不同 月份的收支情况了 其他的年收支 周收支 日收支与此相似 不再赘述 2 切换账本 我们实现了一个自定义的弹窗类 AlertDialogText 它可以 帮助我们显示想要的展示的内容 首先 需要查询数据库中有多少本账本可以 给用户选择 于是 我们执行了数据库查询 booksList dbHelper queryBooksList queryBooksList 方法将查询到的数据赋值给了 booksList 然后设置 Adapter Adapter 规定了每一个 item 的样式 adapterBooks new QuickAdapter getActivity R layout item text view protected void convert BaseAdapterHelper helper Books item helper setText R id tv name item books 接着为 adapater 添加数据源 adapterBooks addAll booksList Adapter 已经设置完毕 可以进行展示了 我们为账本按钮添加点击事件 在点击事件中弹出一个窗口进行展示 tvBooks setOnClickListener clickListener private OnClickListener clickListener new OnClickListener Override public void onClick View v switch v getId case R id tv books alertDialogText new AlertDialogText getActivity 选择账本 alertDialogText setGoneButton alertDialogText setListViewAdapter adapterBooks itemClickListener null break 实现一个弹窗展示就完成了 当用户点击账本切换按钮的时候就会弹出一 个窗口 显示了当前所有账本 用户即可点击切换 3 记一笔 记一笔是系统中一个重要的功能 无论是想要记录收入状况 还是支出状况都可以在此完成 可以设置时间 收入或支出 金额 钱包 成 员 类型 对于成员和类型 系统默认提供一些标签 如果用户觉得没有合适 的 还可以添加自定义标签 类型选择 添加 删除等操作 使用了一个 GridView 直接展示在界面底部 而非前面使用到的弹出窗口 首先查询所有类型 再为设置好每一行的样式 然后为 GridView 设置 Adapter 设置点击事件与长按监听事件 点击的时候即 选中当前类型 按住 item 的时候会弹出删除确认窗口 typeList dbHelper queryTypeList newDetail books id 1 adapterType new QuickAdapter this R layout item text view Override protected void convert BaseAdapterHelper helper Type item helper setText R id tv name item type adapterType addAll typeList gridView setAdapter adapterType gridView setOnItemClickListener itemClickListener gridView setOnItemLongClickListener itemLongClickListener 以下是删除功能实现代码 先弹出一个窗口询问用户是否确认要删除 避 免误操作造成了不必要的损失 当用户点击确认按钮即确认要删除当前数据 执行后给出成功或失败的提示 告诉用户结果 private OnItemLongClickListener itemLongClickListener new OnItemLongClickListener Override public boolean onItemLongClick AdapterView parent View view int position long id final int pos position if parent getAdapter adapterType alertDialogText new AlertDialogText AddDetailActivity this 提示 是否要删除类型 adapterType getItem pos type alertDialogText setButtonConfirm 确定 new OnClickListener Override public void onClick View v if dbHelper deleteType adapterType getItem pos id 0 typeList remove adapterType getItem pos adapterType remove adapterType getItem pos alertDialogText dismiss Toast makeText AddDetailActivity this 类型删除成功 Toast LENGTH LONG show else Toast makeText AddDetailActivity this 类型删除失败 Toast LENGTH LONG show return true 接下来是添加自定义标签的代码 只需要获取用户输入的名称 并且添加 到数据库就可以了 当然 还需要输入内容不能空 添加成功后还要刷新 Adapter if typeList indexOf adapterType getItem i typeList size 1 alertDialogText new AlertDialogText AddDetailActivity this 添加类型 alertDialogText setEditTextMsg 10 alertDialogText setButtonConfirm 确定 new OnClickListener Override public void onClick View v if alertDialogText getEditTextMsg null alertDialogText getEditTextMsg length 0 Toast makeText AddDetailActivity this 名称不能为空 Toast LENGTH LONG show return dbHelper insertType alertDialogText getEditTextMsg newDetail books id newDetail in out typeList dbHelper queryTypeList newDetail books id newDetail in out typeList add addT adapterType clear adapterType addAll typeList Toast makeText AddDetailActivity this 类型添加成功 Toast LENGTH LONG show alertDialogText dismiss return 4 流水明细 该界面显示了用户的所有记录 可以按时间查询 使用 ListView 展示 如果发现某条记录写错了 也可进行删除 重新记录 3 1 2 钱包模块 在这个界面所要展示的则是一个账户列表 其中显示账户名称和余额 所 以使用 ListView 来作为显示的控件 第一步 查询所有账户资料 accountList dbHelpser queryAccountList 设置 Adapter 里面除了设置要显示的数据之外 还为每一行设置一个颜色 背景 而颜色则是随机的 用 random 实现 adapterAccount new QuickAdapter getActivity R layout item account Override protected void convert BaseAdapterHelper helper Account item helper setBackgroundColor R id layout root getResources getColor colors random nextInt max max min 1 min helper setText R id tv account name item acount helper setText R id tv account blance DoubleUtils getFormatTwo item balance 3 1 3 报表模块 报表功能实现按收支类型查询指定时间内的收支状况 给出百分比柱状图 直接展示了用户在各类型上的收支 同时也统计出所有金额总和 百分比柱状 图是用 ProgressBar 来实现的 例如查询一个月内的收入报表 那么就查询出该 月的所有类型的收入金额 进行统计 将某类型的金额除以总金额 得出条状 图的百分比 根据账本 收入或支出 开始时间 结束时间四个条件来查询总金额 sumMoney dbHelper queryReportSumMoney DetailFragment booksId inOut startDate endDate 接着设置 Adapter adapterReport new QuickAdapter getActivity R layout item report form Override protected void convert BaseAdapterHelper helper Report item helper setText R id tv name item type helper setText R id tv money DoubleUtils getFormatTwo item money helper setText R id tv proportion DoubleUtils getFormatOne item money sumMoney 100 设置条状图百分比 helper setProgress R id progressBar int item money sumMoney 100 设置文字颜色 收入为红 支出为绿 if selectPos 0 helper setTextColor R id tv money getResources getColor R color rule red dark else helper setTextColor R id tv money getResources getColor R color rule green light 3 1 4 更多模块 1 设置密码 既然是一个账本 有时为了避免他人查看或操作自己的账 本 就需要密码功能的存在了 一旦打开密码功能 那么用户就需要输入正确 的密码才能进入程序的首页 才能继续才做 密码错误是无法进入的 密码设 定长度为 4 当输入框的内容长度等于 4 的时候会自动结束输入 以下是设置 密码功能实现 if type equals set if tvTip getText toString equals 请输入 4 位密码 passFirst edPass getText toString tvTip setText 请再次输入密码 edPass setText return if tvTip getText toString equals 请再次输入密码 if passFirst equals edPass getText toString 两次密码相同 存入数据库 设置成功 Toast makeText PasswordActivity this 密码设置成功 Toast LENGTH LONG show dbHelper insertPass passFirst finishActivity else 两次输入不同则要求重新输入 Toast makeText PasswordActivity this 密码设置失败 Toast LENGTH LONG show tvTip setText 请输入 4 位密码 edPass setText passFirst 设置好密码之后 每次启动程序就需要验证了 当密码正确的时候则关闭 密码验证界面 错误则给出提示 让用户重新输入 if type equals check Pass pass dbHelper queryPass if pass null else Toast makeText PasswordActivity this 密码错误 请重新输入 Toast LENGTH LONG show edPass setText 2 清空数据 该功能解决的问题是 当用户想初始化系统数据的时候可 以方便地解决 无需到手机系统的程序设置里面去情况数据 而且普通手机用 户也不一定知道可以这么做 清空数据的实现很简单 只要把数据库数据删除 就可以了 public boolean deleteDatabase Context context return context deleteDatabase data data context getPackageName databases DBNAME 3 2 数据库访问的实现 现在的主流移动设备如 iPhone Android 等都是使用 SQLite 作为复杂数据 的存储引擎 对于 Android 平台而言 系统提供了丰富的 API 来供开发人员操 作 SQLite 帮助开发人员完成对数据的存取 本系统的数据库是在电脑上创建 并初始化默认数据的 所以需要把该数 据库文件导入到项目中 当程序第一次运行的时候 会判断项目目录下存不存 在数据库文件 如不存在 则导入到项目中 如果存在 则无需导入 以下是 实现代码 InputStream is this context getResources openRawResource DB ID FileOutputStream fos new FileOutputStream dbfile byte buffer new byte BUFFER SIZE int count 0 while count is read buffer 0 fos write buffer 0 count fos close is close Android 系统提供了一个管理数据库的工具类 SQLiteOpenHelper 利用该 类 我们可以对数据库的创建 更新以及增删改查进行管理 通过继承 SQLiteOpenHelper 可以打造我们需要的功能 利用 SQLiteDatabase 对象的 rawQuery insert update delete 等方法来对数据进程查询 添加 更 新和删除等操作 如要查询某个账户的余额 public double queryAccountMoney int id double money 0 Cursor cursor sqlDb rawQuery select balance from Account class getSimpleName toLowerCase where id id null while cursor moveToNext money cursor getDouble 0 cursor close return money 此方法将会从 account 表查询 id 等于指定值的账户余额 balance 并返回结果 在查询结束时要记得关闭 Cursor 以防内存内漏 看完了查询功能之后 再来看插入数据的方法 以下方法是新增一条类型 的数据 即自定义类型标签的时候所调用的方法 public long insertType String type int booksId int inOut ContentValues contentValues new ContentValues contentValues put type type contentValues put in out inOut contentValues put books id booksId return sqlDb insert Type class getSimpleName toLowerCase null contentValues 还有删除与更新的方法 public int deleteMember int id return sqlDb delete Member class getSimpleName toLowerCase id new String String valueOf id public int updateAccountMoney int id double balacne ContentValues values new ContentValues values put balance balacne return sqlDb update Account class getSimpleName toLowerCase values id new String String valueOf id 3 3 文件结构和功能 3 3 1 项目结构 图 3 1 客户端文件结构 表 3 1 客户端文件对应功能表 包名包名文件名文件名说明说明 AddDetailActivity java添加账本记录界面 DayToDayActivity java流水明细界面 MainActivity java程序入口 PasswordActivity java设置密码界面 com iaccount activity TransferActivity java转账界面 BaseActivity javaActivity 基类 BaseFragment javaFragment 基类 com iaccount base BaseFragmentActivity javaFragmentActivity 基类 DBHelper java数据库操作工具类 com iaccount db InputDB java导入数据库工具类 AccountFragment java钱包界面 com iaccount fragment DetailFragment java明细界面 MoreFragment java更多界面 ReportFormFragment java报表界面 Account java账户实体类 Books java账本实体类 DayToDay java流水明细实体类 Detail java账本记录实体类 Member java成员实体类 Pass java密码实体类 Report java报表实体类 com iaccount model Type java类型实体类 AlertDialogText java弹窗工具类 AppManager javaActivity 管理工具类 DateUtils java日期工具类 DensityUtils java屏幕参数工具类 DoubleUtils javaDouble 工具类 L javaLog 工具类 com iaccount utils StringUtils javaString 工具类 3 4 软件界面 通过对系统的功能分析 成功将系统实现 在这给出部分运行界面 图 3 2 明细界面 图 3 3 钱包界面 图 3 4 报表界面 图 3 5 更多界面 图 3 6 记一笔界面 图 3 7 流水明细界面 图 3 8 验证密码界面 图 3 9 设置 确认密码界面 3 5 本章小结 本章详细叙述了系统开发的过程 根据上一章的分析与设计 采用 Eclipse 作为项目的开发平台 采用 SQLite 数据库 对明细 钱包 报表 密码 清空 数据 转账 记一笔 流水明细等功能逐一实现 4 系统测试 4 1 首页测试 打开应用程序可以看到首页显示有年 月 周 日的收支情况还有可以切 换当前所属账本的功能 当前的数据是生活账本的月收入 36 元 月支出 9 元 结余 27 元 如图 4 1 点击切换账本 出现选择窗 如图 4 2 例如切换到旅 游账本 可以看到 收支情况都为 0 因为我们还没添加任何记录 如图 4 3 图 4 1 生活账本 图 4 2 选择账本 图 4 3 旅游账本 4 2 记一笔测试 接下来我们就来为旅游账本新增一条收入记录和支出记录 点击 记一笔 按钮 出 现添加界面 默认处于收入状态 如图 4 4 时间默认为当前时间 如果要添加的记录不 是当前的时间 可以点击设置 如图 4 5 接着选择钱包 成员 如图 4 6 4 7 再选择好 收入的类型 我们选择公司报销 如图 4 8 最后设置金额 输入的数字可以是小数 且 有合法性验证 即不能出现两个小数点 不能输入以 0 开始的非小数数字 也不能两个 0 开始的数字 输入 36 元并成功保存数据 保存后会弹出一个窗口 可以选择关闭当前界面 或者选择再记一笔 则留在当前界面 如图 4 9 我们选择关闭 则回到主界面 此时可 以看到 当前的旅游账本有 36 元的收入 如图 4 10 图 4 4 默认状态 图 4 5 选择时间 图 4 6 选择钱包账户 图 4 7 选择成员 图 4 8 选择收入类型 图 4 9 保存成功 图 4 10 保存成功之后的首页数据 在添加记录的时候 如果在成员 类型提供的默认标签找不到合适的 还可以添加自 定义标签 添加的时候名称不能为空 如图 4 11 添加一个名为 家里资助 的收入类型 添加成功后则显示在列表中 如图 4 12 如果对某个标签不满意 可以按住删除 如图 4 13 图 4 11 添加类型名称不能为空 图 4 12 添加成功 图 4 13 删除标签 4 3 流水明细测试 现生活账本中有 4 条记录 点击流水明细 出现了一个列表 展示了在某段时间内的 收支情况 默认是显示当前月的收支情况 如图 4 14 同时也可以根据用户的需要自己选 择时间段 例如我们改为从 2 月开始 可以看到列表多了一条记录 如图 4 15 如果对某 条记录不满意 想要删除 只需按住该条记录 再确认删除即可 图 4 14 三月记录 图 4 15 二月到三月记录 4 4 钱包功能测试 点击钱包界面 可以看到已经有了一些账户 如现金 支付宝 微信 借记卡 信用 卡 其中现金账户的余额有 326 元 接下来设置支付宝的金额 点击弹出选择菜单 选择 设置金额 如图 4 16 设置金额为 300 元 当前这里输入的金额也是不能为空的 如 图 4 17 完成后即可看到支付宝账户的余额变为 300 元 总余额为 626 元 如图 4 18 图 4 16 选择菜单 图 4 17 设置金额 图 4 18 设置成功 接着看转账功能 该功能模拟各账户之间的转账 选择转出账户与转入账户并设置好 转账金额 如从现金账户转 6 元到支付宝账户 如图 4 19 转账成功后回到钱包界面即可 看到金额的变化 如图 4 20 可与

温馨提示

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

评论

0/150

提交评论