软基实验第三次上机
上机实验报告简书(3篇)
第1篇一、实验目的本次实验旨在通过实际操作,掌握以下技能:1. 熟悉实验环境及实验设备的使用;2. 理解并应用所学理论知识,解决实际问题;3. 提高动手能力和团队协作能力。
二、实验环境1. 操作系统:Windows 102. 编程语言:Python3.73. 实验软件:PyCharm4. 实验设备:计算机三、实验内容本次实验主要分为以下几个部分:1. 数据结构实验2. 算法设计实验3. 项目实践1. 数据结构实验实验内容(1)实现链表的基本操作:创建、插入、删除、查找等。
(2)实现栈和队列的基本操作:入栈、出栈、入队、出队等。
(3)实现散列表的基本操作:创建、插入、删除、查找等。
实验步骤(1)创建一个单链表,并实现其基本操作。
(2)创建一个栈,并实现其基本操作。
(3)创建一个队列,并实现其基本操作。
(4)创建一个散列表,并实现其基本操作。
2. 算法设计实验实验内容(1)实现冒泡排序、选择排序、插入排序等基本排序算法。
(2)实现快速排序、归并排序等高级排序算法。
(3)实现二分查找算法。
实验步骤(1)编写冒泡排序、选择排序、插入排序等基本排序算法的代码。
(2)编写快速排序、归并排序等高级排序算法的代码。
(3)编写二分查找算法的代码。
3. 项目实践实验内容设计并实现一个简单的学生管理系统,包括以下功能:(1)学生信息录入:包括学号、姓名、性别、年龄、班级等。
(2)学生信息查询:根据学号或姓名查询学生信息。
(3)学生信息修改:修改学生信息。
(4)学生信息删除:删除学生信息。
实验步骤(1)设计学生管理系统的数据结构。
(2)编写学生信息录入、查询、修改、删除等功能的代码。
(3)编写主函数,实现学生管理系统的运行。
四、实验结果与分析1. 数据结构实验结果与分析通过本次实验,我们掌握了链表、栈、队列和散列表的基本操作,并能够根据实际需求选择合适的数据结构。
2. 算法设计实验结果与分析通过本次实验,我们熟悉了基本排序算法和高级排序算法,以及二分查找算法。
《软件技术基础》上机实验报告范文
《软件技术根底》上机实验报告范文今天为大家收集资料回来了关于实验的范文,希望能够为大家带来帮助,希望大家会喜欢。
同时也希望给你们带来一些参考的作用,如果喜欢就我们的后续更新吧!1.顺序表的建立、插入、删除。
2.带头结点的单链表的建立(用尾插法)、插入、删除。
1.分别建立二个文件夹,取名为顺序表和单链表。
2.在这二个文件夹中,分别存放上述二个实验的相关文件。
每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。
3. 截止时间:12月28日(18周周日)晚上关机时为止,届时效劳器将关闭。
1.格式:《计算机软件技术根底》上机实验报告用户名se×××× 学号姓名学院① 实验名称:② 实验目的:③ 算法描述(可用文字描述,也可用流程图):④ 源代码:(.c的文件)⑤ 用户屏幕(即程序运行时出现在机器上的画面):2.对c文件的要求:程序应具有以下特点:a 可读性:有注释。
b 交互性:有输入提示。
c 构造化程序设计风格:分层缩进、隔行书写。
3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。
请注意:过时不候哟!0.顺序表的插入。
1. 顺序表的删除。
2.带头结点的单链表的插入。
3. 带头结点的单链表的删除。
注意:1. 每个人只需在实验报告中完成上述4个工程中的一个,详细安排为:将自己的序号对4求余,得到的数即为应完成的工程的序号。
例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。
2. 实验报告中的源代码应是通过编译链接即可运行的。
3. 提交到个人空间中的内容应是上机实验中的全部内容。
第三次上机实习作业及指导
第三次上机检索实习指导书外文数据库(二)本次实习目的是使学生对以下四个外文数据库:美国PQDD博士论文全文数据库、美国ACM数据库、WorldSciNet全文期刊数据库和美国ASP+BSP数据库的使用方法有所了解。
通过题目,使学生分别掌握每个数据库所提供的各种获取文献的方法,包括浏览和检索的方法,并通过各种算符的组配,以达到获取正确检索结果的目的。
一、美国PQDD博士论文全文数据库:1、用“学科导航”方式,检索有关经济历史方面的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导2、查找“斯坦福大学”有关你所学专业方面的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导3、检索”哈佛”大学有关你所学专业的学位论文,记下论文数量和第一条记录的题名及学位授予单位。
实习指导二、ACM数据库:1、自选一个题目,检索“美国ACM全文数据库”有关会议方面的文献, 记下第一条记录的篇名,载此文章的刊物的名称、年、卷。
实习指导2、查找作者“Alberto Faro”发表的计算机网络方面的文献,记下第一条记录的篇名,载此文章的刊物的名称、年、卷。
浏览全文,说明全文浏览器中的文本复制和位图复制的功能是什么?实习指导3、请找出该系统使用的逻辑算符、位置算符和截词算符分别用哪些词汇和符号表示。
实习指导三、WorldSciNet全文期刊数据库:1、查找一篇有关环境科学方面的文献,记下篇名,刊名、年、卷。
实习指导2、检索“计算机软件”方面的文献(时间限定为2000——2004年,检索字段为摘要,其他选项为默任状态),列出第一条记录的篇名。
浏览一下全文,说明全文浏览器中的文本选择的功能是什么?四、使用美国ASP+BSP数据库检索:中美双方关于中国参加世贸组织的谈判成功以后,美国企业对中国市场越发关注。
在著名期刊《哈佛商业评论》2000年的某一期中,有一篇文章重点介绍了美国柯达公司是如何在中国建立西方模式的股份公司的。
计算机科学与技术第3次上机实验
哈尔滨工程大学《程序设计基础》实验报告基础实践三姓名:麦豆班级:学号:实验时间: 2018 年 4 月26 日哈尔滨工程大学计算机基础课程教学中心实验题目1:输入十个整数,输出其中的最大值和最小值.设计思想:利用数组将十个数存储,然后,先假设第一个为最大值或最小值,直接用循环对数组进行两个比较然后交换值,前一个始终保持为最大值或最小值,最后输出.实验代码及注释:#include <stdio.h>int main(){/*输入十个整数输出其中的最大值和最小值*//*直接用循环对数组进行两个比较然后交换值,前一个始终保持为最大值或最小值*/int number[10];//声明数组int i=0,j=0;// 计数变量int min,max,middle[10];//最大值与最小值,同步数组printf("请输入十个整数:");for (i=0;i<=9;i++)//利用for循环将十个数存储在number数组中此数组用于最大值的比较{scanf("%d",&number[i]);//注意其中0号为第一个数middle[j]=number[i];//将输入的数同步存储到middle数组中用于最小值的比较j++;}for (i=0;i<=9;i++){if(number[i]>number[i+1]){number[i+1]=number[i];//如果前一个数大于后一个数则将前一个数赋给后一个数同时将大值赋给maxmax=number[i+1];}else{max=number[i+1];//后一个始终为最大值将其赋给max }}for (j=0;j<=9;j++){if(middle[j]>middle[j+1]){min=middle[j+1];//后一个始终为最小值将其赋给min }else{middle[j+1]=middle[j];//如果前一个数小于后一个数则将前一个数赋给后一个数同时将小值赋给minmin=middle[j+1];}}printf("最大值为:%d\t最小值为:%d\n",max,min);return 0;}验证与结论:总结与心得体会:比较大小一般会用到数组,常用方法是先假设第一个值为最大值或最小值,然后将其与其他值比较交换,最后得到最大值或最小值.实验题目2:猴子第一天摘下若干个桃子,当时就吃了一半,还不过瘾,就又吃了一个。
南京航空航天大学软件技术基础数据结构上机实验报告
南京航空航天大学计算机软件技术基础实践实验报告课程名称:计算机软件技术基础专题:数据结构上机实践姓名:xxx学号:xxx学院:自动化学院专业:自动化班级:xxx2013年10月目录(程序和流程图)实验一------------------------------------4第一种算法---------------------------4第二种算法---------------------------7实验二------------------------------------9线性表------------------------------9单链表------------------------------11顺序栈------------------------------14链栈---------------------------------15链列---------------------------------18实验三------------------------------------20二叉树----------------------------20实验四------------------------------------22顺序查找------------------------22二分查找------------------------24插入排序------------------------26选择排序------------------------28冒泡排序------------------------30大作业------------------------------------32通讯录---------------------------32一、实验一实验对象:顺序表。
实验目的:实现两个顺序表的合并。
实验要求:将共同拥有的元素只存其一。
思路清晰,编程正确,并将数据元素显示出来。
西电软院网络多媒体上机报告
网络多媒体上机实验报告目录实验一哈夫曼编码实验二算术编码实验三LZW编码实验四WAV文件的读取附录对应的四个源程序 实验一哈夫曼编码算法分析:哈夫曼编码采用自底向上的描述方式。
哈夫曼编码运用了贪心算法,每次都取权值最小的两个节点合并成一个节点,该合并节点的权值记为两者权值之和,然后继续上述操作直到最后合并成一个节点,在建成树的过程中,就记下了相应的哈夫曼编码。
通过已经构造出的哈夫曼树,自底向上,由频率节点开始向上寻找parent,直到parent为树的顶点为止。
每个频率都会有一个01编码与之唯一对应,并且任何编码没有前部分是同其他完整编码一样的。
程序设计:构造最优二叉树:输入入N个叶子节点的权值,找出所有结点中权值最小、无父结点的两个结点,并合并成一个结点,继续在剩下的结点中寻找权值最小的叶子结点,循环合并结点操作,并最终生成最优二叉树,节点在二叉树的深度的编码既是对此组字符的哈夫曼编码。
我们将用自己定义的结构体来表示各个节点,其中结构体中包含权值,左右孩子和父节点,然后用一个select函数来寻找当前最小的两个节点,合并成一个节点,然后继续直到全部合并为一个节点,然后顺着树来将其01编码储存在一个一个字符数组中。
调试过程:由于之前做过哈夫曼编码问题。
因此问题不大,未遇到较难处理的问题。
运行结果:这是实验的截图,从中可以看出,权值比较大的用到的编码的位数比较少,而权值较小的节点则远离根节点。
而且,我们可以从上图看出哈弗曼是一种前缀编码。
实验二算术编码算法分析:算数编码是一种更现代的编码方法,算术编码把整个消息看做一个单元。
在实际的应用中,输入数据同城被分割成块以避免错误传播。
他只传输一个区间的值,从而可以通过迭代得知相应的信息,性能比较好。
程序设计:我们将整个信息的概率设置为1,各个信号的概率给出,则一个字符一个字符的取,当取到某个自腐蚀,则将其限制在{low,high}之间,然后在在这个区间内继续往下细分,不断迭代,最后生成一个数,我们可以寻找在最后区间内的一个最短的二进制码字,记得到编码,解码同样是不断的看在那个范围中。
上机实验内容
上机实验相关要求及内容:1.在上机实验过程中,同学们需要保存实验代码和相关实验结果(导出JPG格式的图并存档),三次上机实验全部结束后需提交一份电子版的实验报告(报告11月23日交,报告格式随后会给出)。
2.在上机实验过程中,老师和助教仅提供MATLAB操作及使用方面的帮助,对解题不提供帮助。
3.每次上机请同学们一定带上教材,最好也带上课堂讲授的PPT,完成全部的上机题后,可要求老师和助教老师进行提问检查,检查完毕即可离开。
4.晚上上机从18:30开始,1班和2班同学在实验中心201,3班和4班同学在204。
由于实验室座位够、电脑数目却不太足够,请有笔记本电脑的同学尽量带上自己的笔记本。
不要出现两位或两位以上的同学共用一台电脑的情况。
5.如因公选课不能参加上机实验,必须提前请假,临时请假将不算数。
第9周周五的实验或第10周周二的实验因公选课不能参加,必须在第9周周四上午的数字信号处理课课间请假。
第11周周一的实验因公选课不能参加,必须在第10周周四上午的数字信号处理课课间请假(提前请假也可以)。
第一次实验(11.06):共5道题1-4题:见教材2.38(4)、2.40、2.42、2.45(3)第5题:设x(n)=(0.8)n u(n), h(n)=(-0.9)n u(n), y(n)=h(n)*x(n) (卷积运算)。
请对下面每问绘制三列一行的子图。
(1)将x(n)和h(n)截断到26个样本(采样点),利用conv函数计算y(n),用stem函数绘图。
(2)利用filter函数求出y(n),用stem函数绘制出其前51个样本,并与(1)的结果进行比较。
第二次实验(11.10):共5道题见教材3.22、3.23、3.24、3.26、3.28第三次试验(11.16):题目待定。
第三次上机报告
Visual Basic 实验报告班级:国贸0901姓名:曹龙晓学号:07092028一、实验题目:二元一次方程求根二、实验目的:更加熟练的掌握VB,应用VB三、实验内容:1、界面2、代码Private Sub Command1_Click()Text1 = ""Text2 = ""Text3 = ""End SubPrivate Sub Command2_Click()Dim a, b, c, d, x1, x2 As Singlea = Val(Text1)b = Val(Text2)c = Val(Text3)If (Abs(a) < 0.000001) ThenMsgBox ("您输入的系数a不正确")Exit SubEnd IfIf Not IsNumeric(Text1) ThenMsgBox ("您输入的系数不是数字,请重新输入") End IfIf Not IsNumeric(Text2) ThenMsgBox ("您输入的系数不是数字,请重新输入") End IfIf Not IsNumeric(Text3) ThenMsgBox ("您输入的系数不是数字,请重新输入") End Ifd = b * b - 4 * a * cIf d >= 0 Thenx1 = (-b + Sqr(d)) / (a + a)x2 = (-b - Sqr(d)) / (a + a)Label6 = x1Label7 = x2End IfIf d < 0 Thenx1 = (-b) / 2 * ax2 = Sqr(ed) / 2 * aLabel6 = x1 & "+" & x2 & "i"lbael7 = x1 & "-" & x2 & "i"End IfEnd SubPrivate Sub Command3_Click()EndEnd Sub四、实验结果:1、调试和运行:通过F8对所写的程序进行检查,同时看其运行过程2、体会和心得:通过对VB的学习我了解到了VB与代数的不同之处,它不像代数那样,有自己固定的解题方法。
最新上机实验报告二
最新上机实验报告二实验目的:1. 熟悉计算机上机操作环境,掌握基本的软件使用技巧。
2. 学习并实践编程基础,增强逻辑思维和问题解决能力。
3. 通过实验加深对理论知识的理解,提高实验操作技能。
实验内容:1. 环境搭建:安装并配置必要的编程软件,如IDE、版本控制系统等。
2. 基础编程:完成一系列编程练习,包括数据类型、控制结构、循环、函数等。
3. 算法实现:编写程序解决具体问题,如排序算法、查找算法等。
4. 调试与优化:学习调试技巧,优化代码性能,提高程序运行效率。
5. 版本控制:学习使用版本控制系统,如Git,进行代码管理和协作开发。
实验步骤:1. 在指导老师的帮助下,完成实验环境的搭建和配置。
2. 按照实验指导书的要求,逐步完成基础编程练习。
3. 分析并选择合适的算法解决给定问题,编写代码实现。
4. 利用调试工具进行代码调试,修正发现的错误和不足。
5. 学习并实践版本控制的基本概念和操作,进行代码的提交、更新和合并。
实验结果:1. 成功搭建了实验所需的软件环境,并熟悉了各个工具的基本操作。
2. 完成了所有基础编程练习,并通过测试,代码逻辑清晰,运行无误。
3. 实现了排序和查找算法,并通过案例验证了算法的正确性和效率。
4. 通过调试,优化了代码结构和性能,提升了程序的运行速度。
5. 掌握了版本控制的基本概念,能够进行基本的代码管理和协作。
实验总结:通过本次上机实验,我不仅巩固了编程基础知识,还提高了解决实际问题的能力。
在实验过程中,我学会了如何有效地使用调试工具和版本控制系统,这些技能对于未来的编程学习和软件开发都具有重要意义。
同时,我也认识到了编写可读性强、可维护性高的代码的重要性。
在未来的学习中,我将继续提高我的编程技能,并更加注重代码质量。
武汉大学第三次操作系统实验
assign();
else if(choice==2)
reclaim();
else if(choice==3)
display();
else
printf("输入错误!");
menu();
}
int main(){
int i;
for(i=0;i<=3;i++)
MA[i]=A[0][i];//初始化空闲块组
可以正确为申请请求分配空间,根据第一个块号找到下一组块
可以正确释放指定块,在当前组满的情况下正确更新专用块内容
总结:
1、实习中遇到的问题及解决方法:
主要是审题不明,不明白题目提出的需求。刚开始在A数组上直接修改,当分配出去时就置零,后来发现不需要修改A数组,MA数组相当于一个遍历的标签,可以直接从MA数组,遍历显示空闲块情况并分配。
printf("\n");
s=A[s][1];
}
for(i=0;i<=A[s][0];i++)
printf("%d ",A[s][i]);
printf("\n");
}
上机实习所用平台及相关软件:windows10、codeblocks
调试过程:
1、测试数据设计:
连续申请4个块
释放2
释放6
2、测试结果分析:
MA[0]++;
}
else{
for(i=0;i<=3;i++)
A[j][i]=MA[i];
MA[0]=1;
MA[1]=j;
}
display();
西电_C++_第三次上机报告
第三次上机报告一、题目1. 创建一个Person类,该类中有字符数组,表示姓名、街道地址、市、省和邮政编码。
其功能有修改姓名、显示数据信息。
要求其功能函数的原型放在类定义中,构造函数初始化每个成员,显示信息函数要求把对象中的完整信息打印出来。
其中数据成员为保护的,函数为公有的。
2. 编写设计一个People(人)类。
该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eating)、运动(Sporting)、睡眠(Sleeping)、显示(Show)和显示人数(ShowNum)。
其中构造函数由已知参数年龄(a)、身高(h)和体重(w)构造对象,进食函数使体重加1,运动函数使身高加1,睡眠函数使年龄、身高、体重各加1,显示函数用于显示人的年龄、身高、体重,显示人数函数为静态成员函数,用于显示人的个数。
假设年龄的单位为岁,身高的单位为厘米,体重的单位为市斤,要求所有数据成员为protected访问权限,所有成员函数为public 访问权限,在主函数中通过对象直接访问类的所有成员函数。
3. 定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。
其中姓名定义为长度为18的字符数组,其他数据成员类型为整型,数学总成绩、英语总成绩和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(showStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数、数学总成绩、英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。
软件学院上机实验报告(3篇)
实验名称:Java面向对象编程实验实验日期:2023年3月15日实验地点:软件学院实验室一、实验目的1. 理解Java面向对象编程的基本概念,包括类、对象、继承、多态等。
2. 掌握Java面向对象编程的基本语法和操作。
3. 能够运用面向对象编程思想设计简单的Java程序。
二、实验内容1. 创建一个名为“Student”的类,包含以下属性:姓名(name)、年龄(age)、性别(gender)。
2. 在“Student”类中定义一个构造方法,用于初始化对象的属性。
3. 定义一个名为“printInfo”的方法,用于打印学生的信息。
4. 创建两个“Student”对象,并分别设置其属性。
5. 调用“printInfo”方法,打印两个学生的信息。
三、实验步骤1. 打开IDEA软件,创建一个名为“Experiment1”的新项目。
2. 在项目中创建一个名为“Student”的Java类。
3. 在“Student”类中定义属性:name、age、gender。
4. 定义构造方法,初始化属性。
5. 定义“printInfo”方法,打印学生信息。
6. 在主类中创建“Student”对象,设置属性。
7. 调用“printInfo”方法,打印学生信息。
四、实验代码public class Student {private String name;private int age;private String gender;public Student(String name, int age, String gender) { = name;this.age = age;this.gender = gender;}public void printInfo() {System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + gender);}public static void main(String[] args) {Student student1 = new Student("张三", 20, "男");Student student2 = new Student("李四", 21, "女");student1.printInfo();student2.printInfo();}}```五、实验结果与分析1. 编译并运行程序,控制台输出如下信息:```姓名:张三,年龄:20,性别:男姓名:李四,年龄:21,性别:女```2. 通过本次实验,掌握了Java面向对象编程的基本概念和操作,能够运用面向对象编程思想设计简单的Java程序。
数据库第三次上机试验报告
数据库第三次上机实验报告班级:姓名:学号:实验日期:一、实验目的熟悉利用Microsoft Visual C++进行数据库ODBC应用程序的开发,掌握面向对象的程序设计以及可视化编程的一般方法。
二.实验内容用VC++ 6.0自动和手动混合编程,将实验二中建立的DEPT、TEACHER关系,按照下面操作说明的步骤,给每个关系建立一个窗口式用户客户界面,实现关系元组的显示、插入、删除、更新、清空的功能。
三.实验步骤1.实验前准备:设置好ODBC数据源,数据名为student。
2.生成数据库应用程序框架:(1)建立框架:其中包括了选择数据源;(2)分别重建并且运行。
3.显示数据库表中数据:要在应用程序中直接操作数据库,则必须在视窗口中设置一些区域以显示表中各个字段。
(1)利用控件操作栏放置组框、静态文本控件和文本编辑控件等;下图为建立DEPT窗口式用户客户界面时的界面:下图为建立TEACHER窗口式用户客户界面时的界面:(2)建立类向导航,在对应的静态文本控件与数据库中的属性之间建立连接。
下图为建立DEPT窗口式用户客户界面时的界面:下图为建立TEACHER窗口式用户客户界面时的界面:4.实现数据库的增加、删除、更新和清空记录功能:在“记录”菜单中加入了四个命令:修改、清空、删除、更新:下图为添加记录功能后的界面:5.编写命令消息的代码:至此,已经在“记录”菜单中加入了四个命令,然后可编写获取这些命令消息的代码。
由于与数据库相连的是视窗口,所以应由视窗口处理这些消息。
包括重载虚函数、引进ONMOVE函数,以及在编程界面完成代码输入。
下图为建立DEPT窗口式用户客户界面时的界面:下图为建立TEACHER窗口式用户客户界面时的界面:四、实验小结经过本次上机实验,我对VC++ 6.0在建立窗口式用户界面应用方面有了一定的了解,发现其编程模式更加直观、简单,在此过程中也能够初步掌握其使用方法,同时对大课中数据库原理的介绍有了更深的理解。
41140163 吴鹏 机械1106 第三次实验
1,上机实验作业一律以word形式提交;2,上机实验作业文件名如形式:40862533_王小小_数学0801_实验1.doc,其中,doc是文件扩展名,请注意不要提交如“*******.doc.doc”的文件;3,每个上机实验作业均要给出运行结果,运行结果以拷贝屏幕的方式进行截取;4,每个实验作业均要给出比较详细的程序分析,且程序分析位于程序之后。
程序分析是特别重点考察的部分,请按照你的理解进行撰写;5,该部分“特别注意事项”可以随同作业一并提交,请提交作业前进行对照。
实验题目1:实验3的自测练习1程序代码:/***********************************程序功能: 将40000秒转换成几小时几分钟几秒钟的表示形式***********************************/#include <iostream>using namespace std;int main(){const int t=40000;int h,m,s;h=t/3600;m=(t-3600*h)/60;s=t-3600*h-60*m;cout<<h<<"小时"<<m<<"分钟"<<s<<"秒"<<endl;return 0;}程序分析:该程序由一个main函数构成,main函数语句由2个数据类型说明语句,三个算式运算表达式,1个输出语句和一个返回语句组成,其功能分别是说明变量的数据类型,进行算术运算,实现标准的输出和终止函数的运行并返回主调函数。
运行结果:实验题目2:实验3的自测练习2程序代码:/***********************************程序功能: 判断输入的三个边长能否构成三角形或构成的是何种类型的三角形***********************************/#include <iostream>using namespace std;int main(){int a,b,c;while (1){cout<<"\n"<<"请输入三个整数"<<endl;cin>>a>>b>>c;if (a+b>c&&a-b<c)if (a==b&&b==c) cout<<"构成等边三角形"<<"\n";else if ((a==b)||(a==c)||(b==c))cout<<"构成等腰三角形"<<"\n";else if ((a*a==b*b+c*c)||(c*c==a*a+b*b)||(b*b==a*a+c*c))cout<<"构成直角三角形"<<"\n";elsecout<<"构成普通三角形"<<"\n";else cout<<"不能构成三角形"<<endl;}return 0;}程序分析:该程序由一个main函数构成,main函数语句由1个数据类型说明语句,1个输出语句,1个输入语句,if嵌套语句和一个返回语句组成,其功能分别是说明变量的数据类型,实现标准的输出输入和终止函数的运行并返回主调函数。
计算机上机实验报告
计算机上机实验报告
一个计算机上机实验报告的基本结构包括以下几个部分:
1. 实验目的:明确本次实验的目的和研究问题。
2. 实验原理:介绍实验所涉及的基本理论和相关概念。
3. 实验步骤:详细描述进行实验的步骤和操作过程。
4. 数据分析:对实验中所得到的数据进行处理和分析,可使用图表等形式展示结果。
5. 结果讨论:对实验结果进行讨论和解释,分析实验的合理性和可行性。
6. 实验总结:对实验过程中遇到的问题和困难进行总结,并提出改进的建议。
7. 参考文献:列出参考文献的信息,如书籍、期刊论文、网络资料等。
除了以上基本结构外,实验报告还可以根据实际需要添加其他内容,例如实验设备、实验条件、实验结果的可行性分析等。
在撰写实验报告时,要注意语言简练明确、实验过程详实清晰、数据分析准确可靠。
此外,还要遵循学校或实验室的实验报告写作规范和格式要求。
第三次上机实验参考答案.doc
第三次上机实验参考答案1、类对象的定义【项目要求】定义一个圆类,计算圆的面积和周长。
(1)控制台应用程序的参考代码如下:namespace SY3_1{class Program{static void Main(string[] args){double r;Console.Write(”请输入圆的半径:”);r = Convert.ToDouble(Console.ReadLine());Circle cl = new Circle(r);Console.WriteLineC'圆周长={0}\n 圆面积={1}", cl.getCircumference(), cl.getAreaO);Console.ReadLine();}}class Circle{private double radius;public Circle(double r){radius = r;}图3-1 1MI类求面积和周长public double getArea(){return Math.PI * radius * radius;}public double getCircumference(){return 2 * Math.PI * radius;}〃定义一个圆类,计算圆的面积和周长。
(2)用面向对彖的思想实现Windows应用程序,用八输入圆的半径,点击计算按钮能输出圆的面积和周长。
界面如图3・2所示。
private void buttonl_Click(object sender, EventArgs e) {double r;r = Convert.ToDouble(tbRadius>Text); Circle cl = new Circle(r);tbArea.Text = cl .getArea().ToString("F2M ); tbPeri.Text = c 1 .getCircumference().ToString("F2"); }class Circle {private double radius; public Circle(double r) {radius = r; }public double getArea() {return Math.PI * radius * radius; }public double getCircumference() {return 2 * Math.PI * radius;〃用面向对彖的思想实现Windows 应用程序,用八输入圆的半径,点击计算按钮能输出圆的面积和 周长。
北航计软实验报告一
计算机软件基础上机实验报告(一)XXXXXX班XXX1.实验目的掌握线性表在顺序分配下的插入与删除运算;掌握线性表的链式存储结构;掌握插入排序的方法;并掌握一种产生随机数的方法。
2.实验内容1.产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件中。
2.编制一个程序,依次实现以下功能:(1) 定义一个有序(非递减)线性表,其最大容量为1000,初始时为空。
(2) 从由1产生的数据文件中依次取前N个随机整数,陆续插入到此线性表中,并要求在每次插入后保持线性表的有序性。
最后将此有序线性表打印输出。
(3) 在由(2)产生的线性表中,依在1中产生的次序逐个将元素删除,直至表空为止。
3.以N=100及N=400分别运行2的程序,并比较它们的运行时间。
4.编写一个程序,用插入排序依次将1中产生的1000个随机整数链接成有序链表(不改变原随机数在存储空间中的顺序)。
3.源代码与运行结果#include<stdio.h>#include<stdlib.h>#include<time.h>/**1_1产生1000个0至999间的随机整数,并以产生的次序存入一个数据文件(1_1.txt)中。
**/main(){FILE *fo=fopen("1_1.txt","w");int i,j;srand((unsigned)time(0));for (i=0;i<=999;i++) fprintf(fo,"%d\n",rand()%1000);fclose(fo);printf("1000个随机数已输出至目录下1_1.txt文件\n");system("pause");}输出文件1_1.txt如下:(因输出文本长度缘故,此处只截了一幅图)#include<stdio.h>#include<stdlib.h>#include<time.h>/**1_2从数据文件(1_1.txt)中读取数据,进行插入排序,然后屏幕输出。
第三次上机实验
时间:10月27日14:00——18:00
地点:E203机房
内容:
1、将10个不等长的字符串放在一个指针数组中,对它实现如下操作:
●查找某个字符串
●修改某个字符串
●删除某个字符串
●复制某个字符串
2、利用递归函数实现汉诺塔并尝试利用非递归函数实现该功能
3、课本上第174页习题2
4、使用递归方法解决母牛问题:
假设单性繁殖成立,若一头母牛,从出生的第四个年头开始,每年生一头母牛。
出生的小母牛在之后的第四年也将具有生殖能力。
按此规律,第N年时有多少头母牛。
例子:
输入:8
输出:9
5、课本第250页习题3
上机报告格式:
•设计文档:对类、方法、属性及全局变量的说明以及程序执行算法的流程介绍
•源程序清单:不少于1/3的程序行有注释
•运行情况总结:通过有代表性的运行实例(应给出当时的界面实录),叙述运行情况,分析其特点和存在的问题
•对本课程的意见和建议(如果有的话)
•以“学号+姓名+上机实验次数.rar”的格式通过InstLink上交。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
代码:
//实验三 栈和队列 #include "stdafx.h" #include"malloc.h" #include"stdlib.h" #define N 20 #define MAX 6 /*************************ex3_1******************************/ //ex3_1 定义基础题 1 链栈节点类型 typedef struct LinkStackNode { int data; LinkStackNode *next; }*LinkNode; //定义栈顶指针类型 typedef struct { LinkStackNode *top; }*LinkStackTop;
/*****************以下是扩展题 ex3_3 的测试代码******************/ dhStackPtr stack = NULL; initStack(stack); int a[9] = { 89, 6, -4, 6,0,3, -5,8,9 }; int b[6] = { 1,6,7,8,9,0 }; for (int i = 0; i < 4; i++) { //第一个栈进栈四个元素 pushex3_3(stack, 1, a[i]); } printStack1(stack); for (int i = 0; i < 4; i++) { //第二个也尝试进栈 4 个元素 pushex3_3(stack, 2, b[i]); } printStack2(stack); for (int i = 0; i < 2;i++) { popex3_3(stack, 1); //第一个栈出栈两个元素 }
ቤተ መጻሕፍቲ ባይዱ
//出栈
/*****************以下是基础题 ex3_2 的测试代码******************/ Queueptr queue = NULL; int data; int a[10] = { 2, 3, -4, 6, -5, 8, -9, 7, -10, 20 }; initQueue(queue); for (int i = 0; i < 10; i++) { data = a[i]; InsertQueue(queue, data); } printf("Before aa:"); printQueueData(queue); aa(queue); printf("\n After aa:"); printQueueData(queue);
//入栈
} printf("\nBefore pop:"); PrintdataOfLinkStack(stack); for( int i = 0; i < 2; i++) { pop(stack); } printf("\nAfter pop:"); PrintdataOfLinkStack(stack);
printStack1(stack); printf("\n"); for (int i = 0; i < 2; i++) { pushex3_3(stack, 2, a[i]); } printStack2(stack);*/
//第二个栈再入栈两个元素
/*****************以下是扩展题 ex3_4 的测试代码******************/ EXQueueptr queue = NULL; initEXQueue(queue); int data; int a[9] = { 89, 6, -4, 6,0,3, -5,8,9 }; for (int i = 0; i < 7; i++) { //入队,让队满,队满有提示 data = a[i]; insertEXQueue(queue, data); } printEXQueueData(queue); for (int i = 0; i < 2; i++) { //出队两个元素 deEXQueue(queue); } printf("\nAfater deEXQueue"); printEXQueueData(queue); for (int i = 0; i < 2; i++) { //入队两个元素 insertEXQueue(queue, a[i]); } printEXQueueData(queue); for (int i = 0; i < 6; i++) { deEXQueue(queue); //全部出队 } printEXQueueData(queue); for (int i = 0; i < 2; i++) { //入队两个元素 insertEXQueue(queue, a[i]); } printEXQueueData(queue);*/ }
}*dhStackPtr; // 初始化 void initStack(dhStackPtr &stack); //出栈函数 void popex3_3(dhStackPtr &stack, int i); //入栈函数 void pushex3_3(dhStackPtr &stack, int i, int pushData); //打印栈 1 元素 void printStack1(dhStackPtr &stack); //打印栈 2 元素 void printStack2(dhStackPtr &stack); /*************************ex3_4******************************/ typedef struct EXQueue { int front; int rear; int flag; int data[MAX]; }*EXQueueptr; //初始化 void initEXQueue(EXQueueptr &queue); //入队操作 void insertEXQueue(EXQueueptr &queue, int data); //出队操作 void deEXQueue(EXQueueptr &queue); //输出所有元素 void printEXQueueData(EXQueueptr &queue); void main() { /*****************以下是基础题 ex3_1 的测试代码******************/ LinkStackTop stack=NULL; int popData; initLinkStack(stack); while (scanf_s("%d",&popData)) { if (popData!=0) push(stack, popData ); else break;
/*************************ex3_2******************************/ //ex3_2 循环队列基本题:循环队列类型定义如下: typedef struct Queue { int data[N]; int front; int rear; }*Queueptr; //初始化一个空队列 void initQueue(Queueptr &queue); //ex3_2(2)编写循环队列出队函数 int DeQueue(Queueptr &queue); //ex3_2(3)编写入队函数 void InsertQueue(Queueptr &queue, int x); //ex3_2(4)编写函数 aa void aa(Queueptr &queue); //输出队列元素 void printQueueData(Queueptr &queue); /*************************ex3_3******************************/ //定义栈类型 typedef struct dhStack { int top1; int top2; int data[MAX];
******************************************************************************* 一、程序流程说明——有条理的文字或流程图* 由于此次上机题目较多,为了让老师看得更加容易,条理体现在代码注释中。 二、完整程序训练:(注:同样的,由于代码长达 400 多行,所有方法的编写和调用都已经 尽可能按照实验 PPT 题目的顺序来, 所以基础部分和扩展题的代码都不分开编写, 已经在代 码中有详细注释。)
软件技术基础上机实验报告
(学生姓名)(学号) 上机实验三 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:教材第一章习题 12 题——扩展题 1)两个栈共用一个数组空间,它们的栈底分别在数组两端,栈顶相向而行。编写入栈和出 栈函数,实现两个栈元素分别的(但共用)入栈和出栈。 2)main 中函数完成以下测试: a、能否在共用空间上实现两个独立的栈:即能否向两个栈分别输入元素;能否分别从两个 栈取出元素,每个栈取出的元素的顺序符合各自栈的特点 b、能否在共用空间用满时,及时制止新的入栈行为。 例如: 假设数组大小为 6,main 函数实现以下动作,向栈 1 接连入栈 4 个元素后,向栈 2 入栈 2 个元素致栈满,再向栈 2 输入一个元素,将报错。接着从栈 1 出栈 1 个元素,再向 栈 2 入栈,就会成功。最后,两个栈分别出空,观察输出顺序是否满足栈的特点。 ex3_4:教材第一章习题 13 题——扩展题 1)实现一种扩展的循环队列,使得全部的数组空间都能使用,基本思路是当传统循环队列