软件上机作业_第1页
软件上机作业_第2页
软件上机作业_第3页
软件上机作业_第4页
软件上机作业_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、上机实验报告格式要求(学生姓名)(学生姓名)xxx (学号)(学号)xxxxxxxxxx 上机实验一(或二、三、四、五)上机实验一(或二、三、四、五)一、程序流程说明一、程序流程说明有条理的文字或流程图有条理的文字或流程图*二、程序代码二、程序代码xxxxxxxxxxxxxxxxxxxxxx 注意:注意: 1、反映题目关键内容的程序段必须完整、反映题目关键内容的程序段必须完整 2、后一实验使用与前一实验相同的代码段可只需注明,不必再次抄写、后一实验使用与前一实验相同的代码段可只需注明,不必再次抄写 3、子函数应以加注释的方式说明其功能、子函数应以加注释的方式说明其功能三、测试数据三、测试数据*

2、 输入:输入:xxxxx 应输出(上机前自己分析的结果):应输出(上机前自己分析的结果):xxxxxxx四、上机时遇到的问题四、上机时遇到的问题(可分为编译问题和逻辑问题)(可分为编译问题和逻辑问题)* 问题现象:问题现象: xxxxx 原因:原因:xxxxxxx; 解决办法:解决办法:xxxxxxx 问题现象:问题现象: xxxxx 原因:原因:xxxxxxx; 解决办法:解决办法:xxxxxxx五、五、实际运行结果:实际运行结果: xxxxxx xxxxxx 六六 、小结、小结 体会体会*:xxxxxxx上机要求 上机前完成上机实验报告 明确上机目的 完成程序的初步设计 制定测试计划 教师

3、在上机过程中将抽查上机报告的完成情况,并计入平时成绩 上机 录入已设计的程序 编译、调试 总结 遇到什么问题,怎么解决的上机要求 不允许玩游戏! 影响“民心、士气” 你有以下选择 A、完成上机任务,并经过老师检查,正确回答老师问题后,可以在老师的许可下做其它事情 B、登记名字后,继续玩。以后 C、不登记名字,离开机房。实验一:顺序表(4学时)ex1_1:1)首先创建一个顺序表:从键盘读入一组整数(长度首先创建一个顺序表:从键盘读入一组整数(长度小于等于小于等于2020),按输入顺序放入顺序表,输入以),按输入顺序放入顺序表,输入以1 1结束(注意结束(注意1 1不放到顺序表内);将创建好的顺序

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

5、屏幕上。提示:相关常量和顺序表数据类型定义提示:相关常量和顺序表数据类型定义#define MAXNUM 20#define true 1#define false 0typedef struct 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

6、listn); for(i=0; idatai=elem; lp-length+; 提示:遍历元素并依次输出函数提示:遍历元素并依次输出函数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);提示:插入函数,成功返回提示:插

7、入函数,成功返回true,反之返回,反之返回false。int insertlist(list_type *lp, int new_elem, int i) int j; 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( ) ; /放入新元素; /表长度增加; return(true);提示:删除函数,成功返回提示:删除函数,成功返回true,反之返回,

8、反之返回false。int deletelist(list_type *lp, int i) int j; if(ilp-length) printf(elem not exist); return(false); for( ) ; /表长度减少; return(true);删除所有负数的函数(自己编写)删除所有负数的函数(自己编写)void delete_negative(list_type *l)提示:主函数,按要求调用已编写好的各函数提示:主函数,按要求调用已编写好的各函数void main( ) list_type list; int i, data; createlist(&

9、list); showlist(&list); printf(ninsert:Enter 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(&lis

10、t);/* delete_negative(&list); printf(nlist after delete all negative:n); showlist(&list);*/实验一:顺序表(续)ex1_2:p65第第9题(用顺序表实现)题(用顺序表实现) 注意该题中没有提供插入元素的具体位置,要注意该题中没有提供插入元素的具体位置,要根据元素值大小寻找合适的位置。根据元素值大小寻找合适的位置。实验二:链表(4学时)ex2_1:1)首先创建一个单链表:从键盘读入五个整数,按输首先创建一个单链表:从键盘读入五个整数,按输入顺序形成单链表。将创建好的链表元素依次输出入顺序形成

