電影俱樂部管理系統(tǒng)(C語言報告)_第1頁
電影俱樂部管理系統(tǒng)(C語言報告)_第2頁
電影俱樂部管理系統(tǒng)(C語言報告)_第3頁
電影俱樂部管理系統(tǒng)(C語言報告)_第4頁
電影俱樂部管理系統(tǒng)(C語言報告)_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、哈爾濱學院軟件學院課程設(shè)計說明書題目: 電影俱樂部 院(系)軟件學院專 業(yè)軟件工程年 級2013級姓 名袁禎陽學 號指導教師楊玲職 稱2014年 7月 22 日目 錄摘 要3第一章 需求分析41.1 系統(tǒng)目的41.2 系統(tǒng)功能圖4第二章 概要設(shè)計52.1 整體設(shè)計5第三章 詳細設(shè)計6第五章 系統(tǒng)測試運行205.1 測試目的205.2 測試方案205.3 測試內(nèi)容20總 結(jié)21摘 要C語言是一種編譯型程序設(shè)計語言,編程設(shè)計是學習該語言的一個重要環(huán)節(jié)。通過溫習已學的知識,在上機實踐中熟悉C語言的編程環(huán)境,進而達到能夠編寫較復雜程序并將其實際應(yīng)用的程度。在實際編程中不斷地深入學習數(shù)據(jù)結(jié)構(gòu)、算法、編譯

2、原理、操作系統(tǒng)原理、軟件工程等知識,加深對C語言的理解,切實提高編程水平,這是C語言課程設(shè)計的主要目的。關(guān)鍵詞:C語言,課程設(shè)計第一章 需求分析1.1 系統(tǒng)目的 DVD信息和俱樂部會員信息用文件存儲,因而要提供文件的輸入輸出操作;要注冊新會員,因而要提供文件的添加操作;實現(xiàn)繳納費用,因而要提供文件的修改操作;要瀏覽信息因而要提供顯示操作;要實現(xiàn)查詢則要提供文件的查找操作;另外要提供鍵盤式選擇菜單以實現(xiàn)功能選擇。1.2 系統(tǒng)功能圖第二章 概要設(shè)計2.1 整體設(shè)計整體設(shè)計為登錄模塊、會員模塊、管理員模塊。會員模塊包括會員注冊模塊、會員充值模塊、會員租用DVD模塊、會員歸還DVD模塊、DVD瀏覽模塊

3、、會員信息模塊。修改模塊搜索模塊排序模塊修改模塊搜索模塊添加模塊會員管理模塊DVD管理模塊注冊模塊充值模塊信息模塊租用模塊瀏覽模塊歸還模塊會員模塊登陸模塊管理員模塊電影俱樂部管理模塊包括會員管理模塊、DVD管理模塊。采用文件管理信息,建立兩個文件:DVD信息文件和會員信息文件。(實際還有管理員文件,但應(yīng)不做過多要求所以其功能如修改管理員密碼有所忽略,但代碼有保留,可以隨時添加)數(shù)據(jù)結(jié)構(gòu)采用結(jié)構(gòu)體:/DVD信息結(jié)構(gòu)體Struct DVDInfo Char No10; /DVD編號 Char name10; /DVD名字 Int state; /DVD狀態(tài):0表示已借出,1表示可出借Dvd200;

4、/會員信息結(jié)構(gòu)體Struct MemberInfo Char No10; /會員編號 Char name10; /會員姓名Char password20; /會員密碼 Float balance; /賬戶余額 DI borrowDVD3; /所借DVD信息; Int state; /表示租用DVD的數(shù)目,取值為0-3Mem200;2.2 模塊設(shè)計2.2.1登陸模塊登錄管理員登陸會員登陸輸入管理員賬號打開“member.txt”讀取會員信息否有無此帳號?是否繼續(xù)登陸輸入會員名是輸入密碼有無此會員?密碼正確?錯誤密碼次數(shù)3?輸入密碼是密碼正確?退出系統(tǒng)否進入管理員模塊進入會員模塊2.2.2會員模塊

