中南林業科技大學 《管理系統中計算機應用》 實踐報告 姓
名:XXX
專
業:
人力資源管理
院 (系):
中南林業科技大學成教學院
實習時間:
2013 年 4 月 18日
實習地點:
XXXXXXXXXX
指導教師評語:
成績: 簽名:
年
月
日 撰寫及批改注意事項
一、填寫信息 1、學生填寫信息齊全、字跡清晰、日期真實; 2、教師批改后得簽名與日期應完整; 3、報告中封面、圖、程序要求打?。ǚ饷媾c此頁要求正反雙面打印,教師評語要求手寫). 二、實習報告得撰寫
1、實習報告撰寫認真細致,數據計算正確、誤差分析準確、實驗結論 分析符合科學規律。
2、實習報告有繪制得圖形、圖表時,要求
(1)用電腦繪制;
(2)應在報告中注明圖號、表號. 三、批改實驗報告
1、一律采用百分制;
2、批改時應對錯分明,錯誤之處應有文字說明或指出錯誤得標記; 3、指導教師評語得內容:
(1)對本次認識實習完成情況得評語;
(2)對本次認識實習報告得評語; 目
錄 1、
軟件編譯理論及實踐教程實習內容 .................................. 4
?。病?/p>
套接字編程6 ?
2、1 ? 使用說明書6 ?
2、2
原理說明書 ................................................ 7
2、3
程序注釋7 ?
3、 ? 連接數據庫 ........................................................ 19
3、1
使用說明書 ............................................... 19
3、2 ? 原理說明書02 ?
3、3
程序注釋02 ?
?。?、 ? 實習總結、體會與收獲 ............................................. 26
(正 文 部 分) 1、軟件編譯理論及實踐教程實習內容 一: : 我得電腦磁盤分析 :
0000000000
管理節點1
000000003F 000000003F
?。帽P(48、8GB)
00061AB827 00061AB827
管理節點 2 00061AB866 00061AB866
D 盤(73、4GB)
000F48CDDA 000F48CDDA
分區間隙 000F48CE18 000F48CE18
管理節點 3 000F48CE19 000F48CE19
E 盤(73、4GB)
001876E38D
二 、
P P IN G G 、E EXE 十六進制源碼分析 在文件存儲空 間中,ping、exe 十六 進制源碼分析如下: 2、 套 接字編程 2、1、使用 說明書:
第一步:先打開服務器端(server、exe)、根據提示輸入端口號,需要輸入大于 5001小于 65535得值,否則就就是用默認得5001 作為端口值 第二步:創建套接字并選擇協議. 第三步:打開客戶端(client、exe),根據提示,將客戶端(server、exe)所在得服務器得 IP 地址輸入進去. 第四步:輸入在服務器端(server、exe)中建立得端口號值. 第五步:選擇與服務器端(server、exe)中一樣得協議 第六步:收發數據 001876E38D
分區間隙
001876E3CB 001876E3CB
管理節點 4
001876E3CC 001876E3CC
F盤(102、4GB)
0025422D6C1
剩余扇區
第七步:關閉連接. 2、2原理說明書 2、3 程序注釋 /******************************************************\ * client、c - 簡單得 TCP/UDP 套接字客戶程序 windows環境 * \******************************************************/ #include <winsock2、h>//關于套接字得頭文件 #include <stdlib、h> #include 〈stdio、h〉 #include <string、h> #include <conio、h> #pragma ment (lib,”ws2_32")//添加‘ws2_32’庫 int main(void)
{
unsigned short port = 5001;// ?
號口端?
?。閚t socket_type = SOCK_STREAM; //缺省使用 TCP 連接
char Buffer[1280]; //收發緩沖區
unsigned int addr; //IP 地址變量
int retval,i;// ?
量變時臨?
struct sockaddr_in server, from; //套接字地址結構變量
struct hostent *hp;
// ? 構結息信機主?變量指針
WSADATA wsaData;
//windows套接字信息
SOCKET
conn_socket;// ?
量變字接套? //先輸入客戶程序所需要得基本信息:服務器地址,端口號,套接字類型
printf("請輸入服務器地址:”);
scanf("%s", Buffer);
;)":)
0005> (號口端入輸請"(ftnirp?
;)i& ,"d%”(fnacs? if(i 〈 5000 || i 〉 65535)
\1005 號口端省缺用,d%號口端得確正不"(ftnirp?n", i);
?。錶se
?
;i = trop? printf("請輸入套接字類型( 1,TCP; 2, UDP ):");
?。骳anf(”%d",&i);
)1 == i(fi? ERTS_KCOS 為定設//;MAERTS_KCOS = epyt_tekcos?AM
)2 == i(fi esle?
socket_type = SOCK_DGRAM;//設定為 SOCK_DGRAM
else
;)i ,"n\流據數 PCT 用使,d%入輸得確正不"(ftnirp?//
棧議協化始初先要需,下境環 swodniw 在?if ((retval = WSAStartup(0x202, &wsaData))
!= 0)
//WSAStartup 函數調用,用來初始//socket
{
printf("WSAStartup 失敗,錯誤號:%d\n",retval);
WSACleanup();//當調用了WSAStartup之后,就需要調用 WSACleanup 函數釋放內存
return —1;
}
//取得主機 IP 地址
if (isalpha(Buffer[0]))
//就是域名或命名地址,用首字母得就是否在 A-Z,或者 a—z 來判斷就是域名還就是IP 地址
hp = gethostbyname(Buffer);//從一個主機數據庫中提取出主機信息
else
{
addr = inet_addr(Buffer);//就是點分地址
hp = gethostbyaddr((char *)&addr,4,AF_INET);//根據網絡地址,獲得主機信息,執行成功,就返回一個指向主機信息得結構
}
if (hp == NULL )
{
printf("不能解析地址[%s]: 錯誤號%d\n", Buffer, WSAGetLastError());//用于獲取錯誤信息
WSACleanup();
exit(1);
}
// 拷貝 解析得信息到sockaddr_in 結構中
memset(&server,0,sizeof(server));//分配內存空間,由server 返回
memcpy(&(server、sin_addr),hp—>h_addr,hp-〉h_length);//信息得copy
server、sin_family = hp->h_addrtype;//組協議初始化
server、sin_port = htons(port);//端口號初始化 //
字接套立建?
conn_socket = socket(AF_INET,socket_type,0);
if (conn_socket <0 )
{
printf(”socket()失敗,錯誤號:%d\n", WSAGetLastError());
WSACleanup();
return -1;
}
//對于流式套接字,需要先建立連接 // 函等)(vcer,)(dnes,)(tcennoc 用使以可也實其?數在 windows 里面一樣實現數據報套接字功能
)MARGD_KCOS =!
?。澹饄t_tekcos(fi? { ?
;)eman_h〉—ph,"n\s% :到接連在正"(ftnirp? )*rddakcos tcurts(,tekcos_nnoc(tcennoc( fi?&server,sizeof(server))
== SOCKET_ERROR)
{ ? ? LteGASW,"n\d%:號誤錯,敗失)(tcennoc"(ftnirp?astError());
closesocket(conn_socket);//如果創建失敗,就關閉連接套接字
?
??;)(punaelCASW?
? return -1;
?。?? ? }
while(1)
{ ?
?。玫揭l送得信息字符串
puts("\n 輸入送到服務器得信息:");
;)reffuB(steg?
循續繼,息信入輸有沒果如// ))reffuB(nelrts!(fi?環
?
;eunitnoc?//
息信絡網送發?
)MARGD_KCOS =!
?。錺yt_tekcos(fi?
?。?,reffuB ,tekcos_nnoc(dnes = lavter?trlen(Buffer)+1, 0);// etirw DSB 似類,pct 向面?()
?
esle?
? rts ,reffuB ,tekcos_nnoc(otdnes = lavter?len(Buffer)+1, 0, //發送字符串得時候,須將字符串得結束符\0 發送
?。?? ? ?
,revres&)*rddakcos tcurts?sizeof(server));// ? ?
?。蠨U向面?
if (retval == SOCKET_ERROR)
?。?/p>
printf(”發送失敗,錯誤號: %d\n”, WSAGetLastError());
break;
}
?
esle?
?
;)reffuB ,"n\s%:息信送發"(ftnirp?//
息信絡網收接?
;)morf(foezis = i?
if(socket_type != SOCK_DGRAM)
?。騟tval = recv(conn_socket, Buffer, sizeof(Buffer), 0 );//面向tcp,類似 BSD read()
esle?
? effuB ,tekcos_nnoc(morfvcer = lavter?r, sizeof(Buffer), 0,
? ? ? (
;)i& ,morf&)*rddakcos tcurts?
//面向 UDP
if (retval == SOCKET_ERROR)
{ ?
printf("接收信息失敗,錯誤號:%d\n",WSAGetLastError());
break;
}
else if (retval == 0) // 對于面向連接得套接字,需要判斷對方就是否關閉連接
{ ?
?。穑騣ntf(”服務器關閉連接\n");
break;
}
?
息信絡網到收接確正// esle? ? ?
,lavter ,”n\ s%:息信節字 d% 到收"(ftnirp?Buffer); // ?
件條出退個一得序程?
?。iuq” ,reffuB(pmcirts!(fi?
? break;
} //
字接套閉關?
closesocket(conn_socket);
WSACleanup();
return 0; } /*******************************************************\ * server、c - 簡單 TCP/UDP
套接字服務器程序 windows 環境 * \*******************************************************/ #include <winsock2、h>//套接字頭文件 #include 〈stdlib、h> #include <stdio、h> #include <string、h〉 #include <iostream、h> #pragma ment(lib,"ws2_32")//添加庫 int main(void)
?。?/p>
unsigned short port= 5001;
?。?端口號
int socket_type = SOCK_DGRAM; //缺省使用 TCP連接
char Buffer[1024];
// ?
區沖緩發收?
?。閚t retval, fromlen, i, isconnected = 0; //
量變時臨?
struct sockaddr_in local, from;// 結址地字接套?構變量
SOCKET listen_socket, msgsock;// 變字接套?量
WSADATA wsaData;
? // 信字接套 swodniw?息
//先輸入服務器程序所需要得基本信息:端口號,套接字類型
printf("請輸入端口號( >5000 ):");
scanf(”%d”, &i);
)53556 〉 i || 0005 〈 i(fi?
?。餽intf(”不正確得端口號%d,用缺省端口號 5001\n",i);
esle?
?。穑飏t = i;
;)":)
?。蠨U ,2 ;PCT,1 (型類字接套入輸請"(ftnirp? scanf("%d", &i);
if(i == 1)
?
?。唬虯ERTS_KCOS = epyt_tekcos?
?。? == i(fi esle? ?
;MARGD_KCOS = epyt_tekcos? else
;)i,"n\流據數 PCT 用使,d%入輸得確正不"(ftnirp?//
棧議協化始初先要需,下境環 swodniw 在?
if ((retval = WSAStartup(0x202, &wsaData)) != 0) //初始化套接字版本等信息
{
printf(”WSAStartup 失敗,錯誤號:%d\n", retval);
WSACleanup();//在創建失敗,或者程序結束,都要調用
return —1;
}
//建立套接字
listen_socket = socket(AF_INET, socket_type, 0);
if (listen_socket == INVALID_SOCKET)
?。??
printf("socket()失敗,錯誤號:%d\n”, WSAGetLastError());
WSACleanup();
return -1;
}
// 拷貝 解析得信息到sockaddr_in結構中
local、sin_family = AF_INET;
local、sin_addr、s_addr = INADDR_ANY;
local、sin_port = htons(port); //
字接套到址地絡網定邦?
if (bind(listen_socket,(struct sockaddr*)&local, sizeof(local)
) == SOCKET_ERROR) //綁定網絡地址
{
printf(”bind()失敗,錯誤號:%d\n”, WSAGetLastError());
WSACleanup();
return -1;
}
//對于流式套接字,讓套接字處于監聽狀態,等待連接到來
if (socket_type ?。?SOCK_DGRAM)
{
if (listen(listen_socket,5)
== SOCKET_ERROR)
//監聽網絡
{
printf("listen()失敗,錯誤號:%d\n", WSAGetLastError());
WSACleanup();
return —1;
}
}
printf("監聽端口:%d, 使用協議:%s\n", port, ( T" ?)MAERTS_KCOS == epyt_tekcos?CP":
”UDP”);
while(1)
?。?
?。鎟omlen =sizeof(from);
if (socket_type == SOCK_DGRAM )
msgsock = listen_socket;
?
)0 == detcennocsi (fi esle? //{
來到得接連個一待等,接連有沒果如,接連 PCT于對?
msgsock = accept(listen_socket,(struct sockaddr*)&from, &fromlen);
if (msgsock == INVALID_SOCKET)
{ ? ?
printf("accept()失敗,錯誤號:%d\n",WSAGetLastError());
WSACleanup();
return -1;
}
?
;1 = detcennocsi?
printf("從%s 收到連接, 端口就是:%d\n”, inet_ntoa(from、sin_addr), htons(from、sin_port));
}
//
息信絡網收接待等?
if (socket_type != SOCK_DGRAM)
retval = recv(msgsock, Buffer, sizeof (Buffer), 0 ); //面向 tcp,類似 BSD read()
else
{ ?
retval = recvfrom(msgsock, Buffer, sizeof (Buffer), 0,
?
(struct sockaddr *)&from, &fromlen);// ?
PDU 向面?
printf("從%s收到數據報,端口就是:%d\n”, inet_ntoa(from、sin_addr), htons(from、sin_port));
?。?/p>
//
斷判果結?
if (retval == SOCKET_ERROR)
{ ? ?
printf("recv()失敗,錯誤號:%d\n", WSAGetLastError());
closesocket(msgsock);
continue;
}
else if (retval == 0)
{ ?
?。穑騣ntf(”客戶端關閉連接\n”);
closesocket(msgsock);
continue;
}
收接常正// esle? { ?
? vter ,"n\ s%:據數得節字 d% 到收”(ftnirp?al, Buffer);
?
?。㎝ARGD_KCOS =! epyt_tekcos( fi?//{ ? ? 操得接連閉關個一有”tixe"到收們我,接連 PCT 于對?作
? ?
))"tixe" ,reffuB(pmcirts?。╢i?
{ ? ?
? ? ? 連次一下待等,接連 PCT閉關”(ftnirp?接、、、\n”);
? closesocket(msgsock);
? ?
;0 = detcennocsi?
?
?。鉶ntinue;
?
?。?/p>
?。?? ?
} // ?
送回息信?
printf("將同樣得信息回送給客戶端、、、\n\n");
;)”n\:egassem eht tupni esaelp”(ftnirp?
;)reffuB,”s%"(fnacs?
if (socket_type != SOCK_DGRAM)
retval = send(msgsock, Buffer, strlen(Buffer)+1, 0); //面向tcp,類似 BSD write()
else
retval = sendto(msgsock, Buffer, strlen(Buffer)+1, 0,
( ? ? ;)nelmorf ,morf&)* rddakcos tcurts?// ? ? ?
PDU 向面?
if (retval == SOCKET_ERROR)
{
printf("send()失敗,錯誤號:%d\n", WSAGetLastError());
}
//
件條出退個一得序程?
?。閒(!stricmp(Buffer, "quit"))
? break;
}
WSACleanup();
;0 nruter?} 3、連接數據庫 3、1 使用說明書 第一步:在開始菜單中找到 SQL SERVER 并打開
第二步:建立一個新得數據庫。在 SQL SERVER中建立一個名為student 得數據庫
第三步:在 student 庫下創建一個Stu_Info表,并在表中包含以下字段名:snum,sname,ssex,sage,smajor.輸入一些數據,進行測試。
第四步:在安全性中設置密碼為 123、 第三步:編譯生成可執行得文件,點擊運行.根據提示框中得信息,輸入我們需要插入得數據.關閉程序。
第四步:在次點擊運行,查瞧我們插入得數據就是否成功得插入. 3、2 原理說明 通過 ADO訪問數據庫得技術進行數據庫編程。我們需要在計算機上配置數據源。配置數據源得過程,就就是與讓數據庫得驅動程序來對數據庫進行操作,以便使我們再程序中,可以調用驅動程序來完成我們需要完成得工作。處理 ADO 訪問技術之外,還有 ODBC(開放式數據庫互聯)等。
3、3 程序注釋 /******************************************************************* 利用ADO 訪問 MS SQL2000
要求: 【1】輸出 Stu_Info 表內得每一條記錄 【2】添加一條新記錄 【3】刪除名字為”李立"得記錄
*****************************************************************/ #import ”c:\Program Files\mon Files\System\ADO\msado15、dll" \//導入動態鏈接庫,使我們可以使用 ADO 編程 no_namespace rename("EOF", ”EndOfFile") //為了防止命名沖突,不使用命名空間 #include 〈iostream> //標準輸入輸出流 #include 〈iomanip> //for setw()
using namespace std;
class STU //定義學生類 {
public:
char snum[10]; //學號
char sname[10]; //姓名
char ssex[2]; //姓別
long sage; //年齡
char smajor[20]; //專業
public:
STU(){}
~STU(){}
};
int main()
{
STU student; //定義學生對象
::CoInitialize(NULL); // 初始化 OLE/庫環境 ,為訪問ADO 接口做準備
_RecordsetPtr m_pRecordset(”ADODB、Recordset”); //建立記錄集
_ConnectionPtr m_pConnection(”ADODB、Connection"); //建立連接
_bstr_t bstrSQL(”select * from stu_info”); //查詢語句
char * query_cmd = "DELETE FROM stu_info WHERE sname = "李立"";
try //異常處理
{
// 創建 Connection 對象
m_pConnection、CreateInstance("ADODB、Connection");
// 設置連接字符串,必須就是 BSTR 型或者_bstr_t 類型
_bstr_t strConnect= "Provider=SQLOLEDB;Server=(local);Database=student; uid=sa; pwd=123;”;
//若數據庫在網絡上則 Server為形如
//用戶 sa 與密碼 123只就是針對我得庫
m_pConnection-〉Open(strConnect,””,"”,adModeUnknown);
if(m_pConnection==NULL)
cerr〈<”Lind data ERROR!\n";
// 創建記錄集對象
m_pRecordset、CreateInstance(__uuidof(Recordset));
// 取得表中得記錄
m_pRecordset->Open(bstrSQL,m_pConnection、GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t vsnum,vsname,vsage,vssex,vsmajor; //對應庫中得 snum,sname,sage,ssex,smajor
cout 〈< "學號 姓名 年齡 姓別 專業”;
cout 〈< "\n——-—-------——-——————--—---—--—---——-——-——--—-—----—-——--—---—---\n";
while (!m_pRecordset—〉EndOfFile)
//如果記錄集沒有到記錄得尾端
?。?/p>
vsnum = m_pRecordset—>GetCollect(_variant_t((long)0));//這兒給字段編號與字段名都可以
?。鰏name = m_pRecordset->GetCollect(”sname”);
vsage = m_pRecordset—>GetCollect("sage");
vssex = m_pRecordset->GetCollect(”ssex");
vsmajor = m_pRecordset->GetCollect("smajor");
if (vsnum、vt != VT_NULL&&vsname、vt != VT_NULL&&vsage、vt != VT_NULL
&&vssex、vt != VT_NULL&&vsmajor、vt != VT_NULL)//如果不為空
{ ?
cout、setf(ios::left); //設置左對齊
cout <〈 setw(14)
<〈 (char*)(_bstr_t)vsnum; //輸出學號
cout << setw(14) << (char*)(_bstr_t)vsname; //輸出姓名
cout << setw(8) 〈< vsage、lVal; //輸出年齡
essv)t_rtsb_()*rahc( 〈< )8(wtes 〈< tuoc?x; //輸出性別
cout <<setw(20) << (char*)(_bstr_t)vsmajor; //輸出專業
?
齊對左消?。? ;)tfel::soi(ftesnu、tuoc? ?
;ldne 〈< tuoc?
} ?
?。韄pRecordset—>MoveNext(); ///移到下一條記錄
} ? —---———-———-—--——-------——-n\" <〈 tuoc?---——---————-—--------—-———-------—--\n"; //輸入將要插入得信息
;"n\息信生學得加添要您入輸請 n\" <〈 tuoc?
;":號學" << tuoc?
;muns、tneduts 〉〉 nic?
;”:名姓 n\" 〈< tuoc?
;emans、tneduts 〉〉 nic? cout 〈〈 "\n 年齡:";
cin 〉> student、sage;
cout << "\n 姓別:";
;xess、tneduts 〉> nic? cout 〈< "\n 專業:”;
cin >〉 student、smajor;
錄記條一第到動移// ;)(tsriFevoM>—tesdroceRp_m?
錄記新加添/// ;)(weNddA>-tesdroceRp_m? m_pRecordset-〉PutCollect("snum",_variant_t(student、snum)); //將數據添加進去輸入庫
s(t_tnairav_,"emans”(tcelloCtuP>-tesdroceRp_m?tudent、sname));
airav_,”egas”(tcelloCtuP>—tesdroceRp_m?nt_t(student、sage));
m_pRecordset-〉PutCollect(”ssex”,_variant_t(student、ssex));
m_pRecordset-〉PutCollect("smajor",_variant_t(student、smajor));
對,新更不果如,作操新更//;)(etadpU>—tesdroceRp_m?數據庫得操作將沒有得到相應得操作
m_pConnection-〉Execute(query_cmd,NULL,1); //用 Execute 執行 sql 語句來刪除
集錄記閉關 // ;)(esolC>-tesdroceRp_m? }
//
常異捉捕? catch(__error e)
{
// 顯示錯誤信息
cerr 〈〈 ”\nERROR:” 〈〈 (char*)e、Description();//拋出異常
} ? if(m_pConnection->State)
;)(esolC>-noitcennoCp_m? ::CoUninitialize();
;0 nruter?} 4、實習總結、體會與收獲
通過這些天老師給我們講授實習課,我知道得我們專業得實用性,以及在軟件工程上我們應該怎么學,學些什么,光靠課堂上我們學習得東西十分有限,要充分利用課余時間,利用圖書館與互聯網。學習這個專業,要求我們要深入進去,不能只學會些皮毛,要不斷跟進時代得步伐,不斷學習新得知識,開拓視野,才能在這個專業上有更好得作為,使我們走得更遠,這門課程得學習使我受益匪淺,為以后得學習打下了基礎,激發了我得學習興趣,使我明確了自己得專業方向。
推薦訪問: 管理系統 計算機應用 實踐上一篇:某市民辦學校黨建工作匯報
下一篇:大學生暑期實踐報告范文x
在偉大祖國73華誕之際,我參加了單位組織的“光影鑄魂”主題黨日活動,集中觀看了抗美援朝題材影片《長津湖》,再一次重溫這段悲壯歷史,再一次深刻感悟偉大抗美援朝精神。1950年10月,新中國剛剛成立一年,
根據省局黨組《關于舉辦習近平談治國理政(第四卷)讀書班的通知》要求,我中心通過專題學習、專題研討以及交流分享等形式,系統的對《習近平談治國理政》(第四卷)進行了深入的學習與交流,下面我就來談一談我個人
《習近平談治國理政》(第四卷)是在百年變局和世紀疫情相互疊加的大背景下,對以習近平同志為核心的黨中央治國理政重大戰略部署、重大理論創造、重大思想引領的系統呈現。它生動記錄了新一代黨中央領導集體統籌兩個
《真抓實干做好新發展階段“三農工作”》是《習近平談治國理政》第四卷中的文章,這是習近平總書記在2020年12月28日中央農村工作會議上的集體學習時的講話。文章指出,我常講,領導干部要胸懷黨和國家工作大
在《習近平談治國理政》第四卷中,習近平總書記強調,江山就是人民,人民就是江山,打江山、守江山,守的是人民的心。從嘉興南湖中駛出的小小紅船,到世界上最大的執政黨,在中國共產黨的字典里,“人民”一詞從來都
黨的十八大以來,習近平總書記以馬克思主義戰略家的博大胸襟和深謀遠慮,在治國理政和推動全球治理中牢固樹立戰略意識,在不同場合多次圍繞戰略策略的重要性,戰略和策略的關系,提高戰略思維、堅定戰略自信、強化戰
《習近平談治國理政》第四卷集中展示了以習近平同志為核心的黨中央在百年變局和世紀疫情相互疊加背景下,如何更好地堅持和發展中國特色社會主義而進行的生動實踐與理論探索;對于新時代堅持和發展什么樣的中國特色社
在黨組織的關懷下,我有幸參加了區委組織部組織的入黨積極分子培訓班。為期一周的學習,學習形式多樣,課程內容豐富,各位專家的講解細致精彩,對于我加深對黨的創新理論的認識、對黨的歷史的深入了解、對中共黨員的
《習近平談治國理政》第四卷《共建網上美好精神家園》一文中指出:網絡玩命是新形勢下社會文明的重要內容,是建設網絡強國的重要領域。截至2021年12月,我國網民規模達10 32億,較2020年12月增長4
剛剛召開的中國共產黨第十九屆中央委員會第七次全體會議上討論并通過了黨的十九屆中央委員會向中國共產黨第二十次全國代表大會的報告、黨的十九屆中央紀律檢查委員會向中國共產黨第二十次全國代表大會的工作報告和《