版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、颔按寥区2010级课程设计报告系 别:数学与计算机科学系信息管理与信息系统专专业:业班级:2010 级信管班学号:姓名:二o年十二月数据结构课程设计报告规范要求(按照如下格式完成报告)一. 课程设计目的1. 训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解 指定问题。2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;4. 训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平, 并在此过程中培养他们严谨的科学态度和良好的工作作风。二
2、. 课程设计任务与要求:任务学生成绩管理学号姓名成绩01101李平7501202王露7001205张强8501118曹雨90问题描述:已知某学生成绩表中现有 N位同学的成绩(要求各人数据不同),如:知识点提示:在线性表中删除 某个指定元素,并在规定位置插 入一个新元素,要求操作后的结 果按元素(姓名)升序的方式显 示出来。现需要删除已转学的某位同学的成绩,同时添加某位同学的成绩(学号、姓名、成绩自定),插入位置按姓名升序排列。请根据所学过的线性表知识用C/C+编程实现此操作。程序要求:1. 现有N位同学的数据要求从数据文件中读入,不用交互方式录入;2. 拟删除同学的姓名及新添加同学的数据采用交
3、互方式输入;3. 删除及插入操作完毕,需将成绩表中的所有记录按姓名升序方式显示出来;4. 将更新后的成绩表保存到另一个数据文件中;5. 可以增加功能:如修改某位同学的成绩。要求:1. 在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现 抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。2. 设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。3. 程序设计语言推荐使用 C/C+,程序书写规范,源程
4、序需加必要的注释;4. 每位同学需提交可独立运行的程序;5. 每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于 10页(代码不算);6. 课程设计实践作为培养学生动手能力的一种手段,单独考核。三. 课程设计说明书1、需求分析要求用到数据结构课上学到的线性表的知识,所以就要充分而清晰的理解关于线性表的知识。要求实现的基本功能很简单,只有删除和插入,增加功能也不过是加上修改。这些在数据结构课上已 经讲过,只要能够理解关于线性表的几个相关的基本算法就可以了。问题是将输入的信息保存入文件和从文件输出。这里基本是自学的内容,而且要考虑到是否要自行选 择保存的磁盘。综上,
5、做这个课题,要具备的知识就是线性表的基本算法,文件的保存和读取算法,必要的C或者C+知识(本次我将使用C实现),以及丰富的程序调适经验。2、概要设计首先由于程序中要有对学生信息的增加和减少,定义一个全局变量n ,在此程序的任意的模块中均可以使用。宏定义,用LEN来代替开辟地址空间,定义三个结构体变量,学号num,姓名name,分数marks.设计实现主要功能的函数有:创建学生信息的子函数creat();排序的子函数print();查找的子函数search。;文件保存的子函数 wfile();文件读取的子函数 frile();插入信息的子函数insert();修改信息的子函数 xg();删除转学
6、学生的信息的子函数 del();然后在main()函数中使用一个switch()语句实现对各个子函数的调 用。为了使用的方便,程序中将设计三种排序的方式,按照学号排序funn um(),按照姓名的首字母排序funname(),按照分数排序 funmarks()。 在排序子函数 print()中还要用一个switch()语句用于对不同的 排序方法的函数的调用.为了直观的看到操作以后的结果,还要有一个输出显示的函数listall()。程序运行中,为了保持屏幕的清楚和美观,时刻进行清屏也是必要的。抽象数据类型线性表的定义如下:ADT List数据对象:D=a i| a i ElemSet,i=1,2
7、,3 ,n,n > 0数据关系:R1=<a i-1 ,ai>| a M ,ai D,i=1,2,3, n基本操作:In sert(&L,i,j)初始条件:线性表 L已存在,1 w i w n+1。操作结果:在L中第i个位置之前插入新的数据元素j,L的长度加1。Del (&L,i,j)初始条件:线性表 L已存在,1 w i w n。操作结果:删除L的第i个数据元素丄的长度减1Xg(&L,i,j)初始条件:线性表L已存在。操作结果:用新的输入数据项j代替原有的指定要修改的数据项i。Search(&L,i,e)初始条件:线性表L已存在。操作结果:查找
8、指定的某元素i,并将值赋给e,用e输出。3、详细设计1 )宏定义,定义全局变量、结构体:#define LEN sizeof(struct student)/*宏定义 */static int n;/*n为静态全局变量,本文件模块中各函数均可使用它*/char numstr100;/*全局变量 */struct student/*定义结构体 */Io ng num;char n ame10;double marks; stu1000,temp;2 )主函数的算法如下:void mai n()jm:system("cls");do choice=getchar();getch
9、ar();switch(choice)/*switch语句用于循环选择所要的选项*/case '1':creat();goto jm;break;case 2:pri nt();goto jm;break;case 3:search();goto jm;break;case '4':wfile();goto jm;break;case '5':frile();goto jm;break;case '6':i nsert();goto jm;break;case '7':xg();goto jm;break;case
10、 '8':del();goto jm;break;case 'O':exit(O);default: /*用户使用错误*/puts("nEn ter only select ions listed");break;/*结束switch 语句*/while(1);/* 结束 while 语句 */*结束main函数*/3) 创建学生信息的算法如下:creat(void)/*创建学生成绩信息*/while(ch='Y'|ch='y') gets( nu mstr);/输入学号stu n. num=atoi( nu
11、mstr); gets(stu n. name);/输入姓名gets( nu mstr);/输入成绩stu n+.marks=atof( nu mstr); ch=getchar();getchar();/* 用于输入y或者n*/4) 排序函数的算法如下:int print(void)/* 排序输出 */ch=getchar();/* 输入 a,b,c 的语句 */ switch(ch)/*选择排序的方式*/case 'a':funn ame();/*调用按姓名查找的函数*/getchar();break;case 'b':funm arks(); /*调用按成
12、绩查找的函数*/getchar();break;case 'c':funnu m();/*调用按学号查找的函数 */getchar();break;funname(void)/*按照姓名排序*/if(n<1)printf("tt该文件为空!n");elsefor(i=0;i< n; i+)for(j=i+1;j< n;j+)if(strcmp(stui. name,stuj. name)>0) funm arks(void)/* if(n <1) prin tf("tt temp=stui; stui=stuj; st
13、uj=temp;按照成绩排序*/该文件为空!n");else.for(i=0;i< n; i+)for(j=i+1;j< n;j+)if(stui.marks>stuj.marks)temp=stui; stui=stuj; stuj=temp; funnum(void)/*按照学号排序*/if(n <1)printf("tt该文件为空!n");elsefor(i=0;i< n; i+)for(j=i+1;j< n;j+) if(stui. num >stuj. num)temp=stui; stui=stuj; stuj
14、=temp;5) 写入文件的算法如下:wfile(void)/* 写入文件 */FILE *fptr;if(n<1)pri ntf("t 文件为空,无法写操作!n");else fwrite(stu,sizeof(stu0), n,fptr); fclose(fptr);6) 读取文件的算法如下:frile(void)/*读出文件 */FILE *fptr;while(fread( &stui,sizeof(stu0),1,fptr)=1) i+; n=i;fclose(fptr);7 )查找的算法如下:search(void)/* 查找 */flag=0;f
15、or(i=0;i< n;i+)if(strcmp( nu mstr,stui. name)=0)|atol( nu mstr)=stui. num)prin tf("%ld",stui. num);prin tf("%s ",stui. name);prin tf("%.2f ",stui.marks);flag=1; getchar(); return 0;8) 插入的算法如下:in sert(void)/* 插入 */gets( nu mstr);stu n. num=atoi( nu mstr);gets(stu n. n
16、ame);gets( nu mstr);stu n+.marks=atof( nu mstr); funn ame();9) 删除的算法如下:del(void) /* 删除 */prin tf("tt请输入要删除的学号:n");gets (nu mstr);for(i=0;i< n; i+)if(stui. num=atol( nu mstr)j=i;flag=1;if(flag=1) for(i=j;i< n;i+)stui=stui+1;n-;10 )修改的算法如下:xg(void)/* 修改 */flag=0;char ch;gets (nu mstr);
17、for(i=0;i< n;i+) if(stui. num=atol( nu mstr) j=i;flag=1;if(flag=1) switch(ch)case '1':prin tf("t请输入修改后的姓名:");gets(stuj. name);break;case 2:prin tf("t请输入修改后的成绩:");gets (nu mstr);stuj.marks=atof( nu mstr);break;case 'O': return 0; 11 )各个模块之间的调用关系如下:4、设计与调试分析从上面的算
18、法和调用关系可以看出,这个程序的基本样子已经非常的清楚,但是真正的程序中还要考虑各种限制条件。例如在查找的过程中,可能不存在要查找的信息,就要给出不存在此信息的提示等。还有就是涉及到返回值得问题和程序中所要用到的变量的问题。在调试的过程中所遇到的问题很多,其中最难的两个问题是给出的六个警告错误,在5.0的版本下就是两个使得程序无法运行的错误。其中五个是因为在变量的声明中因为使用了浮点型和双精度型两种而造成在某些模块中两个变量相互赋值时类型不匹配。另一个是在查找的子函数中忘记了需要的返回语句,return 1.5、用户手册1 )本程序可以在VC+5.0和VC+6.0 的环境下运行。2 )在vc中
19、创建一个工程,将源程序复制到.cpp中,编译链接就可以。3 )选择编译、运行以后会出现运行界面,选择相应的选项,根据提示即可进行演示。界面如下:2 <- & 8、件'、 吕尊.E.自心“ "D; 堺屋文杵血讥hGUHAIyF" j&ct蓟exe*+* + *+学生成绩管理系 统*"m亠4创建信息系统*3.查找成绩*开文件十仇修改信息+ p.i頁由索统4 )创建信息就是把最开始要输入的信息输入到系统里。5 )浏览信息就是按照要求的顺序浏览已经输入的信息。6)保存信息就是把输入的信息保存如指定的磁盘。7)打开文件就是把保存的信息从磁盘读取
20、保存的信息。8 )插入,修改,删除分另惺对指定的某信息进行相应的操作6、测试成果' "D: jFXfrVC6i直hGLUtI,Pro曰bu監 cxeM-+ + 4-+ + +* 学生成绩管理系统 +M-+ + + + + + + + +讹请按相应的数字键选择您所需要的操作*2利览信息+ 乩保存入文件t &-®A信息+ 昭删除信息 + X创建信息系统 十礼查找成绩*扑开文杵* 改信息*退出系统y UJ y n - A > z - n n n n - 01平 W02露彩鹏强“诃雨 W - 1 5(2 UJ 8 C 2|>戈 5 c 1 彗弓 0 (-
21、 1 弓 7 ?- 13 7 1 PT 9 7" 11 9 f - 加 加 加 加回 学姓成续学姓成续学姓成续学姓成续犍 入入入继入入入继入入入继入入入继意 否®®S否否否任 请隹苗请是烛®谪请是请送g请是请送1FI请是按1exen 学生成绩管理系统*请按相应的数字键选择您所需要的操作件 卄 息文息息 信入信信 * 览艮除 I 浏保插删“统 系 1 息绩件息统卄 信成文信系- 建找开改出卄 创查曹退*13 5 7 0 * *4-* C 按学号排序 成绩90.0075.0070.0085.00序fcl3 按姓名首 请5S1SS80回.0 0 exen 学生
22、成绩管理系统mu*请按相应的数字键选择您所需要的操作*件 卄 自心文息息 信入信信 * 览艮除 I 浏保插删“统 系 1 息绩件息统“ 信成文信系】 建找开改出卄 创查養退一13 5 7 0 * *4-* c 按学号排序 成绩75.0098.0070.0085.00C$1强 序轄畫至张S 一卜|4二 字按 目请 名 姓按0万011802貼均任 a.学11111212平按遥保存完毕,关机以后下次重新启动此程序的情况:因为没有打开文件操作,所以在浏览的时候提示为空文件2王成绩?也0日70.80吕5 眄日够70.00750085.639耳內0儿技成绩排序G按学号拆序-< "D: jS
23、tfSttVC6TithGLUTIyPro jectsZDeLugX2 ex«及浏览信息 乳保帝入文件E 插入信息 昭删除信息请揃入姓名i编入戍绩 学万11161101120212051301 平均分是:83-08 接任意犍返回2 浏览信息 乩保存入文件& j击兀信息 昭删踪信息+学生成绩管理系统"+1301周公95姓名nm+学生成绩管理系统“+*“* +撤软拼音半徵软拼音半讹请按相应的数字犍选择您所需要的操作*:-材建看息亲统 十礼查找咸绩 +扛开文件十7->fe信息-山退出系统+-b + +4H+- + +H|-fr+-fri-+ +-ki- +-Hh +
24、 + + -Hh+ + -ll- +Y请按相应的数字键选择您所需要的操作”:-材建看息亲统 十礼查找成绩 *扛开文件* 7 楼改信息-退出系统+-b + +4H+- + +H|-fr+-fri-+ +-ki- +-Hh + + + -Hh+ + -ll- +补按姓名首字迅口 请按 学号 120211011205彊虽1116曹雨匚阳孑杲:Hw.ua 採任意犍返回| n当操作5打开文件以后,再次浏览的时候就可以浏览到在文件D:data,txt 中保存的文件内容。c*D: 解压文件VC6>ithGLUTIyProjects2Debug2. exe*请按相应的数字犍选择您所需要的操作” + +
25、t t 件 十 自宀文自t亠 i 览费除卄 浏保插删“ t 2 4 6 8 r统 “系息绩件息统 信要信系: 建找开改岀“ 刨查看退 13 5 7 0 十 t输入您贸修改的学冇:11180.退田穆灰1.妊名2.成绩 请输入您要修改的项:请输入修改后的姓名:晓薇 修改咸功0 退岀修改1 姓名2 成绩请输入您要修改的项:请输入修改后的成绩:65 修改成功0.退岀修改1.姓名2.成绩请输入您妾修改的项:微软拼-< "D: jStfSttVC6TithGLUTIyPro jectsZDeLugX2 ex«nm+学生成绩管理系统“+*“* +讹请按相应的数字犍选择您所需要的操作
26、*2胡嵐倩息 + 4 保存入文件+ & - ®A信息 + 昭删陳信息 +-创建信息系统十礼查找咸绩 +扛开文件十7->fe信息-山退出系统+-b + +4H+- + +H|-fr+-fri-+ +-ki- +-Hh + + + -Hh+ + -ll- +补按姓名首字 迅口 请按 学号11011202me13051301平均分是:恥 按任意犍返回Af - 8为曰茗憂siiG技学号拆序 成绩75.0073.00皈的9&.0B勺软拼音半;' 初:I解圧文件VC6TithGLUrIyProject32Debug2. esc 丁亠丿內护冃亠工祁纟充*十卄:吊箱歸更
27、辜破丽京鬲曜石:-70.60E丄眄回85 聊日 95-00-创建信息系统 -3 查找咸绩+打开文件* 丁慘改信息4 0-fii系绕件目>自心自皿sxIs2 4 & 84-+ 4- + -I- +HF - 4- + + +H-+J-+ + 4-H- + + -I- + + < 4-4- + 4-I-F + + 4- +请输入妾删除的学号;101确定;<311 >学号1202111812051301壬均分是;?8 按任意犍返回WA-名露薇强心 -!姓王晓张周 后功17、附录(源程序清单)-n/*计算机051班 XXX的课程设计题目,选题是:学生成绩管理系统*/#i
28、nclude "stdio.h"/* 头文件 */#include "string.h"#include "stdlib.h"#defi ne LEN sizeof(struct stude nt)/* 宏定义 */static int n;/*n为静态全局变量,本文件模块中各函数均可使用它*/char numstr100;/* 全局变量 */struct student/*定义结构体 */long num;char n ame10;double marks; stu1000,temp;creat(void)/* 创建学生成绩信息*/
29、char ch='y'while(ch='Y'|ch='y')prin tf("tt请输入学号:");gets( nu mstr);stu n. num=atoi( nu mstr);prin tf("tt请输入姓名:");gets(stu n. name);gets( nu mstr);stu n+.marks=atof( nu mstr);printf("tt是否继续添加?(y/n)");ch=getchar();/* 用于输入 y 或者 n*/getchar();printf(&q
30、uot;tt按任意键返回 ");getchar();/*按键返回的输入函数*/return 0;int prin t(void)/*排序 */int funnum (void);/*函数声明 */int funname(void);/*函数声明 */int funmarks(void);/*函数声明 */char ch;printf("ta.按姓名首字母排序b.按成绩排序c.按学号排序n");printf("tt请按键选择");ch=getchar();getchar();/* 输入 a,b,c 的语句 */switch(ch)/*选择排序的方
31、式*/case 'a':funname();/*调用按姓名排序的函数*/printf("t按任意键返回");getchar();break;case 'b':funmarks(); /*调用按成绩排序的函数*/ printf("t按任意键返回");getchar();break;case 'c':funnum();/*调用按学号排序的函数*/printf("t按任意键返回");getchar();break;default:printf("tt对不起选择错误n");p
32、rintf("t按任意键返回");getchar();break;return 0;funname(void)/*按照姓名排序*/if(n<1)elsefor(i=0;i<n;i+)/*按照姓名排序的循环语句*/for(j=i+1;j <n ;j+)/*比较姓名的首字母进行相应交换if(strcmp(stui. name,stuj. name)>0)操作*/ temp=stui;stui=stuj;stuj=temp;listall();/*调用listall函数显示排序以后的信息*/return 0;funmarks(void)/*按照成绩排序*/
33、if(n<1)elsefor(i=0;i<n;i+)/*按照成绩进行排序的循环语句*/for(j=i+1;j <n ;j+)if(stui.marks>stuj.marks)/*如果前面的成绩大于后面的就进行交换*/temp=stui;stui=stuj;stuj=temp;listall();/*调用listall函数显示盘许以后的信息*/return 0;funnum(void)/*按照学号排序*/if(n<1)printf("tt该文件为空!n");elsefor(i=0;i<n;i+)/*按照学号进行排序的循环语句*/for(j=
34、i+1;j <n ;j+)if(stui. num >stuj. num)temp=stui;stui=stuj;stuj=temp;listall();/*调用listall函数显示盘许以后的信息*/return 0;int i;double sub=0;for(i=0;i< n;i+)sub+=stui.marks;return sub;/*把学生的分数相加,返回总分数sub*/listall(void)/* 输出显示排序的信息*/int j;double mark;if(n<0)printf("ntt 空文件!");printf("t
35、 按任意键返回”);getchar();else prin tf("t 学号姓名成绩");for(j=0;j <n ;j+)pri ntf("nt%ldt",stuj. num);prin tf("t%st",stuj. name);prin tf("t%.2f",stuj.marks);mark=sub()/n;/*调用求总分数的子函数,除以学生人数n求出平均分*/prin tf("nt平均分是:%.2f",mark);pri ntf("n");return 0;wf
36、ile(void)/* 写入文件 */FILE *fptr;if(n<1)printf("t 文件为空,无法写操作!n");printf("t 按任意键返回");getchar();return 0;printf("t请输入要保存的路径及文件名(例如c:stus.txt):");scanf("%s",numstr);getchar();/*输入需要保存的磁盘,可以是 c,d,e等任意磁盘*/if(fptr=fope n(nu mstr,"wb")=NULL) printf("nt
37、t 无法打开!%sn",numstr);printf("t按任意键返回 ");getchar();elsefwrite(stu,sizeof(stu0),n,fptr);/*把信息写入磁盘的函数 */fclose(fptr);printf("tt有%d个记录保存成功!n",n);printf("t按任意键返回 ");getchar();return 0;从磁盘读取数据的函数*/n");FILE *fptr;int i=0;printf("t请输入要打开的文件(例如c:stus.txt):")se
38、a nf("%s", nu mstr);getchar();if(fptr=fope n(n umstr,"rb")=NULL)printf("ntt不能打开 %s!n",numstr);printf("t按任意键返回");getchar();elsewhile(fread(&stui,sizeof(stu0),1,fptr)=1)/*i+; n=i;printf("tt成功打开 %d 个记录!n",i);fclose(fptr);printf("t按任意键返回");
39、getchar(); return 0;search(void)/* 查找 */ int i,flag=0;prin tf("t请输入要查询的关键字。例:姓名、学号gets( nu mstr);for(i=0;i< n;i+)if(strcmp(numstr,)=0)|atol(numstr)=stui.num)/*把要查找 的信息和存储的信息进行比较,如果相同就找到,并输出。用|表示可以有姓名或者学号两种查找方式。*/prin tf("t学号 tt 姓名 tt 成绩 n");prin tf("t%ldtt",stui.
40、 num);prin tf("t%stt",stui. name);prin tf("t%.2fn",stui.marks);flag=1;printf("t按任意键返回");getchar(); return 0;if(flag!=1)/*当计数不为1的时候,查不到所要的信息*/printf("tt不存在这样的信息!n");printf("t按任意键返回 ");getchar();return 1; in sert(void)/* 插入 */gets( nu mstr);stu n. num=
41、atoi( nu mstr);prin tf("t请输入姓名:");gets(stu n. name);prin tf("t请输入成绩:");gets( nu mstr);stu n+.marks=atof( nu mstr);funn ame();/*调用按照姓名排序的函数,显示添加以后所有学生的信息,并且按照姓名排序的方式输出*/printf("t按任意键返回");getchar();return 0;del(void)/* 删除*/ char ch;int i,j,flag;printf("tt请输入要删除的学号:n&
42、quot;);gets( nu mstr);printf("tt确定? (y/n)n");ch=getchar();getchar();if(ch='y'|ch='Y')for(i=0;i <n ;i+)if(stui. num=atol( nu mstr)/*比较学号相同时找到相应得信息进行删除*/j=i;flag=1;if(flag=1)n");");getchar();prin tf("t正在删除,请稍后for(i=j;i <n ;i+)stui=stui+1;printf("tt删除
43、成功! n");n-;funn ame();printf("t按任意键返回return 0;xg(void)/* 修改 */int i,j,flag=0;char ch;prin tf("t输入您要修改的学号:");gets( nu mstr);for(i=0;i <n ;i+)if(stui. num=atol( nu mstr) j=i;flag=1;if(flag=1) printf("tO.退出修改1.姓名2.成绩n");prin tf("t请输入您要修改的项:n");ch=getchar();getchar();switch(ch)/*循环语句选择相应的修改选项*/case '1':prin tf("t 请输入修改后的姓名:"); gets();printf(" 修改成功 n"); break;case 2:prin tf("t请输入修改后的成绩:");修改成功n");gets( nu mstr);stuj.marks=atof( nu mstr);pri ntf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电力巡检合同
- 发现之前没签合同
- 农村房屋合同
- 购买房子的合同
- 2025年党史国情知识竞赛试题及答案
- 劳务转租协议书
- 工业垃圾清运协议书
- 广告合伙协议合同范本
- 东风本田协议书
- 杭州股权转让协议书
- U3Lesson17Lesson18(课件)六年级英语上册(人教精通版)
- 内热针疗法课件-
- 综采采煤工艺
- 图书馆中级职称专业技术资格考试题库
- 影像记忆之记忆宫殿-抽象词语转换训练
- JGJ142-2004《地面辐射供暖技术规程》条文说明
- 《组织的力量 增长的隐性曲线》读书笔记思维导图PPT模板下载
- 农业银行境外汇款申请书样板
- GB/T 20671.5-2006非金属垫片材料分类体系及试验方法第5部分:垫片材料蠕变松弛率试验方法
- 包茎包皮过长精选课件
- 护士注册健康体检表下载【可直接打印版本】
评论
0/150
提交评论