5、會員登陸成功選擇租借模塊充值模塊信息模塊歸還模塊瀏覽模塊注冊模塊打開“member.txt”讀取會員信息打開“dvd.txt”讀取會員信息打開會員和DVD文件打開會員和DVD文件打開“member.txt”讀取會員信息打開“member.txt”讀取會員信息輸入歸還數(shù)輸入充值數(shù)輸入編號輸入租借的DVD編號充值瀏覽該會員信息顯示所有DVD信息修改會員信息輸入歸還DVD編號顯示DVD信息保存文件查重修改用戶名修改密碼輸入會員其他信息修改會員及DVD狀態(tài)信息修改會員及DVD狀態(tài)信息保存文件保存文件保存文件保存文件保存文件是否繼續(xù)?返回相應(yīng)界面2.2.3管理員模塊管理員登陸成功按編號查找返回相應(yīng)界面是

6、否繼續(xù)?保存文件輸入其他信息查重修改狀態(tài)修改名稱是否修改保存文件修改編號修改該會員全部信息保存文件是否修改按會員名查找搜索顯示所有會員信息排序按余額排序按編號排序輸入編號按編號搜索DVD會員管理添加DVDDVD管理打開“dvd.txt”讀取會員信息打開“member.txt”讀取會員信息第3章 詳細設(shè)計3.1登陸模塊3.11會員登陸int Login1()struct Member a;int i,n,b,k,t=0; fflush(stdin); system(cls);n=loadM() ;printf(*歡迎使用DVD信息管理系統(tǒng)*n); printf(n請輸入會員名:); scanf(

7、%s,); for(i=0;i=n;i+) if(strcmp(,M)=0) t=1;printf(n請輸入會員密碼:);scanf(%s,a.password); if(strcmp(a.password,Memi.password)=0) menu1(i); else printf(密碼錯誤); printf(請選擇n1.繼續(xù)登錄n2.返回n); doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Login1();elsemain();if(t=0

8、)printf( 會員名輸入錯誤n); printf(請選擇n1.繼續(xù)登錄n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Login1();elsemain();return 0; 3.12 管理員登陸int Login2() uifo info; char pw100=0, pw_confirm100=0; int wt = 0; system(cls);memset(&info, 0, sizeof info); read_data(&info); printf(*歡迎

9、進入電影俱樂部*n); while(1) printf(請輸入管理員賬號n); scanf(%s, pw); if(strcmp(pw, ) != 0) printf(無此管理員n); continue; printf(請輸入密碼n); scanf(%s, pw); if(strcmp(pw, info.pw) != 0) printf(密碼錯誤n); else menu2(); wt +; if(wt = 3) printf(3 times password error, exit!n); return -1; 3.2 會員模塊3.21 會員注冊模塊提示輸入用戶信息:會員編

10、號(昵稱),會員姓名,密碼。將把新的會員信息添加到會員信息文件中,并把賬戶余額初始化為0,所借DVD信息初始化為空。 int Register() int a,i,n,j,b,k;struct Member s;system(cls); fflush(stdin); printf(請輸入增加會員檔案的個數(shù):); scanf(%d,&a);n=loadM();for(i=n;in+a;i+) k=0;if(n=0)printf(請輸入會員編號:);scanf(%s,Memi.No);elsewhile(k=0)printf(請輸入會員編號:); /調(diào)用加載函數(shù) n=load()scanf(%s,

11、s.No);for(j=0;ji;j+) if(strcmp(s.No,Memj.No)=0)printf(會員編號已存在n);k=0;break; elsestrcpy(Memi.No,s.No);k=1; printf(請輸入會員名: ); scanf(%s,M); printf(請輸入會員密碼); scanf(%s,Memi.password); Memi.balance=0;Memi.dvd1=Memi.dvd2=Memi.dvd3=0;Memi.state=0; saveM(n+a);printf(nn); printf(請選擇n1.繼續(xù)注冊n2.返回n);dosca

12、nf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Register();elsemain();3.22會員充值模塊提示輸入交費金額,則在會員信息文件中修改其賬戶余額。void Payment(int i)/充值模塊int n,b,j;float k;system(cls); n=loadM(); printf(請輸入充值數(shù));scanf(%f,&k); Memi.balance=k+Memi.balance; saveM(n); printf(請選擇n1.繼續(xù)充值n2.返回n);doscanf(%d,

13、&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Payment(i);else menu1(i);3.23會員租用DVD模塊可以通過菜單選擇。瀏覽DVD信息調(diào)用信息瀏覽模塊,租用則首先查看自己的余額,如果0,則查看狀態(tài),如果state3,則允許出借,提示輸入租用的DVD編號,在會員信息文件中加入該DVD信息,state+。并在DVD信息文件中把該DVD狀態(tài)改為已借出。void Rent(int i)/DVD租借模塊int j,b,n,d,k=0; struct Dvd t;fflush(stdin);syste

14、m(cls);n=loadM();d=loadD();if(Memi.balance=0)printf(余額不足或已欠費請充值);printf(是否充值1.是 2.返回);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Payment(i);elsemenu1(i);if(Memi.state=3)printf(借取已滿或編號錯誤,請嘗試先歸還DVD);elseprintf(Input the No of DVD what you want to rent!);scanf(%d,&t.No

15、); printf(ntnum name staten);/t水平制表 for(j=0;jd;j+) if(t.No=Dvdj.No) printf_Done(j);break; printf(是否租借該DVD?1.是 2.否并繼續(xù)租借 3.返回);doscanf(%d,&b);if(b3) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=2)Rent(i);if(b=3)menu1(i);elseif(Memi.dvd1=0)Memi.dvd1=Dvdj.No;Dvdj.state=1;Memi.state+=1;k+=2; else

16、 if(Memi.dvd2=0)Memi.dvd2=Dvdj.No;Dvdj.state=1;Memi.state+=1;k+=2; else if(Memi.dvd3=0)Memi.dvd3=Dvdj.No;Dvdj.state=1;Memi.state+=1;k+=2; Memi.balance=Memi.balance-k;saveM(n);saveD(d); printf(請選擇n1.繼續(xù)租借n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Rent(i);else

17、menu1(i);/一個任務(wù)結(jié)束時的選擇瀏覽還是返回3.24會員歸還DVD模塊 提示用戶輸入要歸還的DVD編號,把該用戶記錄的該DVD信息初始化為空,state-。同時在DVD信息文件中把其狀態(tài)改為可供出借。void Reback(int i)/DVD返還模塊int n,l,t,s,j,b,k,m,o;system(cls);t=loadD(); n=loadM(); printf(請輸入歸還數(shù)量(最大為3); doscanf(%d,&s); if(s2) o=1; else o=0; while(o=1);for(l=0;ls;l+)printf(Input the number of DV

18、D); scanf(%d,&m); for(j=0;jt;j+) if(Dvdj.No=m) if(m=Memi.dvd1&Dvdj.state=1) Dvdj.state=0;Memi.dvd1=0;Memi.state-=1;break; if(m=Memi.dvd2&Dvdj.state=1) Dvdj.state=0;Memi.dvd2=0;Memi.state-=1;break; if(m=Memi.dvd3&Dvdj.state=1) Dvdj.state=0;Memi.dvd3=0;Memi.state-=1;break; else printf(未借出此DVD或編號錯誤); s

19、aveM(n); saveD(t); printf(請選擇n1.繼續(xù)歸還n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)Reback(i);else menu1(i);3.25信息瀏覽模塊 瀏覽DVD信息,則采用fread從DVD信息文件中讀記錄。void BrowseD(int i)/瀏覽模塊,輸出所有信息int z,j,k,b;system(cls);z=loadD(); if(z=0) printf(無DVD信息 ); else printf(tNo name sta

20、ten); for(j=0;jz;j+)printf_Done(j); printf(n);printf(請選擇n1.繼續(xù)瀏覽n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)BrowseD(i);elsemenu1(i); 3.26會員信息查詢及修改模塊 會員對自己賬戶狀況的查詢,則輸出其賬戶信息即可(登錄時在會員信息文件中找到自身信息,事先讀到臨時變量中),可選擇會員名和會員密碼的修改。3.26-1信息查詢3.26-2 信息修改void menu11(int i) int

21、 n,k; system(cls); do puts(nntt*會員信息*); puts(tt|-|); puts(tt|-|); puts(tt|* 1.顯示會員信息 *|);/會員付費 puts(tt|* 2.會員信息修改 *|);/信息修改 puts(tt|* 3.返回 *|);/退出 puts(tt|-|); puts(tt|-|); puts(tt*nnn); printf( 請選擇你要進行的操作1-3: bb); scanf(%d,&n); if(n3) k=1;printf(輸入編號錯誤n); else k=0; while(k=1); switch(n) case 1:mems

22、(i);break; case 2:modifyM(i);break; case 7:menu1(i);break;default: printf(輸入編號錯誤n); void mems(int i)int b,k,n;printf(ntNo name balance dvd1 dvd2 dvd3 staten);n=loadM();printf_Mone(i);printf(請選擇n1.修改n2.返回n);doscanf(%d,&b);if(b2) k=1; else k=0; while(k=1);if(b=1)modifyM(i);else menu1(i);int modifyM(in

23、t i)/修改信息模塊int n,k,b;system(cls); do puts(nntt*信息修改*); puts(tt|-|); puts(tt|-|); puts(tt|* 1.修改會員名 *|);/會員付費 puts(tt|* 2.修改密碼 *|);/DVD返還 puts(tt|* 3.返回 *|);/退出 puts(tt|-|); puts(tt|-|); puts(tt*nnn); printf( 請選擇你要進行的操作: bb); scanf(%d,&n); if(n3) k=1;getchar(); else k=0; while(k=1); switch(n) case 1:

24、modifyM1(i);break; case 2:modifyM2(i);break; case 3:menu1(i);default: printf(輸入編號錯誤n);printf(請選擇n1.繼續(xù)修改n2.返回n);doscanf(%d,&b);if(b3) k=1; else k=0; while(k=1);if(b=1)modifyM(i);else menu1(i); int modifyM1(int i)/修改信息模塊int n,b,k; struct Member s; n=loadM();printf(n please enter the member massages:n

25、name :n);scanf(%s,); strcpy(M,);/復制 saveM(n);printf(請選擇n1.繼續(xù)修改n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)modifyM(i);else menu11(i);int modifyM2(int i)/修改信息模塊int n,b,k; struct Member s; n=loadM();printf(n please enter the member massages:n

26、 password: n);scanf(%s,s.password);strcpy(Memi.password,s.password); saveM(n);printf(請選擇n1.繼續(xù)修改n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)modifyM(i);else menu11(i);3.3 管理員模塊3.31 DVD管理模塊添加DVD,搜索并選擇修改已存DVD編號、DVD名和其狀態(tài)。3.31-1 添加模塊通會員注冊一樣,進行DVD信息的添加,并防止編號重復。int a

27、dd()int a,i,n,j,b,k;struct Dvd t;char c;fflush(stdin);system(cls); printf(請輸入增加DVD的個數(shù):); scanf(%d,&a);n=loadD();for(i=n;i(n+a);i+) k=0;if(n=0)printf(請輸入DVD編號:);scanf(%d,&Dvdi.No);else while(k=0)printf(請輸入DVD編號:);scanf(%d,&t.No);for(j=0;ji;j+)if(t.No=Dvdj.No)printf(DVD編號已存在n);k=0;break;elseDvdi.No=t.

28、No;k=1; fflush(stdin); printf(請輸入DVD名: ); scanf(%s,D); fflush(stdin);Dvdi.state=0;saveD(n+a); printf(請選擇n1.繼續(xù)添加n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)add();elsemenu2();3.31-2搜索模塊按編號查找void SearchD()/搜索模塊int i,m,b,k; struct Dvd t;fflush(stdin); m=l

29、oadD(); printf(nnEnter DVD name that you want to search! No); scanf(%d,&t.No); printf(ntnum name staten);/t水平制表 for(i=0;im;i+) if(t.No=Dvdi.No) printf_Done(i);break; printf(請選擇n1.繼續(xù)搜索n2.修改n3.返回n);doscanf(%d,&b);if(b3) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)SearchD();if(b=2)modifyD(i)

30、;else dvd();/一個任務(wù)結(jié)束時的選擇瀏覽還是返回 3.31-3 修改模塊選擇DVD編號、DVD名、DVD狀態(tài)進行修改。等int modifyD(int i)/修改信息模塊int n,k;system(cls); do puts(nntt*信息修改*); puts(tt|-|); puts(tt|-|); puts(tt|* 1.修改DVD編號 *|);/會員付費 puts(tt|* 2.修改DVD名 *|);/DVD返還 puts(tt|* 3.修改DVD狀態(tài) *|); puts(tt|* 4.返回 *|); puts(tt|-|); puts(tt|-|); puts(tt*nnn

31、); printf( 請選擇你要進行的操作1-4: bb); scanf(%d,&n); if(n3) k=1;getchar(); else k=0; while(k=1); switch(n) case 1:modifyD1(i);break; case 2:modifyD2(i);break; case 3:modifyD3(i);break; case 4:dvd();default: printf(輸入編號錯誤n); return 0;int modifyD1(int i)/修改信息模塊int m,k,b; struct Dvd t; m=loadD(); printf(please

32、 enter the dvd massages:No:n); scanf(%d,&t.No); Dvdi.No=t.No; saveD(m);printf(請選擇n1.繼續(xù)修改n2.返回);doscanf(%d,&b);if(b2) k=1; else k=0; while(k=1);if(b=1)modifyD(i);elsedvd();return 0;int modifyD2(int i)/修改信息模塊int m,k,b; struct Dvd t; m=loadD(); printf(please enter the dvd massages:namen); scanf(%s,t.na

33、me); strcpy(D,); saveD(m);printf(請選擇n1.繼續(xù)修改n2.返回);doscanf(%d,&b);if(b2) k=1; else k=0; while(k=1);if(b=1)modifyD(i);elsedvd();return 0;int modifyD3(int i)/修改信息模塊int m,k,b; struct Dvd t; m=loadD(); printf(please enter the dvd massages:staten); scanf(%d,&t.state); Dvdi.state=t.state; sav

34、eD(m);printf(請選擇n1.繼續(xù)修改n2.返回);doscanf(%d,&b);if(b2) k=1; else k=0; while(k=1);if(b=1)modifyD(i);else dvd();return 0;3.32 會員管理模塊3.32-1排序模塊將會員信息按照編號或余額排序,并瀏覽。void BrowseM()/瀏覽模塊,輸出所有信息int a,k,i=0;system(cls); do printf(*瀏覽會員信息*n); printf(請輸入對應(yīng)操作編號進行選擇,以回車鍵結(jié)束); printf(n 1. 按編號排序n); printf(n 2. 按余額排序n);

35、 printf(n 3. 返回n); printf(n請選擇編號:); scanf(%d,&a); if(a3) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1); switch(a) case 1: BrowseM1(); case 2: BrowseM2();case 3:menu2(); default: printf(輸入編號錯誤n); void BrowseM1()/瀏覽模塊,輸出所有信息int i,n,k,b,j;struct Member temp; n=loadM();/調(diào)用加載函數(shù) n=load() for(i=0;in;i+)

36、for(j=0;j0) temp=Memj; Memj=Memj+1; Memj+1=temp; printf(ntNo name balance dvd1 dvd2 dvd3 staten); for(i=0;in;i+) printf_Mone(i); printf(n); printf(ntThere are %d record.n,n);printf(請選擇n1.繼續(xù)瀏覽n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)BrowseM();else mem();voi

37、d BrowseM2()/瀏覽模塊,輸出所有信息int i,n,j,b,k;struct Member temp; n=loadM();/調(diào)用加載函數(shù) n=load() for(i=0;in-1;i+) for(j=0;jMemj+1.balance) temp=Memj; Memj=Memj+1; Memj+1=temp; printf(ntNo name balance dvd1 dvd2 dvd3 staten);for(i=0;in;i+)printf_Mone(i); printf(n); printf(ntThere are %d record.n,n); printf(請選擇n1

38、.繼續(xù)瀏覽n2.返回n);doscanf(%d,&b);if(b2) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)BrowseM();else mem();3.32-2 搜索模塊按會員名或會員編號搜索int SearchM()/搜索模塊int a;system(cls); printf(*歡迎進入電影俱樂部*n); printf(請輸入對應(yīng)操作編號進行選擇,以回車鍵結(jié)束); printf(n 1. 按會員名搜索n); printf(n 2. 按會員編號搜索n); printf(n 3. 退出n); printf(n請選擇編號:)

39、; scanf(%d,&a); switch(a) case 1: Search1();break; case 2: Search2(); break;case 3:exit(0); default: printf(輸入編號錯誤n); SearchM(); return 0;void Search1()/搜索模塊struct Member s;int i,n,b,k; n=loadM();/調(diào)用加載函數(shù) n=load() printf(nnEnter member name that you want to search! name:); fflush(stdin); scanf(%s,s.n

40、ame); for(i=0;in;i+) if(strcmp(,M)=0)/比較兩字符串 printf(nt name sex age dvd1 dvd2 dvd3 dayn); printf_Mone(i);break; printf(請選擇n1.繼續(xù)搜索n2.修改n3.返回n);doscanf(%d,&b);if(b3) k=1;printf(輸入編號錯誤,請再次輸入n); else k=0; while(k=1);if(b=1)SearchM();if(b=2)modifyAM(i);else menu2();/一個任務(wù)結(jié)束時的選擇瀏覽還是返回void Search2()/搜索模塊int

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論