数据结构-家电库存管理系统课程设计报告._第1页
数据结构-家电库存管理系统课程设计报告._第2页
数据结构-家电库存管理系统课程设计报告._第3页
数据结构-家电库存管理系统课程设计报告._第4页
数据结构-家电库存管理系统课程设计报告._第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、重庆科技学院数据结构课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 计科2010-01 学生姓名: 阳 勇 学 号: 2010441798 设计地点(单位)_ _ 计算机基础自主学习中心 _ _ _设计题目:_家电库存管理系统的设计_ _ _ 完成日期:2012年 1 月 13 日 指导教师评语: _ _ _ _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _ 重庆科技学院数据结构课程设计报告重庆科技学院课程设计任务书设计题目:家电库存管理系统的设计 学生姓名阳勇课程名称数据结构课程设计专业班级计科2010-01,02,03,04地 点计算机基础自主学习中心起止时间2011

2、.12.31-2012.1.13设计内容及要求以链表结构的有序表表示某商场家电部的库存模型。当有提货或进货时需要对该链表及时进行维护。每次退出程序时,将该链表中的数据以文件形式保存在磁盘上,每次启动程序时,需将以文件形式保存的数据恢复成链表结构的有序表。链表结点的数据域包括:类别、型号、品牌、重量、单价、数量、生产日期、厂家名称,默认按类别、品牌升序排好序。程序功能包括:创建链表、插入、删除、修改、查询、排序等。设计参数测试数据要求:家电类别(如:电视机,空调,冰箱等)不少于5种,记录数量不少于500。进度要求2011.12.31 完成任务的讲解、并接受课程设计任务,选定课程设计的题目2012

3、.01.04 了解任务的算法、并画出算法的程序流程图,对任务的关键技术进行验证、并确定解决办法2012.01.05-2012.01.06 编制程序2012.01.09 对程序进行调试,设计测试用例进行测试2012.01.10 整理课程设计的过程、并进行总结,完善程序功能2012.01.11 编写课程设计报告初稿2012.01.12 完善课程设计报告、并准备答辨2012.01.13 提交课程设计报告和程序,进行答辨参考资料1严蔚敏 吴伟民, 数据结构,清华大学出版社,2007.32李春葆 ,数据结构教程,清华大学出版社,2005.13(美)stephen prata, c primer plus

4、中文版(第五版),人民邮电出版社,2005.2其它说明1.本表应在每次实施前一周由负责教师填写二份,学院审批后交学院教务办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。系主任:雷亮 指导教师: 向毅/彭军/王双明/龙冯文/黄永文 2011年12月 26日 摘要随着信息技术的飞速发展,人们对信息管理技术要求也越来越高以适应飞速发展的经济。本次课程设计针对当前的需求,设计一个家电仓库信息的管理系统以方便商家更快捷更有效的对仓库货品的信息进行管理,给商家创造更多的价值!该系统整体运用了数据结构的知识,它是将货品信息按链表形式来

5、储存的。将所有的货品分类储存在数据链表的每一个节点中,每个节点也包含了一种类型家电的所有信息。即是,建一个链表,链表中有许多个节点,节点中储存了不同类型的数据;这样我们就很容易的将货品信息管理起来了!该系统进行了精心的规划,有齐全的信息管理功能。方便用户使用,用户能够很快的找到自己所需要的信息并且有添加、删除、修改、查询、排序、保存等功能提高了用户对信息的管理效率!关键词:信息 数据结构 链表 管理 目录1 系统需求分析说明书11.1系统软件界面介绍11.2系统设计要求11.3系统的设计22 系统分析与设计32.1系统分析32.2系统功能分析43 代码实现73.1链表创建函数代码解释73.2插

6、入节点函数代码解释73.3删除节点函数代码解释83.4查找函数代码解释83.5货品信息修改函数代码解释93.6信息读取函数代码解释104 系统功能实现114.1 仓库链表建立函数实现114.2修改信息函数实现114.3新增货品插入函数实现124.4删除函数实现124.5修改函数的实现134.6插入节点函数实现135 系统使用说明书146 总结15参考文献16致谢1736重庆科技学院数据结构课程设计报告1 系统需求分析说明书1.1系统软件界面介绍 1.1 系统界面 该系统的软件界面就是以在c+编译后生成的一个系统菜单,菜单有八个选项供用户选择即有创建仓库链表,信息查找等功能!在菜单下面有供用户选

