当前位置:首页 >> 其它课程 >>

sw上机作业


软件技术基础 上机作业
2011Fall 潘晔

实验一:顺序表(4学时)
ex1_1:
1)首先创建一个顺序表:从键盘读入一组整数(长度 小于等于11),按输入顺序放入顺序表,输入以-1 结束(注意-1不放到顺序表内);将创建好的顺序 表元素依次输出到屏幕上。 2)在已创建好的顺序表中插入一个元素:从键盘读入 需插入的元素值和

插入位置,调用插入函数完成插 入操作;然后将顺序表元素依次输出到屏幕上。 3)在已创建好的顺序表中删除一个元素:从键盘读入 欲删除的元素位置(序号),调用删除函数完成删 除操作;然后将顺序表元素依次输出到屏幕上。

4)删除顺序表中元素值为负数的所有元素,

然后将顺序表元素依次输出到屏幕上。
提示:相关常量和顺序表数据类型定义 #define MAXNUM 11 #define true 1 #define false 0 typedef struct { int data[MAXNUM]; int length; }list_type;

提示:创建顺序表函数 /*create a list:input data from keyboard,end by -1*/ void createlist(list_type *lp) { int i, elem; lp->length=0; printf("\n please input datas of the list\n"); for(i=0; i< MAXNUM; i++) { scanf(" %d", &elem); if(elem== -1) break; lp->data[i]=elem; lp->length++; } }

提示:遍历元素并依次输出函数 void printlist(list_type *lp) { int i; printf("\nThese %d records are:\n", lp->length); if(lp->length<=0) { printf("No data!\n"); return; } for(i=0; i<lp->length; i++) printf(" %d ", lp->data[i]); printf("\nlength of the list is:%d", lp->length); }

提示:插入函数,成功返回true,反之返回false。

int insertlist(list_type *lp, int i , int new_elem) { int j; if(lp->length>=MAXNUM) { printf("the list is full,can not insert."); return(false); } if(i<1 || i>lp->length+1) { printf("\n%d is invalid value",i); return(false); } for(j=lp->length-1; j>=i-1; j--) lp->data[j+1]=lp->data[j]; lp->data[i-1]=new_elem; lp->length++; return(true); }

提示:删除函数,成功返回true,反之返回false。 int deletelist(list_type *lp, int i) { int j; if(i<1 || i>lp->length) { printf("elem not exist"); return(false); } for(j=i; j<lp->length; j++) lp->data[j-1]=lp->data[j]; lp->length--; return(true); } 删除所有负数的函数(自己编写) void delete_negative(list_type *l) { }

提示:主函数,按要求调用已编写好的各函数
void main( ) { list_type list; int i, data; createlist(&list); printlist(&list); printf("\ninsert:Enter i and data :\n"); scanf("%d,%d", &i, &data); insertlist(&list, i, data); printf("\nlist after insert:\n"); printlist(&list); printf("\ndelete:Enter i:\n"); scanf("%d", &i); deletelist(&list, i); printf("\nlist after delete:\n"); printlist(&list); /* delete_negative(&list); printf("\nlist after delete all negative:\n"); printlist(&list);*/ }

实验一:顺序表(续)
ex1_2: p74第9题(用顺序表实现) 注意该题中没有提供插入元素的具体位置,要 根据元素值大小寻找合适的位置。

实验二:链表(4学时)
ex2_1:
1)首先创建一个单链表:从键盘读入五个整数,按输 入顺序形成单链表。将创建好的链表元素依次输出 到屏幕上。 2)在已创建好的链表中插入一个元素:从键盘读入元 素值和插入位置,调用插入函数完成插入操作。然 后将链表元素依次输出到屏幕上。 3)在已创建好的链表中删除一个元素:从键盘读入欲 删除的元素位置(序号),调用删除函数完成删除 操作。然后将链表元素依次输出到屏幕上。

实验二:链表(续)
ex2_2:
1)创建一个单链表,其数据元素为整数,从键盘输 入,输入0结束(注意0不放到链表内); 2)从键盘任意输入一个整数,在单链表中查询该数, 如果单链表中已经存在这个数,就调用删除函数,删 除该元素所在结点,并将单链表在删除前后的数据元 素依次输出到屏幕上; 如果单链表中不存在这个数,就调用插入函数,将这 个数插入到单链表尾,并将单链表在插入前后的数据 元素依次输出到屏幕上。

实验二:链表(续)
ex2_3: p74第9题(用链表实现)

实验三:栈和队列(4学时)
ex3_1:链栈 1)链栈结点类型定义为: typedef struct node { int data; struct node *next; }node_type; 2)编写进栈函数push 3)编写出栈函数pop 4)编写main函数,首先建立一空链栈; 调用进栈函数,将从键盘输入的数据元素逐个 进栈,输入0结束;显示进栈后的数据元素; 调用两次出栈函数,显示出栈后的数据元素。

