软件技术基础实验报告总结怎么写

软件技术基础实验报告总结怎么写实验一:线性表/栈与队一、实验目的了解实现线性表/栈与队/数组所涉及到的数据结构。二、实验要求因受时间限制,从以下给出的4个实验内容中任选3个,分析并补齐给出的源程序,运行相应的程序,检验运行结果,以此巩固对相应部分的理论知识的理解。1.复习线性表、栈与队列

实验一:线性表/栈与队

一、实验目的

了解实现线性表/栈与队/数组所涉及到的数据结构。

二、实验要求

因受时间限制,从以下给出的4个实验内容中任选3个,分析并补齐给出的源程序,运行相应的程序,检验运行结果,以此巩固对相应部分的理论知识的理解。

1.复习线性表、栈与队列的定义,理解顺序存储、链式存储的方法及基本操作。

2.复习C语言中数组、指针及结构体的概念、定义方式。

3.上机前准备好全部源程序。

4.计算机中需要安装vc6.0或vs2010。

5.程序中所用结构体定义于datastru.h中。

三、实验内容

熟悉vs2010环境下建立程序源文件与调试程序的流程。

1、完成有序表(顺序表)中插入一元素并保证仍然有序。

……(补充程序)

void main( )

{

SEQUENLIST L;

int num,i,k,x;

L.last=0; //置顺序表为空,表长为0

printf(“请输入顺序表元素,元素为整型量,用空格分开,-99为结束标志:”);

/*输入顺序表元素,建立有序表,值从小到大*/

scanf(“%d”,&num);

while (num !=-99) {

………(补充程序)

L.last++;

scanf(“%d”,&num);

}

printf(“%d”,L.last);

printf(“输入要插入的元素值(整型) : “);

scanf(“%d”,&num);

printf(“\n插入前有序表元素列表 :”);

for (i=0; i<L.last; i++)

printf(“%4d”,L.datas[i]);

printf(“\n”);

k = L.last-1;

while ((k>= 0) && (num<L.datas[k])) /*查找插入位置i */

k–;

for(i=L.last-1; i>=k+1; i–)

L.datas[i+1]=L.datas[i]; /*移动元素 */

L.datas[k+1]=num; /*新元素插入*/

L.last++; /*表长加1 */

printf(“\n插入后有序表元素列表 :”);

for (i=0; i<L.last; i++)

printf(“%4d”,L.datas[i]);

printf(“\n”);

}

2、完成链表的结点插入、删除操作,并显示操作前后的线性表中各元素的情况。

……(补充程序)

void inser_order(DATATYPE2 x, LINKLIST *head){

LINKLIST *pr, *pn, *pp;

pr = head; pn = head->next;

while(pn != NULL && pn->data < x)

{

……(补充程序)

}

pp = (LINKLIST *)malloc(sizeof(LINKLIST));

……(补充程序)

}

int count_head(LINKLIST *head) /*输出单链表元素值并计数*/

{

int i = 0;

LINKLIST *p;

p = head->next;

printf(“输出单链表元素值 : “);

while(p != NULL)

{

……(补充程序)

}

printf(“\n”);

return i;

}

LINKLIST *creatlink_order_head(LINKLIST *head) /*建立带头结点的有序单链表*/