7、择系统项目的输入指令,当用户输入0-7中的数字后就会实现相应的功能!如果输入错误后界面会弹出警告让用户重新输入!1.2系统设计要求 第一,该系统的设计对设计者的要求比较高。想要设计该系统,必须对c语言知识掌握牢固,以及c+、数据结构知识灵活运用。例如:主菜单供客户选择的选择项就需要用到c语言的switch条件语句来实现不同的选择功能。数据结构中的数据封装也是必不可少的。1.3系统的设计 系统设计分为几大模块进行设计的。第一大模块总体规划设计,这部分主要是封装头文件,这里要定义好数据结构体,即要把一类家电信息打包成一个节点类型的数据然后再创建链表数据和指向节点数的节点。该过程就是数据结构中的抽象

8、数据类型adt,这样将就轻松的把不同类型数据管理起来了!头文件也包含了所有子函数的头。第二大模块是主函数的设计,主函数的功能是要建立一个仓库管理的链表,然后一一实现系统所有的功能即是在不同的情况对子函数的调用。第三大模块是各个函数功能的实现,该部分是系统的核心部分,在写子函数的时候必须考虑周全;否则就会出现内存出错的情况系统就会崩溃掉,信息就很可能丢失。会给用户带来巨大的损失!该系统设计模块图如图1.2所示:系统总体结构头文件封装子函数设计链表的设计系统主界面设计 图1.2 系统模块设计2 系统分析与设计2.1系统分析系统主要工作流程是从打开系统后进入功能选择,选择不同的选项进行操作后就返回系

9、统首页。其运行流程图如图2.1所示:主菜单switch1创建链表2信息查找3新增信息4信息删除5信息修改6保存信息7读取文件8结束程序返回图2.1系统流程图2.2系统功能分析 系统功能的实现主要是靠各个子函数来实现的。1)仓库链表的创建: 当用户选择功能号1时,就进行仓库链表的建立。仓库建立流程图如图2.2所示:入口建立链表完成链表建立返回 图2.2 仓库链表建立 2)仓库货品信息查找:信息查找流程图如图2.3 所示:入口查找方式查询所有名称查询退出查询返回 图2.3 信息查找流程图3)新增货品信息插入: 新增货品信息插入流程图如图2.4所示:入口输入信息完成链表插入返回 图2.4 信息插入流

10、程图4)删除已卖出的货品信息:删除信息流程图如图2.5所示:入口查找方式编号查询名称查询返回删除 图2.5 删除信息流程图5)库存货品信息修改库存货品信息修改流程图如图2.6所示:入口查找方式编号查询名称查询选择修改2修改时间1修改商标8修改型号5修改类别6修改编号7修改单价4修改重量3修改厂家返回首页图2.6 信息修改流程图6)信息保存直接选功能号6即可保存到文件。7)仓库信息读取:仓库信息读取流程图如图2.7所示:入口读入信息信息显示返回图2.7信息读取流程图3 代码实现3.1链表创建函数代码解释node *creatlist()node *head;head=new node;int i

