學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1_第1頁(yè)
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1_第2頁(yè)
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1_第3頁(yè)
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1_第4頁(yè)
學(xué)生考勤管理系統(tǒng)課程設(shè)計(jì)報(bào)告1_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、. . . . 一需求分析功能需求: 1、錄入學(xué)生的缺勤記錄; 2、修改某個(gè)學(xué)生的缺勤記錄; 3、查詢某個(gè)學(xué)生的缺勤情況; 4、統(tǒng)計(jì)某段時(shí)間,缺勤學(xué)生學(xué)號(hào)與缺勤次數(shù),按缺勤權(quán)值統(tǒng)計(jì)學(xué)生的負(fù)分值,并能進(jìn)行排序; 5、統(tǒng)計(jì)某段時(shí)間,有學(xué)生曠課的課程與曠課人次,按曠課人次由多到少排序; 6、系統(tǒng)以菜單方式工作數(shù)據(jù)需求 本系統(tǒng)主要涉與的數(shù)據(jù)有學(xué)生缺課信息類和有關(guān)信息排序類。學(xué)生缺課信息包括缺課時(shí)間,學(xué)生,課程名稱,第幾節(jié),學(xué)生遲到次數(shù),早退次數(shù),請(qǐng)假次數(shù),曠課次數(shù)。有關(guān)信息排序類包括對(duì)課程排序和對(duì)排序。性能需求 要求系統(tǒng)具有可靠性,速度要快二、系統(tǒng)的主要功能 (1)、錄入學(xué)生的缺課記錄,函數(shù)代碼voi

2、d input(records *r)模塊中。首先提示用戶按照正確的格式進(jìn)行學(xué)生缺課記錄的錄入,這個(gè)步驟比較簡(jiǎn)單,只需要不斷地將記錄的每個(gè)數(shù)據(jù)項(xiàng)存入結(jié)構(gòu)體對(duì)應(yīng)的成員中。 (2)、修改某個(gè)學(xué)生的缺課記錄,函數(shù)代碼void edt(records *r)模塊中。首先必須查找到你所需要修改的那位的學(xué)生全部缺課記錄。這個(gè)模塊不需要定義新的結(jié)構(gòu)體。在修改前當(dāng)然要檢查記錄是否為空了,不為空的話,可以設(shè)置下面這五個(gè)菜單供用戶選擇:1、缺課日期2、第幾節(jié)課3、課程名稱4、學(xué)生5、缺課類型6、退出修改程序并返回系統(tǒng)主菜單。修改很簡(jiǎn)單,僅需要對(duì)該學(xué)生的某個(gè)部分進(jìn)行替換即可。采用switch語(yǔ)句很快就解決。最后實(shí)現(xiàn)

3、對(duì)所選記錄的修改,完成后更新原有的學(xué)生記錄。 (3)、查詢某個(gè)學(xué)生的缺課情況,函數(shù)代碼void search(records *r)模塊中。達(dá)到查詢結(jié)果按照日期升序排序,同一天按照所缺課程的時(shí)間升序排序的目的, (4)、統(tǒng)計(jì),函數(shù)代碼為void order_c()和void order_s()的類模塊中。其中實(shí)現(xiàn)對(duì)課程排序和對(duì)學(xué)生的排序。三、流程圖學(xué)生考勤系統(tǒng)結(jié)構(gòu)圖:基類的數(shù)據(jù)成員和成員描述recordString date,cname,sname;into,type;void set();string tostr();類名/函數(shù)名描述 類名/函數(shù)名描述record 基類edt()修改學(xué)生信息

4、records實(shí)現(xiàn)學(xué)生曠課情況排序的類del()刪除學(xué)生信息wt/rd()實(shí)現(xiàn)對(duì)文件的輸入和輸出search()查找學(xué)生信息input()錄入學(xué)生的缺課記錄search_s()一定圍查找學(xué)生信息edt()修改學(xué)生信息main()主函數(shù)四、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì) 此程序運(yùn)用多種條件語(yǔ)句,主體采用的是動(dòng)態(tài)數(shù)組、指針。系統(tǒng)的設(shè)計(jì)采用了數(shù)組語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句,在需要處理大量同類數(shù)據(jù)時(shí),這樣就使程序書寫更加簡(jiǎn)潔。程序使用了布爾函數(shù)。選擇語(yǔ)句多采用if多分支選擇結(jié)構(gòu)與switch語(yǔ)句。首先計(jì)算switch表達(dá)式,然后在caes子句中尋找值相等的常量表達(dá)式,并以此為入口符號(hào),由此開始順序執(zhí)行。循環(huán)語(yǔ)句采用了fo