11、单链表。将创建好的链表元素依次输出到屏幕上。到屏幕上。2)在已创建好的链表中插入一个元素:从键盘读入元在已创建好的链表中插入一个元素:从键盘读入元素值和插入位置,调用插入函数完成插入操作。然素值和插入位置,调用插入函数完成插入操作。然后将链表元素依次输出到屏幕上。后将链表元素依次输出到屏幕上。3)在已创建好的链表中删除一个元素:从键盘读入欲在已创建好的链表中删除一个元素:从键盘读入欲删除的元素位置(序号),调用删除函数完成删除删除的元素位置(序号),调用删除函数完成删除操作。然后将链表元素依次输出到屏幕上。操作。然后将链表元素依次输出到屏幕上。实验二:链表(续)ex2_2: 1)创建一个单链表

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

13、据个数插入到单链表尾,并将单链表在插入前后的数据元素依次输出到屏幕上。元素依次输出到屏幕上。 实验二:链表(续)ex2_3: p65第第9题(用链表实现)题(用链表实现)实验三、栈和队列(4学时) ex3_1:链栈:链栈 1)链栈结点类型定义为:链栈结点类型定义为: typedef struct node int data; struct node *next; node_type;2)编写进栈函数)编写进栈函数push3)编写出栈函数)编写出栈函数pop4)编写)编写main函数,首先建立一空链栈;函数,首先建立一空链栈; 调用进栈函数,将从键盘输入的数据元素逐个调用进栈函数,将从键盘输入的

14、数据元素逐个进栈,输入进栈,输入0结束;显示进栈后的数据元素;结束;显示进栈后的数据元素; 调用两次出栈函数,显示出栈后的数据元素。调用两次出栈函数,显示出栈后的数据元素。栈和队列(续) ex3_2:循环队列:循环队列 1)顺序循环队列类型定义为:顺序循环队列类型定义为:#define N 20typedef struct int dataN; int front, rear;queue_type;2)编写循环队列出队函数编写循环队列出队函数dequeue3)编写循环队列入队函数)编写循环队列入队函数enqueue4)编写函数:)编写函数:void aa(queue_type *q); 调用出

15、对函数把队列调用出对函数把队列q中的元素一一出对列,如果是负数直中的元素一一出对列,如果是负数直接抛弃;如果是正数,则调用入队函数,插入到接抛弃;如果是正数,则调用入队函数,插入到q的队尾。的队尾。5)编写)编写main函数,首先建立一个队列,其中的数据元素为:函数,首先建立一个队列,其中的数据元素为:2, 3, -4, 6, -5, 8, -9, 7, -10, 20;然后调用;然后调用aa函数,并将函数,并将aa函数调用前后队列的数据元素分别输出到屏幕上。函数调用前后队列的数据元素分别输出到屏幕上。 栈和队列(续) ex3_3:P.66页,页,12题题(需要自己设计数据结构)(需要自己设计

16、数据结构)ex3_4:P.66页,页,13题题(需要自己设计数据结构)(需要自己设计数据结构)实验四、二叉树(4学时)ex4_1:1)二叉树结点类型定义为:)二叉树结点类型定义为:typedef struct bnode int data; struct bnode *lc, *rc;bnode_type;2)编写二叉树的创建函数,可以是排序二叉树的创建思路(见教材),)编写二叉树的创建函数,可以是排序二叉树的创建思路(见教材),或者以先序遍历为框架。或者以先序遍历为框架。3)编写中序遍历函数;)编写中序遍历函数;4)编写后序遍历函数;)编写后序遍历函数;5)编写先序遍历函数;)编写先序遍历函数;6)编写)编写main()函数,先调用函数,先调用create函数,建立一颗二叉排序树;然后函数,建立一颗二叉排序树;然后分别调用中序、后序、先序遍历函数,将二叉树的先序、中序和后序分别调用中序、后序、先序遍历函数,将二叉树的先序、中序和后序遍历序列输出到屏幕上。遍历序列输出到屏幕上。实验四、哈夫曼树 Ex4-2,输入一组数(权值),编写算法建立哈夫曼树,输出每个权值对应的二进制编码。实验五、查找和排序(4学时)ex5_1:查找查找 设有序序列的数据元素为:设有序序列的数据元素为:(3,10,13,17,40,43,50,70)1)编写顺序查找函数编写顺序查找函数2)编

温馨提示

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

评论

0/150

提交评论