{

LINKLIST *t, *p, *q;

char ch;

t = (LINKLIST *)malloc(sizeof(LINKLIST)); //建立带头结点的空链表

t->next = NULL;

head = t;

printf(“单链表元素值为单个字符, 连续输入,#为结束字符 : “);

while ((ch = getchar()) != ‘#’)

{

……(补充程序)

}

return head;

}

int main()

{

LINKLIST *head = NULL;

int num;

char ch;

printf(“\n 建立单链表\n\n”);

head = creatlink_order_head(head);

num = count_head(head);

printf(“单链表元素个数 = %d\n”, num);

fflush(stdin);

printf(“\n输入插入元素值 : “);

ch = getchar();

inser_order(ch, head);

printf(“\n 元素插入后\n\n”);

num = count_head(head);

printf(“插入后单链表元素个数 = %d\n”, num);

return 1;

}

3、运用栈完成十进制数与八进制数的转换。

……(补充程序)

void initstack(SEQSTACK *s) /*顺序栈初始化*/

{

……(补充程序)

}

DATATYPE1 gettop(SEQSTACK *s) /*返回栈顶元素*/

{

DATATYPE1 x;

……(补充程序)

return x;

}

int push(SEQSTACK *s, DATATYPE1 x) /*元素x入栈*/

{

if(s->top == MAXSIZE-1)

{

……(补充程序)

}

else

{

……(补充程序)

return 1;

}

}

DATATYPE1 pop(SEQSTACK *s) /*返回栈顶元素并删除栈顶元素*/

{

DATATYPE1 x;

if(s->top == 0)

{

printf(“栈空\n”);

x=0;

}

else

{

……(补充程序)

}

return x;

}

int main( )

{

SEQSTACK stack, *s;

int n;

s = &stack;

initstack(s);

n = 0;

printf(“输入一非负整数(十进制) :”);

scanf(“%d”,&n);

push(s,’#’);

while(n != 0)

{

push(s, n % 8); /* %为求余数运算符, 余数入栈*/

n = n / 8; /* /为求整数商运算符,商不为零,继续运行*/

}

printf(“\n\n对应的八进制数为 :”);

while(gettop(s) != ‘#’)

printf(“%d”,pop(s));

printf(“\n”);

return 1;

}

4、实现带头结点链队元素的删除、插入操作,并显示操作前后的队列情况。

……(补充程序)

DATATYPE1 dellinkqueue(LINKQUEUE *q) /*删除队头元素并返回*/

{

……(补充程序)

if(q->front == q->rear)

{

printf(“队列空\n”);

v = 0;

}

else

{

……(补充程序)

}

return v;

}

void enlinkqueue(LINKQUEUE *q, DATATYPE1 x) /*元素x 入队列*/

{

(q->rear)->next = (LINKQLIST *)malloc(sizeof(LINKQLIST));

……(补充程序)

}

void initlinkqueue(LINKQUEUE *q) /*链队列初始化*/

{

……(补充程序)

}

void outlinkqueue(LINKQUEUE *q) /*链队列元素依次显示*/

{

LINKQLIST *p;

p = q->front;

printf(“队列元素显示 : “);

while(p != q->rear)

{

……(补充程序)

}

printf(“\n”);

}

int main()

{

LINKQUEUE lq, *p;

int j;

p = &lq;

initlinkqueue(p);

printf(“输入一整数(奇数——入队列、偶数——删除队头元素、0——退出) : “);

scanf(“%d”, &j);

while(j != 0) /*输入 0——退出*/

{

if(j % 2 == 1)

enlinkqueue(p,j); /*输入奇数——入队列*/

else

j = dellinkqueue(p); /*输入偶数——删除队头元素*/

outlinkqueue(p);

printf(“\n输入一整数(奇数——入队列、偶数——删除队头元素、0——退出) : “);

scanf(“%d”, &j); /*继续输入*/

}

return 1;

}

四、注意事项

注意程序中用到的结构体的来源及表示方法、调用方式。读懂程序结构,先补齐缺失代码,再调试运行程序。

五、实验总结和体会

激活谷谷主为您准备了激活教程,为节约您的时间请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/15069.html

(0)
上一篇 2024年 5月 17日
下一篇 2024年 5月 17日

相关推荐

  • 移位运算符只能用于整型吗对吗为什么

    移位运算符只能用于整型吗对吗为什么1、算数运算符算术运算符即算术运算符号。是完成基本的算术运算(arithmetic operators) 符号,就是用来处理四则运算的符号。运算符描述示例结果+加法1+12-减法2-11*乘法2*36/除法(取商)5/22%取余(取模、取

    激活谷笔记 2024年 5月 18日
  • bandzip是什么软件_bandizip怎么添加到右键菜单

    bandzip是什么软件_bandizip怎么添加到右键菜单如何在访达右键菜单使用Bandizip如何在访达右键菜单使用Bandizip根据Apple的应用程序沙盒政策,macOS允许Bandizip只能对有访问权限的文件夹进行压缩和解压。 若将文件夹添加到可访问文件夹列表中,该文件夹的所有子文件夹都会具

    2024年 5月 10日
  • 一阶低通滤波器参数怎么调_一阶低通滤波器有什么缺点

    一阶低通滤波器参数怎么调_一阶低通滤波器有什么缺点彻底理解一阶低通数字滤波器原理、设计及工程实践在电机控制中,有许多的物理量都要经过AD转换为数字量,才能在控制算法中使用,如母线电压、采样电阻电流、功率模块温度等。使用这些数字量时,既要做到有效地把物理量的真实值还原出来,还需要能够剔除一些可能引入的高频干扰,这在软件中就涉及到一个很普遍的方法:

    激活谷笔记 2024年 5月 24日
  • pycharm安装教程2024_pycharm安装教程2019

    pycharm安装教程2024_pycharm安装教程2019PyCharm安装教程及基本使用(更新至2024年新版本),教你迈出学习python第一步### 回答1:Python安装教程:1. 首先,从Python官网(https://www.python.org/downloads/)下载Python安装包,选择适

    激活谷笔记 2024年 5月 17日
  • 什么叫线程同步_什么叫线程同步器

    什么叫线程同步_什么叫线程同步器Java同步器简述一、概述在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。主要原因是,对于多线程实现实现并发,一直以来,多线程都存在2个问题:线程之间内存共享,需要通过加锁进

    激活谷笔记 2024年 5月 29日
  • win10还原上一次正确配置_win10还原到上一个时间节点

    win10还原上一次正确配置_win10还原到上一个时间节点win10怎么还原上一次正确配置 win10还原上一次正确配置方法【教程】最近有朋友问小编win10系统恢复到几天前设置的方法是什么,对于这个问题,相信还有很多朋友不太清楚。不少朋友都在使用win10系统,有时候我们的电脑难免会出现问题,这时候就可以使用系统还原功能,将win

    2024年 5月 11日
  • ubuntu20.04安装教程vmware_虚拟机安装ubuntu20.04

    ubuntu20.04安装教程vmware_虚拟机安装ubuntu20.04ubuntu 20.04.1 LTS_visi20安装教程大家好,又见面了,我是你们的朋友全栈君。一、下载1.进入Ubuntu官网 详见: https://ubuntu.com/ 在这里插入图片描述2.点击上方Dow

    2024年 5月 12日
  • ddsj-308a型电导率仪使用说明_ddsj-308a电导率仪的使用方法

    ddsj-308a型电导率仪使用说明_ddsj-308a电导率仪的使用方法新闻资讯DDSJ-308A电导率仪操步骤DDSJ-308A 型电导率仪是一种智能化的实验室常规分析仪器。它适用于实验室内精确测量水溶液、总溶解固体和温度的电导率和温度,也可用于测量纯水的纯度和温度,以及用于测定盐(nacl 为标准)的海

    激活谷笔记 2024年 5月 24日
  • 系统可用性指标包括哪些方面

    系统可用性指标包括哪些方面一、功能性指标1、功能的正确性:系统功能和用户的实际需求、已定义的产品规范一致。2、功能的准确性:系统产生的结果在精度允许的误差范围内。3、功能的完整性:所有功能及其定义清楚、可用。4、功能的易用性:衡量用户在使用系统时的满意度和便捷程度的指标。二、可用性指标1、可操作性:容易使用和

    激活谷笔记 2024年 5月 20日
  • 排序函数row_number

    排序函数row_number使用row_number()编号根据id不同,按照dtime时间排序,排序完后,给每条数据进行编号。SELECT id ,dtime,row_number()over(PARTITION BY id ORDER BY dtime) AS drand FROM t使用方法:1、可查询用户签到次

    激活谷笔记 2024年 5月 19日
  • anaconda是什么_anaconda和python区别

    anaconda是什么_anaconda和python区别python和anaconda的区别、为什么要用anaconda,怎么使用anaconda?python和anaconda的区别: 其实anaconda是包含python的。所以安装了anaconda就不用安装python了。 要想跑python程序,要有解释器和编译器

    激活谷笔记 2024年 5月 12日
  • 控件开发工具怎么用不了

    控件开发工具怎么用不了今天分享如何利用Word开发工具中的空间来实现上述功能。·选择好下拉菜单和付款框。·首先打开文档,调出开发工具,在“文件”选项中找到“自定义功能区”,勾选“开发工具”选项,然后点击“确定”,添加一个选项卡。·将光标移动到需要插入空间的位置,点击“开发工具

    激活谷笔记 2024年 5月 17日
关注微信