5、r語(yǔ)句等、do-while語(yǔ)句,for語(yǔ)句用于已知循環(huán)次數(shù)的循環(huán)結(jié)構(gòu),括號(hào)中的三個(gè)量分別用來(lái)表示循環(huán)變量初值、循環(huán)終值和循環(huán)增量。do-while語(yǔ)句先循環(huán)后判斷, Break語(yǔ)句在switch語(yǔ)句中,保證多分支情況的正確執(zhí)行,在循環(huán)語(yǔ)句中,強(qiáng)制終止本層循環(huán)。保存和讀取函數(shù)是典型的函數(shù)功能,一個(gè)程序是由若干個(gè)函數(shù)組成的,保存和讀取函數(shù)是和其他函數(shù)互相調(diào)用的再有使用有關(guān)類的設(shè)計(jì),學(xué)生缺課信息類和有關(guān)信息排序類,如下:class record /學(xué)生缺課信息類public:void set(string d,into,string c,string s,int type)date.assign(d

6、);/日期cname.assign(c);/課程名字sname.assign(s);/學(xué)生this-cno=cno;/對(duì)缺課類型的選擇 為int型this-type=type;/缺課類型void set(record re)date.assign(re.date);cname.assign(ame);sname.assign(re.sname);this-cno=o;this-type=re.type;string date,cname,sname;into,type;class records /實(shí)現(xiàn)學(xué)生曠課情況排序的類public:records() /構(gòu)造函數(shù)r=new record10

7、0;n=0;void order_s() /的排序int i; int j;string *s=new stringn;int *c=new int n;s0.assign(r0.sname);c0=1;int k=1,flag;for( i=1;in;i+)flag=0;for( j=0;jk;j+)if(ri.sname=sj)cj+;flag=1;break;if(!flag)sk=ri.sname;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout

8、曠課學(xué)生t曠課次數(shù)endl;for(i=0;ik;i+)coutsittciendl;void order_c() /課程排序int i,j;string *s=new stringn;int *c=new int n;s0.assign(ame);c0=1;int k=1,flag;for( i=1;in;i+)flag=0;for(j=0;jk;j+)if(ame=sj)cj+;flag=1;break;if(!flag)sk=ame;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;strin

9、g stmp=sj;sj=sj-1;sj-1=stmp;cout課程名t曠課人次endl;for(i=0;ik;i+)coutsitciendl;record *r;int n; 把所有的學(xué)生記錄都保存到一個(gè)文件里面,然后根據(jù)需要再將里面需要查找的元素進(jìn)行查找,相應(yīng)的排序可能就是將他們盡可能壓進(jìn)關(guān)聯(lián)式容器map,有的部分就壓入set里面,這些都是根據(jù)模塊的功能來(lái)選定的??梢赃@么說,選擇好合理的數(shù)據(jù)結(jié)構(gòu)查找與排序就可以一勞永逸了。這點(diǎn)在后面部分會(huì)有詳細(xì)的說明。還有就是對(duì)各功能子函數(shù)的編寫應(yīng)用。五、類設(shè)計(jì)系統(tǒng)中主要涉與了兩個(gè)類: 一個(gè)是class record /關(guān)于學(xué)生考勤基本信息類 另一個(gè)是c

10、lass records/實(shí)現(xiàn)學(xué)生曠課情況排序的類六、主要算法設(shè)計(jì) 關(guān)鍵算法:曠課情況的排序:class records/實(shí)現(xiàn)學(xué)生曠課情況排序的類public:records() /構(gòu)造函數(shù)r=new record100;n=0;曠課記錄的修改:cout請(qǐng)輸入要修改缺課記錄的學(xué)生: tmp;t1.assign(tmp);for(i=0;in;i+)if(r-ri.sname=t1)flag=7;break;if(!flag)cout查無(wú)此學(xué)生!ri.date;t2=o;t3=ame;t4=r-ri.sname;t5=r-ri.type;曠課項(xiàng)目的修改! cout請(qǐng)輸

11、入要修改的項(xiàng)目:n(1.缺課日期 2.缺課節(jié)次 3.缺課名稱 4.學(xué)生 5.缺課類型 6.全部) flag;switch(flag)case 1:goto e1;case 2:goto e2;case 3:goto e3;case 4:goto e4;case 5:goto e5;case 6:goto e1;default:goto e0; 用到的知識(shí)點(diǎn)有:函數(shù)的作用域、函數(shù)的調(diào)用、數(shù)組賦值、函數(shù)循環(huán)、以與類的定義,另外還用到了for函數(shù)、getch函數(shù)、switch函數(shù)、case函數(shù)、default函數(shù)等等。七、主要代碼第一部分:學(xué)生考勤管理系統(tǒng)#include stdlib.h#incl

