《Linux操作系統》課程設計報告購物管理系統
《《Linux操作系統》課程設計報告購物管理系統》由會員分享,可在線閱讀,更多相關《《Linux操作系統》課程設計報告購物管理系統(29頁珍藏版)》請在裝配圖網上搜索。
1、 河南城建學院 《Linux操作系統》課程設計報告 題目:購物管理系統 姓 名: 齊 超 學 號: 061408139 班 級: 0614081班 指導老師:邵國金、楊斌、魏新紅 專 業(yè): 計算機科學與技術 2011年 09 月 09 日 前 言 隨著Internet國際互聯網的發(fā)展,越來越多的企業(yè)開始建造自己的網站?;贗nternet的信息服務,商務服務已經成為現代企業(yè)一項不可缺少的內容。很多企業(yè)都已不滿足于建
2、立一個簡單的僅僅能夠發(fā)布信息的靜態(tài)網站?,F代企業(yè)需要的是一個功能強大的,能提供完善的電子商務服務的動態(tài)商務網站。 目 錄 系統目的 隨著時代的發(fā)展,信息技術、Internet/Intranet技術、數據庫技術的不斷發(fā)展完善,網絡進程的加快,傳統的購物方式也越來越不能滿足人們快節(jié)奏的生活需求,使得企業(yè)的IT部門已經認識到Internet的優(yōu)勢,電子商務就是在這樣一個背景下產生發(fā)展起來的。伴隨著電子商務技術的不斷成熟,電子商務的功能也越來越強大,注冊用戶可以在網上搜索購買到自己想要的各種商品,
3、初步讓人們體會到了足不出戶,便可隨意購物的快感。這次的設計就正是一個電子商務系統的開發(fā)---網上購物系統。 設計說明 本系統是一個中小型的電子商務系統----網上購物系統,可以為各類用戶提供方便的在線購物環(huán)境,符合目前國內流行的電子商務模式。用戶可以在系統中實現驗證、瀏覽商品、搜索查詢商品、下定單、處理定單等功能; 系統的組成有以下幾個子系統組成: 1. 主頁,顯示歡迎界面,提供近期的商品。 3. 查詢系統,通過商品類別、名稱來查詢是否有自己需要的商品。 4. 購物車,處理訂購并顯示想要訂購的商品。 5. 用戶身份驗證系統。 6. 用戶資金驗證系統。 系統結構簡介 l
4、 用戶可以瀏覽網站 l 驗證用戶身份 l 提供搜索引擎,使用戶能夠按特定的條件對所需商品進行搜索 l 用戶下定單購買商品 l 用戶處理定單 l 用戶資金驗證 l 用戶查看定單處理步驟 系統運行環(huán)境配置 操作系統:Windows XP,Microsoft SQL server,linux 操作系統。 CPU:沒有很高的要求,只要能夠順利運行Windows系列操作系統就可以了。 內存:最低配置32MB,建議使用64MB以上內存,如果使用Windows 2000或Windows XP建議使
5、用128MB以上內存。 硬盤空間:至少需要50MB以上的硬盤空間來安裝所需的組件。 系統數據庫介紹 服務器方數據庫表結構: 服務器商品表:商品號,端口號,單價,數量。 處理記錄:端口號,流水賬號,成功與否。 消費表:消費表編號,密碼,金額。 中間件第三方表: 端口表:端口號,地址信息。 消費記錄表:端口號,流水賬號,消費商品號,購買數量,消費編號。 客戶端表: 客戶商品表:商品號,商品名稱,數量,單價。 消費表:端口號
6、,流水賬號,消費品號,購買數量,消費編號。 模塊設計概述 網上商品系統的主要體系結構包括: 數據服務器 linux 操作系統平臺 客戶端 購物系統流程圖: 用戶模塊的程序流圖: 用戶瀏覽商品 選定商品 放入購物車 是否購買 確認購買 訂單詳情 商品信息 否 否 否 否 是 是 是 用戶 第三方中間件流程圖: 請求消費 判定消費卡 購買信息 中間件記錄數據 傳入服務器 判斷資金是否足夠 1. 處理大中資金
7、數據 2. 處理服務器商品數量 3. 發(fā)出發(fā)貨信息 1. 客戶端商品數量減少 2. 出貨時間 是否繼續(xù)交易 退 出 退 出 報 錯! 信息無法購買 報 錯! 報 錯! 用戶 N N N N N Y Y Y Y Y N Y 給中間件傳輸 系統其它功 (1) 用戶驗證 用戶一旦成為本網站的會員后,即可在登陸頁面中登陸,用戶只要輸入自己的用戶名和密碼即可實現登陸。這里有ASP函數對用戶名和密碼進行判斷,以此來保證用戶的合法性為了能更方便地使用網站的各項功能,用戶登錄也是必不可少的。當用戶登錄以后,便可進行查閱/更改自己的個人資料、修改/
8、處理個人定單等操作。
(2) 購物車
當用戶選好自己想要的商品后可把商品放入購物車中,購物車將自動產生相應的定單。當然,用戶也可以從購物車里刪除掉選好的商品,而相應定單的也會刪除。
(3) 用戶資金驗證
程序代碼
數據庫程序代碼:
#include
9、 #define rec_length 20 void strsplit(char *,char **,char ); main(int argc, char **argv ) { //1 main struct sockaddr_in sin; struct servent *sp; int s,ns,pid; char d=|,tmp[1000],buff[500],cmd[500]; char *service,*log="svr.log"; // char s[]="1234|567|7|90|abcd|efghijklmnop|";
10、 char *str; char *v[100],*h[500]; int i,j,recs,flds,err_code,c,rd_l,wr_l; char *sat[]={ "OKOKOKOK","E_DBinit","E_DBconn","E_DBqry ","E_DBstor", "E_DBnDAT","E_TCPsvr","E_TCPnam","E_TCPsoc","E_TCPcon", "E_TCPsnd","E_TCPrcv","E_TCPbnd","E_TCPlsn","E_TCPacc" }; //declare structu
11、re and vars. MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; if(argc!=1) service=argv[1]; else { //2 fprintf(stderr,"NO service assigned!\nUsage:\n"); fprintf(stderr,"\t%s server_name!\n",argv[0]); fprintf(stderr,"Note: svr_name is defined in file /etc/services\n");
12、exit(-1); } //2 // sprintf(buf,"touch %s",log);system(buf);// touch or create log if((rd_l=open(log,O_WRONLY|O_CREAT|O_APPEND,0644))==-1) { fprintf(stderr,"Log file %s open error!\a\n",log); exit(-1); } close(rd_l); for(i=0;i<100;i++) v[i]=NULL; // initialize MYSQL st
13、ructure if(mysql_init(&mysql)==NULL) { //2 fprintf(stderr,"Error in mysql_init!\n"); err_code=1; goto end_1; } //2 //connect to DB if(!mysql_real_connect(&mysql,"localhost","root",0,"lyg",0,NULL,0)) { //2 fprintf(stderr,"Error in connection: %s [%d]\n",\ mysql_error(&mysql),
14、mysql_errno(&mysql)); mysql_close(&mysql); err_code=-2; goto end_1; // goto mysql_err; } //2 if((sp=getservbyname(service,"tcp"))==NULL) { //2 fprintf(stderr,"Error: getservbyname"); err_code=6; goto end_1; } //2 if((s=socket(AF_INET,SOCK_STREAM,0))==-1) { //2
15、 fprintf(stderr,"Error: socket create"); err_code=9;goto end_1; } //2 bzero(&sin,sizeof(sin)); sin.sin_port=sp->s_port; if(bind(s,&sin,sizeof(sin))==-1) { //2 fprintf(stderr,"Error: bind"); err_code=13;goto end_1; // close(s); exit(-6); } //2 if(listen(s,5)==-1
16、) { //2 fprintf(stderr,"Error: listen"); err_code=14;goto end_1; // close(s); exit(-6); } //2 while(1) { //2 while fprintf(stderr,"\n\t\t\t Now wait connect ...\n"); if((ns=accept(s,0,0))==-1) { // wait a connection //3 fprintf(stderr,"error: accept"); contin
17、ue; // err_code=14;goto end_1; }//3 err_code=0; if((pid=fork())==-1) { //conneted, and then create child proc//3 fprintf(stderr,"server: fork error!"); close(s); exit(-1); }//3 if(pid!=0) {//parent proce,nothing to do, and to the next loop//3 close(ns); wait
18、(0); continue; }//3 if(pid==0) { // entered child proccedure //3 pid=0 close(s); printf("Receive a client connect:%s\n",argv[1]); if((rd_l=read(ns,buff,500))==0) { //4 fprintf(stderr,"Read nothing from socket:ns\n"); err_code=12;goto end_1; } //4 printf
19、("%s get message from ns: %s\n",argv[0],buff); buff[rd_l]=\0; strcpy(tmp,buff); strsplit(buff,v,d); switch(v[0][0]) { //4 switch case 2: // query(); sprintf(cmd,"SELECT kid,money FROM K WHERE kid=%s and kpwd =%s",v[1],v[2]); //execute query printf("\nCMD=
20、%s\n",cmd); if(mysql_query(&mysql,cmd)!=0) { //5 fprintf(stderr,"Error in query: %s [%d]\n",\ mysql_error(&mysql),mysql_errno(&mysql)); err_code=3;goto end_1; } //5 //get result if((result=mysql_store_result(&mysql))==NULL) { //5 fprintf(stderr,
21、"Error in store_result: %s [%d]\n",\ mysql_error(&mysql),mysql_errno(&mysql)); mysql_free_result(result); err_code=4;goto end_1; } //5 //mysql_err: //sprintf(buff,"%2.2d|",err_code); if(err_code!=0) goto end_1; recs=mysql_num_rows(result); row=mysql_f
22、etch_row(result); sprintf(buff,"%d|%s",recs,row[1]); double money; printf("-----%s------",buff); //money=row[1]; /* if(recs==1) write(ns,"1",wr_l); else write(ns,"0",wr_l); flds=mysql_num_fields(result); for(i=0
23、;i 24、ns error!\n");
close(ns); exit(-4);
} //5
char rebuf[500],rep[500],repp[500];
if((rd_l=read(ns,rebuf,500))==0)
{ //5
fprintf(stderr,"Read nothing from socket:ns\n");
err_code=12;goto end_1;
} //5
mysql_free_result(result); //ma 25、y cause problem when no result
printf("%s 接收信息: %s\n",argv[0],rebuf);
strsplit(rebuf,h,d);
double share=0;
for(i=1;i<3;i=i+2)
{
// if(compare(h[i],""))
// break;
sprintf(cmd,"SELECT sid,num,price FROM S WHERE sid=%s",h[i]);
26、 printf("\nCMD=%s\n",cmd);
if(mysql_query(&mysql,cmd)!=0)
{ //5
fprintf(stderr,"Error in query: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
err_code=3;goto end_1;
} //5
//get result
if((result=mysql_store_result(&mysql))==NULL)
{ / 27、/5
fprintf(stderr,"Error in store_result: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
mysql_free_result(result);
err_code=4;goto end_1;
} //5
if(err_code!=0) goto end_1;
recs=mysql_num_rows(result);
28、 row=mysql_fetch_row(result);
printf("_______%s________%d___%d___",row[0],swit2(row[1]),swit1(row[2]));
printf("TTTTTTTTTTTTTT%sTTTTTTTTT%sTT",h[i],h[i+1]);
if(swit2(row[1])>=swit2(h[i+1]))//??????????????????????? 29、????????
{
sprintf(repp,"%s|%s|%s|",h[i],"1",h[i+1]);
printf("%s商品數量足夠!",h[i]);
strcat(rep,repp);
//double ttt=swit2(h[i+1]) * row[2];
// ttt*=row[2];
30、 // share+=ttt;
}
else
{
sprintf(repp,"%s|%s|%s|",h[i],"0",row[1]);
printf("%s商品數量不足!",h[i]);
strcat(rep,repp);
}
}
/* if(share<=money)
{
sprintf(repp,"%d",share);
printf("%s卡上金額為:%d,所需金額為:%d!金額足夠!",v[1],mon 31、ey,share);
strcat(rep,repp);
double tt=money-share;
sprintf(cmd,"update K set money=%d where kid=%s;",tt,v[1]);
printf("\nCMD=%s\n",cmd);
if(mysql_query(&mysql,cmd)!=0)
{
fprintf(stderr,"Error in query: %s [%d]\n",\
mysql_error(&mysql),mysql_errno( 32、&mysql));
err_code=3;goto end_1;
}
printf("數據庫更新成功!\n");
}
else
{
sprintf(repp,"%d",money);
printf("%s卡上金額為:%d,所需金額為:%d!金額不足!",v[1],money,share);
strcat(rep,repp);
}
*/ printf("++++++++%s",rep);
wr_l=strlen(rep);
if((wr_l=write( 33、ns,rep,wr_l))!=wr_l){
fprintf(stderr,"Write socket ns error!\n");
close(ns); exit(-4);
}
end_1:
mysql_free_result(result); //may cause problem when no result
mysql_close(&mysql); //may cause problem when no &mysql
break;
case 3:
// trans();
nothing( 34、buff);
break;
default:
fprintf(stderr,"Func. code error in:\n%s",buff);
} //4 switch
//寫日志
strncat(tmp,buff,wr_l);wr_l+=rd_l;
tmp[wr_l]=\0;
strcat(tmp,"\n");++wr_l;
printf("\nTMP(%d:%d)=%s\n",strlen(tmp),wr_l,tmp);
if((flds=open(log,O_WRONLY|O_APPEND)) 35、==-1){
fprintf(stderr,"File %s open error!\n",log);
exit(-5);
}
if(write(flds,tmp,wr_l)!=wr_l){
fprintf(stderr,"File %s write error!\n",log);
close(flds);exit(-6);
}
close(flds);
close(ns); exit(0);
} //3
} //2 while
} //1 main
void strsplit(char 36、 *s,char **v,char d)
{
int i,j,l;
j=0;v[j]=s;
l=strlen(s);
for(i=0;i 37、t++)
{
int i=s[t]-48;
sum+=i*pow(10,strlen(s)-1-t);
}
sum/=pow(10,strlen(s)-t);
t++;
d=strlen(s)-t;
for(t;t 38、t sum=0;
int t=0;
for(t;t 39、include 40、ent *sp1;
char sbuf[1000],*log="mid.log";
int ss,spid,rd_l,wr_l,rd1l;
char *sservice,*sdest;
// structure defined for request as a server
struct sockaddr_in sin;
struct servent *sp;
int s,ns,pid,err_code,recs,flds;
char buf[500],tmp[1000],cmd[500];
char *service;
int i,j,c;
cha 41、r *sat[]={
"OKOKOKOK","E_DBinit","E_DBconn","E_DBqry ","E_DBstor",
"E_DBnDAT","E_TCPsvr","E_TCPnam","E_TCPsoc","E_TCPcon",
"E_TCPsnd","E_TCPrcv","E_TCPbnd","E_TCPlsn","E_TCPacc"
};
//declare structure and vars for MySQL
MYSQL mysql;
MYSQL_RES *result;
MYSQL_ROW row;
// test 42、 the environment parameter: lservice, dservice, server_name
if(argc==4)
{
service=argv[1];sservice=argv[2]; sdest=argv[3];
}
else
{
fprintf(stderr,"Parameter assigned Error!\nUsage:\n");
fprintf(stderr,"\t%s lservice dservice server_name!\n",argv[0]);
fprintf(stderr,"Note: se 43、rver_name is defined in file /etc/hosts\n");
fprintf(stderr,"and: lservice dservice are defined in file /etc/services\n");
exit(-1);
}
// sprintf(buf,"touch %s",log);system(buf);// touch or create log
if((rd1l=open(log,O_WRONLY|O_CREAT|O_APPEND,0644))==-1)
{
fprintf(stderr,"Log file 44、 %s open error!\a\n",log);
exit(-1);
}
close(rd1l);
err_code=0;
if((sp=getservbyname(service,"tcp"))==NULL)
{
fprintf(stderr,"Error: getservbyname");
err_code=6; exit(err_code);
}
if((s=socket(AF_INET,SOCK_STREAM,0))==-1)
{
fprintf(stderr,"Error: socket create");
err_c 45、ode=8; exit(err_code);
}
bzero(&sin,sizeof(sin));
sin.sin_port=sp->s_port;
if(bind(s,&sin,sizeof(sin))==-1)
{
fprintf(stderr,"Error: bind");
err_code=13;
close(s); exit(err_code);
}
if(listen(s,5)==-1)
{
fprintf(stderr,"Error: listen");
err_code=14;
close(s); exit(e 46、rr_code);
}
// initialize MYSQL structure
if(mysql_init(&mysql)==NULL)
{
strcpy(tmp,"Error in mysql_init!");
fprintf(stderr,"%s\n",tmp);
err_code=1; goto end_1;
}
sql=1;
//connect to DataBase
if(!mysql_real_connect(&mysql,"localhost","root",0,"lyg",0,NULL,0))
{
sprintf( 47、tmp,"數據庫連接錯誤: %s [%d]",\
mysql_error(&mysql),mysql_errno(&mysql));
fprintf(stderr,"%s\n",tmp);
err_code=-2; goto end_1;
}
while(1)
{
fprintf(stderr,"\n\t\t\t Now wait connect ...\n");
if((ns=accept(s,0,0))==-1)
{ // wait a connection */
fprintf(stderr,"error: acc 48、ept"); continue;
}
if((pid=fork())==-1)
{ // conneted, and then create child proc
fprintf(stderr,"server: fork error!");
close(s); exit(-1);
}
if(pid!=0)
{ //parent proce, nothing to do, and to the next loop
close(ns);wait(0);continue;
}
if(pid==0)
{ // entered 49、 child proccedure
close(s);
printf("Receive a client connect:%s\n",argv[1]);
sprintf(cmd,"SELECT * FROM S;"); // 構造命令
if(mysql_query(&mysql,cmd)!=0)
{ //execute query
fprintf(stderr,"Error in query: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
err_code= 50、3;goto end_1;
}
if((result=mysql_store_result(&mysql))==NULL)
{ //get result
fprintf(stderr,"Error in store_result: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
err_code=4;goto end_1;
}
rslt=1;
sprintf(buf,"%2.2d|",err_code);
if(err_code!=0) goto 51、 end_1;
recs=mysql_num_rows(result); // 獲得行數
flds=mysql_num_fields(result); // 獲得域數
fprintf(stderr,"records=%d & fields=%d\n",recs,flds);
for(i=0;i 52、",row[j]);
strcat(buf,cmd);
}
// fprintf(stderr,"%s\n",buf); // 顯示返回信息
}
wr_l=strlen(buf);
if((wr_l=write(ns,buf,wr_l))!=wr_l)
{
strcat(tmp,"Write socket ns error!\n");
fprintf(stderr,"Write socket error!\n");
}
else
{
strncat(tmp,buf,wr_l) 53、;wr_l+=rd_l;
}
// close(s);
char buff[500];
if((rd_l=read(ns,buff,rec_length))==0)
{
fprintf(stderr,"Read nothing from socket:ns\n");
err_code=12; close(ns);
exit(err_code);
}
wr_l=rd_l; buff[rd_l]=\0;
// strcpy(sbuf,buf);
fprintf(stderr,"%s get mes 54、sage from ns: %s\n",argv[0],buff);
//buff[rd_l]=\0;
strcpy(tmp,buff);
strsplit(buff,v,d); // 拆分請求信息
// printf("%c",v[0][0]);
switch(v[0][0])
{ // 分析請求功能,并執(zhí)行相關工作。這里只實現了查詢功能. 其它功能由自己模仿查詢功能來實現
case 1: // query();
sprintf(cmd,"SELECT * FROM S WHERE sname like %%%s%;",v[ 55、1]); // 構造命令
if(mysql_query(&mysql,cmd)!=0)
{ //execute query
fprintf(stderr,"Error in query: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
err_code=3;goto end_1;
}
if((result=mysql_store_result(&mysql))==NULL)
{ //get result
fprintf(stder 56、r,"Error in store_result: %s [%d]\n",\
mysql_error(&mysql),mysql_errno(&mysql));
err_code=4;goto end_1;
}
rslt=1;
sprintf(buf,"%2.2d|",err_code);
if(err_code!=0) goto end_1;
recs=mysql_num_rows(result); // 獲得行數
flds=mysql_num_fields(result); // 獲得域數
fp 57、rintf(stderr,"records=%d & fields=%d\n",recs,flds);
for(i=0;i 58、
wr_l=strlen(buf);
if((wr_l=write(ns,buf,wr_l))!=wr_l)
{
strcat(tmp,"Write socket ns error!\n");
fprintf(stderr,"Write socket error!\n");
}
else
{
strncat(tmp,buf,wr_l);
wr_l+=rd_l;
}
if(rslt!=0) mysql_free_result(result); // 釋放結果集
59、if(sql!=0) mysql_close(&mysql); // 釋放MYSQL對象
close(ns); // 關閉網絡鏈接
// 以下為寫日志部分
strcat(tmp,"\n");
++wr_l;
if((flds=open(log,O_WRONLY|O_APPEND))==-1)
{ // 打開日志文件
fprintf(stderr,"File %s open error!\n",log);
exit(-5);
}
if(write(flds,tmp,strlen(tmp))! 60、=strlen(tmp))
{ // 寫日志
fprintf(stderr,"File %s write error!\n",log);
close(flds);exit(-6);
}
close(flds);
break;
case 2:
printf("Receive a client connect:%s\n",argv[1]);
fprintf(stderr,"%s get message from ns: %s\n",argv[0],buff);
//訪問服務器端
61、 if((sp1=getservbyname(sservice,"tcp"))==NULL)
{
fprintf(stderr,"Error: getservbyname s1");
err_code=6;goto log;
}
if((hp1=gethostbyname(sdest))==0)
{
fprintf(stderr,"Error: gethostbyname s1");
err_code=7;goto log;
}
bzero(&sin1,sizeof(sin1));
62、 bcopy(hp1->h_addr,&sin1.sin_addr,hp1->h_length);
sin1.sin_family=hp1->h_addrtype;
sin1.sin_port=sp1->s_port;
if((ss=socket(AF_INET,SOCK_STREAM,0))==-1)
{
fprintf(stderr,"Error: socket s1");
err_code=8;goto log;
}
if(connect(ss,&sin1,sizeof(sin1))==-1)
63、 {
fprintf(stderr,"Error: connect s1");
close(ss); err_code=9;goto log;
}
printf("%s",buff);
if(write(ss,buff,rd_l)!=rd_l)
{ //to server
fprintf(stderr,"Write Socket ss ERROR! s1\n");
close(ss); err_code=10;goto log;
}
64、 char rep[20];
if((rd1l=read(ss,rep,20))==0)
{ //from server
fprintf(stderr,"Read Socket ss Error! s1\n");
close(ss);
err_code=11;goto log;
}
rep[rd1l]=\0;
printf("%s get reply: %s\n",argv[0],rep);
// close(ss);
65、
//fprintf(stderr,"and,send it back to client: %s\n",sbuf);
printf("rep:%s",rep);
if((rd1l=write(ns,rep,20))!=rd1l)
{
fprintf(stderr,"Write socket ns error llll!\n");
close(ns);
err_code=10;goto log;
}
// close(ns);
66、 char repp[500];
if((rd1l=read(ns,repp,500))==0)
{ //from server
fprintf(stderr,"jieshouzhangdan error\n");
close(ns);
err_code=11;goto log;
}
repp[rd1l]=\0;
printf("%s 接收信息: %s\n",argv[0],repp);
// close(ns);
if((rd1l=write(ss,repp,200))!=rd1l)
{
fprintf(stderr,"Write socket ss>>>>>> error!\n");
close(ss);
err_code=10;goto log;
}
//close(ss);
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。