![北京工业大学 数据结构课设-理发馆 报告_第1页](http://file4.renrendoc.com/view/ce7f23f5f669e7b98076aa238be1507c/ce7f23f5f669e7b98076aa238be1507c1.gif)
![北京工业大学 数据结构课设-理发馆 报告_第2页](http://file4.renrendoc.com/view/ce7f23f5f669e7b98076aa238be1507c/ce7f23f5f669e7b98076aa238be1507c2.gif)
![北京工业大学 数据结构课设-理发馆 报告_第3页](http://file4.renrendoc.com/view/ce7f23f5f669e7b98076aa238be1507c/ce7f23f5f669e7b98076aa238be1507c3.gif)
![北京工业大学 数据结构课设-理发馆 报告_第4页](http://file4.renrendoc.com/view/ce7f23f5f669e7b98076aa238be1507c/ce7f23f5f669e7b98076aa238be1507c4.gif)
![北京工业大学 数据结构课设-理发馆 报告_第5页](http://file4.renrendoc.com/view/ce7f23f5f669e7b98076aa238be1507c/ce7f23f5f669e7b98076aa238be1507c5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
...wd......wd......wd...理发馆学号_____110703xx___姓名_____xxx______指导教师______xx______2013年10月目录1需求分析3程序功能介绍3程序数据要求31.3开发与运行环境需求41.4用户界面设计52数据构造设计72.1主要数据构造72.2程序整体构造112.3模块功能描述113详细设计 124测试 224.1正确运行例如224.2错误运行例如245总结提高251需求分析1.1程序功能介绍本程序模拟理发馆一天的经营状况,理发馆的环境如下:1.理发馆有N把理发椅,可同时为N位顾客进展理发(2<N<9);2.理发师按技术水平分为三个等级〔一级最高,三级最低〕,对应不同的服务收费。理发馆一天的工作过程如下:1.顾客进门时,需要选择某级别的理发师,只要该级别的理发师有空椅,则可立即坐下理发,否则需排队等候;2.一旦该级别的理发师有顾客理发完离去,排在该位理发师队列队头的顾客便可以开场理发。理发馆老板统计每天不同级别理发师的营业时间、创收和每天理发馆总创收,并写入文本文件中,可作为理发师工资与奖金的发放依据。1.2程序数据要求1.2.1输入数据〔由文本文件输入〕:7:3061121324352630.6数据说明:第一行的09:30表示理发馆将于九点半开门;第二行的6表示理发馆有6张理发椅(此处可输入3~9的任意值);随后的N行:表示第i张椅子的理发师的级别〔如:第1张理发椅是1级理发师,第2张理发椅是1级理发师…〕。最后一行的0.6代表折扣〔可选〕1.2.2随机数据需求:每个顾客进门时将负责生成三个随机数:1〕理发时间durtime:进门顾客理发所需服务时间;2〕间隔时间intertime:该顾客与下一位顾客到达的时间间隔;3〕服务选项select:该顾客选择理发师的级别。由随机数函数产生。1.2.3输出数据〔输出到文本文件中〕:本日账目清单===============================按理发师===============================理发师编号:1级别:1工作时长:17本日盈收:17理发师编号:2级别:1工作时长:29本日盈收:29理发师编号:3级别:2工作时长:28本日盈收:14理发师编号:4级别:3工作时长:73本日盈收:23理发师编号:5级别:2工作时长:24本日盈收:12理发师编号:6级别:3工作时长:27本日盈收:9理发师编号:7级别:3工作时长:20本日盈收:6理发师编号:8级别:1工作时长:30本日盈收:30================================按级别===============================1级别理发师总工时:76总收入:762级别理发师总工时:52总收入:263级别理发师总工时:120总收入:38=================================总汇===============================本日总创收:1401.3开发与运行环境需求1.3.1开发环境:Visualstudio20101.3.2运行环境:Winxp/Win7/Win81.4用户界面设计1.4.1初始化界面〔例:6个队列〕8队列界面1.4.2顾客到达、理发及等待界面1.4.3顾客离开界面1.4.4DOS/GUI同步演示程序过程1.4.5折扣选择界面2数据构造设计2.1主要数据构造2.1.1事件类〔Event〕//事件类:包含事件发生时间,事件类型,和下一个事件〔指针〕三个数据成员classEvent{public:intoccurtime;intevent_type;Event*next_event;Event(){}Event(intoccurtime,intevent_type):occurtime(occurtime),event_type(event_type),next_event(NULL){}~Event(){}};2.1.2事件表〔EventList〕//事件表类:数据成员:头指针,两个用于插入删除事件结点的指针,和事件表长度classEventList{public:Event*head,*ptr_before,*ptr_after;intlength;//事件表长度EventList(){head=newEvent(-1,-1);length=1;}~EventList(){}voidOrderIn(Event*new_in);intListEmpty();intCmp(Event*new_in,Event*t1);};2.1.3顾客类〔Customer〕classCustomer{public:intdurtime;intselect;Customer*next;Customer():select(-1){}Customer(intdurtime,intselect):durtime(durtime),select(select),next(NULL){}~Customer(){}};2.1.4顾客队列类〔CustomerQueue〕classCustomerQueue{public:Customer*front,*rear;intselect;intlength;intworktime;intmoney;CustomerQueue():front(NULL),rear(NULL),select(-1),length(0),money(0),worktime(0){}~CustomerQueue(){}voidEnQueue(Customer*add);voidDelQueue();};2.1.5随机函数类〔Random〕:classRandom{public:intdurtime;intintertime;intselect;Random(){srand((int)time(NULL));}~Random(){}intDurtime();intIntertime();intSelect();};2.1.6文件操作类〔FileOperation〕:classFileOperation{public:intinput_time[2];//接收输入时间小时、分钟charmaohao;//接收中间的冒号intnumber[11];//用于接收理发师编号信息intchairs;//理发师人数floatdiscount;//折扣〔可选〕charzhekou;FileOperation():discount(1.0){}~FileOperation(){}voidFileInput(ifstream&from_file,int&opentime,CustomerQueuecq[],int&closetime);voidFileOutput(ofstream&to_file,CustomerQueuecq[],int&total_money);};2.1.7绘图类〔barbergraph〕:classbarbergraph{public:IMAGEbackground_img;//顾客去背景图片IMAGEbaber_desk;//理发师桌子背景IMAGEmy_clock;//时钟背景IMAGEdoor;//门charnow_time[10];//时钟信息存储charbarber_info[20];//理发师信息chargraphic_symbol[15];//图例信息Customer*p;//获取当前动作顾客intchairs;//获取理发师人数barbergraph(){//读取背景图片集loadimage(&background_img,_T("背景1.jpg"));loadimage(&baber_desk,_T("六张桌子.jpg"));loadimage(&my_clock,_T("时钟.jpg"));loadimage(&door,_T("门.jpg"));}voidset_chairs(intchairs);//初始化理发师人数voidCommonGraph(CustomerQueuecq[],intopentime);//通用绘图界面voidBarberGraph(CustomerQueuecq[],intopentime);//无事件状态界面voidArriveBarberGraph(CustomerQueuecq[],intarrival,intnowtime);//顾客到来界面voidDepartBarberGraph(CustomerQueuecq[],intdeparture,intnowtime);//顾客离开界面~barbergraph(){}};2.1.8理发馆类〔Barbershop〕:classBarberShop{public:EventListev;//事件表CustomerQueuecq[11];//六个顾客队列1~10可选intopentime;//开门时间Event*cur_event;//当前事件Event*new_event;//初始事件Customer*new_customer;//新顾客指针intclosetime;//TODO:目前为调试数据〔22:00理想,未实现〕inttotal_money;//理发馆一天总收入intchairs;//接收理发师人数BarberShop():cur_event(NULL),new_customer(NULL),total_money(0){}voidOpenForDay(barbergraph&bg,intchairs);//开门初始化函数intMinimum(intselect);//求同级别最短队列函数voidCustomerArrived(Random&ran,barbergraph&bg);//顾客到来voidCustomerDeparture(barbergraph&bg);//顾客离开voidBarberSimulation(Random&ran,barbergraph&bg,intchairs);//事件驱动模型~BarberShop(){}};2.2程序整体构造main2.2.1函数调用图:mainFileoutputFileinputBarberSimulationFileoutputFileinputBarberSimulationListEmptyCustomerDepartureCustomerArrivedOpenForDayListEmptyCustomerDepartureCustomerArrivedOpenForDayDelQueueEnQueueOrderInBarberGraphDelQueueEnQueueOrderInBarberGraphMinimumDepartBarberGraphArriveBarberGraphMinimumDepartBarberGraphArriveBarberGraph2.3模块功能描述2.3.1Event:作为EventList的结点元素,数据:事件类型、事件发生的时间2.3.2EventList:事件表,为有序表。数据:头指针,时间表长度length;操作:插入、删除Event2.3.3Customer:保存顾客信息。数据:durtime,select2.3.4CustomerQueue:保存顾客队列信息以及理发师信息。数据:select,length,worktime,money,头尾指针;操作:入队,出队;2..3.5Random:生成要求中的三个随机数。2.3.6FileOperation:从文件读入数据,向文件输出数据。2.3.7BarberGraph:绘制图形界面,包括初始化界面、顾客到来、顾客离开界面。2.3.8barbershop:处理顾客到来,顾客离开,含事件驱动主程序。3详细设计3.1.1eventlist.cpp#include"eventlist.h"voidEventList::OrderIn(Event*new_in){//插入事件表if(1==length){//如果长度为一,直接插入head->next_event=new_in;length++;return;}else{//如果长度不为一,用两指针一前一后进展插入操作ptr_before=head->next_event;ptr_after=head;while(ptr_before!=NULL){if(-1==Cmp(new_in,ptr_before)){//如果插入事件在前new_in->next_event=ptr_before;ptr_after->next_event=new_in;length++;return;}//如果在此结点之后,后移一位继续比拟ptr_after=ptr_before;ptr_before=ptr_before->next_event;}ptr_after->next_event=new_in;//如果在最后,直接插到表尾length++;}}intEventList::ListEmpty(){if(length>1)return0;elsereturn1;}3.1.2customerqueue.cpp#include"customerqueue.h"voidCustomerQueue::EnQueue(Customer*add){if(NULL==rear){//如果队伍没人,直接入队front=rear=add;}else{rear->next=add;rear=rear->next;}length++;}voidCustomerQueue::DelQueue(){if(0!=length){Customer*p=front;front=front->next;if(rear==p)rear=NULL;deletep;//释放队头结点空间length--;}}3.1.3random.cpp#include"random.h"intRandom::Durtime(){returnrand()%21+10;//随机一个10~30的数〔持续时间〕}intRandom::Intertime(){returnrand()%6;//随机一个0到5的数〔间隔时间〕}intRandom::Select(){returnrand()%3+1;//随机一个1~3的数〔级别〕}3.1.4fileoperation.cpp#include"fileoperation.h"usingnamespacestd;voidFileOperation::FileInput(ifstream&from_file,int&opentime,CustomerQueuecq[],int&closetime){from_file>>input_time[0]>>maohao>>input_time[1];//接收开门时间opentime=60*input_time[0]+input_time[1];//将时间转化为intfrom_file>>chairs;//接收理发师人数if(chairs>8||chairs<3){cout<<"inputerror,thenumberofchairsshouldbetween3and8!"<<endl;_getch();exit(0);}for(inti=1;i<chairs+1;i++){//初始化理发师信息from_file>>number[i];from_file>>cq[i].select;}from_file>>input_time[0]>>maohao>>input_time[1];//接收关门时间closetime=60*input_time[0]+input_time[1];//关门时间转化cout<<"提供折扣y/n"<<endl;cin>>zhekou;if('y'==zhekou){from_file>>discount;cout<<"本日折扣为"<<discount<<"!"<<endl;}else{cout<<"本店今日不打折!"<<endl;}from_file.close();//关闭读文件}voidFileOperation::FileOutput(ofstream&to_file,CustomerQueuecq[],int&total_money){intclass_money[4]={0};//按理发师级别统计当天收入intclass_worktime[4]={0};//按理发师级别统计当天工时to_file<<"本日账目清单"<<endl<<endl;to_file<<"===============================按理发师==============================="<<endl<<endl;for(inti=1;i<chairs+1;i++){to_file<<"理发师编号:"<<i<<"级别:"<<cq[i].select<<"工作时长:"<<cq[i].worktime<<"本日盈收:"<<cq[i].money<<endl;}to_file<<"================================按级别==============================="<<endl<<endl;for(inti=1;i<chairs+1;i++){//按级别统计理发师工资和工时if(1==cq[i].select){class_money[1]+=cq[i].money;class_worktime[1]+=cq[i].worktime;}if(2==cq[i].select){class_money[2]+=cq[i].money;class_worktime[2]+=cq[i].worktime;}if(3==cq[i].select){class_money[3]+=cq[i].money;class_worktime[3]+=cq[i].worktime;}}for(inti=1;i<4;i++){//按级别将理发师的工资和工时、总创收输出到文件中to_file<<i<<"级别理发师总工时:"<<class_worktime[i]<<"总收入:"<<class_money[i]<<endl;}to_file<<"=================================总汇==============================="<<endl<<endl;to_file<<"本日总创收:"<<total_money;to_file.close();//关闭写文件}3.1.5barbergraph.cpp#include"barbergraph.h"voidbarbergraph::set_chairs(intchairs){this->chairs=chairs;}//通用绘图函数,负责绘制图例,时钟,理发师信息〔不包括队列〕,主要用于刷新界面voidbarbergraph::CommonGraph(CustomerQueuecq[],intopentime){//此处的opentime为nowtimeBeginBatchDraw();//开场批量绘图,防止闪烁putimage(0,0,&my_clock);//将图片集分别插到对应区域putimage(120,100,&background_img);putimage(120,0,&baber_desk);putimage(0,470,&door);rectangle(0,0,120,650);//左侧框//输出时钟信息if((opentime-420)%60<10){//如果分钟小于10,在显示前面加0sprintf_s(now_time,"%d:0%d",7+(opentime-420)/60,(opentime-420)%60);}else{sprintf_s(now_time,"%d:%d",7+(opentime-420)/60,(opentime-420)%60);}setfont(50,0,"黑体");//设置时钟字体setcolor(RED);//时钟字体颜色outtextxy(10,20,now_time);setfont(15,0,"黑体");//恢复初始字体setcolor(WHITE);//恢复初始字体颜色//输出图例信息for(inti=0;i<5;i++){if(0==i){sprintf_s(graphic_symbol,"图例:");}if(1==i){sprintf_s(graphic_symbol,"顾客到达");rectangle(20,170+i*70,90,190+i*70);setfillstyle(BLUE,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(2==i){sprintf_s(graphic_symbol,"顾客等待");rectangle(20,170+i*70,90,190+i*70);setfillstyle(RED,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(3==i){sprintf_s(graphic_symbol,"顾客离开");rectangle(20,170+i*70,90,190+i*70);setfillstyle(GREEN,SOLID_FILL);floodfill(55,175+i*70,WHITE);}if(4==i){sprintf_s(graphic_symbol,"顾客理发中");rectangle(20,170+i*70,90,190+i*70);setfillstyle(YELLOW,SOLID_FILL);floodfill(55,175+i*70,WHITE);}outtextxy(20,150+i*70,graphic_symbol);}//绘制理发师信息for(inti=0;i<chairs;i++){rectangle(120+i*150,0,120+(i+1)*150,100);}for(inti=1;i<chairs+1;i++){sprintf_s(barber_info,"编号%d级别:%d",i,cq[i].select);outtextxy(155+150*(i-1),40,barber_info);}}//静态绘图函数,用于初始化界面和顾客离开后暂停画面voidbarbergraph::BarberGraph(CustomerQueuecq[],intopentime){CommonGraph(cq,opentime);for(inti=1;i<chairs+1;i++){p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//设置填充模式:黄色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}else{setfillstyle(RED,SOLID_FILL);//设置填充模式:红色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}p=p->next;}}EndBatchDraw();//完毕批量绘图_getch();//cleardevice();//以当前背风光清屏〔黑色〕}//绘制顾客到来瞬间界面voidbarbergraph::ArriveBarberGraph(CustomerQueuecq[],intarrival,intnowtime){CommonGraph(cq,nowtime);for(inti=1;i<chairs+1;i++){p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//设置填充模式:黄色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}if(i==arrival&&p->next==NULL){setfillstyle(BLUE,SOLID_FILL);//设置填充模式:蓝色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}else{if(j>1){setfillstyle(RED,SOLID_FILL);//设置填充模式:红色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}}p=p->next;}}EndBatchDraw();_getch();//cleardevice();//以当前背风光清屏〔黑色〕}//绘制顾客离开瞬间界面voidbarbergraph::DepartBarberGraph(CustomerQueuecq[],intdeparture,intnowtime){CommonGraph(cq,nowtime);for(inti=1;i<chairs+1;i++){//队列动态变换局部p=cq[i].front;intj=0;while(p!=NULL){circle(195+150*(i-1),230+50*j++,20);if(1==j){setfillstyle(YELLOW,SOLID_FILL);//设置填充模式:黄色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}if(i==departure&&p==cq[i].front){setfillstyle(GREEN,SOLID_FILL);floodfill(195+150*(i-1),230+50*(j-1),WHITE);}else{if(j>1){setfillstyle(RED,SOLID_FILL);//设置填充模式:红色,固实填充floodfill(195+150*(i-1),230+50*(j-1),WHITE);//坐标所在的封闭区域为填充对象,最后一个参数为边框颜色}}p=p->next;}}EndBatchDraw();_getch();//cleardevice();//以当前背风光清屏〔黑色〕}3.1.6barbershop.cpp#include"barbershop.h"usingnamespacestd;voidBarberShop::OpenForDay(barbergraph&bg,intchairs){this->chairs=chairs;//从输入函数中得到理发师人数bg.set_chairs(chairs);//将理发师人数传到绘图对象中initgraph(1024+(chairs-6)*150,650,1);//初始化界面大小〔根据理发师人数来初始化大小〕setbkmode(TRANSPARENT);//设置文字或图片输出背景为透明setfont(15,0,"黑体");//初始化字体setcolor(WHITE);//初始化字体颜色bg.BarberGraph(cq,opentime);//初始化界面信息Event*new_event=newEvent(opentime,0);//创立第一个事件ev.OrderIn(new_event);//插入事件表}//OpenForDayintBarberShop::Minimum(intselect){intmin_cq=1000;//最短队列初始值intmin_length=1000;//假定初始最短长度为无穷for(inti=1;i<=chairs;i++){//寻找符合select的最短队列if(cq[i].select==select&&cq[i].length<min_length){min_length=cq[i].length;min_cq=i;}}returnmin_cq;//返回最短队列号}voidBarberShop::CustomerArrived(Random&ran,barbergraph&bg,floatdiscount){//处理客户到达事件intselect=ran.Select();//随机生本钱顾客的理发师级别选择intdurtime=ran.Durtime();//随机生本钱顾客的理发时长intintertime=ran.Intertime();//随机生成下一个顾客的到来时间间隔intmoney=durtime/select*discount;//本顾客的消费额〔收费公式〕intmin_cq;//记录最短队列信息new_customer=newCustomer(durtime,select);//生本钱顾客实体total_money+=money;//计入总收入min_cq=Minimum(select);//求最短队列cout<<"min_cq:"<<min_cq<<"";cout<<"selece:"<<select<<""<<"durtime:"<<durtime<<""<<"intertime:"<<intertime<<"";cout<<"("<<7+(cur_event->occurtime-420)/60<<":"<<(cur_event->occurtime-420)%60<<","<<cur_event->event_type<<")"<<endl;//时间转换公式cq[min_cq].money+=money;//计入min_cq队列理发师总收入cq[min_cq].worktime+=durtime;//计入min_cq队列理发师工作时间cq[min_cq].EnQueue(new_customer);//入队bg.ArriveBarberGraph(cq,min_cq,cur_event->occurtime);//在图形界面上显示到来顾客intt=cur_event->occurtime+intertime;//下一顾客的到来时间if(t<closetime){//下一顾客到来未关门new_event=newEvent(t,0);ev.OrderIn(new_event);//生成下一顾客到达事件插入事件表}if(1==cq[min_cq].length){//如果新来的顾客在队头new_event=newEvent(cur_event->occurtime+durtime,min_cq);ev.OrderIn(new_event);//生本钱顾客的离开事件插入事件表}}//CustomerArrived//客户离开事件voidBarberShop::CustomerDeparture(barbergraph&bg){//注意:队列中超过两个人时下个人的离开事件从前一个人离开时开场计时。inti=cur_event->event_type;//记录要删除的队列编号cout<<"dep_cq:"<<i<<"";cout<<"("<<7+(cur_event->occurtime-420)/60<<":"<<(cur_event->occurtime-420)%60<<","<<cur_event->event_type<<")"<<endl;bg.DepartBarberGraph(cq,i,cur_event->occurtime);//将离开的顾客用图形表示出来cq[i].DelQueue();//删除第i队的排头客户bg.BarberGraph(cq,cur_event->occurtime);//绘制顾客离开后的画面if(0!=cq[i].length){//设定第i队列的队头离开事件插入事件表new_event=newEvent(cur_event->occurtime+cq[i].front->durtime,i);ev.OrderIn(new_event);}}//CustomerDeparturevoidBarberShop::BarberSimulation(Random&ran,barbergraph&bg,intchairs,floatdiscount){OpenForDay(bg,chairs);//开门初始化while(!ev.ListEmpty()){//事件驱动主体,只要事件表不为空则一直执行第一个事件cur_event=ev.head->next_event;//获取当前事件(表中第二个结点)if(0==cur_event->event_type){//如果为0则为到来事件CustomerArrived(ran,bg,discount);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 现代物流信息系统建设中的标准化问题
- 挂绳高空作业施工方案
- 拆除临时用电施工方案
- 生态文明教育在校园的实践与推广
- 现代企业综合管理能力提升及领导力培训方案研究报告
- 国庆节营销活动方案模板
- 2023三年级语文上册 第一单元 习作:猜猜他是谁说课稿 新人教版
- Unit 2 AnimaIs Lesson 1 Enjoy the story(说课稿)-2024-2025学年北师大版(三起)英语五年级上册
- 2024秋八年级物理上册 第1章 机械运动 第2节 运动的描述说课稿2(新版)新人教版
- 2025仿石漆施工合同
- 《心脏血管的解剖》课件
- 2024-2030年中国并购基金行业发展前景预测及投资策略研究报告
- 河道清淤安全培训课件
- 2024年湖南商务职业技术学院单招职业适应性测试题库带答案
- 7.3.1印度(第1课时)七年级地理下册(人教版)
- 骨科手术中常被忽略的操作课件
- 《湖南师范大学》课件
- 《病原与感染性疾病》课程教学大纲
- 2024年全国各地中考试题分类汇编:作文题目
- 2024年高压电工操作证考试复习题库及答案(共三套)
- 《糖拌西红柿 》 教案()
评论
0/150
提交评论