11、; int k; node *p1, *ptr;p1=(node*)malloc(sizeof(node);p1=head;cout<<"输入仓库电器种类数:"<<endl;cin>>k;printf("请输入电器类别-型号-商标-重量-单价-编号-日期-厂家n");for(i=0;i<k;i+) ptr=(node*)malloc(sizeof(node);scanf("%s %s %s %f %lf %s %s %s",ptr->data.leibie,ptr->data.xi

12、nhao,ptr->data.brand,&ptr->data.height,&ptr->data.price,ptr->data.no,ptr->data.date,ptr->data.factory);p1->link=ptr;p1=ptr;p1->link=null;return head;这里使用链表创建函数就可以创建一个链表,并储存货品信息!3.2插入节点函数代码解释void insertnode(node *head,node *p) node *p1,*p2;p1=head;p2=p1->link;while(

13、p2!=null && strcmp(p2->data.no,p->data.no)<0) p1=p2; /p1 指向刚访问过的结点p2=p2->link; /p2 指向表的下一个结点 p1->link=p; /插入 p 所指向的结点p->link=p2; /连接表中剩余的结点cout<<"插入成功!"<<endl;该函数实现了在仓库链表中插入一个节点的功能!3.3删除节点函数代码解释void deletenode(node *head)/卖出货品信息删除 char x;node *ppre,*pl

14、oc;ploc=searchlist1(head);/ dataout = ploc->data;if(ploc=null)printf("没有查到要删除的商品信息!n");return ;if(ploc!=null) printf("真的要删除该商品吗?(y/n):"); cin>>x; if (x='y'|x='y') ppre=head;while(ppre!=null)&&(ppre->link!=ploc)ppre=ppre->link;ppre->link=p

15、loc->link;free(ploc);printf("delete success!n");该函数实现了对卖出货品信息的删除!3.4查找函数代码解释node *searchlist(node *head)/货品信息查找 char a; char b=' 'while(1)printf("=n"); printf(" 1. 查询所有家电信息 n");printf(" 2. 按商品名称查询 n"); printf(" 0. 退出查找系统 n");printf("=

16、n"); printf(" 请 选 择: n"); a = getch(); switch(a) case '0':return 0;break; case '1':list0(head);break; case '2':list1(head);break; default:printf("输入错误,请重新输入:n");该函数用switch语句做成一个多种查找方式的查找函数!3.5货品信息修改函数代码解释void modify(node *head)/库存货品信息修改int m;node *p;p

17、=searchlist1(head);cout<<"请输入要修改的商品信息番号!:"<<endl;if (p=null) printf("没有查到要修改的商品信息!n"); return;if(p!=null)cout<<endl;printf("请输入您选择的功能号<0-8>:n");cin>>m; switch(m) case 1:cout<<"请输入新的商标信息"<<endl;cin>>p->data.bra

18、nd;break; case 2:cout<<"请输入新的日期信息"<<endl;cin>> p->data.date;break; case 3:cout<<"请输入新的厂家信息"<<endl;cin>> p->data.factory;break; case 4:cout<<"请输入新的重量信息"<<endl;cin>> p->data.height;break; case 5:cout<<&q

19、uot;请输入新的类别信息"<<endl;cin>> p->data.leibie;break; case 6:cout<<"请输入新的编号信息"<<endl;cin>> p->data.no;break; case 7:cout<<"请输入新的单价信息"<<endl;cin>> p->data.price;break; case 8:cout<<"请输入新的型号信息"<<endl;cin

20、>>p->data.xinhao;break; case 0:break; p=p->link;该函数实现了对节点信息的修改!3.6信息读取函数代码解释node *read_file(node *head)node *q,*t;head=initlist(head);t=head;ifstream fin("家电库存信息.txt");if( !fin )printf("n打开文件失败!,可能没有记录n");return null;printf("类别-型号-商 标-重量-单价-编号-日期-厂家n");while

21、 ( !fin.eof() )q=(node*)malloc(sizeof(node);household temp;fin>>temp.leibie;fin>>temp.xinhao;fin>>temp.brand;fin>>temp.height;fin>>temp.price;fin>>temp.no;fin>>temp.date;fin>>temp.factory; q->data = temp;q->link=null;t->link=q;t=t->link; pr

22、intf("读取成功!n");fin.close();return head;该函数将文本文件的数据读出来并生成一个链表!4 系统功能实现4.1 仓库链表建立函数实现图4.1仓库链表建立函数实现4.2修改信息函数实现 图4.2修改信息函数实现4.3新增货品插入函数实现图4.3新增货品插入函数实现4.4删除函数实现图4.4删除函数实现4.5修改函数的实现图4.5修改函数的实现4.6插入节点函数实现图4.6插入节点函数实现5 系统使用说明书1.创建仓库链表:在此目录下,用户可以创建一个新的仓库链表。2.查询记录:在此目录下,用户可以查询所有家电记录和按名称查询家电记录1).查询

23、所有家电记录:显示所有的家电记录,如果没有记录则会提示用户输入记录。2).按类别查询家电记录:输入要查询家电的名称后,显示相应家电的信息。3).按品牌查询家电记录:输入要查询家电的品牌后,显示相应家电的信息。4).按型号查询家电记录:输入要查询家电的型号后,显示相应家电的信息。 0).退出查询系统:退出查询系统并返回主菜单。3. 插入新增货品信息:在此目录下,用户添加新的纪录。添加完后,系统会返回主菜单并提示用户保存,此时你要可以选择。4. 删除信息:在此目录下,用户删除纪录 5. 修改记录:在此目录下,用户在原有的记录上更改记录。更改后,系统会返回主菜单并提示用户保存,此时你要可以选择2保存