12、ude hanshushixian.h#include record.h#include #include #include #include using namespace std;#include record.hint main()c1: /主菜單實(shí)現(xiàn) system(cls); cout *endl; cout * 歡迎訪問學(xué)生考勤管理系統(tǒng) *endl; cout *endl; cout * 系統(tǒng)主菜單: 1.顯示所有學(xué)生的缺課記錄 *endl;cout * 2.錄入學(xué)生的缺課信息記錄 *endl; cout * 3.查詢某個(gè)學(xué)生的缺課情況 *endl; cout * 4.修改某個(gè)學(xué)生的

13、缺課記錄 *endl; cout * 5.刪除某個(gè)學(xué)生的缺課記錄 *endl; cout * 6.統(tǒng)計(jì)某段時(shí)間曠課情況 *endl; cout * 7. 退出系統(tǒng) *endl; cout *endl; coutO(_)O 請(qǐng)選擇你所需要的操作 O(_)O: chose;if(chose=7)exit(0);records *r=new records();rd(r);switch(chose)case 1:pri(r);break;case 2:input(r);break;case 3:search(r);break;case 4:edt(r);break;case 5:del(r);bre

14、ak;case 6:search_s(r);break;default:goto c2;cout是否返回主菜單? (y/n)你的選擇: yn;if(yn=y)goto c1;else if(yn=n)exit(0);else goto c3;return 0;第二部分:record.h (類的設(shè)計(jì)部分)#include #include using namespace std;#ifndef record_class#define record_classclass record /關(guān)于學(xué)生考勤基本信息類public:void set(string d,into,string c,string

