




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C++程序設(shè)計(jì)第2章C++新增語(yǔ)言第1節(jié)C++輸入輸出第2節(jié)循環(huán)語(yǔ)句新特性第3節(jié)動(dòng)態(tài)內(nèi)存分配第4節(jié)函數(shù)新特性第5節(jié)異常第1節(jié)C++輸入輸出命名空間cout語(yǔ)句cin語(yǔ)句使用VisualStudio2022創(chuàng)建一個(gè)HelloWorldC++程序
#include<iostream>intmain(){
std::cout<<"HelloWorld!\n";}對(duì)比VC6.0創(chuàng)建的HelloWorldC語(yǔ)言代碼:#include"stdafx.h"intmain(intargc,char*argv[]){printf("HelloWorld!\n");return0;}發(fā)現(xiàn)有所不同1.1cout輸出語(yǔ)句用于在計(jì)算機(jī)屏幕上顯示信息用“流”(stream)的方式實(shí)現(xiàn)<<:輸出流符號(hào)需包含頭文件stream。即#include<iostream>屬于C++98標(biāo)準(zhǔn)//以后不標(biāo)注默認(rèn)為屬于C++98。語(yǔ)法:
cout<<表達(dá)式1<<表達(dá)式2<<……<<表達(dá)式n;e.g.inta=3;boolb=true;charc='m';chard[6]="China";cout<<a;cout<<b<<''<<c<<endl;//endl表示換行
cout<<d<<"isabigcountry."<<endl;cout控制符需包含頭文件#include
<iomanip>e.g.doublepi=3.1415926535,e=2.71828183;//固定輸出兩位小數(shù)cout<<setiosflags(ios::fixed)<<setprecision(2)<<pi<<“”<<e<<endl;控制符描述dec置基數(shù)為10,后由十進(jìn)制輸出(系統(tǒng)默認(rèn)形式)hex置基數(shù)為16,后由十六進(jìn)制輸出oct置基數(shù)為8,后由八進(jìn)制輸出setfill(c)設(shè)填充字符為csetprecision(n)設(shè)置實(shí)數(shù)的精度為n位setw(n)設(shè)域?qū)挒閚個(gè)字符setiosflags(ios::fixed)固定的浮點(diǎn)顯示setiosflags(ios::scientific)指數(shù)表示setiosflags(ios::left)左對(duì)齊setiosflags(ios::right)右對(duì)齊setiosflags(ios::skipws)忽略前導(dǎo)空白setiosflags(ios::uppercase)16進(jìn)制數(shù)大寫(xiě)輸出setiosflags(ios::lowercase)16進(jìn)制數(shù)小寫(xiě)輸出1.2命名空間(namespace)在C++中,名稱(name)可以是符號(hào)常量、變量、函數(shù)、結(jié)構(gòu)、枚舉、類和對(duì)象等等。工程越大,名稱互相沖突性的可能性越大。另外使用多個(gè)廠商的類庫(kù)時(shí),也可能導(dǎo)致名稱沖突。為了避免,在大規(guī)模程序的設(shè)計(jì)中,以及在程序員使用各種各樣的C++庫(kù)時(shí),這些標(biāo)識(shí)符的命名發(fā)生沖突,標(biāo)準(zhǔn)C++引入關(guān)鍵字namespace(命名空間/名字空間/名稱空間),可以更好地控制標(biāo)識(shí)符的作用域。例:創(chuàng)建一個(gè)命名空間:namespaceA{intx=20;}namespaceB{intx=30;}voidfunction(){cout<<"A::x:"<<A::x<<endl;cout<<"B::x:"<<B::x<<endl;}using聲明語(yǔ)法://釋放整個(gè)命名空間到當(dāng)前作用域
usingnamespace命名空間名稱;//釋放某個(gè)變量到當(dāng)前作用域
using命名空間名稱::變量名或函數(shù)名;e.g.usingnamespacestd;或usingstd::cout;使用命名空間,改寫(xiě)HelloWorld#include<iostream>usingnamespacestd;intmain(){cout<<"HelloWorld!\n";}1.3cin輸入語(yǔ)句從鍵盤獲取數(shù)據(jù),對(duì)指定的變量進(jìn)行賦值用“流”(stream)的方式實(shí)現(xiàn)>>:輸入流符號(hào)需包含頭文件stream。即#include<iostream>語(yǔ)法:
cin>>表達(dá)式1>>表達(dá)式2>>……>>表達(dá)式n;e.g.inta;cin>>a;floatf;chars[20];cin>>f>>s;cout、cin舉例例2-3改寫(xiě)例1-6,用cin、cout對(duì)結(jié)構(gòu)體的數(shù)據(jù)進(jìn)行輸入輸出#include"iostream.h"http://usingnamespacestd;//VC6.0不需此句structstudent//結(jié)構(gòu)體的定義{charname[30];charnum[10];charsex;intage;floatMathScore;floatEnglishScore;floatPoliticsScore;};floatAverage(structstudentstu){ return(stu.MathScore+stu.EnglishScore+stu.PoliticsScore)/3;}voidmain(){studentstu1,stu2;//結(jié)構(gòu)體變量定義
cout<<"請(qǐng)輸入第一位學(xué)生的姓名、學(xué)號(hào)、性別、年齡、以及數(shù)學(xué)、英語(yǔ)、政治三科成績(jī):"<<endl;
cin>>>>stu1.num>>stu1.sex>>stu1.age>>stu1.MathScore>>stu1.EnglishScore>>stu1.PoliticsScore;
cout<<"請(qǐng)輸入第二位學(xué)生的姓名、學(xué)號(hào)、性別、年齡、以及數(shù)學(xué)、英語(yǔ)、政治三科成績(jī):"<<endl;
cin>>>>stu2.num>>stu2.sex>>stu2.age>>stu2.MathScore>>stu2.EnglishScore>>stu2.PoliticsScore;
cout<<<<"的平均分是"<<Average(stu1)<<endl;cout<<<<"的平均分是"<<Average(stu2)<<endl;}第2節(jié)循環(huán)語(yǔ)句新特性auto關(guān)鍵字(C++11)范圍for語(yǔ)句(C++11)2.1auto關(guān)鍵字屬于C++11標(biāo)準(zhǔn)早在C++98標(biāo)準(zhǔn)中就存在了auto關(guān)鍵字,那時(shí)的auto用于聲明變量為自動(dòng)變量,自動(dòng)變量意為擁有自動(dòng)的生命期,這是多余的,因?yàn)榫退悴皇褂胊uto聲明,變量依舊擁有自動(dòng)的生命期:inta=5;//擁有自動(dòng)生命期autointb=10;//擁有自動(dòng)生命期staticintc=15;//延長(zhǎng)了生命期C++98中的auto多余且極少使用,C++11已經(jīng)刪除了這一用法,取而代之的是全新的auto:變量的自動(dòng)類型推斷。C++11中,auto可以在聲明變量的時(shí)候根據(jù)變量初始值的類型自動(dòng)為此變量選擇匹配的類型。e.g.inta=5;autob=a;//自動(dòng)類型推斷,b為int類型
cout<<typeid(b).name()<<endl;//typeid運(yùn)算符可以輸出變量的類型autoc=3.1416;//自動(dòng)類型推斷,c為float類型
autod='A';//自動(dòng)類型推斷,d為char類型
cout<<"c的類型為"<<typeid(c).name()<<endl;cout<<"d的類型為"<<typeid(d).name()<<endl;auto一般在循環(huán)語(yǔ)句中用得較多,可以使循環(huán)語(yǔ)句更加簡(jiǎn)潔易懂
e.g.for(autoi=1;i<10;i++){……}對(duì)比以下兩種寫(xiě)法:
(1)std::vector<std::string>vs;//vector和iterator是后面章節(jié)會(huì)學(xué)到的類型。向量和迭代器for(std::vector<std::string>::iteratori=vs.begin();i!=vs.end();i++){//...}
(2)std::vector<std::string>vs;for(autoi=vs.begin();i!=vs.end();i++){//..}2.2范圍for語(yǔ)句C++11標(biāo)準(zhǔn)一種更簡(jiǎn)單的for語(yǔ)句,用于遍歷一個(gè)序列。語(yǔ)法:
for(類型變量:數(shù)組){//對(duì)變量(即數(shù)組中每個(gè)元素)進(jìn)行處理}e.g.intf[]{1,1,2,3,5,8,13,21,34,55,89,144};//fabonaci數(shù)列前十二項(xiàng)
for(autox:f)//對(duì)數(shù)組f中的每個(gè)元素,依次進(jìn)行處理{cout<<x<<endl;}例2-4改寫(xiě)例1-1,使用范圍for語(yǔ)句實(shí)現(xiàn)九九乘法表#include<iostream>usingnamespacestd;intmain(){intnums[]={1,2,3,4,5,6,7,8,9};cout<<"輸出表:"<<endl;
for(autoi:nums){for(autoj:nums){cout<<j<<'*'<<i<<'='<<i*j<<'\t';if(j>=i)break;}cout<<endl;}return0;}第3節(jié)動(dòng)態(tài)內(nèi)存分配關(guān)于動(dòng)態(tài)內(nèi)存分配new運(yùn)算符delete運(yùn)算符3.1關(guān)于動(dòng)態(tài)內(nèi)存分配為什么需要?jiǎng)討B(tài)內(nèi)存分配?程序中大部分的內(nèi)存需求都是在程序執(zhí)行之前通過(guò)定義所需的變量來(lái)確定的。但是可能存在程序的內(nèi)存需求只能在運(yùn)行時(shí)確定的情況。例如,當(dāng)需要的內(nèi)存取決于用戶輸入。C語(yǔ)言動(dòng)態(tài)內(nèi)存分配語(yǔ)句回顧malloc函數(shù):動(dòng)態(tài)分配指定字節(jié)的內(nèi)存
定義:void*malloc(unsignedintnum_bytes);e.g.int*p;p=(int*)malloc(sizeof(int));//動(dòng)態(tài)申請(qǐng)能儲(chǔ)存一個(gè)整數(shù)的內(nèi)存。*p代表該無(wú)名字整數(shù)char*q;//聲明一個(gè)字符指針,準(zhǔn)備動(dòng)態(tài)申請(qǐng)一個(gè)用戶指定長(zhǎng)度的字符數(shù)組(字符串)intsize;scanf(“%d”,&size);//用戶對(duì)size賦值,用戶指定數(shù)組長(zhǎng)度q=(char*)malloc(size*sizeof(char));//動(dòng)態(tài)申請(qǐng)長(zhǎng)度為size的字符數(shù)組動(dòng)態(tài)分配的內(nèi)存需要在程序結(jié)束之前全部釋放,否則會(huì)造成內(nèi)存泄露。free函數(shù):釋放之前動(dòng)態(tài)分配的內(nèi)存
定義:voidfree(void*FirstByte)e.g.char*Ptr=NULL;Ptr=(char*)malloc(100*sizeof(char));......
free(Ptr);Ptr=NULL;3.2new與delete運(yùn)算符C++提供了new與delete運(yùn)算符,進(jìn)行動(dòng)態(tài)內(nèi)存分配語(yǔ)法:①變量申請(qǐng):類型*pointer=new類型;//...
deletepointer;②數(shù)組申請(qǐng):類型*pointer=newType[N];//N為數(shù)組元素個(gè)數(shù)//...
delete[]pointer;例2-5C++動(dòng)態(tài)分配內(nèi)存演示例子#include<iostream>usingnamespacestd;intmain(){int*p=newint;//動(dòng)態(tài)申請(qǐng)一個(gè)整型變量*p=5;*p=*p+10;cout<<"p="<<p<<endl;cout<<"*p="<<*p<<endl;
deletep;//釋放變量?jī)?nèi)存
p=newint[10];//動(dòng)態(tài)申請(qǐng)一個(gè)10個(gè)元素的整型數(shù)組
for(inti=0;i<10;i++){p[i]=i+1;cout<<"p["<<i<<"]="<<p[i]<<endl;}
delete[]p;//釋放數(shù)組內(nèi)存
return0;}第4節(jié)函數(shù)新特性內(nèi)聯(lián)函數(shù)后置返回類型(C++11)引用參數(shù)函數(shù)重載4.1inline內(nèi)聯(lián)函數(shù)內(nèi)聯(lián)函數(shù)是C++中的一種特殊函數(shù),它可以像普通函數(shù)一樣被調(diào)用,但是在調(diào)用時(shí)并不通過(guò)函數(shù)調(diào)用的機(jī)制而是通過(guò)將函數(shù)體直接插入調(diào)用處來(lái)實(shí)現(xiàn)的,這樣可以大大減少由函數(shù)調(diào)用帶來(lái)的開(kāi)銷,從而提高程序的運(yùn)行效率。一般來(lái)說(shuō)inline用于定義某些短小并將被頻繁調(diào)用的函數(shù)。只需在函數(shù)定義前加inline關(guān)鍵字就可以把函數(shù)定義為內(nèi)聯(lián)函數(shù)。編譯器在編譯階段對(duì)內(nèi)聯(lián)函數(shù)進(jìn)行處理。只是對(duì)編譯器的建議,具體有沒(méi)有真正內(nèi)聯(lián),要看編譯器。優(yōu)缺點(diǎn):
優(yōu)點(diǎn):利用得好,程序會(huì)提高性能,
缺點(diǎn):利用得不好,會(huì)造成代碼臃腫。語(yǔ)法:
inline
返回值類型函數(shù)名(函數(shù)參數(shù)){//此處定義函數(shù)體}e.g.
inlinedoubleVolume(doubler,doubleh)//函數(shù)定義{ doubleSd/*底面積*/,V/*體積*/; Sd=PI*pow(r,2); V=Sd*h; returnV;}4.2函數(shù)后置返回類型C++11標(biāo)準(zhǔn)語(yǔ)法:
一個(gè)普通前置返回類型的函數(shù)
返回類型函數(shù)名(參數(shù)列表)
可改寫(xiě)成:
auto
函數(shù)名(參數(shù)列表)->返回類型e.g.voidfunc(inta,intb);
可改寫(xiě)成:
autofunc(inta,intb)->void;4.3引用參數(shù)引用:是某一個(gè)變量或?qū)ο蟮膭e名。對(duì)引用的操作與對(duì)其所綁定的變量或?qū)ο蟮牟僮魍耆葍r(jià)語(yǔ)法:類型&引用名=目標(biāo)變量名;e.g.doublea=10.3;double&b=a;b=b+10;cout<<“a=“<<a<<“,b=“<<b<<endl;傳值參數(shù)傳址參數(shù)例2-6閱讀程序,判斷每個(gè)swap函數(shù)是否能實(shí)現(xiàn)變量數(shù)值的對(duì)換。#include<iostream.h>voidswap1(inta,intb);voidswap2(int*pa,int*pb);//voidswap3(int&a,int&b)intmain(){intx=3,y=5;cout<<"Beforeswap:x="<<x<<",y="<<y<<endl;C語(yǔ)言的兩種函數(shù)參數(shù)swap1(x,y);//swap2(&x,&y);//swap3(x,y);cout<<"Afterswap:x="<<x<<",y="<<y<<endl;return0;}voidswap1(inta,intb)//傳值參數(shù){intt;t=a;a=b;b=t;}voidswap2(int*pa,int*pb)//傳址參數(shù){intt;t=*pa;*pa=*pb;*pb=t;}C++新增:引用參數(shù)引用參數(shù)voidswap3(int&a,int&b){intt;t=a;a=b;b=t;}綜合例子例2-7改寫(xiě)例1-5求圓柱表面積和體積的例子,要求改為:
(1)函數(shù)Volume改為內(nèi)聯(lián)函數(shù)和后置返回類型;
(2)函數(shù)Area()除了返回表面積外,還要返回底面積和側(cè)面積。//因?yàn)楹笾梅祷仡愋蜑镃++11新特性,因此用VS2022創(chuàng)建工程#include"math.h"#include<iostream>usingnamespacestd;constdoublePI=3.1215926535;doubleArea(doubler,doubleh,double&Sd/*底面積*/,double&Sc/*側(cè)面積*/);//函數(shù)聲明autoVolume(doubler,doubleh)->double;//函數(shù)聲明intmain()//主函數(shù){ doubleradius,height,areaSurface,areaBottom,areaSide; cout<<"請(qǐng)輸入圓柱半徑:"; cin>>radius; cout<<"請(qǐng)輸入圓柱高度:"; cin>>height; areaSurface=Area(radius,height,areaBottom,areaSide); cout<<"圓柱表面積="<<areaSurface<<endl; cout<<"圓柱底面積="<<areaBottom<<endl; cout<<"圓柱側(cè)面積="<<areaSide<<endl; cout<<"圓柱體積="<<Volume(radius,height)<<endl; return0;}doubleArea(doubler,doubleh,double&Sd/*底面積*/,double&Sc/*側(cè)面積*/)//函數(shù)定義{ doubleS/*表面積*/; Sd=PI*pow(r,2); Sc=2*PI*r*h; S=Sc+2*Sd; returnS;}inlineautoVolume(doubler,doubleh)->double
//函數(shù)定義{ doubleSd/*底面積*/,V/*體積*/; Sd=PI*pow(r,2); V=Sd*h; returnV;}4.4函數(shù)重載我們?cè)谄綍r(shí)寫(xiě)代碼中會(huì)用到幾個(gè)函數(shù)但是他們的實(shí)現(xiàn)功能相同,但是有些細(xì)節(jié)卻不同。例如求絕對(duì)值,在C語(yǔ)言中有以下函數(shù):
intabs(intx)//求整數(shù)的絕對(duì)值longlabs(long)//求長(zhǎng)整數(shù)的絕對(duì)值doublefabs(doublex)//求double小數(shù)的絕對(duì)值floatfabsf(floatx);//求float小數(shù)的絕對(duì)值doublecabs(structcomplexz)//計(jì)算復(fù)數(shù)的絕對(duì)值
用戶(應(yīng)用程序員)需把每個(gè)函數(shù)名都記住,顯然很麻煩。用戶能不能只需記一個(gè)函數(shù),就能使用所有功能呢?于是C++提出了用一個(gè)函數(shù)名定義多個(gè)函數(shù),這就是函數(shù)重載(Overload)C++允許在同一作用域中聲明幾個(gè)類似的同名函數(shù),這些同名函數(shù)的形參列表(參數(shù)個(gè)數(shù),類型,順序)必須不同,常用來(lái)處理實(shí)現(xiàn)功能類似數(shù)據(jù)類型不同的問(wèn)題。例2-8編寫(xiě)程序,使用函數(shù)重載的方法,用一個(gè)函數(shù)名實(shí)現(xiàn)前述C語(yǔ)言的各個(gè)求絕對(duì)值函數(shù)。#include"math.h"intMyAbs(intx)//整數(shù)版本{returnx>0?x:-x;}__int64MyAbs(__int64x)//長(zhǎng)整數(shù)版本{if(x>=0)returnx;elsereturn-x;}doubleMyAbs(doublex)//雙精度小數(shù)版本{returnsqrt(x*x);}floatMyAbs(floatx)//單精度小數(shù)版本{return(float)sqrt(x*x);}doubleMyAbs(_complexc)//復(fù)數(shù)版本{returnsqrt(c.x*c.x+c.y*c.y);}intmain(){printf("|-5|=%d\n",MyAbs(-5));printf("|-50000000000|=%I64d\n",MyAbs(-50000000000));printf("|-8.0000000009|=%.10f\n",MyAbs(-8.0000000009));printf("|-8.9|=%f\n",MyAbs(-8.9));_complexa;a.x=10;a.y=10;printf("|(10,10)|=%f\n",MyAbs(a));return0;}構(gòu)成重載的條件:參數(shù)列表不同分析以下兩種情況,是否構(gòu)成函數(shù)的重載。第一種情況:(1)voidoutput();
(2)intoutput();第二種情況:(1)voidoutput(inta,intb=5);
(2)voidoutput(inta);思考:嘗試修改例2-4,函數(shù)swap1、swap2、swap3是否可以修改為同名重載函數(shù)?第5節(jié)異常異常處理C++標(biāo)準(zhǔn)異常5.1C++異常處理異常是程序在執(zhí)行期間產(chǎn)生的問(wèn)題。C++異常是指在程序運(yùn)行時(shí)發(fā)生的特殊情況,比如嘗試除以零的操作。異常提供了一種轉(zhuǎn)移程序控制權(quán)的方式。C++異常處理涉及到三個(gè)關(guān)鍵字:try、catch、throw·throw:當(dāng)問(wèn)題出現(xiàn)時(shí),程序會(huì)拋出一個(gè)異常。·catch:在想要處理問(wèn)題的地方,通過(guò)異常處理程序捕獲異常?!ry:
try塊中的代碼標(biāo)識(shí)將被激活的特定異常。它后面通常跟著一個(gè)或多個(gè)catch塊。語(yǔ)法:try{//保護(hù)代碼。正常情況下程序會(huì)執(zhí)行完這里的代碼。//但遇到異常(出錯(cuò))情況時(shí)拋出異常}catch(ExceptionNamee1){//catch塊。如果上面拋出的異常是e1類型,執(zhí)行該段。}catch(ExceptionNamee2){//catch塊。如果上面拋出的異常是e2類型,執(zhí)行該段。}……catch(ExceptionNameeN){//catch塊。如果上面拋出的異常是eN類型,執(zhí)行該段。}catch(…)//catch塊。(…)表示如果異常不是以上列出的所有類型,執(zhí)行該段。}//注:以上每個(gè)catch段皆為可選例2-9一個(gè)捕捉除數(shù)為0的異常的程序#include<iostream>usingnamespacestd;doubledivision(doublea,doubleb){
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 流動(dòng)酒席出售合同范本
- 鄉(xiāng)下洋房售賣合同范本
- 簡(jiǎn)單租場(chǎng)地合同范本
- 拆活動(dòng)板房合同范本
- 共同買店面合同范本
- 玉米批發(fā)合同范本
- 畜禽疫苗銷售合同范本
- 建筑木工包工合同范本
- 小切口歷史-中國(guó)古代歷代貨幣考點(diǎn)匯編
- 老人贈(zèng)送地基合同范本
- 外研版(2025新版)七年級(jí)下冊(cè)英語(yǔ)期中復(fù)習(xí):Unit 1~3+期中共4套學(xué)情調(diào)研測(cè)試卷(含答案)
- 腸氣囊腫課件
- 幼兒園教學(xué)課件閃閃的紅星
- 內(nèi)蒙古自治區(qū)醫(yī)療衛(wèi)生機(jī)構(gòu)藥品集中采購(gòu)購(gòu)銷合同
- 騰沖縣西山壩片區(qū)控制性詳細(xì)規(guī)劃課件
- 歐洲法國(guó)意大利簽證行程單
- C語(yǔ)言程序設(shè)計(jì)第5章--循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
- 人教版八年級(jí)上冊(cè):《蘆花蕩》課文原文
- 超星爾雅學(xué)習(xí)通《婚戀職場(chǎng)人格(武漢理工大學(xué))》章節(jié)測(cè)試附答案
- ISO9001質(zhì)量管理體系培訓(xùn)(共60頁(yè)).ppt
- 商業(yè)票據(jù)與核算
評(píng)論
0/150
提交評(píng)論