版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、課程設計報告一、需求分析:1、設計題目:電子投票系統(tǒng)2、設計內(nèi)容及要求:(1)通過編程建立一個小型電子投票系統(tǒng),其中包含電子投票、票數(shù)統(tǒng)計 功能。盡量做到提供一個簡單的人機界面,系統(tǒng)界面友好,使用方便。(2)軟件的使用者分為兩類,一類為管理員,可以對候選人信息進行初始 化和修改,還可瀏覽候選人信息介紹,可對候選人的票數(shù)進行排序以及對系統(tǒng)的用戶進行管理,創(chuàng)建使用者用戶名和密碼等。另一類為使用者一普通投票者,該 類用戶需要用管理員分配的用戶名和密碼正確登錄系統(tǒng),可以查詢候選人介紹、 投票等。(投票是只需做到輸入自己想要投票的候選人編號即可完成投票)3、系統(tǒng)功能分析:本系統(tǒng)程序功能:(1)投票者功能
2、a. 瀏覽所有候選人資料b. 查詢要了解的候選人的信息C.在了解候選人之后進行投票(2)管理員功能a. 創(chuàng)建新的候選人資料b. 創(chuàng)建新的用戶資料C.查詢要了解的候選人資料d. 瀏覽所有的候選人資料e. 對候選人票數(shù)進行統(tǒng)計并排序二、具體設計1、功能模塊(1)開始運行與結(jié)束運行界面模塊開始運行顯示有“電子投票系統(tǒng)”字樣的界面,結(jié)束運行時則輸出顯示“感 謝參與、再見”字樣的界面。(2)功能選擇模塊根據(jù)輸入的用戶名和密碼,分別進入管理員界面和投票者界面(3)身份驗證模塊驗證管理員和投票者的用戶名和密碼是否正確, 不正確可選擇重新輸入用戶 名和密碼或者退出。(4)投票人管理模塊實現(xiàn)對投票人的管理功能,
3、如創(chuàng)建投票人用戶名和密碼。主要用結(jié)構(gòu)體類型 的數(shù)組和文件的讀寫來完成數(shù)據(jù)的管理操作。(5)候選人管理模塊同投票人管理模塊類似,要實現(xiàn)對大量有一定結(jié)構(gòu)的信息進行管理的操作, 如創(chuàng)建候選人,查詢、瀏覽候選人信息。因此定義候選人信息結(jié)構(gòu)體,用于存儲 候選人信息記錄,并且將大量記錄存儲在硬盤文件中以便保存。用文件的讀寫函數(shù)實現(xiàn)各項功能。(6)投票區(qū)模塊投票區(qū)模塊用于完成系統(tǒng)的主體功能,提示投票人輸入自己想要選舉的候選 人序號,系統(tǒng)立刻將該候選人對應的票數(shù)加一, 并將目前的投票狀況顯示給投票人。因此該部分只需讀取候選人信息文件,將對應的候選人票數(shù)加一后再寫回文 件并顯示即可。(7)票數(shù)管理模塊: 該模塊
4、具有對候選人票數(shù)進行排行和瀏覽兩大功能。2、程序流程圖三、源程序代碼#in cludevstdio.h>#in clude<stri ng.h>#in clude<stdlib.h>#in clude<c oni o.h>#in cludevgra phics.h>#define closegr closegra ph #define N 30歡迎*/再見*/管理員主控平臺*/用戶(投票者)主控平臺*/ 創(chuàng)建候選人*/創(chuàng)建用戶*/查詢候選人信息*/瀏覽候選人信息*/用戶投票*/讀取候選人信息*/存儲候選人信息*/void welcome();/*
5、 void tha ns(); /* void main_a(); /* void main_v(); /* void create(); /* void CreatUserO;/* void search(); /* void browse(); /* void vote(); /* void read_c_ma n();/* void c_save(); /* int total=0,c_total=0; int i=0;/*候選人信息數(shù)據(jù)結(jié)構(gòu)描述候選人的編號、姓名、簡介和得票數(shù)量信息,作為候選人信息記錄存在文件 中*/typ edef struct can didate long nu
6、mber;char n ame20;char in tro400;int vote;ca ndidate;/*系統(tǒng)用戶數(shù)據(jù)結(jié)構(gòu)描述系統(tǒng)用戶編號、用戶名、密碼和權(quán)限信息,作為一整條記錄存放在文件中*/typ edef struct user char n ame20;char p s8;int po wer;user;can didate c_ma n N; user total_userN;void read_c_ma n() ""char DataFile20=" 候選人.txt"FILE * fp=NULL;c_total=0;fp=fo pen (
7、DataFile,"rb");if(fp=NULL)prin tf("n Open file %s fail! End With any key n",DataFile); p error(" Open file fail");getch();exit(1);while(fread(&c_ma n c_total,sizeof(ca ndidate),1,fp)!=(i nt)NULL) ""c_total+;"fclose(fp); void c_save()FILE *fp=NULL;char
8、 DataFile20=" 候選人.txt"/*存儲投票人信息的文件名*/fp=fo pen (DataFile,"wb");for(i=0;i<c_total;i+) "if(fwrite(&c_ma ni,sizeof(ca ndidate),1,fp)!=1) "printf("nwritefile is fail! End with any keyn",DataFile);p error("write file fail");getch();exit(1); void by
9、ebyeO tha ns(); void vote()定義進行操作時的臨時結(jié)構(gòu)體變量*/候選人.txt",next;long can didate num;/* int i,flag;char DataFile20="/* DataFile存儲候選人信息的文件名,next為是否進行下一次投標操作的 選項*/can didate TempS;FILE *fp;beg in:flag=O;/*flag用來標志是否找對應編號,即投票是否成功*/read_c_ma nO;printf("請輸入您要投票的候選人的號碼:");scan f("%ld&quo
10、t;,&can didate nu m);printf(”您所投票的候選人號碼是:ldn",candidatenum);for(i=0;i<c_total;i+) "if(c_ma ni. nu mber=ca ndidate num)"flag=1;c_ma ni.vote+;if(flag)投票成功n");printf("fp=fo pen (DataFile,"wb");/*如果當前文件不存在,提示打開文件失敗*/if(fp=NULL)printf("nOpenfile is fail!End
11、with any key.n",DataFile);p error("O pen file fail");getch();exit(1);for(i=0;i<c_total;i+)fwrite(&c_ma ni,sizeof(ca ndidate),1,fp); " fclose(fp);elseprintf("printf("getch();return;投票失??!您要投票的號碼不存在n"); 按任意鍵返回首頁!n");/*顯示投票后的情況*/fp=fo pen (DataFile,"rb
12、");if(fp=NULL)prin tf("n Open file %s fail! End With any key n",DataFile);p error(" Open file fail");getch();exit(1);printf("整理后的最新投票情況:n");prin tf("n候選人號碼t候選人姓名t票數(shù)n");/*將文件中的數(shù)據(jù)讀入結(jié)構(gòu)體數(shù)組*/while(fread(&Tem pS,sizeof(ca ndidate),1,fp)!=(i nt)NULL)t%dif(Te
13、 mp S. nu mber!=0)prin tf("n%ldt%sn",Te mp S. nu mber,Te mp S. name,Te mp S.vote);fclose(fp);printf("n繼續(xù)嗎?是(Y)/ 否(N):");fflush(stdi n);n ext=getchar();pu tchar('n');if(n ext='y'| |n ext='Y')goto beg in;/*創(chuàng)建用戶信息*/void CreatUserOFILE *fp=NULL;char DataFile20
14、=" 用戶.txt"/*存儲投票人信息的文件名 */user TempS;int over_flag=0;char c;/*讀入原始數(shù)據(jù),用于檢查輸入是否有重復*/fp=fo pen (DataFile,"rb");if(fp=NULL)prin tf("n Open file %s fail! End With any key n",DataFile);p error(" Open file fail");getch();exit(1);while(fread(&total_usertotal,sizeo
15、f(user),1,fp)!=(i nt)NULL) "total+;fclose(fp);fp=fo pen (DataFile,"ab+");clrscr();doclrscr();printf("*創(chuàng)建新用戶");gotoxy(23,3);prin tf("請輸入:");用戶名:");scanf("%s",&TempS.name);gotoxy(30,5); printf(" Temp S. name19='0'/*檢查輸入姓名是否有重復*/for(i=0
16、;i<total;i+)if(strcm p(TempS.n ame,total_useri. name)=0)該用戶名已存在!按任意鍵瀏覽所有用戶."); " printf(" getch();over_flag=1; break;if (over_flag)over_flag=0;con ti nue;密碼:");sca nf("%s", &Temp S. ps);gotoxy(30,6); printf(”Temp S. ps7='0'權(quán)限:");sca nf("%d"
17、, &Tem pS. po wer);gotoxy(30,7); printf(" if(Temp S. po wer!=1)TempS.po wer=0;/*將數(shù)據(jù)加入原始數(shù)據(jù),用于下一次輸入比較*/total_usertotal=Te mpS;total+;if(fwrite(&Temp S,sizeof(user),1,fp)!=1)printf("nwritefile is fail! End with any keyn",DataFile);p error("write file fail");getch();exit
18、(1);printf("要繼續(xù)創(chuàng)建新用戶嗎?是(Y)/否(N):");getchar();c=getchar();while(c='Y'|c=y);fclose(fp);/*在屏幕上顯示文件內(nèi)容*/printf("用戶資料數(shù)據(jù)處理完畢.n",DataFile);printf("所有用戶具體情況如下:n");fp=fo pen (DataFile,"rb");prin tf ("*" );if(fp=NULL)prin tf("nO pen file is fail! E
19、nd With any key n",DataFile); p error(" Open file fail");getch();exit(1);prin tf("n 姓名 tt 密碼 tt 權(quán)限 n");while(fread(&Tem pS,sizeof(user),1,fp)!=(i nt)NULL)prin tf("n%stt%-8stt%dn",Te mpS.n ame,Te mpS.p s,Te mp S. power); fclose(fp);按任意鍵返回首頁!");prin tf (&quo
20、t;*" );prin tf("ngetch();void create()char DataFile20=" 候選人.txt"FILE * fp=NULL;char c;int over_flag=0;can didate TempS;clrscr();read_c_ma n();fp=fo pen (DataFile,"ab+"); doclrscr();printf("*創(chuàng)建新候選人gotoxy(22,3);prin tf(" 請輸入:");gotoxy(29,5); printf("碼:
21、");sca nf("%ld", &Temp S. number);/*檢查輸入編號是否有重復for(i=0;i<c_total;i+) "if(Te mp S. nu mber=c_ma ni. nu mber) " printf(" getch(); over_flag=1; break;if (over_flag) over_flag=0; con ti nue;gotoxy(27,6); printf("Temp S. name19='0'for(i=0;i<c_total;i+)
22、if(strcm p(TempS.n ame,c_ma ni. name)=0) "printf("*/該號碼已存在.按任意鍵瀏覽所有候選人.");姓名:");sca nf("%s", &TempS.n ame);該姓名已存在!請再輸入一次!按任意鍵繼續(xù).");getch();over_flag=1;break;if (over_flag)over_flag=0;con ti nue;gotoxy(27,7); printf(”fflush(stdi n);gets(Te mp S.i ntro);Temp S.i
23、ntro399='0'Temp S.vote=0;/*將數(shù)據(jù)加入原始數(shù)據(jù),用于下一次輸入比較*/c_ma n c_total=Te mpS;c_total+;if(fwrite(&Tem pS,sizeof(ca ndidate),1,fp)!=1)printf("nwritefile is fail! End with any keyn",DataFile);p error("write file fail");getch();exit(1);printf("要繼續(xù)創(chuàng)建新的候選人嗎?是(Y)/否(N):");
24、fflush(stdi n);c=getchar();while(c='Y'|c='y');fclose(fp);/*在屏幕上顯示文件內(nèi)容*/clrscr();prin tf("候選人資料:n");prin tff *fp=fo pen (DataFile,"rb");if(fp=NULL)prin tf("nO pen file %s fail! End With any key n",DataFile); p error(" Open file fail");getch();ex
25、it(1);while(fread(&Tem pS,sizeof(ca ndidate),1,fp)!=(i nt)NULL)prin tf("n號 碼 :-15ld 姓 名:%-15s簡介:%s",Te mpS.nu mber,Te mp S. name,Te mp S.i ntro);fclose(fp);printf("n*H printf("n getchO;按任意鍵返回首頁!");void browse()/*瀏覽候選人信息*/read_c_ma n();clrscr();/*清屏 */printf("候選人資料:n
26、");prin ff * *n");for(i=0;i<c_total;i+) "printf("printf("printf("號碼:-15ld",c_ma ni. number); 姓名:-19s",c_ma ni. name); 簡介:sn",c_ma ni.i ntro);prin ff *printf("n getch();按任意鍵返回首頁!");void search。/*查詢候選人信息*/char c;long nu mber;int flag=0;read_c_m
27、a n();doclrscr();printf("nt請輸入要查詢的候選人號碼:");sca nf("%ld",&nu mber);for(i=0;i<c_total;i+)if(nu mber=c_ma ni. nu mber) "clrscr();您要查詢的候選人信息如下:nn");號碼:%Id n ",c_ma ni. nu mber); 姓名:s n ",c_ma ni. name);簡介:%s n",c_ma ni.i ntro);prin tf("tprin tf(&q
28、uot;tprin tf("tprin tf("t flag=1; break;if (flag)flag=0;else對不起,沒有您要查詢的候選人n");prin tf("t要繼續(xù)查詢候選人嗎?是(丫)/ 否(N):");prin tf("t getchar(); c=getchar();while(c='Y')|(c=y);void sort() /*按票數(shù)從高到低列出所有數(shù)據(jù)int i,k,j;can didate c_ma n2N,te mp; /*c_ma nN read_c_ma n();for(i=0;i
29、<c_total;i+)c_ma n2i=c_ma ni;c_ma n2c_total*/*/用于存放排序后的數(shù)據(jù)*/* 將 c_manc_total賦值給用選擇法排序*/for(i=0;ivc_total-1;i+) /*k=i;for(j=i+1;j<c_total;j+) "if(c_ma n2k.votevc_ma n2j.vote)k=j;" "if(k!=i)temp=c_ma n2i;c_ma n2i=c_ma n2k;c_ma n2k=te mp;printf("prin tf("*prin tf("*pr
30、in tf("*/*排序結(jié)束*/票數(shù)從高到低排列如下:n");*n");候選人票數(shù)*n");輸出排序后的結(jié)果號碼*n");/*for(i=0;i<c_total;i+)prin tf("*%-13ld%-13s*n ”,c_ma n2i. nu mber,c_ma n2i. name,c_ma n2i.vote);" " "printf("*n");printf("按任意鍵返回首頁!");fflush(stdi n);getch();*/%-6dvoid we
31、lcomeOprin tf("n*電子投票系統(tǒng)printf("getchO;clrscr();prin tf("nnnr統(tǒng) *nnnnr");按任意鍵進入系統(tǒng)登錄界面*nnr");歡迎登陸電子投票系void tha ns() cIrscrO;感謝您的參與!cprin tf("nnnnnnr n");cprin tf("nnnnnnr 見!");slee p(3);cIrscrO;/*管理員主控平臺*/void main_a() "int key;men 叩二"char*nr"
32、II管理員界面nr"II*nr""nr"IIIIII1.2.3.創(chuàng)建新候選人nnr" 創(chuàng)建新用戶nnr"查詢候選人信息nnr"II4.瀏覽所有候選人nnr"IIII5.0." nn整理所有投票nnr" 退出 nnr"請選擇0到5:"doclrscr();/*輸出主菜單*/cprin tf("%s",me nu); scan f("%d",&key); switch(key)case 1:create();break;case 2
33、:CreatUser();break; case 3:search();break;case 4:browse();break; case 5:clrscr(); sort(); break; case 0:break;default:break;while(key!=0); byebye(); void main_v()/* 用戶主控平臺*/int key;men 叩二"char*nr"II投票者界面nr"II*nr"1.瀏覽所有候選人"nnr "IInnr"II2.查詢候選人信息nnr"IIII3.0.&quo
34、t;n投票 nnr" 退出 nnr" 請選擇0到3:"do輸出主菜單*/cIrscrO;cprin tf("%s",me nu); /*sca nf("%d",&key);switch(key)case 1:browse();break;case 2:search();break;case 3:clrscr(); vote();break;case 0:break;defaultbreak;while(key!=O); byebyeO;void mai n()FILE * fp=NULL;char DataFile2
35、0=" 用戶.txt"char relogin;/*是否重新登錄的標志*/int success=0;user inpu t_user,te mp _user;system( "graftabI 936 ");welcome();aga in:/* 輸入用戶名*/請輸入用戶名:");請輸入密碼:");prin tf("nnsca nf("%s",i npu t_user. name); prin tf("nrsca nf("%s",i npu t_user. ps); ffl
36、ush(stdi n);fp=fo pen (DataFile,"rb");if(fp=NULL)prin tf("n Open file %s fail! End With any keyn",DataFile);p error("O pen file fail");getch();exit(1);/*校驗用戶名和密碼*/while(fread(&temp_user,sizeof(user),1,fp)!=NULL)&&if(strcm p(inpu t_user. name,temp_user. name)
37、=0(strc mp (i npu t_user. ps,te mp _user. ps)=0)" "prin tf("niogin successful!"); success=1;/*判斷權(quán)限,如power的值為1,則是管理員,并調(diào)用管理員界面*/if(temp_user. po wer=1) 您是管理員!歡迎您登錄cIrscrO;prin tf("nnnnnnn系統(tǒng)!正在進入管理員界面.");slee p(2);main_a();break;/*如power的值為0,則是投票者,并調(diào)用投票者界面*/if(temp_user. p
38、o wer=0)"cIrscrO;您是投票者!歡迎您登錄prin tf("nnnnnnn系統(tǒng)!正在進入投票者界面.");slee p(2); main_v();break;fclose(fp);if(success=0)fflush(stdi n);printf("n用戶名或密碼錯誤!繼續(xù)輸入嗎?是(丫)/否(N):");fflush(stdi n);relogi n=getchar();if(relogi n='Y')|(relogi n='y')goto aga in;else結(jié)束n");print
39、f("exit(0);四、測試用例和測試說明1、開始運行的界面C:DO桌®"IDSDETlWdtL exe電子投票系統(tǒng)4*按任意犍進入系統(tǒng)登錄界面左上角的那兩行字“上一個代碼頁:437當前代碼頁:936” 是因為在 Win-TC編譯器在添加一個顯示中文的函數(shù)system( "graftabi 936 ")之后而出現(xiàn)的!2、登錄界面C: XDOCniE'I®3 lOSOD'lWOTE, EXE*歡迎登陸電子投票系統(tǒng)*請輸入用戶名:.(1)輸入“用戶名:1;密碼:1”將確認該用戶的身份是管理員,并進入管理 員界面耳 C:D
40、gniEr桌面,新肄文Fwote. ebeBag登錄成功!您是管理員!系統(tǒng)正在進入管理員界面-(2)輸入“用戶名:2;密碼:2”將確認該用戶的身份是投票者,并進入管理 員界面登錄成功,您是投票者¥系統(tǒng)正在進入投票者界面3、管理員界面五 C: WOCTTBE'l ABirrr桌面1086)0r VrOTE. ESE基#(誕理 KKK 驀算葺乘 X JCK 羽斑MKMMKMK魏 H士M H-iCKJ4rM管理員界面刨建新候選人育-創(chuàng)建新用戶3 -查詢候選人信息堆瀏覽所有候選人整理所有投票CL退岀”請選擇0¥J5:_黃 C:B0CUrerVlDBIH:“譏桌商WmSOHr
41、yroTE. EXEH WHxk KX M英 XN X MX 耳咼胃選. 人 無耳耳嗔亠応”豆址電町耳坯帝皆焦託*e請輸八=候選人號碼按要求填寫新的候選人號碼、姓名及簡介即可,若填寫的號碼已存在系統(tǒng)將提示, 并在按任意鍵后就會顯示所有候選人的信息G* C : DOCUIE *1ADIIBI *11 桌面 31 OSOOIWOTE. EXE_SJ3J TA m _弓目目nop弓馬馬 J7 !-,!-,峠 2 -T,|_,|r |_,|T 丁 1T 丁 1 丁| |-,| 呂號號曇聲苕苕 tpg右昌尋曰百可0 G &1234519667005hj :i»j Rup 弓屯 7 _j
42、-j j-i-乞F :i-r -jj »_i_4 kJ .8- : h_J .i-V fc_5- kJ "=: h-J _- 4_r i_j姓名:Shaodie 姓:Lonsf 建:黑:Linlinor 殳茗:liuixianr 冬;名-liudeTiua 姓名:lon 姓名;1JU 姓名:liuxiang 姓名:WU 龍塔-Idbron 處 i 名ixiong 姓塔:zhang通介:pretty girl 簡介:st udent 直齊:心i'茍介:yundonguan 簡弁:SshouSB介;long介:xuesheng :yundonsruan :xueshen
43、gr 荀介:qiuxinsr 夏介:hjiI旬介:ijisheng按任意鍵返回首頁I(2)、選擇“2”將進入創(chuàng)建新用戶界面C: DOCTJME*"1 ADWIHI*13 I 0800* 1 ¥OTE. EXE”*g蟲顯一胡雀新用戸 西基M坦畫 MM塑畫 MM M請輸入:用戶名-像創(chuàng)建新候選人一樣,按要求輸入新的用戶名、密碼及權(quán)限即可,若用戶名已存 在,系統(tǒng)將提示,并在按任意鍵后顯示所有用戶資料3 C:XDOCniE'J XiDWIWl'l 桌面103OD*l¥OTE, EEE3334323550b55&B8881&laj ilaj
44、ii3131089898989014140131301515054:7 «_F V i_r i-r540iT u R_r V i_r luF i_r i_r v u u w xj i_ri_r ur v u u w xj i_ri.r1展柱意_(3) 選擇“3”將進入查詢候選人信息的界面輸入候選人號碼正確即可查詢,比如輸入:“ 1”即有輸入的號碼不存在即提示并要求選擇要不要繼續(xù)查詢(4) 選擇“ 4”將進入顯示所有候選人資料的界面pretty girl student keai yundonyuan geshou long xufrsheng yundongyuan xuesliertg qiuxing laji yishenqff ff g & X 血 g n n u u n 口 -1 i ± o u L L 1 1 1 w9R
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度產(chǎn)業(yè)園租賃及產(chǎn)業(yè)孵化基地建設合同4篇
- 2025年度拆除工程風險評估分包合同示范文本4篇
- 2025年LED路燈節(jié)能升級項目購銷及維護合同3篇
- 2025年度商業(yè)街租賃合同標準范本4篇
- 2025年度彩鋼房拆除與裝配式建筑推廣合同范本3篇
- 2025年度廠房建設項目環(huán)境影響評價合同范本4篇
- 2024版招商引資居間合同協(xié)議書范本
- 2025年度電子游戲角色插畫開發(fā)合同4篇
- 2025年度生物醫(yī)藥產(chǎn)業(yè)項目合作協(xié)議范本4篇
- 資產(chǎn)評估服務房屋征收項目測繪實施方案
- 2025年經(jīng)濟形勢會議講話報告
- 北師大版小學三年級上冊數(shù)學第五單元《周長》測試卷(含答案)
- 國家安全責任制落實情況報告3篇
- 2024年度順豐快遞冷鏈物流服務合同3篇
- 六年級下冊【默寫表】(牛津上海版、深圳版)(漢譯英)
- 合同簽訂培訓
- 電工基礎知識培訓課程
- 鐵路基礎知識題庫單選題100道及答案解析
- 金融AI:顛覆與重塑-深化理解AI在金融行業(yè)的實踐與挑戰(zhàn)
- 住宅樓安全性檢測鑒定方案
評論
0/150
提交評論