文档介绍:济南大学
机械工程学院
计算机辅助机械设计
实验报告
机械设计制造及其自动化
一、实验目的
计算机辅助机械设计是一门实践性较强的课程,学生通过上机计算达到以下目的:
1、加深对计算机辅助机械设计设计方法的基本理论和算法步骤的理解。
2、培养学生独立编制、调试计算机程序的能力。
3、掌握常用计算机辅助机械设计程序的使用方法。
4、培养学生灵活运用所学方法解决工程实际问题的能力。
二、实验报告内容
每次上机实验结束后,学生要作一份完整的实验报告,实验报告内容应包括:
1、实验的基本原理简述及程序框图绘制。
2、编制实验程序。
3、用考核题对所编程序进行考核。
实验一 链表
用链表的方法编写减速箱零件清单(包括序号、名称、数量、材料)的管理程序,要求提供插入、删除、列表功能。
减速箱零件清单
序号
名称
数量
材料
1
箱体
1
HT100
2
箱盖
1
HT100
3
齿轮轴
1
45
4
轴
1
45
5
齿轮
1
45
6
端盖
1
HT100
…
…
…
…
2.基本原理
单向链表是链表结构中最简单的一种。它只有一个指针域,指针域的指针中存放该结点直接前趋或直接后继(通常是直接后继)的地址,如图下图所示。为了记录表的第一个结点的地址,需要设置一个指针变量存放这个结点的地址。该指针变量称为表头,通常与链结点的结构相同,指针域存放第一个元素的地址,数据域可以是空的,可以存放表的长度等信息。表的最后一个结点的指针域设置为NULL,称为空指针。
实验程序清单
#include ""
#include ""
#include ""
#include ""
typedef struct _tagLink{
int No,Num; /* typedef将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义*/
char Name[10],Mat[10];
struct _tagLink *next;
} LINK;
LINK *Head=NULL;
void OutPut(LINK *t)
{
printf("%5d%15s%5d%15s\n",t->No,t->Name,t->Num,t->Mat);
}
//插入
void Insert(int No,char *Name,int Num,char *Mat)
{
LINK *Node=(LINK *)malloc(sizeof(LINK));
Node->No=No; strcpy(Node->Name,Name);
Node->Num=Num; strcpy(Node->Mat,Mat);
Node->next=Head; Head=Node;
}
//查询
void Check(int No)
{
LINK *t=Head;
while(t) {
if(t->No==No) {
OutPut(t); break;
} else t=t->next;
}
}
//删除
void Delete(int No)
{
LINK *p,*t;
p=t=Head;
while(t && t->No!=No) {
p=t; t=t->next;
}
if(t==NULL) {printf("未找到%d\n",No); return;}
if(p==t) {
Head=Head->next; free(t);
} else {
p->next=t->next; free(t);
}
}
//列表输出
void OutPutAll()
{
LINK *t=Head;
while(t){
OutPut(t); t=t->next;
}
}
int main(int argc, char* argv[])
{
for(;;) {
int code;
printf(" 减速箱零件查询系统\n\n\n");
printf("0--退出 1--输入\n");
printf("2--查询 3--删除\n");