




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.8模拟电信计费系统的设计与实现3.8.1设计题目及要求模拟电信计费系统的设计与实现要求:(1) 计费功能。根据存放在源数据文件中的通话记录和长途费率文件对每一条通话记录计算其通话费用,并将结果保存在费用文件中。其中:通话费的计算方法如下:通话费长途电话费本地电话费长途电话费费率(元/分钟)×通话时长(分钟) (通话时长不满1分钟的按1分钟计算)本地电话费为:3分钟以内0.5元,以后每3分钟递增0.2元。(2) 话费查询。输入一个电话号码,从费用文件中统计该电话号码的所有本地话费、长途话费,并从用户文件中查找其用户名,最后在屏幕上显示:用户名 电话号码 本地话费 长途话费 话费总计
2、(3) 话单查询。输入一个电话号码,查询并在屏幕显示该用户的所有通话记录,格式为:用户名 主叫电话号码 被叫电话号码 通话时长3.8.2设计思想及程序流程框图程序设计大致思路:1.本系统的输入输出文件本系统的输入文件有三个:(1) 源数据文件(hd.dat)存放:主叫区号 主叫电话号码 被叫区号 被叫电话号码 通话时长(秒)每次通话作为一条记录,占源数据文件的一行。每条记录中各数据之间以空格间隔,例如:025 83491234 010 62320983 90每个电话号码可以有多次通话记录。如果主、被叫区号相同,则通话记录为本地通话记录;否则为长途通话记录。(2) 长话费率文件(fl.dat)存
3、放:区号 费率例如:010 1.20 表示从本地打往区号为010的地区每分钟收费1.20元。(3) 用户文件(yh.dat)存放: 电话号码 用户姓名例如: 83491234 张明 本系统的输出文件有一个:费用文件(fy.dat)存放:主叫电话号码 通话类型 话费金额其中,通话类型表示本次通话是长途还是本地。2.系统输入数据hd.dat有20条通话记录,分别是:fl.dat 有4条记录 025 83491234 025 85319971 70 010 1.20 025 84927038 010 62110045 236020 1.20 025 87216340 025 84521009 310
4、 021 0.80025 83491234 0571 82199516 1000571 1.00025 58120321 021 81094532 50 025 83491234 025 85319971 80 025 84927038 025 83491234 115 yh.dat有5条记录025 58120321 025 87216340 47 83491234 张明025 87216340 010 62110045 93 84927038 李小红025 83491234 010 62110045 792 87216340 王励025 84927038 0571 82199516 931
5、83492200 赵强025 83491234 025 85319971 580 58120321 杨冬025 84927038 025 83491234 358 025 58120321 021 81094532 197025 87216340 025 84521009 256 025 87216340 010 62110045 193025 83492200 025 84521009 320 025 83491234 025 85319971 270025 84927038 025 83491234 231 025 83492200 025 84927038 723.数据结构(可用C+实现
6、)三个类:话单(callist)、费用(charge)和用户(user)两个常量:存放本地费率和递增量(1)话单类数据成员:主叫区号、主叫电话号码、被叫区号、被叫电话号码、通话时长数据类型属性(私有、保护、公有)方法:构造函数和析构函数 从源数据文件读入通话数据显示一次通话数据取主叫区号 取主叫电话号码等等(2)费用类 从话单类派生数据成员: 通话类型、通话费用数据类型属性(私有、保护、公有)方法: 构造函数和析构函数 从费用文件读入费用数据 向费用文件输出数据 屏幕显示费用 求通话费用 求通话类型 取(返回)通话类型 取通话费用等等(3)用户类数据成员:姓名、电话号码数据类型属性(私有、保护
7、、公有)方法: 设置用户的电话号码 查询用户名设置用户名 查询用户的电话号码显示用户名和电话号码 等等(1) 话单类(CallList)class CallListprotected:char *ZCode;/主叫区号char *ZNum;/主叫号码char *BCode;/被叫区号char *BNum;/被叫号码int Time;/通话时长(秒)public:CallList(char *zcode=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0);CallList();void Set(char *zcode
8、=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0);void Print();char *getZC();char *getZN();char *getBC();char *getBN();int getTime();(2) 费用类(Charge) 从话单类派生class Charge:public CallList/公有继承protected:int CallStyle;/为0时表示本地通话,为1时表示长途通话float Expense;/话费public:Charge(char *zcode=NULL,cha
9、r *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0,int callstyle=0,float exp=0);void Set(char *zcode=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0);void ComputeSty();int GetStyle();float GetExp();void PrintExp(); (3)用户类(Consumer)class Consumerprotected:char *Name;/用户姓名char *
10、Num;/用户电话号码public:Consumer(char *name=NULL,char *num=NULL);Consumer();void SetName(char *name=NULL);void SetNum(char *num=NULL);char *GetName();char *GetNum();void Print();(4)费率类(Rate)class Rateprotected:char *Code;/区号float rate;/费率public:Rate(char *code=NULL,float rat=0);Rate();void Set(char *code=
11、NULL,float ra=0);char *GetCode();float GetRate();void printRate();根据自顶向下,逐步细化的程序设计思想,考虑将程序分为五大模块:文件导入模块,话费计算模块,文件导出模块,查询模块以及确认退出模块。由此所得的程序结构图大致如下所示:开始键盘输入选择功能文件导入话费计算文件导出查询退出系统由系统结构图得到相应各个主要模块的的函数如下:1 char Menu(char *ptr);/函数功能:菜单显示并获得键盘选择/函数参数:字符型指针ptr,表示菜单选择时输入字符串地址/函数返回值:输入的键盘的ASCII码对应字符2 Rate *I
12、nputRate(int &total);/函数功能:从文件中读取费率文件并做相关异常处理/函数参数:整型total,表示费率的总数/函数返回值:Rate型,表示对象数组的首地址3 Consumer *InputConsumer(int &total);/函数功能:从文件中读取用户文件并做相关异常处理/函数参数:整型total,表示用户的总数/函数返回值:Consumer型,表示对象数组的首地址4 Charge *InputCharge(int &total);/函数功能:从文件中读取通话记录文件并做相关异常处理/函数参数:整型total,表示通话记录的总数/函数返回值
13、:Charge型,表示对象数组的首地址5 int ComputeExp(Charge *ptc=NULL,Rate *ptr=NULL,int totalCharge=0,int totalRate=0);/函数功能:计算每个通话记录的话费/函数参数:Charge型指针ptc,表示通话记录对象数组的首地址/Rate型指针ptr,表示费率对象数组的首地址/整型totalCharge,表示通话记录总数/整形totalRate,表示费率总数/函数返回值:整型,0表示异常退出;1表示正常退出6 int Output(Charge *point=NULL,int total=0);/函数功能:导出数据到
14、文件保存/函数参数:Marks指针point,表示对象数组的首地址/ 整型total,表示学生总数/函数返回值:整形,0表示正常输出;1表示异常输出7 int PrintFY(Charge *point=NULL,int total=0);/函数功能:显示导出到文件保存的数组/函数参数:Charge指针,表示通话记录对象数组的首地址/ 整型total,表示通话记录总数/函数返回值:整形,0表示正常输出;1表示异常输出8 int FindExp(Charge *ptch=NULL,Consumer *ptco=NULL,int totalCharge=0,int totalConsumer=0)
15、;/函数功能:话费查询/函数参数:Charge型指针ptch,表示通话记录对象数组的首地址/Consumer型指针ptco,表示用户对象数组的首地址/整型totalCharge,表示通话记录总数/整形totalConsumer,表示用户总数/函数返回值:整型,1表示异常退出;0表示正常退出9int FindList(Charge *ptch=NULL,Consumer *ptco=NULL,int totalCharge=0,int totalConsumer=0);/函数功能:话单查询/函数参数:Charge型指针ptch,表示通话记录对象数组的首地址/Consumer型指针ptco,表示用
16、户对象数组的首地址/整型totalCharge,表示通话记录总数/整形totalConsumer,表示用户总数/函数返回值:整型,1表示异常退出;0表示正常退出10void Exit(char *p1,Rate *p2,Consumer *p3,Charge *p4);/函数功能:选择是否退回DOS,确定后释放相关内存/函数参数:字符型指针p1,表示Menu模块中输入选择字符串的首地址/Rate型指针p2,表示费率对象数组的首地址/Consumer型指针p3,表示用户对象数组的首地址/Charge型指针p4,表示通话记录对象数组的首地址/函数返回值:无3.8.3逻辑功能程序1Header Fi
17、les(1) CallList.h#include<iostream.h>class CallListprotected:char *ZCode;/主叫区号char *ZNum;/主叫号码char *BCode;/被叫区号char *BNum;/被叫号码int Time;/通话时长(秒)public:CallList(char *zcode=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0);CallList();void Set(char *zcode=NULL,char *znum=NULL,cha
18、r *bcode=NULL,char *bnum=NULL,int time=0);void Print();char *getZC();char *getZN();char *getBC();char *getBN();int getTime();(2)Charge.h#include "CallList.h"class Rate;class Consumer;class Charge:public CallList/公有继承protected:int CallStyle;/为0时表示本地通话,为1时表示长途通话float Expense;/话费public:Charge
19、(char *zcode=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0,int callstyle=0,float exp=0);void Set(char *zcode=NULL,char *znum=NULL,char *bcode=NULL,char *bnum=NULL,int time=0);void ComputeSty();int GetStyle();float GetExp();void PrintExp();friend Charge *InputCharge(int &total)
20、;/友元声明friend int ComputeExp(Charge *ptc,Rate *ptr, int totalCharge,int totalRate);friend int FindExp(Charge *ptch,Consumer *ptco,int totalCharge,int totalConsumer);friend int FindList(Charge *ptch,Consumer *ptco,int totalCharge,int totalConsumer);(3) Consumer.h#include<iostream.h>class Charge;
21、/类声明class Consumerprotected:char *Name;/用户姓名char *Num;/用户电话号码public:Consumer(char *name=NULL,char *num=NULL);Consumer();void SetName(char *name=NULL);void SetNum(char *num=NULL);char *GetName();char *GetNum();void Print();friend Consumer *InputConsumer(int &total);/友元声明friend int FindExp(Charge
22、*ptch,Consumer *ptco,int totalCharge,int totalConsumer);friend int FindList(Charge *ptch,Consumer *ptco,int totalCharge,int totalConsumer);(4) Rate.h#include <iostream.h>class Charge;/类声明class Rateprotected:char *Code;/区号float rate;/费率public:Rate(char *code=NULL,float rat=0);Rate();void Set(ch
23、ar *code=NULL,float ra=0);char *GetCode();float GetRate();void printRate();friend Rate *InputRate(int &total);/友元声明friend int ComputeExp(Charge *ptc,Rate *ptr, int totalCharge,int totalRate);2Source Files(1) CallList.cpp#include "CallList.h"#include <string.h>CallList:CallList(ch
24、ar *zcode,char *znum,char *bcode, char *bnum,int time)ZCode=zcode;ZNum=znum;BCode=bcode;BNum=bnum;Time=time;CallList:CallList()delete ZCode;delete ZNum;delete BCode;delete BNum;void CallList:Set(char *zcode,char *znum,char *bcode,char *bnum,int time)ZCode=new charstrlen(zcode)+1;strcpy(ZCode,zcode);
25、ZNum=new charstrlen(znum)+1;strcpy(ZNum,znum);BCode=new charstrlen(bcode)+1;strcpy(BCode,bcode);BNum=new charstrlen(bnum)+1;strcpy(BNum,bnum);Time=time;void CallList:Print()cout<<" "<<ZCode<<" "<<ZNum<<"t"<<BCode<<'t'<
26、;<BNum<<"tt"<<Time<<endl;char *CallList:getZC()return ZCode;char *CallList:getZN()return ZNum;char *CallList:getBC()return BCode;char *CallList:getBN()return BNum;int CallList:getTime()return Time;(2) Charge.cpp#include "Charge.h"#include <string.h>Char
27、ge:Charge(char *zcode,char *znum,char *bcode,char *bnum,int time,int callstyle,float exp):CallList(zcode,znum,bcode,bnum,time)CallStyle=callstyle;Expense=exp;void Charge:Set(char *zcode,char *znum,char *bcode,char *bnum,int time)CallList:Set(zcode,znum,bcode,bnum,time);void Charge:ComputeSty()if(str
28、cmp(ZCode,BCode)=0)CallStyle=0;elseCallStyle=1;int Charge:GetStyle()return CallStyle;float Charge:GetExp()return Expense;void Charge:PrintExp()cout<<Expense<<endl;(3) Consumer.cpp#include "Consumer.h"#include <string.h>Consumer:Consumer(char *name,char *num)Name=name;Num=
29、num;Consumer:Consumer()delete Name;delete Num;char *Consumer:GetName()return Name;char *Consumer:GetNum()return Num;void Consumer:SetName(char *name)Name=new charstrlen(name)+1;strcpy(Name,name);void Consumer:SetNum(char *num)Num=new charstrlen(num)+1;strcpy(Num,num);void Consumer:Print()cout<<
30、;Num<<" t"<<Name<<endl;(5) Rate.cpp#include "Rate.h"#include <string.h>Rate:Rate(char *code,float rat)Code=code;rate=rat;Rate:Rate()delete Code;void Rate:Set(char *code,float rat)Code=new charstrlen(code)+1;strcpy(Code,code);rate=rat;char *Rate:GetCode()re
31、turn Code;float Rate:GetRate()return rate;void Rate:printRate()cout<<Code<<'t'<<rate<<endl;(6) TeleExpSystem.cpp#include "Consumer.h"#include "Charge.h"#include "Rate.h"#include <string.h>#include <fstream.h>#include <stdio
32、.h>#include <conio.h>#include <stdlib.h>char Menu(char *ptr);/函数声明Rate *InputRate(int &total);Consumer *InputConsumer(int &total);Charge *InputCharge(int &total);int ComputeExp(Charge *ptc=NULL,Rate *ptr=NULL, int totalCharge=0,int totalRate=0);int Output(Charge *point=NUL
33、L,int total=0);int PrintFY(Charge *point=NULL,int total=0);int FindExp(Charge *ptch=NULL,Consumer *ptco=NULL,int totalCharge=0,int totalConsumer=0);int FindList(Charge *ptch=NULL,Consumer *ptco=NULL,int totalCharge=0,int totalConsumer=0);void Exit(char *p1,Rate *p2,Consumer *p3,Charge *p4);int main(
34、)char c;/接受菜单选择字符int TotalRate=0;/费率总数int TotalConsumer=0;/用户总数int TotalCharge=0;/通话记录总数Rate *ptRate=NULL;Consumer *ptConsumer=NULL;Charge *ptCharge=NULL;char *pt=NULL;while(1)c=Menu(pt);/调用菜单函数switch(c)case '1':ptRate=InputRate(TotalRate);ptConsumer=InputConsumer(TotalConsumer);ptCharge=Inp
35、utCharge(TotalCharge);break;case '2':ComputeExp(ptCharge,ptRate,TotalCharge,TotalRate);break;case '3':Output(ptCharge,TotalCharge);PrintFY(ptCharge,TotalCharge);break;case '4':FindExp(ptCharge,ptConsumer,TotalCharge,TotalConsumer);break;case '5':FindList(ptCharge,ptCo
36、nsumer,TotalCharge,TotalConsumer);break;case '6':Exit(pt,ptRate,ptConsumer,ptCharge);/确认退出模块break;default:cout<<"Input Error!"break;cout<<"nPress anykey to main menu."<<endl;getch();/while (!kbhit();/检查当前是否有键盘按下(有回显)return 0;/函数功能:菜单显示并获得键盘选择/函数参数:字符型指针p
37、tr,表示菜单选择时输入字符串地址/函数返回值:输入的键盘的ASCII码对应字符char Menu(char *ptr)cout<<"t*n"cout<<"t 模 拟 电 信 计 费 系 统 n"cout<<"t*n"cout<<"t 1. 费率、用户、通话记录文件n"cout<<"t 2. 计算话费n"cout<<"t 3. 计费结果n"cout<<"t 4. 话费查询n"
38、;cout<<"t 5. 话单查询n"cout<<"t 6. 退出n" cout<<"t*n"BACK:cout<<"请按照序号选择操作:"<<endl;char *sign=new char10;cin>>sign;ptr=sign;if(strlen(sign)>1)cout<<"Input Error!n"goto BACK;return *(sign);/函数功能:从文件中读取费率文件并做相关异常处
39、理/函数参数:整型total,表示费率的总数/函数返回值:Rate型,表示对象数组的首地址Rate *InputRate(int &total)char *add=new char20;/申请空间存放待打开文件地址add="d:fl.dat"/方便文件测试,实际操作时请使用下面标示/的代码cout<<"成功导入费率文件"<<endl;/cout<<"请正确输入费率文件的详细地址:"<<endl;/gets(add);ifstream fin(add);if(!fin)cout&l
40、t;<"Can't open the file!"<<endl;return NULL;float rate=0;char *code=new char10;fin>>total;Rate *ptr=new Ratetotal;cout<<"区号"<<" "<<"费率(元/分钟)"<<endl;for(int i=0;i<total;i+)fin>>code;fin>>rate;(ptr+i)->
41、;Set(code,rate);(ptr+i)->printRate();fin.close();/delete add;return ptr;/函数功能:从文件中读取用户文件并做相关异常处理/函数参数:整型total,表示用户的总数/函数返回值:Consumer型,表示对象数组的首地址Consumer *InputConsumer(int &total)char *add=new char20;/申请空间存放待打开文件地址add="d:yh.dat"/方便文件测试,实际操作时请使用下面标示/的代码cout<<"成功导入用户文件"
42、;<<endl;/cout<<"请正确输入用户文件的详细地址:"<<endl;/gets(add);ifstream fin(add);if(!fin)cout<<"Can't open the file!"<<endl;return NULL;char *num=new char10;char *name=new char10;fin>>total;Consumer *ptr=new Consumertotal;cout<<"电话号码"<
43、;<" "<<"用户姓名"<<endl;for(int i=0;i<total;i+)fin>>num;fin>>name;(ptr+i)->SetNum(num);(ptr+i)->SetName(name);(ptr+i)->Print();fin.close();/delete add;return ptr;/函数功能:从文件中读取通话记录文件并做相关异常处理/函数参数:整型total,表示通话记录的总数/函数返回值:Charge型,表示对象数组的首地址Charge *I
44、nputCharge(int &total)char *add=new char20;/申请空间存放待打开文件地址add="d:hd.dat"/方便文件测试,实际操作时请使用下面标示/的代码cout<<"成功导入通话记录"<<endl;/cout<<"请正确输入通话记录文件的详细地址:"<<endl;/gets(add);ifstream fin(add);if(!fin)cout<<"Can't open the file!"<&l
45、t;endl;return NULL;int time=0;char *zcode=new char10;char *znum=new char10;char *bcode=new char10;char *bnum=new char10;fin>>total;Charge *ptr=new Chargetotal;cout<<"主叫区号"<<" "<<"主叫号码"<<" "<<"被叫区号"<<" &q
46、uot;<<"主叫号码"<<" "<<"通话时长(秒)"<<endl;for(int i=0;i<total;i+)fin>>zcode>>znum>>bcode>>bnum>>time;(ptr+i)->Set(zcode,znum,bcode,bnum,time);(ptr+i)->Print();fin.close();/delete add;return ptr;/函数功能:计算每个通话记录的话费/函数
47、参数:Charge型指针ptc,表示通话记录对象数组的首地址/Rate型指针ptr,表示费率对象数组的首地址/整型totalCharge,表示通话记录总数/整形totalRate,表示费率总数/函数返回值:整型,0表示异常退出;1表示正常退出int ComputeExp(Charge *ptc,Rate *ptr,int totalCharge,int totalRate)if(ptc=NULL|totalCharge=0)cout<<"没有通话记录,无法计算!"<<endl;return 0;for(int i=0;i<totalCharge
48、;i+)int time=0;float fl=0;float temp=0.0;time=(ptc+i)->Time/60;if(ptc+i)->Time%60>=0)time+;(ptc+i)->ComputeSty();if(ptc+i)->CallStyle=0)/计算本地通话费if(time<=3)temp=0.5;elseint n=time/3;int m=time%3;for(int j=0;j<n;j+)temp=temp+0.5+float(j)*0.2;if(m!=0)temp=temp+0.5+float(j)*0.2;(ptc
49、+i)->Expense=temp;else/计算长途话费for(int x=0;strcmp(ptc+i)->BCode,(ptr+x)->Code)&&x<totalRate;x+)fl=(ptr+x)->rate;temp=float(time)*fl;(ptc+i)->Expense=temp;cout<<"话费计算结束!"<<endl;return 1;/函数功能:导出数据到文件保存/函数参数:Marks指针point,表示对象数组的首地址/ 整型total,表示学生总数/函数返回值:整形
50、,0表示正常输出;1表示异常输出int Output(Charge *point,int total)if(total=0|point=NULL)cout<<"没有通话记录,不能输出!"<<endl;return 1;char *add=new char20;/测试代码,可以使用下面的注释代码代替add="d:fy.dat"/cout<<"Please input the address you want to store:"<<endl;/gets(add);ofstream fout
51、(add);/打开文件输出流if(!fout)cout<<"Can't open output file!"<<endl;return 1;fout<<" 主叫号码"<<" 通话类型"<<" 话费"<<endl;for(int i=0;i<total;i+)/格式输出fout<<" "<<(point+i)->getZN()<<" t"if(poin
52、t+i)->GetStyle()fout<<"长途"<<" t"elsefout<<"本地"<<" t"fout<<(point+i)->GetExp()<<endl;fout.close();cout<<"文件已成功输出到:"<<add<<endl;/delete add;return 0;/函数功能:显示导出到文件保存的数组/函数参数:Charge指针,表示通话记录对象数组
53、的首地址/ 整型total,表示通话记录总数/函数返回值:整形,0表示正常输出;1表示异常输出int PrintFY(Charge *point,int total)if(total=0|point=NULL)return 1;cout<<" 主叫号码"<<" 通话类型"<<" 话费"<<endl;for(int i=0;i<total;i+)cout<<" "<<(point+i)->getZN()<<" t
54、"if(point+i)->GetStyle()cout<<"长途"<<" t"elsecout<<"本地"<<" t"cout<<(point+i)->GetExp()<<endl;return 0;/函数功能:话费查询/函数参数:Charge型指针ptch,表示通话记录对象数组的首地址/Consumer型指针ptco,表示用户对象数组的首地址/整型totalCharge,表示通话记录总数/整形totalConsumer,表示用户总数/函数返回值:整型,1表示异常退出;0表示正常退出int FindExp(Charge *ptch,Consumer *ptco,int totalCharge,int totalConsumer)if(ptch=NULL|ptco=NULL)cout<<"没有导入指定文件,无法查询!"<<endl;return 1;char *string=new c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年鲁教版(五四制)七年级数学下册期末考试计算专练
- 2021-2026年中国电液执行机构行业投资分析及发展战略咨询报告
- 焦末项目投资可行性研究分析报告(2024-2030版)
- 中国网络整合营销服务行业市场行情动态分析及发展前景趋势预测报告
- 2025年 兴化市明德技工学校招聘考试笔试试题附答案
- 2025年 黑龙江烟草考试试题附答案
- 2024年中国丁二烯橡胶行业市场调查报告
- 2025年中国存储部件行业市场深度分析及投资策略研究报告
- 2024-2030年中国产业数字化行业市场深度研究及发展趋势预测报告
- 窗型材项目投资可行性研究分析报告(2024-2030版)
- 资产管理+数据资产确权登记导则(2022年)
- SL637-2023年《水力机械辅助设备系统安装工程施工质量验收评定标准》
- 油雾润滑操作规程及要求
- 浆料回收工艺及流程
- QSY 1643-2013安全目视化管理导则培训课件
- “四电”工程施工工艺标准
- 学校中层干部选拔考试教育教学管理知识试题题库(包含:名词解释、简答题、论述题、案例分析)
- 港口规划与布置课程设计
- GB/T 799-2020地脚螺栓
- GB/T 7551-2008称重传感器
- GB/T 213-2003煤的发热量测定方法
评论
0/150
提交评论