版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上 课程设计说明书课程名称 C+项目设计 设计题目 学生姓名 学号 专 业 指导教师 年 月 日 课程设计评语与成绩评定项目 评判标准 (在每一项目对应的标准下方空格内标记)优秀 良好 中等 及格 不及格 工作量能很好地完成任务书规定的工作量。能较好地完成任务书规定的工作量。按时完成任务书规定的工作量。基本完成任务书规定的工作量。没有完成任务书规定的工作量。资料收集方案设计独立提出实施方案,有分析整理、获取新知识的能力。能阅读一些自选资料,能较好地分析整理各类信息。能分析整理各类信息。能阅读教师指定的参考资料。未完成教师指定的参考资料的阅读。综合应用能力能熟练掌握和运用
2、基本理论,取得的结果有一定的实用价值。能熟练掌握和运用有关理论,能独立取得结果。 较好地掌握有关理论,在教师指导下能完成工作。掌握和运用理论比较符合要求。基本理论模糊不清,无任何结果。技术水平实际能力设计合理,有较强的实际动手能力和计算机应用能力。设计比较合理、有一定的实际动手能力和计算机应用能力。设计比较合理,实际动手尚可。设计基本合理,理论分析与实施无大错。设计不合理,实际动手能力差。说明书撰写质量结构严谨,逻辑性强,层次清晰,文字流畅,符合规范化要求,打印精美。结构合理,符合逻辑,文章层次分明,语言准确,达到规范化要求,打印工整。结构基本合理,层次较分明,文理通顺,基本达到规范化要求。结
3、构基本合理,文字尚通顺,勉强达到规范化要求。结构混乱,文字表达不清,错别字较多,达不到规范化要求。学习态度态度认真,作风严谨,严格按进度开展各项工作。学习态度比较认真,能按期圆满完成任务书规定的任务。遵守纪律,基本保证设计时间,按期完成各项工作。态度尚可,在指导教师的帮助下能按期完成任务。纪律涣散,不能保证设计时间和进度。 综合评定成绩:优秀 良好 中等 及格 不及格 指导教师: 年 月 日目录一、系统开发相关情况1(一)开发背景1(二)系统开发的目标1二、系统以及需求分析1(一)系统目标1(二)系统可行性分析11、技术可行性分析12、开发工具可行性分析2三、程序功能描述以及模块结构2(一)功
4、能模块描述及主要类描述2(二)程序流程图3(三)数据结构表4四、用户使用说明与调试结果4(一)使用说明4(二)调试结果4(三)优缺点分析8五、总结8参考文献:9附录:职工信息管理系统源码(C)9专心-专注-专业随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。本文介绍了在Microsoft Visual C+ 6.0环境下开发一个职工信息管理系统的过程。本系统界面友好,操作简单,比较实用。一、系统开发相关情况(一)开发背景
5、随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。(二)系统开发的目标为了更好地适应我校的要求,进一步提供全方位的信息服务,职工信息管理系统在实施后应该能够达到以下的目标: 能够准确地记录职工的相关信息。 系统界面友好、操作简单易行,查询灵活方便,数据储存安全可靠。 系统维护安全、方便、可靠,并且能够实现实用性,先进性的要求。二、系统以及需求分析(一)系统目标除了前面所述,我们所开发的系统还应该具有以下功能: 原始数据修改
6、简单方便; 方便的数据查询; 删除数据方便简单,稳定性好; 数据计算自动完成,尽量减少人工干预;(二)系统可行性分析1、技术可行性分析 由于本系统管理的对象单一,都是公司职工,所以涉及的计算过程不是很复杂。现在学校用于学生管理的微机都是Pentium(R)4 CPU以上的机器,在存储量、速度方面都能满足各方面的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,因此完全可以实现。2、开发工具可行性分析Microsoft Visual C+ 6.0简介Visual C+是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问
7、世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wiza
8、rd等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。根据以上对开发工具的功能的了解,我们相信,依靠Microsoft Visual C+ 6.0能开发出我们所期待的系统。因此,在开发工具方面是可行的。三、程序功能描述以及模块结构(一)功能模块描述及主要类描述模块一:增加人员函数Add();增加职工基本信息。模块二:删除人员函数Delete();删除指定的职工的基本信息以及薪酬。模块三:修改人员函数Modify();修改指定的职工基本信息。模块四:查询职工信息函数Query();查询指定的职工信息以及薪酬。模块五:基础数据设置函数Set();设置五类
9、职位的基本薪酬。模块六:数据存盘,载入函数Save()以及Load();储存职工基本信息,薪酬以及五类职位的基本薪酬。 本系统采用了面向对象的程序设计方法。所有的方法均以类为基础。所涉及到的类包括:class Person 基本员工类;该类是一个基类,设置了属于保护类的职工基本属性,以及构造函数Person(char ID,char *Name,int Duty)。可以给职工类型继承。 class Cservant文员类;由Person类继承而来。定义了职工上个月的工作量Workload,获得工作量函数double GetWorkload(),传入工作量函数void SetWorkload(d
10、ouble Amount),以工作量计算薪酬函数void CalcSalary(),输出薪酬结果以及该类职工信息函数void Output()。class Salesman业务员类;同Cservant文员类。class APman行政人员类;同Cservant文员类。class CSman文员兼职业务人员类;同Cservant文员类。class ACman行政人员兼职文员类;同Cservant文员类。class Company 公司类;该类定义了前文所述六个模块功能的实现方法,链表的使用也包括其中。此类的作能在于将所有功能模块集成并定义本系统使用的主要方法。(二)程序流程图开始定义变量数据处理
11、调用输出函数退出系统YN输入C的值C>=1&&C<=7调用设置函数调用储存函数调用载入函数调用查询函数调用输出函数调用修改函数调用删除函数调用录入函数图 3-1 程序流程图表3-1 数据结构表(三)数据结构表序号成员名数据类型长度字段含义1Noint工号2Namechar20名字3Sexchar10性别4Telchar20联系方式5Nationchar30国籍6Dutyint职位7Earningdouble收入四、用户使用说明与调试结果(一)使用说明这是一个关于职工信息管理系统,具有录入、输出、删除、查询、修改、保存、载入数据、计算总支出薪酬等功能,建立了一个含有工
12、号、姓名、性别、联系方式、国籍、工作量等成员的类的变量class Person 。系统中已预输入了5个职工的相关数据以及基本薪酬数据,调试是可按“4”键先查看输入的数据记录。调试过程中,可按照有关提示进行相关操作:增加职工数据按“1”键;删除职工数据按“2”键;修改职工数据按“3”键;查询职工数据按“4”键;基础数据设置按“5”键;数据存盘按“6”键;数据装入按“7”键;退出系统按“8”键。(二)调试结果代码中运用了switch 语句调用各子函数,数字 1、2、3、4、5、6、7、8等七个数字代表不同的指令。系统启动时,会自动在存放该系统的磁盘根目录之下装入两个数据文件:person.txt和
13、base.txt。装入成功之后会显示“人员和基础数据已经装入”。调试时两个数据文件都已经写入部分数据,使用功能“4查询职工信息”,显示如下:各个职工最后的“工资”根据事前输入的职位,工作量自动计算生成。并将所有的工资累加得到每个月需要支付的总工资。以本次调试为例,系统显示“本月实发工资总数:14110元”。指令“1增加人员”代表调用增加人员函数Add(),要求操作者输入职工的相关信息,管理系统会自动地开辟一个新的节点指针,把它的结点赋给预输入数据中的最后一个节点p2->next ,使其链接起来。指令“2删除人员”代表调用删除人员函数Delete(),要求操作者输入职工的相关ID,系统根据
14、操作者输出的ID,找出对应的记录,然后删除该职工的信息,如果删除的是第一个结点,则 p1->next,指向第二个结点;下图示范了删除第一个节点之后的显示结果:如果删除的是第i个(0< i <n)就把下一个结点地址赋给前一个结点地址;如果找不到对应的ID,则不会删除任何一个记录,并输出“未找到!”。指令“3修改人员”代表调用修改人员函数Modify(),体统根据操作者输入的ID找到对应的记录,将新输入的数据对应地赋给要修改的各成员。包括调整职位,修改姓名,工作量。如果没有找到对应的ID,则不会修改任何一个记录,并输出“未输出!”。指令“4查询职工信息”表示调用查询职工信息函数Q
15、uery(),先输出所有的职工记录,然后系统根据输入的ID找到对应的数据,并输出总支出薪酬,如果没有找到对应的记录,则输出“未找到!”。指令“5基础数据设置”表示调用基础数据设置函数Set(),要求操作员输入文员,行政人员,业务员的基本工资,以便计算每位职工的薪酬。指令“6数据存盘”表示调用存盘函数Save(),输入“Y”或者“N”以进一步操作。指令“7数据装入”表示调用载入函数Load(),系统直接导入数据。(三)优缺点分析优点: 系统中包含了输入、输出、保存、删除、查询、修改等多种功能,系统操作灵活性较强,功能较强大; 可以随意地选择不同的指令进行操作; 自动计算本月应该支出的所有薪酬;
16、排版效果清晰明了,美观; 操作简单方便。缺点: 在调用某些函数时,若没有找到对应记录的情况下,输出结果的处理不太完善,例如查询函数; 录入函数的设计不完善,这也是整个程序设计中最突出的问题。五、总结本次设计我选择的题目是职工信息管理系统。因为事先的计划非常明确,所以我们在完成这个设计的过程也是比较顺利的。在系统分析和设计的部分仍然花了比较多的时间。模块设计部分因为涉及功能的实现,要从抽象的设计转化成实际的代码,因此对于某项功能的实现方法都思考得比较详尽。加上在开发系统之前,我阅读很多与本系统有相关内容的书籍以做参考,使得此次系统编写能顺利进行。由于班里每个人都需要做一份设计,所以我们经常互相交
17、流。在交流的时候经常能够互相提出更好的建议。经过对职工信息管理系统的分析与编写,我得到了很大的收获。自主学习的必要性更是解决问题的基础。这次设计使我重温了以前学过的各科知识,让我对C编程有了更深刻的认识。除了对系统作出正确的分析,实际的调查工作对系统的整体设计有着至关重要的作用。所以在分析系统之前,我花了一些时间在公司的实际管理工作调查上。也因为这样,如何编写代码逐渐变得明朗。每一个功能模块经过调查后后,各个功能逐渐显露出来,然后,反复探讨,验证这项功能是否有存在的必要,是否可以改进得更好。在这样的前提下,最后顺利完成了这份设计。 这次C系统设计作业,提升了我分析问题的能力和思考问题的逻辑能力
18、,更明白实际调研的重要性。从这次设计学到的东西,相信会对我们日后的学习工作起到很大的指导作用参考文献:1 徐士良:C常用算法程序集,清华大学出版社,1995年版.2 洪永清:面向对象建模与设计,清华大学出版社,1993年版.3 谭浩强:C程序设计,清华大学出版社,1991年版.4 张国峰:C语言及其程序设计教程,电子工业出版社,1997年版.5 侯捷:STL源码剖析,华中科技大学出版社,2002年版.6 Bruce Eckel:Thinking in C(2 nd ed),机械工业出版社,2003年版.附录:职工信息管理系统源码(C)#include <iostream.h> #i
19、nclude <fstream.h> #include <ctype.h> #include <string.h> /全局数据,对象 double CSalary; /文员的基本工资 double SSalary; /业务员的基本工资 double APSalary; /行政人员的基本工资 int ID; /员工工号(要保证唯一) class Person /员工类 protected: int No; /编号 char Name20; /姓名char Sex10; /性别char Tel20; /联系方式char Nation30; /国籍int Duty
20、; /职位 double Earning; /收入 Person *next; public: Person(char ID,char *Name,int Duty) this->Duty=Duty; strcpy(this->Name,Name); this->No=ID; virtual void CalcSalary()=0; virtual void Output()=0; friend class Company; ; class Cservant:public Person /文员类 private: double Workload; /上个月完成工作量 publ
21、ic: Cservant(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty) this->Workload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this->Workload=Amount; void CalcSalary() Earning=CSalary+(Workload-20)*20; void Output() CalcSalary(); cout<<No<
22、;<"t"<<Name<<"t文员t"<<"tt"<<Earning<<endl; ; class Salesman:public Person /业务员类 private: double Workload; /上个月完成工作量 public: Salesman(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty) this->Workload=Workload; double GetW
23、orkload() return Workload; void SetWorkload(double Amount) this->Workload=Amount; void CalcSalary() Earning=SSalary+(Workload-15)*20+150; /150为业务补贴 void Output() CalcSalary(); cout<<No<<"t"<<Name<<"t业务员t"<<"tt"<<Earning<<endl
24、; ; class ACman:public Person /行政人员兼职文员类 private: double Workload; /上个月完成工作量 public: ACman(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty) this->Workload=Workload; double GetWorkload() return Workload; void SetWorkload(double s) Workload=s; void CalcSalary() Earning=250+APSalary
25、+CSalary+(Workload-15)*20; void Output() CalcSalary(); cout<<No<<"t"<<Name<<"t行政人员兼职文员t"<<Earning<<endl; ; class APman:public Person /行政人员类 public: APman(char ID,char *Name,int Duty):Person(ID,Name,Duty) void CalcSalary() Earning=APSalary+250;/
26、250为行政补贴 void Output() CalcSalary(); cout<<No<<"t"<<Name<<"t行政人员tt"<<Earning<<endl; ; class CSman:public Person /文员兼职业务人员 private: double Workload;/文员兼职业务人员上个月完成工作量 public: CSman(char ID,char *Name,int Duty,double Workload):Person(ID,Name,Duty)
27、 this->Workload=Workload; double GetWorkload() return Workload; void SetWorkload(double Amount) this->Workload=Amount; void CalcSalary() Earning=(Workload-25)*20+CSalary+150+SSalary;/150为业务补贴 void Output() CalcSalary(); cout<<No<<"t"<<Name<<"t文员兼职业务人员t&qu
28、ot;<<Earning<<endl; ; class Company /公司类 private: Person *Worker; /员工表 void Clear(); /清除内存中数据 public: Company() Worker=0; Load(); Company() Person *p; p=Worker; while(p) p=p->next; delete Worker; Worker=p; Worker=0; void Find(char Name20);/按姓名查找 void Find(int ID);/按编号查找 void Add(); /增
29、加人员 void Delete(); /删除人员 void Modify(); /修改人员 void Query(); /查询人员 void Set(); /基础数据设置 void Save(); /数据存盘(包括基础数据,人员数据) void Load(); /数据装入(包括基础数据,人员数据) ; void Company:Clear() /清除内存中人员数据(内部使用) Person* p=Worker; while(p) Worker=p->next; delete p; p=Worker; void Company:Find(char Name20) void Company:
30、Add() Person *p; /新结点指针 int Duty; char Name20; char Sex10; /性别char Tel20; /联系方式char Nation30; /国籍double Workload; cout<<"n* 新增员工 *n" /输入员工信息 cout<<"输入工号:" cin>>ID; cout<<"输入职位(1-文员 2-行政人员兼职文员 3-文员兼职业务员 4-行政人员 5-业务员):" cin>>Duty; cout<<
31、;"输入姓名:" cin>>Name; cout<<"输入性别:" cin>>Sex;cout<<"输入联系方式:" cin>>Tel;cout<<"输入国籍:" cin>>Nation;if(Duty!=4) cout<<"上个月完成工作量:" cin>>Workload; /创建新员工结点 switch(Duty) case 1:p=new Cservant(ID,Name,Duty,
32、Workload); break; case 2:p=new ACman(ID,Name,Duty,Workload); break; case 3:p=new CSman(ID,Name,Duty,Workload); break; case 4:p=new APman(ID,Name,Duty); break; case 5:p=new Salesman(ID,Name,Duty,Workload); break; p->next=0; /员工结点加入链表 if(Worker) /若已经存在结点 Person *p2; p2=Worker; while(p2->next) /查
33、找尾结点 p2=p2->next; p2->next=p; /连接 else /若不存在结点(表空) Worker=p; /连接 void Company:Delete() /删除人员 int No; cout<<"n* 删除员工 *n" cout<<"ID:" cin>>No; /查找要删除的结点 Person *p1,*p2; p1=Worker; while(p1) if(p1->No=No) break; else p2=p1; p1=p1->next; /删除结点 if(p1!=NUL
34、L)/若找到结点,则删除 if(p1=Worker) /若要删除的结点是第一个结点 Worker=p1->next; delete p1; else /若要删除的结点是后续结点 p2->next=p1->next; delete p1; cout<<"找到并删除n" else /未找到结点 cout<<"未找到!n" void Company:Modify() int No,Duty; char Name20; double Workload; cout<<"n* 修改员工 *n"
35、 cout<<"ID:" cin>>No; /查找要修改的结点 Person *p1,*p2; p1=Worker; while(p1) if(p1->No=No) break; else p2=p1; p1=p1->next; /修改结点 if(p1!=NULL)/若找到结点 p1->Output(); cout<<"调整职位(1-文员 2-行政人员兼职文员 3-文员兼职业务人员 4-行政人员 5-业务人员):" cin>>Duty; if(p1->Duty!=Duty) /若职位
36、发生变动 /修改其它数据 cout<<"输入姓名:" cin>>Name; if(Duty!=4) cout<<"上个月完成工作量:" cin>>Workload; /创建新员工结点 Person *p3; switch(Duty) case 1:p3=new Cservant(p1->No,Name,Duty,Workload); break; case 2:p3=new ACman(p1->No,Name,Duty,Workload); break; case 3:p3=new CSman(
37、p1->No,Name,Duty,Workload); break; case 4:p3=new APman(p1->No,Name,Duty); break; case 5:p3=new Salesman(p1->No,Name,Duty,Workload); break; /员工结点替换到链表 p3->next=p1->next; if(p1=Worker) /若要替换的结点是第一个结点 Worker=p3; else /若要删除的结点是后续结点 p2->next=p3; /删除原来的员工结点 delete p1; else /若职位没有变动 cout&
38、lt;<"输入姓名:" cin>>p1->Name; if(Duty=1) cout<<"上个月完成工作量:" cin>>Workload; (Cservant *)p1)->SetWorkload(Workload); else if(Duty=2) cout<<"上个月完成工作量:" cin>>Workload; (ACman *)p1)->SetWorkload(Workload); else if(Duty=3) cout<<&qu
39、ot;上个月完成工作量:" cin>>Workload; (CSman *)p1)->SetWorkload(Workload); else if (Duty=5) cout<<"上个月完成工作量:" cin>>Workload; (Salesman *)p1)->SetWorkload(Workload); cout<<"修改成功!n" else /未找到结点 cout<<"未找到!n" void Company:Query() int chet,co
40、unt(0); cout<<"n* 查询职工信息以及本月销售信息 *n" cout<<"编号"<<"t"<<"姓名"<<"t"<<"职位"<<"ttt"<<"工资(元/月)"<<endl; Person *p=Worker; double sum2=0; /工资总和 while(p) p->Output(); sum2+=p
41、->Earning; p=p->next; cout<<"本月实发工资总数:"<<sum2<<"元"<<endl; cout<<"请输入你要查询人员的编号:" cin>>chet; Person *p4=Worker; while(p4) if(p4->No=chet) if(p4->Duty=1) (Cservant*)p4)->Output(); count+; break; else if(p4->Duty=2) (ACm
42、an*)p4)->Output(); count+; break; else if(p4->Duty=3) (CSman*)p4)->Output(); count+; break; else if(p4->Duty=4) (APman*)p4)->Output(); count+; break; else if(p4->Duty=5) (Salesman*)p4)->Output(); count+; break; else p4=p4->next; if(count=0) cout<<"未找到!"<<
43、;endl; void Company:Set() cout<<"n* 设置基础数据 *n" cout<<"文员基本工资"<<CSalary<<"元:" cin>>CSalary; cout<<"行政人员基本工资"<<APSalary<<"元:" cin>>APSalary; cout<<"业务人员基本工资"<<SSalary<<&q
44、uot;:" cin>>SSalary; cout<<"员工工号>="<<ID<<":" cin>>ID; void Company:Save() /数据存盘(包括基础数据,人员数据),均采用文本文件 ofstream fPerson,fBase; char c; cout<<"n保存人员和基础数据,是否继续?Y/N:" cin>>c; if(toupper(c)!='Y')return; /保存人员编号、姓名、职位 f
45、Person.open("person.txt",ios:out); Person *p=Worker; while(p) fPerson<<p->No<<"t"<<p->Name<<"t"<<p->Duty<<"t" if(p->Duty=1) fPerson<<(Cservant*)p)->GetWorkload()<<"t" else if (p->Duty=
46、2) fPerson<<(ACman*)p)->GetWorkload()<<"t" else if (p->Duty=3) fPerson<<(CSman*)p)->GetWorkload()<<"t" else if (p->Duty=5) fPerson<<(Salesman*)p)->GetWorkload()<<"t" fPerson<<endl; p=p->next; fPerson.close(); /
47、保存基础数据 fBase.open("base.txt",ios:out); fBase<<"文员基本工资t"<<CSalary<<endl; fBase<<"行政人员基本工资t"<<APSalary<<endl; fBase<<"业务人员基本工资t"<<SSalary<<endl; fBase<<"IDt"<<ID<<endl; fPerson.close(); cout<<"n保存人员和基础数据已经完成.n" void Company:Load() /数据装入(包括基础数据,人员数据) /基础数据装入 ifstream fBase; char buf80; /buf用于保存数据文件中的注释字符串 fBase.open("base.txt",ios:in); fBase>>buf>>CSalary; /文员基本工资 fBas
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年落实两办意见测试题及答案
- 2021征信业半结构化面试真题逐题附满分答案
- 2020淄博医院招聘考试一次上岸专属笔试题库及答案详解
- 去年押中90%考题的2022PSCR押题卷+满分答案 拿证稳了
- 2023年中职学校文员招聘面试专属题库及完整解析答案
- ICU患者镇静镇痛护理实践
- 2026年平安风险与保险测试题及答案
- 儿科护理职业素养
- 凝汽器化学清洗高压水射流清洗施工技术方案及凝汽器清洗规程
- 办公室工作效率提升策略研究
- 园林绿化工(技师)技能鉴定理论考试题库(含答案)
- 展览服务投标方案(技术方案)
- 2022版新课标初中数学《数与代数、图形与几何》解读
- 《石家庄市消防设计审查疑难问题操作指南》修订版(2023.2.28)
- 2024年贵州贵阳城发能源产业有限公司招聘笔试参考题库含答案解析
- 4月原材料上涨行业分析报告
- 2024部编版初中历史七年纪下全册重点知识点归纳总结(复习必背)
- 《冯谖客孟尝君》
- 2022-2023学年重庆市渝东九校联盟高一(下)期中数学试卷(含解析)
- 《全国应急广播体系建设总体规划》
- 动物免疫学抗感染免疫
评论
0/150
提交评论