15、 s,int type)date.assign(d);cname.assign(c);sname.assign(s);this-cno=cno;this-type=type;void set(record & re)date.assign(re.date);/assign可以避免不必要的存分配,可以提高效率cname.assign(ame);sname.assign(re.sname);this-cno=o;this-type=re.type;string tostr()string s;char tmp3;s.assign(date);itoa(cno,tmp,10);s.append(#)

16、;s.append(tmp);/直接添加另一個(gè)完整的字符串s.append(#);s.append(cname);s.append(#);s.append(sname);itoa(type,tmp,10);s.append(#);s.append(tmp);return s;string date;stringame;string sname;into;int type;#endif record_class#ifndef records_class#define records_classclass records/實(shí)現(xiàn)學(xué)生曠課情況排序的類public:records() /構(gòu)造函數(shù)r=ne

17、w record100;n=0;void order_s() /的排序int i; int j;string *s=new stringn;int *c=new int n;s0.assign(r0.sname);c0=1;int k=1,flag;for( i=1;in;i+)flag=0;for( j=0;jk;j+)if(ri.sname=sj)cj+;flag=1;break;if(!flag)sk=ri.sname;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1=tmp;string stmp=sj;sj=sj-1;sj-1

18、=stmp;cout曠課學(xué)生t曠課次數(shù)endl;for(i=0;ik;i+)coutsittciendl;void order_c() /課程排序int i,j;string *s=new stringn;int *c=new int n;s0.assign(ame);c0=1;int k=1,flag;for( i=1;in;i+)flag=0;for(j=0;jk;j+)if(ame=sj)cj+;flag=1;break;if(!flag)sk=ame;ck+=1;for(i=1;i0;j-)if(cjcj-1)int tmp=cj;cj=cj-1;cj-1

19、=tmp;string stmp=sj;sj=sj-1;sj-1=stmp;cout課程名t曠課人次endl;for(i=0;ik;i+)coutsitciendl;record *r;int n;#endif records_class第三部分:hanshushixian.h (功能子函數(shù)的實(shí)現(xiàn)部分)#include record.h#include #include #include #include stdlib.h#include using namespace std;void wt(records *r)/實(shí)現(xiàn)對(duì)文件的輸出ofstream outf(data.txt);for(in

20、t i=0;in;i+)outfri.tostr()endl;outf!endl;void rd(records *r)/實(shí)現(xiàn)對(duì)文件的輸入ifstream inf(data.txt);if(inf.eof()cout記錄為空!n=0;while(true)inf.getline(tmp,10,#);if(tmp0=!)break;t1.assign(tmp);inf.getline(tmp,3,#);t2=atoi(tmp);inf.getline(tmp,30,#);t3.assign(tmp);inf.getline(tmp,30,#);t4.assign(tmp);inf.getline

21、(tmp,3);t5=atoi(tmp);r-rr-n+.set(t1,t2,t3,t4,t5);bool timechk(string t1)int year=atoi(t1.substr(0,2).c_str();int month=atoi(t1.substr(2,2).c_str();int day=atoi(t1.substr(4,2).c_str();if(!(t1.length()=6&year0&year0&month0&day32)cout日期錄入有誤! 請(qǐng)重新錄入: endl;return false;else return true;void input(records

22、*r)/錄入學(xué)生的缺課記錄string t1,t3,t4;int t2,t5,flag=0;char yn;cout錄入一條學(xué)生缺課記錄:endl;/endl表示終止一行并刷新緩沖區(qū)m1:cout請(qǐng)輸入缺課日期: (例如110627) t1;if(!(timechk(t1)goto m1;m2:cout請(qǐng)輸入缺第幾節(jié)課: t2;if(t210)cout節(jié)次錄入有誤! 請(qǐng)重新錄入: endl;goto m2;cout請(qǐng)輸入缺課名稱: t3;cout請(qǐng)輸入缺課學(xué)生: t4;m3:cout請(qǐng)輸入缺課類型: (1.遲到 2.早退 3.請(qǐng)假 4.曠課) t5;if(t54)cout類型輸入有誤! 請(qǐng)重新

23、錄入: endl;goto m3;for(int i=0;in;i+)if(r-ri.date=t1&o=t2&ame=t3&r-ri.sname=t4&r-ri.type=t5)cout該條記錄已存在,是否添加為新記錄? (y/n) yn;if(yn=y)break;else if(yn=n)goto n2;else goto n1;r-rr-n+.set(t1,t2,t3,t4,t5);n2:cout是否繼續(xù)輸入? (y/n) yn;if(yn=y)goto m1;else if(yn=n)cout保存修改? (y/n) yn;if(yn=y)wt(r);els

24、e return;else goto n3;void prione(record r)coutr.datettotamettr.snamettflush;switch(r.type)case 1:cout遲到endl;break;case 2:cout早退endl;break;case 3:cout請(qǐng)假endl;break;case 4:cout曠課n=0)cout記錄為空!endl;return;coutn序號(hào)t缺課日期 節(jié)次t課程名稱t學(xué)生t缺課類型endl;for(int i=0;in;i+)coutitri);void edt(records *r)/修改學(xué)生信息int i;if(r-

25、n=0)cout記錄為空!endl;return;cout請(qǐng)輸入要修改缺課記錄的學(xué)生: tmp;t1.assign(tmp);for(i=0;in;i+)if(r-ri.sname=t1)flag=7;break;if(!flag)cout查無(wú)此學(xué)生!ri.date;t2=o;t3=ame;t4=r-ri.sname;t5=r-ri.type;cout請(qǐng)輸入要修改的項(xiàng)目:n(1.缺課日期 2.缺課節(jié)次 3.缺課名稱 4.學(xué)生 5.缺課類型 6.全部) flag;switch(flag)case 1:goto e1;case 2:goto e2;case 3:goto

26、 e3;case 4:goto e4;case 5:goto e5;case 6:goto e1;default:goto e0;e1:cout請(qǐng)輸入缺課日期: (例如080612) t1;if(flag!=6)goto e6;e2:cout請(qǐng)輸入缺第幾節(jié)課: t2;if(flag!=6)goto e6;e3:cout請(qǐng)輸入缺課名稱: t3;if(flag!=6)goto e6;e4:cout請(qǐng)輸入缺課學(xué)生: t4;if(flag!=6)goto e6;e5:cout請(qǐng)輸入缺課類型: (1.遲到 2.早退 3.請(qǐng)假 4.曠課) t5;e6:r-ri.set(t1,t2,t3,t4,t5);ch

27、ar yn;cout保存修改? (y/n) yn;if(yn=y)wt(r);else return;void del(records *r)/刪除學(xué)生信息if(r-n=0)cout記錄為空!endl;return;cout請(qǐng)輸入要?jiǎng)h除的記錄的序號(hào): (輸入-1刪除全部) flag;if(flagr-n-1&flag-1)cout不存在所要?jiǎng)h除的記錄!n=0;elsefor(int i=flag;in-1;i+)r-ri.set(r-ri+1);r-n-;char yn;cout保存修改? (y/n) yn;if(yn=y)wt(r);else return;void search(recor

28、ds *r)/查找學(xué)生信息if(r-n=0)cout記錄為空!endl;return;cout請(qǐng)輸入要查詢的學(xué)生: str;for(int i=0;in;i+)if(r-ri.sname=str)if(!flag)coutn序號(hào)t缺課日期 節(jié)次t課程名稱t學(xué)生t缺課類型endl;coutj+tri);flag=1;if(!flag)cout沒有查到該學(xué)生的缺課記錄!n=0)cout記錄為空!endl;return;records *r1=new records();g1:cout請(qǐng)輸入要檢索的時(shí)間圍: (例如110610-110612) tmp;ld.assign(tmp.substr(0,6

29、);hd.assign(tmp.substr(7,6);if(!timechk(ld)|!timechk(hd)goto g1;for(i=0;in;i+)if(r-ri.date pare(ld)=0&r-ri.date pare(hd)ri.type=4)r1-rr1-n+.set(r-ri);cout請(qǐng)選擇統(tǒng)計(jì)方式: (1.學(xué)生曠課情況降序顯示 2.課程曠課情況降序顯示)i;switch(i)case 1:coutn在ld到hd期間學(xué)生曠課情況如下:order_s();break;case 2:coutn在ld到hd期間課程曠課情況如下:order_c();break;default:g

30、oto g2;八、系統(tǒng)運(yùn)行結(jié)果樣例當(dāng)用戶執(zhí)行程序時(shí)首先會(huì)出現(xiàn)如下界面也是主菜單界面:當(dāng)輸入序號(hào)1時(shí)會(huì)出現(xiàn)所有學(xué)生記錄:再選擇y就會(huì)又回到主菜單界面,選n時(shí)就會(huì)退出。當(dāng)在主菜單是選擇序號(hào)2時(shí)就會(huì)出現(xiàn)如下界面:按照提示進(jìn)行輸入,如果要繼續(xù)輸入則選擇y,否則選n推出并會(huì)提示是否保存錄入的容。當(dāng)在主菜單是選擇序號(hào)3時(shí)會(huì)出現(xiàn)界面:此時(shí)就要求輸入查詢的學(xué)生,輸入之后如果記錄沒有就會(huì)出現(xiàn)“沒有查到該學(xué)生的缺課紀(jì)錄”,如果有的話就會(huì)顯示次學(xué)生的記錄。當(dāng)在主菜單是選擇序號(hào)4時(shí),就會(huì)提示輸入需要修改的,如果此學(xué)生有會(huì)出現(xiàn):如果沒有此學(xué)生就會(huì)出現(xiàn):同樣在主菜單選擇5時(shí)會(huì)出現(xiàn):選擇6時(shí)則會(huì)出現(xiàn)界面:在統(tǒng)方式選1的話會(huì)

31、出現(xiàn)上面的界面,選2的話界面如下:當(dāng)選擇7時(shí):就會(huì)退出系統(tǒng)如果想再次使用就必須再次打開程序選擇功能使用。九、結(jié)束語(yǔ) 本次課程設(shè)計(jì)主要使用到了C+中的一些比較基本的算法,總體上感覺比之前做過的實(shí)驗(yàn)綜合性比較強(qiáng)。在這里我主要總結(jié)一下我設(shè)計(jì)這個(gè)學(xué)生考勤管理系統(tǒng)的心得和在編譯程序的過程中遇到的問題以與解決的辦法。為了使得程序的編寫更加有條理,閱讀更加明了,在寫每個(gè)模塊的時(shí)候都將自己的思路寫在每個(gè)函數(shù)的第一行,告訴自己(讀者)我這個(gè)函數(shù)將要做的是什么事情。這是一個(gè)很好的編程規(guī),值得繼續(xù)發(fā)揚(yáng)。 對(duì)于這次的程序的編寫,花了不少時(shí)間,原因很可能是自己對(duì)C+的總體認(rèn)知還不夠,還有在上學(xué)期一個(gè)月對(duì)C+的學(xué)習(xí)知識(shí)量很有限,在編寫調(diào)試的這個(gè)過程中很多新的語(yǔ)法知識(shí)都是在網(wǎng)上搜索的。當(dāng)然錯(cuò)誤自然是非常多的,比如bool型的,在網(wǎng)上看過了,感覺用的人比較多,也覺得挺好用的,在本程序中也使用了bool型的,如bool timechk();知道bool為布爾型,只有一個(gè)字節(jié),取值false和true,是0和1的區(qū)別,不過在使用的時(shí)候老是出錯(cuò)。還有使用append()添加文本常用方法:直接添加另一個(gè)完整的字符串,如str1.append(str2);添加另一個(gè)字符串的某一段子串:如str1.append(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論