实验三:栈和队列(续)
ex3_2:循环队列 1)顺序循环队列类型定义为: #define N 20 typedef struct { int data[N]; int front, rear; }queue_type; 2)编写循环队列出队函数dequeue 3)编写循环队列入队函数enqueue 4)编写函数:void aa(queue_type *q); 调用出对函数把队列q中的元素一一出对列,如果是负数直 接抛弃;如果是正数,则调用入队函数,插入到q的队尾。 5)编写main函数,首先建立一个队列,其中的数据元素为: {2, 3, -4, 6, -5, 8, -9, 7, -10, 20};然后调用aa函数,并将aa函 数调用前后队列的数据元素分别输出到屏幕上。

实验三:栈和队列(续)
? ex3_3: p74第12题 ? ex3_4: p74第13题

实验四:二叉树(4学时)
ex4_1:
1)二叉树结点类型定义为: typedef struct bnode { int data; struct bnode *lc, *rc; }bnode_type; 2)编写中序遍历函数; 3)编写后序遍历函数; 4)编写先序遍历函数; 5)编写create函数建立二叉排序树; 6)编写main( )函数,先调用create函数,建立一颗二叉排 序树;然后分别调用中序、后序、先序遍历函数,将 二叉树的先序、中序和后序遍历序列输出到屏幕上。

实验四:二叉树(续)
ex4_2:设以先序输入字母,编写程序建立如下二叉树:

ABC_ _ DEF _ _ G _ _ _ H _ I _ JK _ _ L _ _ A

B C
_ D _ E _ _

H I _ K J L

F _

G __ _

_

_ _ _

每一个空格“_”表示一个空指针

实验五:查找和排序(4学时)
ex5_1:查找
设有序序列的数据元素为: (3,10,13,17,40,43,50,70) 1)编写顺序查找函数 2)编写二分查找函数 3)在主程序中输入关键字(43和5),分别调用两种查找 函数,输出结果。

ex5_2:排序
1)编写简单选择法函数 2)编写直接插入法函数 3)编写冒泡法排序函数 4)在主程序中输入一组数据元素(513,87,512,61, 908,170,897,275,653,462),分别调用三种排序 函数,输出每趟排序结果。

上机实验报告格式要求
(学生姓名)xxx (学号)xxxxxxxxxx 上机实验一(或二、三、四、五) (程序名称)ex1_1
xxxxxxxxxxx xxxxxxxxxxx xxxxxxxxxxx

典型测试数据(输入):xxxxx 应输出(上机前自己分析的结果):xxxxxxx 上机时遇到的问题:① xxxxx 解决办法:xxxxxxx ② xxxxxx 解决办法:xxxxxxx 实际运行结果:xxxxxx
xxxxxx xxxxxx

个人体会:xxxxxxx


相关文章:
solidworks作业_图文
solidworks作业_计算机软件及应用_IT/计算机_专业资料。Solidworks 三维设计作业 ...[SW]灰铸铁 (SN) 线性弹性同向性 最大 von Mises 应力 数值 6.6178e+010...
SW常见问题
(说明一下:SW 作基准面、轴、点的方法很一般, 不灵活。) 5、问:如何快速建立草图中实体几何关系? 答: 按住 CTRL 键,用鼠标选择建立几何关系的草图实体,在 ...
随机信号上机作业1
随机信号分析上机作业 姓名:王霞 学号:111040709 学院:电光学院 指导老师:顾红 ...(SR); Sw=fft(sf); Sot=fftshift(ifft(Srw.*conj(Sw))); figure(3) ...
SW习题
SW 随堂考核班级___姓名___计算机号___ 一、关于 SolidWorks(简称 SW)的基本...sw上机作业 19页 免费 SW练习题 暂无评价 42页 免费 确定不去SW 1页 免费 ...
生物信息上机作业
生物信息上机作业_理学_高等教育_教育专区。生物信息学上机作业 一 生物信息数据...Ryan KA, Robinson SW, Gottlieb SS, Kardia SL, Shuldiner AR and Liggett ...
SW通风口操作_图文
SW通风口操作_计算机软件及应用_IT/计算机_专业资料。solidworks 教程资料: ...sw上机作业 19页 免费 sw上机作业 暂无评价 19页 免费 sw作业用图 17页 ...
我的上机作业
我的上机作业_计算机软件及应用_IT/计算机_专业资料。信息检索四川师范大学信息检索...sw=%E5%9B%BD%E5%AF%8C%E8%AE%BA&type =all 书生之家在下载专用的阅读...
solidworks初级教程第3讲及作业
solidworks初级教程第3讲及作业_计算机硬件及网络_IT/计算机_专业资料。201209 第 6 届 SW 初级培训第 3 讲(华工学生)记录 刘老师: 下面新设计一个寺庙用的大钟...
SW-2000pc操作说明
SW-2000pc操作说明_计算机软件及应用_IT/计算机_专业资料。上海沪光通讯设备有限...sw上机作业 19页 免费 sw 3页 免费 确定不去SW 1页 免费喜欢此文档的还喜欢...
solidworks考试试题
A.轮廓必须是闭环 B.路径必须是开环 C.路径的起点必须位于轮廓的基准面上 , SW 选拔考试标准答案 一、判断题(38 分) 1 × 9 √ 17 × 25 × 33 √ ...
更多相关标签: