大二上软基上机_第1页
大二上软基上机_第2页
大二上软基上机_第3页
大二上软基上机_第4页
大二上软基上机_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件技术基础上机作业周四下午(2:30-5:30)基础实验楼A508、A510上机上机实验报告格式要求(学生姓名)xxx (学号)xxxxxxxxxx 上机实验一(或二、三、四、五)(程序名称及内容)ex1_1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(注意:1、反映题目关键内容的程序段必须完整2、后一实验使用与前一实验相同的内容可只需注明,不必再次抄写3、子函数应以加注释的方式说明其功能)典型测试数据(输入):xxxxx应输出(上机前自己分析的结果):xxxxxxx上机时遇到的问题:问题现象: xxxxx 原因:xxxxxxx; 解决办法:xxxxxxx 问题现象:

2、xxxxx 原因:xxxxxxx; 解决办法:xxxxxxx实际运行结果:xxxxxx xxxxxx xxxxxx 个人体会:xxxxxxx上机要求上机前准备好上机实验报告明确上机目的完成程序的初步设计制定测试计划上机录入已设计的程序编译、调试总结遇到什么问题,怎么解决的上机要求上机报告提交当场提交纸质版上机报告请保存电子版上机报告(.doc或.jpg文件)第五次上机完成后,将全部5次上机报告打包(文件命名为学号+姓名),并以附件形式发送到 纸质版和电子版上机报告各占一半实验成绩上机要求不允许玩游戏!影响“民心、士气”你有以下选择A、完成上机任务,并经过老师检查,正确回答老师问题后,可以在老师

3、的许可下玩游戏B、登记名字后,继续玩。以后C、不登记名字,离开机房。实验一:顺序表(4学时)ex1_1:1)首先创建一个顺序表:从键盘读入一组整数(长度小于等于20),按输入顺序放入顺序表,输入以1结束(注意1不放到顺序表内);将创建好的顺序表元素依次输出到屏幕上。2)在已创建好的顺序表中插入一个元素:从键盘读入需插入的元素值和插入位置,调用插入函数完成插入操作;然后将顺序表元素依次输出到屏幕上。3)在已创建好的顺序表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作;然后将顺序表元素依次输出到屏幕上。提示:相关常量和顺序表数据类型定义#define MAXNUM 2

4、0#define true 1#define false 0typedef struct list_type int dataMAXNUM; 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(nplease input datas of the listn); for(i=0; idatai=elem; lp-length+; 提示:遍历元素并依次输出

5、函数void showlist(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; ilength; i+) printf( %d , lp-datai); printf(nlength of the list is:%d, lp-length);提示:插入函数,成功返回true,反之返回false。int insertlist(list_type *lp, int new_elem, int i) int j;

6、 if(lp-length=MAXNUM) printf(the list is full,can not insert.); return(false); if(ilp-length+1) printf(n%d is invalid value,i); return(false); for(j=lp-length-1; j=i-1; j-) lp-dataj+1=lp-dataj; lp-datai-1=new_elem; lp-length+; return(true);提示:删除函数,成功返回true,反之返回false。int deletelist(list_type *lp, int

7、 i) int j; if(ilp-length) printf(elem not exist); return(false); for(j=i; jlength; j+) lp-dataj-1=lp-dataj; lp-length-; return(true);删除所有负数的函数(自己编写)void delete_negative(list_type *l)提示:主函数,按要求调用已编写好的各函数void main( ) list_type list; int i, data; createlist(&list); showlist(&list); printf(ninsert:Enter

8、 i and data :n); scanf(%d,%d, &i, &data); insertlist(&list, data, i); printf(nlist after insert:n); showlist(&list); printf(ndelete:Enter i:n); scanf(%d, &i); deletelist(&list, i); printf(nlist after delete:n); showlist(&list);/* delete_negative(&list); printf(nlist after delete all negative:n); sho

9、wlist(&list);*/实验二:链表(4学时)ex2_1:1)首先创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出到屏幕上。2)在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到屏幕上。3)在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。实验二:链表(续)ex2_2: 1)创建一个单链表,其数据元素为整数,从键盘输入,输入0结束(注意0不放到链表内); 2)从键盘任意输入一个整数,在单链表中查询该数,如果单链表中已经

10、存在这个数,就调用删除函数,删除该元素所在结点,并将单链表在删除前后的数据元素依次输出到屏幕上; 如果单链表中不存在这个数,就调用插入函数,将这个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。 实验三、栈和队列(4学时) ex3_1:链栈 1)链栈结点类型定义为: typedef struct node int data; struct node *next; node_type;2)编写进栈函数push3)编写出栈函数pop4)编写main函数,首先建立一空链栈; 调用进栈函数,将从键盘输入的数据元素逐个进栈,输入0结束;显示进栈后的数据元素; 调用两次出栈函数,显示出栈

11、后的数据元素。栈和队列(续) ex3_2:循环队列 1)顺序循环队列类型定义为:#define N 20typedef struct int dataN; int front, rear;queue_type;2)编写循环队列出队函数dequeue3)编写循环队列入队函数enqueue4)编写函数:void aa(queue_type *q); 调用出对函数把队列q中的元素一一出对列,如果是负数直接抛弃;如果是正数,则调用入队函数,插入到q的队尾。5)编写main函数,首先建立一个队列,其中的数据元素为:2, 3, -4, 6, -5, 8, -9, 7, -10, 20;然后调用aa函数,并

12、将aa函数调用前后队列的数据元素分别输出到屏幕上。 实验四、二叉树(4学时)ex4_1:1)二叉树结点类型定义为:typedef struct bnode int data; struct bnode *lc, *rc;bnode_type;2)编写二叉树的创建函数,可以是排序二叉树的创建思路(见教材),或者以先序遍历为框架。3)编写中序遍历函数;4)编写后序遍历函数;5)编写先序遍历函数;6)编写main()函数,先调用create函数,建立一颗二叉排序树;然后分别调用中序、后序、先序遍历函数,将二叉树的先序、中序和后序遍历序列输出到屏幕上。实验五、查找和排序(4学时)ex5_1:查找 设有序序列的数据元素为:(3,10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论