24、,如果不选择保存则不会更改。6.保存记录:在此目录下,系统会对变动的信息保存起来!7.读取记录:在此目录下,系统将储存的信息全部读出来!0. 退出系统:提示按0键键退出系统。6 总结在为期两周的时间终于完成了本次课程设计。在设计初期准备阶段时做好了充分的准备,包括查询资料、知识的温故等。有了充分的准备后,就可以有个好的开始了。课程设计在设计阶段中遇到不少的问题,但是都一一解决了。在开始阶段的数据封装与函数头做起来比较顺利,第二阶段在总体规划时开始很混乱,但在仔细分析后很快就把总体思路打造好了。最后的也是最困难的问题就是怎样实现各个子函数的功能,由于自己的粗心造成了不少的麻烦!例如,将一个有返回

25、值函数直接调用,而没有进行传值造成了内存错误从而耽误了进度。最后进行仔细调试后才发现这个问题,最后程序就顺利运行了!参考文献1 吴伟民. 结构(c语言版).大学出版社,20002 周学毛 李健. 据结构与程序设计.人民邮电出版社, 20083 谭浩强. c程序设计(第三版). 清华大学出版设, 20084 韩永泉.高质量程序设计指南c+/c语言第3版, 20075 苏仕华. 数据结构与算法解析. 合肥: 中国科学技术大学出版社,20046 刘振安 孙忱 刘燕君. c程序设计课程设计. 北京:机械工业出版社,20047 唐策善,黄刘生. 数据结构(第二版). 合肥:中国科学技术大学出版社,200

26、28 刘大有,唐海鹰. 数据结构. 北京:高等教育出版社,20019 严蔚敏,陈文博. 数据结构及应用算法教程. 北京:清华大学出版社,200110 苏仕华. 数据结构自学辅导. 北京:清华大学出版社,200211 徐孝凯. 数据结构实用教程. 北京:清华大学出版社,199912 苏仕华. 数据结构课程设计. 北京:机械工业出版社,2005致谢经过为期一周的努力,我的课程设计任务也终于如期完成。在设计阶段中遇到不少的问题,但是都一一解决了。有些是通过自己细心的研究和检查把程序调试好,有的问题是自己不懂的知识通过网上搜索以及同学的帮助也顺利的解决了!在此我要感谢帮助过我的老师和同学们,是你们耐心

27、指导才让我顺利的完成了本次课程设计。我也从中学到许多的东西! 通过本次课程设计,我对数据结构的知识掌握更牢固了!也培养了自己勤于思考的良好习惯!也让我收获了不少的东西,感谢所有帮助过我的人!附页: 程序代码头文件.h#include <string>#include <stdlib.h>#include <stdio.h>#include<conio.h>#include "windows.h"#include<iostream>#include<fstream>using namespace std;

28、typedef struct _householdchar leibie20;char xinhao30;char brand30;float height;double price;char no30;char date20;char factory30;int key;household;typedef struct _nodehousehold data;struct _node *link;node;typedef struct _linklistnode* phead;int count;linklist;linklist *creatvoidlist();node *creatli

