版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南城建学院面向对象语言程序设计课程设计报告书班 级 专 业 计算机科学与技术 姓 名 学 号 课程名称 面向对象语言程序设计设计名称 高校人事管理系统 指导教师 计算机科学与工程系2012年6月摘要高校人事管理系统,基于目前高校的人士录用情况,便于高校的人事信息化管理。该系统基于C+语言,以及数据结构的算法设计思想。为方便用户程序设有添加功能、删除功能、查找功能(姓名查找、编号查找)、修改功能、查看功能和人员信息统计功能(对行政人员、教师、一般员工、退休人员、返聘人员和临时工)进行统计,包含对党员人数、女职工人数、高学历人数(研究生、硕士、博士)进行统计。系统的各个功能主要通过函数之间的相互
2、调用实现,主要有添加函数、查找函数、修改函数、显示函数、统计函数。所有函数都是基于文件操作进行,直接对各种操作进行保存。系统设有两个类、两个类为继承关系。体现了C+的多态性。具体信息将在下文详细的剖析概括。系统的开发与设计是基于VC6.0平台实现的编译,根据数据结构算法设计原理,对程序的功能系统分步在VC6.0平台上编译实现。设计中参考了多项有关文件操作与类的继承派生、多态性的书籍。进行了仔细认真的源代码书写,保证程序的健壮性与高效性,各种功能也考虑了用户的需求,做大最大限度的满足用户的需求,并对各种出现异常进行了分析与解决。 关键词:高校人事管理; C+; VC6.0; 数据结构;文件操作目
3、录第一章开发环境和开发工具11.1C+语言简介11.2 开发背景11.3 开发环境1第二章 算法思想22.1 系统需求分析22.2 系统总体设计22.2.1 系统设计目标22.2.2 开发设计思想32.2.3 系统功能模块设计32.3 面向对象思想描述7第三章面向对象实现83.1 结构83.2 程序模块93.3 各类之间的关系193.4 源程序代码20第四章测试与分析354.1 测试数据选择354.2 测试结果分析35总 结40心得体会41参考文献42 第一章 开发环境和开发工具1.1 C +语言简介在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C+。 C+
4、进一步扩充和完善了C语言,成为一种面向 对象的程序设计语言。C+目前流行的最新版本是Borland C+4.5,Symantec C+6.1,和Microsoft VisualC+ 2.0。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。1.2 开发背景 高校人事管理系统,基于目前高校的人士录用情况,便于高校的人事信息化管理。该系统基于C+语言,以及数据结构的算法设计思想。为方便用户程序设有添加功能、删除功能、查找功能(姓名查找、编号查找
5、)、修改功能、查看功能和人员信息统计功能(对行政人员、教师、一般员工、退休人员、返聘人员和临时工)进行统计,包含对党员人数、女职工人数、高学历人数(研究生、硕士、博士)进行统计。系统能够满足高校实现人事的简单管理操作,便于高校对在校人事进行各种及时合理的调度,满足高校简单的运行机制。1.3 开发环境本文所采用的开发环境主要是基于C+环境的信息技术极大地扩展了全人类教育的时空界限,空前地提高了人们学习的兴趣、效率和主动性,已经成为开发人类能力的创造性工具。在计算机科学中,数据结构不仅是一般应用程序设计的基础,而且也是操作系统、数据库系统、网络系统设计及其它大型计算机应用工程重要的实施基础。在编程
6、实现操作系统是基于VC6.0 之上实现,按照了C+语言设计的基本内容。第二章 面向对象思想 2.1 系统需求分析高校人事管理,高校在有职人员(行政人员、教师、一般员工)、退休人员、返聘人员和临时工。现在,需要存储这些人员的人事档案信息:编号、姓名、性别、年龄、职务、职称、政治面貌、最高学历、任职时间、来院时间。要求: 1) 添加删除功能:能根据学院人事的变动情况,添加删除记录;2) 查询功能:能根据编号和姓名进行查询;3) 编辑功能(高级):根据查询对相应的记录进行修改,并存储;4) 统计功能:能根据多种参数进行人员的统计(在职人数、党员人数、女工人数、高学历高职称人数);5) 保存功能:能对
7、输入的数据进行相应的存储,要求重载插入和提取符以完成数据的保存和打开。6) 人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。 2.2 系统总体设计2.2.1 系统设计目标(1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握C+程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的C+程序设计问题。2.2.2 开发设计思想 基于以上系统设计目标,本文在开发高校人事管理系统时遵循了以下开发设计思想: 采用现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用现有资源,提高系统开发水平和应用效果的目的。尽量达到操作过程中的直观、方便、实用、安
8、全等要求。系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。系统应具备文件操作,及时根据用户需求进行数据的添加、删除、修改、备份等操作。2.2.3 系统功能模块设计图3-1系统整体功能模块图 系统的菜单函数menu函数如下:/菜单函数void menu() cout << endl;cout << " " << endl; cout << " *1.添加记录* " << endl; cout << " *2.查找记录* &
9、quot; << endl; cout << " *3.修改记录* " << endl; cout << " *4.统计显示* " << endl; cout << " *5.删除记录* " << endl; cout << " *6.查看记录* " << endl; cout << " *7.退出系统* " << endl;cout << "
10、 " << endl;要求用户输入要进行的操作,如功能图供用户的七个选择根据用户的选择调用各个函数,其中删除函数(功能图未给出具体的功能模块)、修改函数、查找函数有两个选择分别是根据姓名和编号进行修改或查找。查找函数功能图如下。图 3-2 查找函数功能模块图查找函数给出两种查找方式:编号查找和姓名查找,找到信息则输出对应的信息,若根据编号查找到的信息是被删除过的信息,则给出提示信息已被删除,仅保留了原编号;若信息未找到,给出提示并提示是否输出给信息,供用户选择是否输入,然后返回查找函数,并询问是否继续查找操作,选择是继续查找操作,选择否则退回主菜单。修改函数的功能模块图与
11、之类似,功能图如下。图 3-3 修改函数功能图修改函数较为简单,提示用户输入要修改人员的姓名或者编号,根据编号进行操作,找到用户所要找的信息,输出原有信息,并提示输入新信息,输入完成自动保存,并返回主函数,如未找到用户信息,则直接返回主函数。修改信息操作不能修改原人员的编号,编号在找到信息时被保存,并赋值于新信息。图 3-4 删除函数功能图删除函数,并不是真正意义上的删除,当找到用户所要删除的信息时,首先提取原数据的编号,赋给空数据,空数据的识别标志位 age = 0 ,写入空数据,此时改空间并未释放,当提取输出数据时候,检测 age 是否为 0 ,为 0 则输出“该用户信息已被删除!等待输入
12、新数据!” ,编号存在,并不影响文件写入数据时,获取编号出错。被删除的位置空间存在,当需要输入新数据时可通过修改操作输入新数据,并保存,编号不变文件正常。功能统计函数、显示函数、添加函数均是简单的文件操作和输入输出,功能简单,每次调用完添加函数均会提醒用户是否在继续输入数据,运用do while 循环语句实现。显示函数则是提取文件中所有文件并输出,每次提取都会判断 age 是否为 0 , 为 0 输出,编号和“用户信息已被删除,”。功能统计函数根据类的继承从Informaion父类中获取继承的静态成员,记录的为文件中的数据个数,已删除的不计入数据。2.3 面向对象思想描述面向对象(Object
13、 Oriented )是认识事务的一种方法,是一种以对象为中的思维方式,面向对象的程序设计:对象=(算法+数据结构)程序=对象+对象+对象面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体对象(object),同类对象还可抽象出共性,形成类(class )。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。面向对象程序设计不像过程性编程那样,试图使问题满足语言的过程性方法,而是试图让语言来满足问题的要求。其理念是设计与问题的本质特性相对应的数据格式。继承表达了对象的一
14、般与特殊的关系。特殊类的对象具有一般类的全部属性和服务。 当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类中只需描述自己所特有的属性和操作。继承性大大简化了对问题的描述,大大提高了程序的可重用性,从而提高了程序设计、修改、扩充的效率该程序根据需求设计两个类,分别是 class Informaion 和 class tatolMaionl 两个类,tatolMaion 类继承可 Informaion 类,tatolMaion 类访问 Informaion 类的静态成员,获取文件中记录的人员总数。Informaion 类
15、被函数Addmaion() NumbersFindmaion()、 NameFindmaion()、 editMaion()、 recondMaion()、 deleteMaion()、 showDataFile()函数使用,用于每个对象的输入输出保存。而 tatolMaion 类则用于对在职员工和、党员人数、女职工人数、高学历人数(研究生、硕士、博士)进行统计,并从父类 informaion 中获得文件中的人员总数,显示各项综合信息。程序包含的函数:添加函数 Addmaion() /添加人员信息编号查找函数 NumbersFindmaion()、/根据输入的人员编号查找人员信息 姓名查找函数
16、 NameFindmaion()、 /根据输入的人员姓名查找人员信息 修改函数editMaion()、/对已有数据进行修改操作统计功能函数 recondMaion()、 /对所有录入人员进行综合统计删除函数deleteMaion()、 /删除调走或开除员工的信息显示函数 showDataFile() /产看所有人员信息第三章 面向对象实现3.1 结构高校人事管理系统,在结构上设有两个类Class Informaion Private: /私有成员变量 Public: /共有成员变量 /重载流插入操作符friend istream &operator >>(istream &
17、amp;strm, Informaion &obj) /冲在流体去操作符friend ostream &operator <<(ostream &strm, Informaion &obj)Class tatolMaion : public Informaion Private: /私有成员变量Public: /共有成员变量共有八个函数、全部服从于主函数,随时可被调用,函数之间也有相互调用关系,实现功能的灵活运用。每次调用结束军返回主函数,实现循环,功能统计函数用的了类的继承关系,从父类那里继承了存储有文件录入总人数的静态成员变量,实现对总人数对在职
18、员工、党员人数、女职工人数、高学历人数(研究生、硕士、博士)的统计。 3.2程序模块两个类:class Informaionprivate: int Numbers; /人员编号 11765+ 000char personProperties10; /人员属性 _选择 char name11; /姓名char gader3; /性别int age; /年龄char position10; /职务char title10; /职称char political10; /政治面貌char hightDegee10; /z最高学历int serveingTime; /任职时间int countTime
19、; /来院时间public:static int tatolperson;int getNumbers() return Numbers; int getAge() return age; char *getName() return name; char *getGader() return gader; char *getPolitical() return political; int gettatolperson() return tatolperson; /返回静态成员char *getHightdegee() return hightDegee; char *getPersonPr
20、operties() return personProperties; void setNumbers( int number ) Numbers = number; void getTatolperson(fstream & file); /从文件中获取人员总数Informaion() Numbers = 11765000;personProperties10 = NULL; /人员属性 _选择name11 = NULL; /姓名gader3 = NULL; /性别age = 0; /年龄 重要的数据用于删除操作、提取Numbers的值position10 = NULL; /职务ti
21、tle10 = NULL; /职称political10 = NULL; /政治面貌hightDegee10 = NULL; /z最高学历serveingTime = NULL; /任职时间countTime = NULL; /来院时间;/重载流插入操作符friend istream &operator >>(istream &strm, Informaion &obj);friend ostream &operator <<(ostream &strm, Informaion &obj);;class tatolMaio
22、n : public Informaion /功能统计类 继承类private:int onjobPerson; /在职员工统计int polictical; /党员int womenWork; / 女工人数int hightDegee; /统计高学历人数public:void setOnjobPerson() onjobPerson+; void setPolictical() polictical+; void setWomenWork() womenWork+; void setHightDegee() hightDegee+; int getOnjobPerson() return o
23、njobPerson; int getPolictical() return polictical; int getWomenWork() return womenWork; int getHightDegee() return hightDegee; tatolMaion() /构造函数onjobPerson = 0;polictical = 0;womenWork = 0;hightDegee = 0; main 函数:int main()fstream DataFile;int choise, choiseagain; /选择与在选择Informaion person;DataFile.
24、open("Informaion.txt", ios:out | ios:in | ios:binary);if( !DataFile )cout << "文件打开失败!" << endl;exit(0);while(true)menu();cout << "n欢迎使用!请输入您的选择:"docin >> choise;cin.ignore();if( choise > 7 | choise <=0 )cout << "输入有误!请重新输入: "
25、;while(choise > 7 | choise <=0);cout << endl;if(1 = choise)Addmaion(DataFile, 1); /调用添加函数else if(2 = choise)cout << "n请选择查找方式 1.编号查找 2.姓名查找" << endl;cout << "n请输入您的选择:"docin >> choiseagain;cin.ignore();if( choiseagain != 1 && choiseagai
26、n != 2 )cout << "输入有误!请重新输入: "while(choiseagain != 1 && choiseagain != 2);if( 1 = choiseagain )NumbersFindmaion(DataFile); /调用号码查找函数elseNameFindmaion(DataFile); /调用姓名查找函数else if(3 = choise)editMaion(DataFile); /调用修改函数else if(4 = choise)recondMaion(DataFile);else if(5 = choise
27、)deleteMaion(DataFile);else if(6 = choise)showDataFile(DataFile); /调用显示函数else if(7 = choise)cout << "谢谢使用!按任意键退出!" << endl;exit(0); DataFile.close();return 0;/姓名查找函数void NameFindmaion(fstream & file)char choise, inchoise; /选择继续与选择是否插入未找到信息人员信息doInformaion person;char name11
28、;file.clear();file.seekg(0L, ios:beg); /将读指针至于文件首if( !file )cout << "打开文件失败!" << endl;exit(0);cout << "请输入要查找的姓名:"cin.getline(name, 11);while( !file.eof()file.read(char *)&person, sizeof(person);if(file.fail()cout << "未找到该用户信息!n" << end
29、l;cout << "是否键入录入该用户信息? (Y/N) "cin >> inchoise;cin.ignore();if('Y' = toupper(inchoise)Addmaion(file, 0);break;elsebreak;if(strcmp(name, person.getName() = 0)cout << "该用户信息已找到!" << endl;cout << person << endl;break;cout << "n是
30、否继续查找信息? (Y/N) "cin >> choise;cin.ignore();while(toupper(choise) = 'Y');/编号查找函数void NumbersFindmaion(fstream & file)char choise, inchoise;doInformaion person;int number;file.clear();file.seekg(0L, ios:beg); /将读指针至于文件首if( !file )cout << "打开文件失败!" << endl;e
31、xit(0);cout << "请输入要查找人员编号:"cin >> number;cin.ignore(); /掠过后面的换行符while( !file.eof()file.read(char *)&person, sizeof(person);if(file.fail()cout << "未找到该用户信息!" << endl;cout << "是否键入录入该用户信息? (Y/N) "cin >> inchoise;cin.ignore();if(
32、9;Y' = toupper(inchoise)Addmaion(file, 0);break;elsebreak;if( person.getNumbers() = number)if( person.getAge() = 0 )cout << "编号" << person.getNumbers() << "的信息已删除!" << endl;break;elsecout << "该用户信息已找到!" << endl;cout << perso
33、n << endl;break;cout << "n是否继续查找信息? (Y/N) "cin >> choise;cin.ignore();while(toupper(choise) = 'Y');删除函数 deletaMaion:void deleteMaion(fstream & file)Informaion person, insteadPerson;char name10;int number; int choise; /选择删除方式姓名/编号int recondNumbers; /记录要删除人员的编号i
34、nt count = 0; /记录找到信息时提取的次数 file.clear();file.seekg(0L, ios:beg);if( !file )cout << "打开文件失败!" << endl;exit(0);cout << "请输入要删除人员的姓名或编号" << endl<< " *1.输入姓名 *2.输入编号 " << endl<< " 请输入您的选择:" docin >> choise;cin.ignor
35、e(); if(choise != 1 && choise != 2)cout << "输入有误!请重新输入:"while(choise != 1 && choise != 2);if(choise = 1)cout << "请输入要删除的姓名:"cin.getline(name, 11);while( !file.eof()file.read(char *)&person, sizeof(person);count+;if( file.fail()cout << "未
36、找到该用户信息!" << endl;break;if(strcmp(name, person.getName() = 0)cout << "该用户信息已找到!" << endl;recondNumbers = person.getNumbers(); /获取原编号cout << person << endl;insteadPerson.setNumbers(recondNumbers); /将获取的编号赋值与新数据file.seekp( (count-1)*sizeof(insteadPerson), i
37、os:beg);file.write(char *)&insteadPerson, sizeof(insteadPerson);file.flush();cout << "用户" << person.getName() << "的信息已删除!" << endl;break;elsecout << "请输入要删除的人员编号:"cin >> number;cin.ignore(); while( !file.eof()file.read(char *)&
38、;person, sizeof(person);count+;if(file.fail()cout << "未找到该用户信息!" << endl;break;if( person.getNumbers() = number)cout << "该用户信息已找到!" << endl;recondNumbers = person.getNumbers(); /获取原编号cout << person << endl;insteadPerson.setNumbers(recondNumbers
39、); /将获取的编号赋值与新数据file.seekp( (count-1)*sizeof(insteadPerson), ios:beg);file.write(char *)&insteadPerson, sizeof(insteadPerson);file.flush();cout << "编号" << insteadPerson.getNumbers() << "用户信息已删除!" << endl;break;/显示函数void showDataFile(fstream & file)
40、Informaion person;long posn, posu;file.clear();file.seekg(0L, ios:beg); /检测是否为空文件posn = file.tellg();file.seekg(0L, ios:end);posu = file.tellg();if( posu = posn )cout << "文件为空!" << endl;elsefile.clear();file.seekg(0L, ios:beg);while( !file.eof() )file.read(char *)&person, s
41、izeof(person);if( file.fail()break;if( person.getAge() = 0 )cout << "编号" << person.getNumbers() << "的信息已删除!可写入新数据!n" << endl;elsecout << person << endl;/功能统计函数void recondMaion(fstream & file)Informaion person;tatolMaion recond;file.clear();
42、file.seekg(0L, ios:beg);if(!file)cout << "打开文件失败!" << endl;exit(0);while(!file.eof()file.read(char *)&person, sizeof(person);if(file.fail()break;if(strcmp(person.getPersonProperties(), "行政人员") = 0 | strcmp(person.getPersonProperties(),"教师" ) = 0 | strcmp
43、(person.getPersonProperties(), "一般员工") = 0 )recond.setOnjobPerson();if(strcmp(person.getPolitical(), "党员") = 0)recond.setPolictical();if(strcmp(person.getGader(), "女") = 0 )recond.setWomenWork();if(strcmp(person.getHightdegee(), "博士") = 0 | strcmp(person.getHi
44、ghtdegee(), "研究生") = 0 | strcmp(person.getHightdegee(), "硕士") = 0 ) recond.setHightDegee();recond.getTatolperson(file);cout << "根据现有信息,统计如下:" << endl;cout << "n系统录入的人员总数:" << recond.gettatolperson() << endl;cout << "n在职
45、人员:" << recond.getOnjobPerson() << " 党员:" << recond.getPolictical() << " 女职工:" << recond.getWomenWork() << " 高学历:" << recond.getHightDegee() << endl;3.3 各类之间的关系Class Informaion Private: /私有成员变量 Public: /共有成员变量 /重载流插入操
46、作符friend istream &operator >>(istream &strm, Informaion &obj) /冲在流体去操作符friend ostream &operator <<(ostream &strm, Informaion &obj)Class tatolMaion : public Informaion Private: /私有成员变量Public: /共有成员变量int Informaion:tatolperson = 0; /初始化静态成员两个类是继承的关系,并且是公有继承,在共有继承的前提
47、下,父类的私有成员自类不可访问,共有成员成为子类的个保护成员。子类继承了父类的静态成员,静态成员中存有文件中的录入信息个数,函数:void Informaion:getTatolperson(fstream & file);/获取静态数值函数获取静态函数成员,并调用Informaion类中的int gettatolperson() /函数体,最后由void recondMaion(fstream & file) 给出该值的大小,并给与输出完成文件整体的系统功能统计。3.4 源程序代码#include "iostream"using namespace std
48、;#include "fstream"#include "iomanip"#include "cstdlib"class Informaionprivate: int Numbers; /人员编号 11765+ 000char personProperties10; /人员属性 _选择 char name11; /姓名char gader3; /性别int age; /年龄char position10; /职务char title10; /职称char political10; /政治面貌char hightDegee10; /z最
49、高学历int serveingTime; /任职时间int countTime; /来院时间public:static int tatolperson;int getNumbers() return Numbers; int getAge() return age; char *getName() return name; char *getGader() return gader; char *getPolitical() return political; int gettatolperson() return tatolperson; /返回静态成员char *getHightdegee
50、() return hightDegee; char *getPersonProperties() return personProperties; void setNumbers( int number ) Numbers = number; void getTatolperson(fstream & file); /从文件中获取人员总数Informaion() Numbers = 11765000;personProperties10 = NULL; /人员属性 _选择name11 = NULL; /姓名gader3 = NULL; /性别age = 0; /年龄 重要的数据用于删
51、除操作、提取Numbers的值position10 = NULL; /职务title10 = NULL; /职称political10 = NULL; /政治面貌hightDegee10 = NULL; /z最高学历serveingTime = NULL; /任职时间countTime = NULL; /来院时间;/重载流插入操作符friend istream &operator >>(istream &strm, Informaion &obj)cout << "n现在请输入以下信息:" << endl <
52、< endl;cout << "请选择人员目前工作情况:"strm.getline(obj.personProperties, 10);cout << "输入用户姓名: "strm.getline(, 11);cout << "输入性别: "strm.getline(obj.gader, 3);cout << "输入年龄: "strm >> obj.age;strm.ignore();cout << "输入职务:"strm.getline(obj.position, 10);cout << "输入职称:"strm.getline(obj.title, 10);co
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2026版)护理工作总结
- 空间向量基本定理(教学课件)高二数学人教B版选择性必修第一册
- 2026中职卫校面试题及答案
- 山东东营单招试题及答案
- 2026年一建民航实务考前真题密押特训试卷及答案
- 2026年一建矿业实务考前预测试卷及答案
- 2026年一建矿业实务考前密押通关试卷及答案
- 2026电网法学面试题库及答案
- 2026副职的面试题目及答案
- 角(教学课件)2026-2027学年北师大版七年级数学上册
- 增材制造与创新设计:从概念到产品 课件 第2章 增材制造技术、设备及材料
- DB32/T 4743-2024重点化工企业全流程自动化控制配备和提升规范
- 新能源电力工程监理项目部标准化手册
- 2024年全国寄生虫病防治技能竞赛考试题库(含答案)
- JB-T 8881-2020 滚动轴承 渗碳轴承钢零件 热处理技术条件
- 高三化学二轮复习16-小专题-硅酸盐阴离子结构专题
- 多媒体教室技术设备配置
- 铁路桥涵设备检查-铁路桥梁桥跨与附属设施检查
- PET塑料包装工程及模具技术(注胚和注盖模具)
- 公司精益项目收益核算方法
- DL/T 5224-2014 高压直流输电大地返回系统设计技术规程
评论
0/150
提交评论