




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 购物系统的需求分析和类划分购物系统本身是一个十分复杂的系统, 有很多细节问题如果深究会更加复杂, 并且一般购物系统都是网页类型的, 要有一个友好的界面,但是作为一个简单项目,该项目只是为了给JAVA初学者介绍一下开发的基本思想, 以及面向对象时应该怎样去设计框架和实现流程,所以只 是基于 eclipse 开发的一个简单的项目, 并没有 GUI的参与, 并且很多 细节问题作为后续研究, 整体的设计比较简单,但是足以说明很多设计 思想和设计理念,那么下面对基本的需求进行分析。作为一个简单的购物系统, 至少需要具备以下功能 (这些功能分 布在不同级的菜单中):(1)用户登录功能、用户账号密码修
2、改功能,暂时不提供注册 功能;(2)用户成功登录后,需要具备客户信息的管理功能、购物结 算功能以及一些抽奖活动等;(3)客户信息管理功能下面又可以分出很多功能,比如说:查 询、修改、增加等;(4)购物结算功能下面又可以分出很多功能,比如说:商品选 购、付款、账单等;(5)抽奖活动下面又可以设计出多种的抽奖形式,从而进一步 划分为许多新的功能模块。(6)在一级菜单中要提供退出系统的功能,在二级菜单中要提 供注销登录的功能,其他级菜单都要能够返回上一级菜单。上面的这些功能都是一些比较基本的功能, 那么如果按照面向流 程的思想来设计, 就会划分很多功能模块, 然后按照流程一步步走就行, 但是现在我们
3、采用面向对象的思想来设计, 那么应该如何考虑设计框架 呢?面向对象的主要思想就是将一些需求抽象为许多类, 然后建立这些 类之间的联系,通过不同类之间的协同合作,就可以实现所有的功能。所以,现在的主要任务就是如何合理地抽象出这些类, 以及这些类要实 现什么功能, 类之间的联系又是什么?下面通过本次设计的结构对这一 过程进行分析。( 1)StartSMS 类:用于系统的启动。我们的系统肯定需要一个 启动类,这个类里面包含了 main 方法,用来启动这个系统,这个类是 最顶层的,所以不能牵涉太多底层的细节实现,只需要实现一些顶层的 基本流程就行,主要还是要调用底层其他类的一些方法来实现功能。( 2)
4、Data 类:用来存放我们的所有数据信息,本次设计主要存 放的是已经预存的一些可供购买的商品信息和已经注册的会员信息。 为 什么需要这个类呢?大家想一想, 在面向对象的设计中,我们的数据比 较多,肯定不能零散地到处定义、任意修改,这样会使得系统的聚合程 度太低,容易出现很多错误,并且难以进行后期功能扩展和错误修改, 所以我们要把用到的一些公有的数据进行归类,然后放在一个类中,并 且在该类中提供对这些数据进行操作的方法。(3)Menu类:用于显示及处理各级菜单。既然我们设计的是一 个购物系统,那么即使再简单,也需要一个基本的菜单,用来和用户进 行交互,由于菜单的比较多,并且各级菜单之间层层相连,
5、所以我们需 要对菜单进行统一管理,故而出现了菜单类。注意,这里的菜单只是一 些顶层的菜单显示和基本的功能调用, 具体底层的算法还是需要更加底 层的类来实现的4)Manager 类:用于存储用户的账户和密码。 既然我们需要用户登录,那么肯定需要一个单独的类来管理用户的账户和密码,从而使 系统的独立性更强一些。 本次设计的用户只有一个账户和密码,只允许 修改账户和密码,但是不允许注册。(5)VerifyEqual 类:用于验证登录信息。 这个类相当于是把登 录这项功能抽象成了一个类, 这个实现其实并不是非常必要, 但是为了 使得系统功能划分更加清晰, 所以设计了此类,用来对登录信息和已有 的账户和
6、密码进行校验,从而给出校验结果。(6)CustManagement类:用于客户信息的管理,该类实现了底 层的一些功能,比如说查询、修改、增加等。当我们进入到客户信息管 理这个菜单的时候, 肯定需要对客户信息进行许多操作,为了方便管理 这些操作,并考虑到后续的扩展性,这里把客户信息管理的所有功能都 抽象出来,放在此类中, 上一级菜单通过调用该类中的方法实现客户信 息的管理。并且(7)Pay 类:用于处理购物和结算操作。 该类和上面的类存在的 原理基本一致,当客户选择进行购物的时候,肯定要有很多操作,比如 说买什么、多少钱、付款、找零等,这些功能比较零碎,所以我们对其 进行集中管理,从而抽象出该类
7、, 对购物和结算的菜单选项的底层算法 进行实现,上一级菜单通过调用该类的方法实现购物和结算功能, 可以返回上一级菜单。( 8)GiftManagement 类:用于处理抽奖活动的相关功能。这个 类和( 6)、( 7)中的类存在的理由基本一致,该类对抽奖活动进行了 统一管理,上一级菜单只需要通过调用该类的方法就可以实现抽奖的功 能。( 9)Gift 类:用于管理礼物。既然设计了抽奖环节,那么肯定 需要礼物,那么我们会给出什么样的礼物呢, 我们总不能每一样礼物都 详细列出来吧,这样十分冗余,也很麻烦,所以我们干脆抽象出一个礼 物类,把礼物的一些属性:礼物名称和价格等保存成该类的成员变量, 然后就可
8、以很方便的管理该类, 需要什么样的礼物就直接新建一个礼物 对象,然后对该对象的属性进行修改和管理即可, 这样的实现类似于一 个接口,但是又和接口完全不一样,功能差不多。总之, 上面的类都是经过一些功能模块划分后抽象出来的, 有些 地方也并不一定合理,主要还是需要看需求, 根据不同的需求制定不同 的方案。在这里,我想就” Gift 类“再强调一点,这个类的设计十分符 合面向对象的思想,举个例子来看,如果购物系统中需要很多礼物,比 如手机、电脑、移动电源等,那么如果我们一个个写这些礼物,会使得 系统代码十分冗余, 因为礼物的属性基本一样,所以我们就可以抽象成 一个类, 从而在需要什么礼物的时候只定
9、义一个对象, 然后赋予一定的 属性即可,比如需要手机、电脑,那么我们只需要 new 一个 Gift 类的 对象,然后在需要手机的时候设置其属性为手机, 在需要电脑的时候设 置其属性为电脑, 需要什么设置什么即可,这样就使得我们的代码得到了简化,也使得结构比较清晰。在更为复杂的系统中,其实礼物用接口 来实现更为合理, 这样就可以根据该接口实现不同的礼物类, 从而满足 不同的需求,就类似于我们的电脑上的 USB接口,只需要这个接口,我 们就可以插上很多各种各样的外围设备,道理差不多。2. 购物系统的类之间的关系和流程(用图示法表示)下图是我用 Microsoft Office Visio 2003
10、画图工具画出的这 9个类之间的关系。从上图中可以清晰地看出来各类之间的关系, 大致关系和流程如下所述:(1)StartSMS 类是启动类, 内含 main 方法, 这个类里面定义了 VerifyEqual 类和 Data 类的对象,用来存储数据和验证信息, 同时 Data 类中包含了 Manager 类,用来存储预存的用户账号信息,然后在 main 方法中通过一定的逻辑, 去调用 Menu类中的 showLoginMenu() 方法,用 于处理一级菜单 - 登录修改流程;( 2)如果登录成功,就调用 Menu类中的 showMainMenu()方法, 用于处理二级菜单 - 购物系统的主流程,如
11、果登录失败 3 次,就直接 退出系统;(3)在 Menu类中的 showMainMenu()方法中, 通过选择不同的二 级菜单选项,从而调用 Menu类中的 showCustMMenu()方法来处理客户信 息管理流程或者调用 Menu类中的 showSendMenu()方法来处理抽奖活动 流程,亦或者调用 Pay 类中的 calcPrice() 方法来处理购物结算流程;(4) 如果选择了二级菜单中的客户信息管理选项,那么就会调 用 Menu类中的 showCustMMenu()方法,这个方法会调用 CustManagement 类中的各种方法,用以处理客户信息管理的不同操作;(5) 如果选择了
12、二级菜单中的购物结算选项, 那么就会调用 Pay 类中的 calcPrice() 方法,从而处理购物结算的流程,注意在 Pay 类中 的 getDiscount() 方法是用来根据客户会员信息来计算打折率的;6)如果选择了二级菜单中的真情回馈选项,即抽奖活动,那么就会调用 Menu类中的 showSendMenu()方法,这个方法会调用GiftManagement 类中的各种方法,用以处理抽奖活动的不同操作;注意到在 CustManagement类和 GiftManagement 类中都有一个returnLastMenu() 方法,该方法是用来返回上一级菜单使用的。3. 代码实现需要说明的一点
13、是这些代码都应该放在 cn.itcast 包下。3.1 StartSMS 类java view plaincopy1.2.3.4.5.该类是这个系统的主方法类,用于启动购物系统package cn.itcast; import java.util.Scanner; /*6.author7.8.*/9.publicclassStartSMS10./*11.空构造方法12.13.*/14.publicStartSMS() 15.16./*17.系统主方法18.19.param a20.*/22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.4
14、0.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62./ 创建已有的数据类的对象,并初始化已有的商品信息和顾客信息Data data = new Data();data.initial();/ 创建菜单类的对象Menu menu = new Menu();/ 这里将初始化的已有数据信息送给了菜单对象menu.setData(data.goodsName,data.goodsPrice,data.custNo,data.custBirth,data.custScore);/ 显示一级菜单,即登录界面menu.sho
15、wLoginMenu();/ 该标志用来判断是否发生了系统操作错误, 当操作不当的时候 flag 为假, 从而退出系统, 默 认为无错误boolean flag = true;/ 处理整个系统的流程do / 发生操作错误,退出系统if (!flag)break;/ 创建验证用户登录的账户和密码是否正确的类的对象,这里只创建对象,并没有执行验证方法VerifyEqual verifyequal = new VerifyEqual();/ 输入一级菜单中的选择Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();/ 根
16、据用户对一级菜单的选择做出不同的响应,注意这里就是经典的 switch-case 的用法 switch (i) case 1: / 用户选择 " 登录系统 "/ 定义计数器,表示用户最多只能尝试 3 次,3 次输入错误直接退出系统int j = 3;/ 处理登录系统的流程do if (verifyequal.verify(data.manager.username,data.manager.password) / 用户登录成功,显示购物二级菜单!menu.showMainMenu();break;if (j != 1) / 用户输入有误,还没有达到 3 次,允许重新输入63
17、.System.out.println( "n 用户名和密码不匹配,请重新输入: ");64. else 65./ 3 次尝试结束,设置退出标志 , 并退出 do-while 循环66.System.out.println( "n 您没有权限进入系统!谢谢! ");67.flag = false ;68.break;69.70./ 每输入一次将计数器减 1,用于表示已经尝试了多少次71.j-;72. while (true );73.break;74.case2: / 用户选择 " 更改管理员信息 "75.if (verifyequa
18、l.verify(data.manager.username,76.data.manager.password) 77./ 输入新信息前要先验证原来的信息,此处表示已经验证成功78.System.out.print( " 请输入新的用户名: ");79.");data.manager.username = scanner.next();80.System.out.print( " 请输入新的密码:81.");data.manager.password = scanner.next();82.System.out.println( "
19、用户名和密码已更改! ");83./ 信息更改成功,选择下一步的操作84.System.out.println( "n 请选择,输入数字: ");85. else 86./ 信息验证失败,设置退出标志87.System.out.println(" 抱歉,你没有权限修改! ");88.flag = false ;89.90.break;91.case3: / 用户选择 " 退出"92.System.out.println( " 谢谢您的使用! ");93.System.exit( 0);94.break;9
20、5.default: / 一级菜单输入错误,需要重新选择96.System.out.print( "n 输入有误!请重新选择,输入数字 : ");97. break;98. 99. while (flag);100. 101.3.2 Data 类java view plaincopy1.packagecn.itcast;2./*3.* 存放购物系统的初始化数据的数据类,该类只是存放了已有的商品信息和顾客信息4.5.* author6.7.*/8.publicclassData 9./*10.默认构造方法,初始化变量,由于都是数组对象或类对象,所以都需要采用11.12.*/1
21、3.public Data() 14.goodsName = new String 50 ;15.goodsPrice = newdouble 50 ;16.custNo = newint 100;17.custBirth = new String 100;18.custScore = newint 100 ;19.manager = new Manager() ;20.21./*22.初始化该类的数据23.24.*/25.publicvoidinitial() 26./*=添加了初始的 7 种商品信息 =*/27.goodsName 0 = "addidas 运动鞋 "2
22、8.goodsPrice 0 = 880D;29.goodsName 1 = "Kappa 网球裙 "30.goodsPrice 1 = 200D;31.goodsName 2 = " 网球拍 "newgoodsPrice2 =780D;goodsName 3 ="addidasT 恤"goodsPrice3 =420.77999999999997D;goodsName 4 ="Nike 运动鞋 "goodsPrice4 =900D;goodsName 5 ="Kappa 网球 "goodsPr
23、ice5 =45D;goodsName 6 ="KappaT 恤 "goodsPrice6 =245D;=添加了初始的7 个顾客信息 =custNo0= 1900;custBirth0 ="08/05" ;custScore0 =2000;custNo1= 1711;custBirth1 ="07/13" ;custScore1 =4000;custNo2= 1623;custBirth2 ="06/26" ;custScore2 =5000;custNo3= 1545;custBirth3 ="04/0
24、8" ;custScore3 =2200;custNo4= 1464;custBirth4 ="08/16" ;custScore4 =1000;custNo5= 1372;custBirth5 ="12/23" ;custScore5 =3000;custNo6= 1286;custBirth6 ="12/21" ;custScore6 =10080;*/32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.6
25、0.61.62.63.64.65.66.67.68.69.70.71.=*/*=定义该类所拥有的变量public String goodsName ; publicdoublegoodsPrice;publicint custNo ; public String custBirth;publicint custScore ; / public Manager manager ;/ 商品的名称/ 商品的价格/ 顾客的会员号/ 顾客的生日 顾客的积分/ 管理员类,仅仅存储了管理员的用户名和密码3.3 Manager 类java view plaincopy1.package cn.itcast;2
26、./*3.* 管理员类,仅仅存储了管理员的用户名和密码4.5.* author6.7.*/8.publicclass Manager 9./*10.* 设置默认的用户名和密码11.12.*/13.public Manager() 14.username = "itcast" ;15.password = "itcast" ;16.17./*=定义该类所拥有的变量 =*/18.public String username; / 用户名19.public String password; / 密码20.3.4 VerifyEqual 类java view p
27、laincopy1.package cn.itcast;2.import java.util.Scanner;3./*4.* 验证用户登录的账户和密码是否正确的类5.6.* author7.8.*/9.publicclass VerifyEqual 10./*11.* 空构造方法12.13.*/14.public VerifyEqual() 15.16. /*17.* 执行验证的方法18.19.* param s 用于验证的正确的用户名20.* param s1 用于验证的正确的密码21.* return22.*/23.publicboolean verify(String s, String
28、 s1) 24./ 由用户输入用户名25.System.out.print( " 请输入用户名: ");26.Scanner scanner = new Scanner(System.in);27.String s2 = scanner.next();28./ 由用户输入密码29.System.out.print( " 请输入密码: ");30.scanner = new Scanner(System.in);31.String s3 = scanner.next();32./ 判断用户输入的信息是否和已有的信息一致33.return s2.equals
29、(s) && s1.equals(s3);34.35.3.5 Menu 类java view plaincopy1.package cn.itcast;2.import java.util.Scanner;3./*4.* 菜单类,用于显示所有级菜单供用户选择5.6.* author7.8.*/9.publicclass Menu 10./*11.* 空构造方法12.13.*/14.public Menu() 15.16./*17.* 设置菜单类中的数据信息18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38
30、.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.* param as* param ad* param ai* param as1* param ai1 */publicvoidsetData(String as, double ad, int ai, String as1, intai1)goodsNameas;/*goodsPricecustNocustBirthcustScoread;ai;as1;ai1;显示一级菜单,即登录界面*/publicvoidshowLoginMenu() System.out.println( &
31、quot;nnttt欢迎使用 itcast购物管理系统 1.0System.out.println(*n"System.out.println("tttt1.登录系统 nn");System.out.println("tttt2.更改管理员信nn" );System.out.println("tttt3.退 出 nn" );System.out.println(*n"版 nn" ););息);System.out.print("请选择 , 输入数字 :" );/* 显示二级菜单, 即系
32、统的主菜单, 这个方法里面包含了对这个菜单处理的所有流程*/publicvoid showMainMenu() / 显示二级菜单,即系统的主菜单System.out.println("nntttt欢迎使用购物管理系统n" );System.out.println(*n" );System.out.println("tttt1.客户信息管理 n" );System.out.println("tttt2.购物结算 n" );System.out.println("tttt3.真情回馈 n" );System.
33、out.println("tttt4.注销 n" );57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.* * * * * * * * * * * * *n" );"请选择 , 输入数字 :" );System.out.println(/ 用户选择服务项目System.out.print(Scanner scanner = new Scanner
34、(System.in);/ 设置标志用于控制循环 boolean flag = false;do String s = scanner.next();/ 用户选择 " 客户信息管理 " if (s.equals( "1" ) / 显示客户信息管理菜单并处理这个菜单的整个流程,当这个流程处理完 showCustMMenu();break;/ 用户选择 "购物结算 " if (s.equals( "2" ) / 定义购物结算类的对象,并处理整个购物结算的流程custBiPay pay = new Pay(); pay.
35、setData(goodsName, goodsPrice, custNo, rth, custScore);pay.calcPrice();break;/ 用户选择 "真情回馈 " if (s.equals( "3" ) / 处理真情回馈的整个处理流程 showSendGMenu();break;/ 用户选择 " 注销 " if (s.equals( "4" ) break;/ 显示一级菜单,此时会返回至 StartSMS 类中的一级菜单处理流程 showLoginMenu();System.out.print(
36、 " 输入错误,请重新输入数字: "); flag = false ; while (!flag);/*显示三级菜单 - 客户信息管理,并处理所有客户信息管理的流程*/99.publicvoidshowCustMMenu() 100.System.out.println( " 购物管理系统 > 客户信息管理 n" );101.System.out.println( "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n" );102.System
37、.out.println( "tttt 1. 显 示 所 有 客 户 信n" );103.System.out.println( "tttt 2. 添 加 客 户 信 息 n" );104.System.out.println( "tttt 3. 修 改 客 户 信 息 n" );105.System.out.println( "tttt 4. 查 询 客 户 信 息 n" );106.System.out.println( "* * * * * * * * * * * * * * * * * * * *
38、 * * * * * * * * * * * * * *n" );107.System.out.print( "请选择 , 输入数字或按 'n' 返回上一级菜单 :" );108.Scanner scanner = new Scanner(System.in);109.booleanflag = true;110.do 创建客户信息管理对象,111./息并设置数据,这里的数据还是原始的那些数据CustManagement custmanagement = new CustManagement();112.cus113. custmanagement
39、.setData(goodsName, goodsPrice, custNo, tBirth, custScore);114.Strings = scanner.next();115./客户选择 " 显示所有客户信息 "116.if (s.equals( "1" ) 117.custmanagement.show();118.break;119.120./客户选择 " 添加客户信息 "121.if (s.equals( "2" ) 122.custmanagement.add();123.break;124.125
40、./客户选择 " 修改客户信息 "126.if (s.equals( "3" ) 127.custmanagement.modify();128.break;129.130./客户选择 " 查询客户信息 "131.if (s.equals( "4" ) 132.custmanagement.search();133.break;134.135./客户选择 " 返回上一级菜单 "136.if (s.equals( "n" ) 137.showMainMenu();138. br
41、eak;139.140.System.out.println( " 输入错误 , 请重新输入数字:");141.142.flag = while (!flag);false ;143.144./*145.显示三级菜单 - 真情回馈,并处理所有真情回馈的流程new Scanner(System.in);创建礼物管理对象,并设置数据,这里的数据还是原始的那些数据157./158.GiftManagement giftmanagementnew GiftManagement();146.148.publicvoidshowSendGMenu() 149.System.out.pr
42、intln(" 购物管理系统 >真情回馈 n" );150.System.out.println(* * *n"151.System.out.println("tttt 1. 幸运大放 送 n" );152.System.out.println("tttt 2. 幸运抽奖 n" );153.System.out.println("tttt 3. 生日问候 n" );154.System.out.println(* * *n"155.System.out.print("请选择 ,
43、输入数字或按'n'返回上一级菜单 :" );147.*/156.););Scanner scanner159.160.boolean flagtrue;161.do 162.Stringscanner.next();giftmanagement.setData(goodsName, goodsPrice, custNo, custBirth,custScore);164.if (s.equals( "1" ) 165.giftmanagement.sendGoldenCust();166.break;167.168./客户选择 " 幸运抽
44、奖 "169.if (s.equals( "2" ) 170.giftmanagement.sendLuckyCust();171.break;172.173./客户选择 "生日问候 "174.if (s.equals( "3" ) 175.giftmanagement.sendBirthCust();176.break;177.客户选择 " 幸运大放送 "163./178./ 客户选择 " 返回上一级菜单180.showMainMenu();181.break;182.183.System.o
45、ut.println(" 输入错误 ,请重新输入数字184.flag =false ;185. while (!flag);186.187./*= 定义该类所拥有的变量=*/188.publicStringgoodsName;/ 商品的名称189.publicdoublegoodsPrice;/商品的价格190.publicintcustNo ;/顾客的会员号191.publicStringcustBirth;/ 顾客的生日192.publicintcustScore ;/ 顾客的积分193.179. if (s.equals( "n" ) );3.6CustMa
46、nagement 类java view plaincopy1.packagecn.itcast;2.importjava.util.Scanner;3./*4.* 顾客信息管理类5.6.* author7.8.*/9.publicclass CustManagement 10./*11.* 空构造方法12.13.*/14.publicCustManagement() 15.16./*17.* 设置顾客信息管理类的数据信息18.19.* param as20.* param ad21.* param ai22.* param as1*/param ai1as, double ad, int ai
47、, String as1, intai1)goodsNamegoodsPricecustNocustBirthcustScore/* 返回上一级菜单,publicvoid setData(String= as;= ad;= ai;= as1;= ai1;即二级菜单 - 客户信息管理菜单*/publicvoid returnLastMenu() System.out.print( "nn 请按 'n' 返回上一级菜单 :" ); Scanner scanner = new Scanner(System.in); boolean flag = true;do i
48、f (scanner.next().equals( "n" ) / 返回上一级菜单,这里新建了一个菜单对象,只是在用户看来其实还是同样的处理流程, / 不过对于程序来说却又开始了一个新的二级菜单处理流程Menu menu = new Menu();menu.setData(goodsName, goodsPrice,custNo, custBirth,custScore);menu.showCustMMenu();else System.out.print( " 输入错误 ,请重新 'n'返回上一级菜单:")(!flag);flag =
49、false ;while/* 添加客户信息*/publicvoidadd() System.out.println(" 购物管理系统 > 客户信息管理 > 添加客户信息nn" );Scanner scanner= new Scanner(System.in);System.out.print("请输入会员号 (<4 位整数>) :");int i =scanner.nextInt();System.out.print("请输入会员生日(月 /日<用两位数表示 >): ");23.24.25.26.27.28.29.30.31.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省开远市部分学校2024-2025学年高一下学期开学检测英语试题(解析版)
- 巨量创意考试试题及答案
- 中级维修考试试题及答案
- 大数据技能训练考试试题及答案
- 服务实操考试试题及答案
- 高中vb考试试题及答案
- 大学c语言期末考试试题试题及答案
- 甘肃驾照模拟考试试题及答案
- 大学语文考试试题及答案
- 20250501-开源证券-龙大美食-002726.SZ-公司信息更新报告
- 带状疱疹病人的个案护理
- 《中药鉴定技术》课件-五味子的鉴定
- 大数据 AI大模型-智慧统计大数据平台解决方案(2023版)
- 江苏省安全员《B证》考试题库及答案
- 自杀及其预防课件
- 灰姑娘童话故事
- 铅锌矿的冶炼技术进展与设备改进
- 等离子切割机操作手册与安全操作规程
- 印刷合同:纸袋印刷合作
- 快学Scala(中文版第2版)
- 人工智能知识竞赛题库(含答案)
评论
0/150
提交评论