29、st();void insertnode(node *head,node *p);void deletenode(node *head);node *searchlist(node *head);node *searchlist1(node *head);void modify(node *head);bool display(node *head);node *sort(node *head); void write_file(node *head);node *read_file(node *head);node *initlist(node *p);void list0(node *he

30、ad);void list1(node *head);int strcmp(char na,char name,int y);子函数.cpp #include"store.h"linklist *creatvoidlist()/创建一个空的仓库链表linklist *p;p = (linklist*)malloc(sizeof(linklist);if(!p)exit(0);p->count=0;p->phead=null;return p;node *creatlist()/创建链表node *head;head=new node;int i;int k; n

31、ode *p1, *ptr;p1=(node*)malloc(sizeof(node);p1=head;cout<<"输入仓库电器种类数:"<<endl;cin>>k; printf("请输入电器类别-型号-商标-重量-单价-编号-日期-厂家n");for(i=0;i<k;i+)ptr=(node*)malloc(sizeof(node);scanf("%s %s %s %f %lf %s %s %s",ptr->data.leibie,ptr->data.xinhao,ptr-&

32、gt;data.brand,&ptr->data.height,&ptr->data.price,ptr->data.no,ptr->data.date,ptr->data.factory);p1->link=ptr;p1=ptr;p1->link=null;printf("添加成功!");return head;void insertnode(node *head,node *p)/插入新的节点 node *p1,*p2;p1=head;p2=p1->link;while(p2!=null &&

33、; strcmp(p2->data.no,p->data.no)<0) p1=p2; /p1 指向刚访问过的结点p2=p2->link; /p2 指向表的下一个结点 p1->link=p; /插入 p 所指向的结点p->link=p2; /连接表中剩余的结点cout<<"插入成功!"<<endl;void deletenode(node *head)/卖出货品信息删除 char x;node *ppre,*ploc;ploc=searchlist1(head);/ dataout = ploc->data;i

34、f(ploc=null)printf("没有查到要删除的商品信息!n");return ;if(ploc!=null) printf("真的要删除该商品吗?(y/n):"); cin>>x; if (x='y'|x='y') ppre=head;while(ppre!=null)&&(ppre->link!=ploc)ppre=ppre->link;ppre->link=ploc->link;free(ploc);printf("delete success!n

35、");node *searchlist1(node *head)/货品信息查找 node *p;char num30;char name30; char pp; printf("=n"); printf(" a. 按商品编号查询 n");printf(" b. 按商品名称查询 n");printf("=n"); printf(" 请 选 择: "); p=head->link; cin>>pp; getchar();if (pp='a'|pp='

36、;a') cout<<"请输入要查找的商品编号:"<<endl;cin>>num;while (p&&strcmp(p->data.no,num)!=0) p=p->link; if (p=null)|strcmp(p->data.no,num)>0)p=null;else if (pp='b'|pp='b') cout<<" 请输入要查找的商品名称:"<<endl; cin>>name;while(p&

37、amp;&strcmp(p->data.leibie,name)!=0)p=p->link; return p;node *searchlist(node *head)/货品信息查找 char a; char b=' 'while(1)printf("=n"); printf(" 1. 查询所有家电信息 n");printf(" 2. 按商品名称查询 n"); printf(" 0. 退出查找系统 n");printf("=n"); printf("

38、 请 选 择: n"); a = getch(); switch(a) case '0':return 0;break; case '1':list0(head);break; case '2':list1(head);break; default:printf("输入错误,请重新输入:n");void list0(node *head)/查询所有家电信息 node *p; p=head->link; if(p=null)printf("没有记录,请输入记录n");elseprintf(&q

39、uot;类别-型号-商 标-重量-单价-编号-日期-厂家n");while(p!=null)printf("%s %s %s %f%lf %s %s %sn",p->data.leibie,p->data.xinhao,p->data.brand,p->data.height,p->data.price,p->data.no,p->data.date,p->data.factory);p=p->link;void list1(node *head)/按名称查询函数 node *p; p=head; int y;

40、 char na20; printf("请输入查询家电的名称:"); scanf("%s",na);printf("你要查询的记录为n"); while(p!=null)y=strcmp(na,p->data.leibie,20);if(y=1) p=p->link;elseprintf("类别-型号-商 标-重量-单价-编号-日期-厂家n");printf("%s %s %s %f%lf %s %s %sn",p->data.leibie,p->data.xinhao,

41、p->data.brand,p->data.height,p->data.price,p->data.no,p->data.date,p->data.factory);p=p->link;int strcmp(char na,char name,int y)/比较数据信息 int i =0; int n=0; while(nai)n+;i+; for(i=0;i<n;i+) if(nai!=namei)break; if(i<n) return 1; elsereturn 0;void modify(node *head)/库存货品信息修改

42、int m;node *p;p=searchlist1(head);cout<<"请输入要修改的商品信息番号!:"<<endl;if (p=null) printf("没有查到要修改的商品信息!n"); return;if(p!=null)printf(" :-:n");printf(" : 选择要修改的项目 *n");printf(" :=*n");printf(" : 1. 修改货品商标 *n");printf(" : 2. 修改进货时间

43、 *n");printf(" : 3. 修改生产厂家 *n");printf(" : 4. 修改货品质量 *n");printf(" : 5. 修改货品类别 *n");printf(" : 6. 修改货品编号 *n");printf(" : 7. 修改货品单价 *n");printf(" : 8. 修改货品型号 *n");printf(" : 0. 结束程序 *n");printf(" :-*n");cout<<e

44、ndl;printf("请输入您选择的功能号<0-8>:n");cin>>m; switch(m) case 1:cout<<"请输入新的商标信息"<<endl;cin>>p->data.brand;break; case 2:cout<<"请输入新的日期信息"<<endl;cin>> p->data.date;break; case 3:cout<<"请输入新的厂家信息"<<endl

45、;cin>> p->data.factory;break; case 4:cout<<"请输入新的重量信息"<<endl;cin>> p->data.height;break; case 5:cout<<"请输入新的类别信息"<<endl;cin>> p->data.leibie;break; case 6:cout<<"请输入新的编号信息"<<endl;cin>> p->data.no;br

46、eak; case 7:cout<<"请输入新的单价信息"<<endl;cin>> p->data.price;break; case 8:cout<<"请输入新的型号信息"<<endl;cin>>p->data.xinhao;break; case 0:break; p=p->link; bool display(node *head)/显示库存信息node *temp;temp=head->link;printf("电器类别-型号-商标-重量-单

47、价-编号-日期-厂家 n");printf("-n");while(temp)household info = temp->data;printf("%st",info.leibie);printf("%st",info.xinhao);printf("%st",info.brand);printf("%ft",info.height);printf("%lft",info.price);printf("%st",info.no);prin

48、tf("%st",info.date);printf("%st",info.factory); printf("-n");temp=temp->link;return true;node *sort(node *head)/链表排序node *first,*rear,*p_min,*min,*p;first = null;while(head != null)for(p=head,min=head;p->link;p->link) if(p->link->data.no<min->data.n

49、o)p_min=p;min=p->link;if(first=null)first=min;rear=min;if(min=head)head=head->link;elsep_min->link=min->link;if(first!=null)rear->link=null;head=first;return head;void write_file(node *head)/写入文件函数file *fp;if(fp=fopen("家电库存信息.txt","a")=null)cout<<"can

50、9;t save it!"<<endl; node *p;p=head->link;while(p!=null)fprintf(fp,"%s %s %s %f %lf %s %s %sn",p->data.leibie,p->data.xinhao,p->data.brand,p->data.height,p->data.price,p->data.no,p->data.date,p->data.factory);p=p->link;fclose(fp);node *read_file(node *head)/从文件读取数据node *q,*t;head=initlist(head);t=head;ifstream fin("家电库存信息.txt");if( !fin )printf("n打开文件失败!,可能没有记录n");return null;printf("类别-型号-商 标-重量-单价-编号-日期-厂家n");while

温馨提示

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

评论

0/150

提交评论