实验4数组的应用

合集下载

《程序设计基础—VB程序实验》

《程序设计基础—VB程序实验》

《程序设计基础—VB程序实验》说明:实验1和实验2均为电子实验报告,后面8个实验是纸制实验报告。

实验1 计算机基本操作实验目的⑴熟悉计算机,能够正确进行开、关机操作。

⑵熟悉键盘,掌握键盘上所有字符的输入,掌握正确的指法,能够进行中、英文切换。

⑶理解操作系统概念,掌握Windows XP的基本操作,能够利用“控制面板”进行一些参数的设置。

⑷知道“回收站”的功能,学会有关文件、文件夹的基本操作。

⑸学会在计算机上搜索或查找相关的文件或文件夹,掌握通配符的使用。

实验内容⑴熟悉上机实验的计算机,熟悉键盘,学会中、英文输入方式的转换。

⑵学会用正确的指法进行输入,知道键盘上所有字符的输入。

⑶利用“控制面板”修改系统时间、桌面背景、鼠标属性。

⑷在桌面上新建一个文件夹,该文件夹以学生自己的名字+班级+学号的后3位命名。

⑸用文本方式或Word文档,写一段字数不少于300字的自我介绍,以1.doc命名并保存到上述文件夹中。

⑹将上述文件夹复制到ftp://10.10.9.222上。

实验2 常用软件的基本操作实验目的⑴了解Word功能,掌握Word的基本操作,包括页眉/页脚的设置、分栏、页面设置、添加底纹等。

⑵学会文件的保存与打开、打印预览、段落的间隔、首字符位置改变等,能够在Word中插入图片、表格、艺术字、特殊符号等。

⑶了解Excel的功能,掌握Excel的基本操作,包括单元格属性的设置、数字的几种填充形式、单元格的合并与恢复、边框的设置等。

⑷掌握Excel的基本公式的使用,能够用公式进行基本计算。

掌握Excel中的图形制作方法,能够根据表格做出图形。

实验内容⑴将ftp上自己文件夹中的1.doc文件复制到桌面上,然后做如下处理:①将标题“自我介绍”居中;②将文章中第二段的内容进行分栏,要求中间有分割线;③插入一个4行4列的表格,内容为学号、姓名、某门课的成绩;④任意插入一张图片;⑤在文章中的任意位置加底纹。

将做好的文档以2.doc命名并保存。

《C语言程序设计》实验四

《C语言程序设计》实验四

电子科技大学计算机学院标准实验报告(实验)课程名称C语言程序设计电子科技大学教务处制表电子科技大学实验报告四学生姓名:学号:指导教师:王瑞锦实验地点:实验日期:年月日一、实验室名称:软件实验室二、实验项目名称:函数的应用及预处理三、实验学时:2四、实验原理:使用Turbo C软件(简称TC),在微型计算机上,对其程序进行编辑、编译、连接与运行。

Turbo C是一个集成环境,它具有方便、直观、易用的界面和丰富的库函数。

通过上机练习掌握在TC环境下编辑、编译、连接、和运行C程序的方法和过程。

五、实验目的1.掌握C语言中定义函数的方法;2.掌握函数传值调用的方法;3.掌握函数传址调用的方法;4.掌握递归函数的设计方法;5.掌握命令行参数的使用方法;6.掌握函数在不同文件中的编译、链接方法。

六、实验内容编程实验,完成以下上机内容,调试运行程序并完成报告1)、教材第七章习题7.4;2)、编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出;3)、教材第七章习题7.11;4)、教材第七章习题7.15;5)、教材第七章习题7.24;6)、求解汉渃塔(tower of Hanoi)问题。

在一块平板上立有3根立柱,从左到右分别标记为A,B,C。

最初在A柱上放有6个大小不等的圆盘,并且大盘在下面,小盘在上面。

要求将这些盘从A移到C(可以借助B柱)。

条件是:每次只能移动一个盘,并且不允许把大盘放在小盘的上面。

(提示:利用函数的递归调用);七、实验器材(设备、元器件):pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。

软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。

八、实验步骤:实验编程与运行结果⑴编写一个求两个整数的最小公倍数的函数,两个整数由键盘输入,用主函数调用这个函数,并输出结果。

程序文件名为7_4.c,源程序清单如下:#include<stdio.h>lcd(int a,int b){int temp,num1,num2;num1=a;num2=b;while(num2!=0){temp=num1%num2;num1=num2;num2=temp;}return(a*b/num1);}main(){int t,x,y;printf("Please input two integers:");scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}printf("lcd(%d,%d)=%d\n",x,y,lcd(x,y));}运行结果:⑵编写一个实现冒泡法排序的函数,并在主函数中从键盘上输入6个数后进行排序输出。

experiment 4

experiment 4
实验4
实验目的

1、动态对象的创建

设计并实现利用new和delete运算符动态创建和 清除对象的程序。
Harbin Engineering University Computer Science & Technology
2
实验题目

1.编写一个程序,该程序建立一个动态数组 ,为动态数组的元素赋值,显示动态数组的 值,并删除动态数组。
Harbin Engineering University Computer Science & Technology
4
实验题目
2
8
19
实验3 要求:

4
32

5 20 1 45

1、建立树节点类用于存储 左图的树; 2、动态创建树节点数组; 3、按照深度遍历依次动态 创建树节点并存入数组中;
Harbin Engineering University Computer Science & Technology
学号 20112001
课程号 c001
分数 92
c002
c003
操作系统
数据库原理
20112001
20112002 20112003
c002
c003 c002
89
78 90
实验2 具体要求: 1、分别建立Student,Course,Score三个类表示上述三个表的结构; 2、分别建立Student,Course,Score三种类型的数组,动态创建Student, Course,Score对象分别为每个数组赋值; 3、根据三个表的信息输出学生的成绩,格式如下: 学号 姓名 课程名称 分数 20112001 王雪 数据结构 92 20112001 王雪 操作系统 89 …… 20112003 卢萌 操作系统 90

实验4集合的交并和差运算的实现

实验4集合的交并和差运算的实现

班级:计算机11-3班学号:姓名:曲玉昆成绩:_________实验四集合的交、并和差运算的实现1. 问题描述用有序单链表表示集合,实现集合的交、并和差运算。

2. 基本要求⑴对集合中的元素,用有序单链表进行存储;⑵实现交、并、差运算时,不另外申请存储空间;⑶充分利用单链表的有序性,算法有较好的时间性能。

3. 设计思想AB。

单链表的结点结构和建立算法和首先,建立两个带头结点的有序单链表表示集合请参见教材,需要注意的是:利用头插法建立有序单链表,实参数组应该是降序排列。

其次,根据集合的运算规则,利用单链表的有序性,设计交、并和差运算。

AB的元素。

又属于集合⑴根据集合的运算规则,集合中包含所有既属于集合BA?因此,需查找单链表A和B中的相同元素并保留在单链表A中。

算法如下:的元素。

BA或属于集合中包含所有或属于集合⑵根据集合的运算规则,集合B?A xx不相同的元素,则中进行查找,若存在和B中的每个元素,在单链表A因此,对单链表A中。

算法请参照求集合的交集自行设计。

将该结点插入到单链表的元素。

因而不属于集合AB根据集合的运算规则,集合⑶ A-B中包含所有属于集合xx相同的结点,则将该中进行查找,若存在和AB此,对单链表中的每个元素,在单链表中删除。

算法请参照求集合的交集自行设计。

A结点从单链表.template<class T>struct Node{T data;Node<T>*next;};template <class T>class LinkList{public:LinkList(T a[],int n);//建立有n个元素的单链表~LinkList();void Interest(Node<T> *A, Node<T> *B);//求交集void Sum(Node<T> *A,Node<T> *B);/void Subtraction(Node<T> *A,Node<T> *B);void PrintList();void Show(int i);Node<T> *first;};template<class T>LinkList<T>::LinkList(T a[],int n){Node<T>*s;first = new Node<T>;first->next=NULL;for(int i=0;i<n;i++){s = new Node<T>;s->data=a[i];s->next=first->next;first->next=s; }}template <class T>LinkList<T>::~LinkList(){Node<T> *p,*q;p = first;//工作指针p初始化while(p) //释放单链表的每一个结点的存储空间{q = p;//暂存被释放结点p = p->next;//工作指针p指向被释放结点的下一个结点,使单链表不断开 delete q; }}template<class T>void LinkList<T>::Interest(Node<T> *A,Node<T> *B){Node<T> *pre,*p,*q;re = A;p =A ->next;q = B->next;pwhile(p&&q){if(p->data < q->data){pre->next = p->next;p = pre->next;}else if(p->data > q->data){q = q->next;}else{pre = p;p = p->next;q = q->next;} }}//求并集template<class T>void LinkList<T>::Sum(Node<T> *A,Node<T> *B{Node<T> *pre,*p,*q;pre = A; p = A->next;q = B->next;while(p&&q){if(p->data < q->data){pre = p;p = p->next;}else if(p->data > q->data){q = q->next;}else{pre->next = p->next;p = p->next;q = q->next;}}}template<class T>void LinkList<T>::Subtraction(Node<T> *A,Node<T> *B){ Node<T> *pre,*p,*q,*pra;pre = A; pra = B; p = A->next; q = B->next;while(p&&q){if(p->data < q->data){pre = p;p = p->next; }else if(p->data > q->data){q = q->next;}else{pre->next = p->next;p = pre->next;q = q->next;}}}template<class T>void LinkList<T>::PrintList(){Node<T> *p;p=first->next;//工作指针p初始化while(p != NULL)//遍历输出所有元素{cout<<p->data;p = p->next; }cout<<endl;}//菜单函数int meun(){int m;do {c畯?尼请输入对应数字(1、求交集2、求并集3、求差集4、结束运行)<<endl; cin>>m;}while(m<1||m>4);return m;}int a[]={5,4,3,2,1},b[]={6,4,2};int n = 5,m = 3;LinkList<int> SL(a,n);LinkList<int> sl(b,m);LinkList<int> s(a,n);LinkList<int> S(b,m);LinkList<int> l(a,n);LinkList<int> L(b,m);static bool bl = true;template<class T>void LinkList<T>::Show(int i){switch(i) {case 1:{Node<T> *p,*q;p = ;q = ;();();(p,q);();cout<<endl;<<endl;}break;已求交集潣瑵?case 2:{Node<T> *p,*q;p = ;q = ;();();(p,q);();();潣瑵?已求并集<<endl;}break;case 3:{Node<T> *p,*q;p = ;q = ;();();(p,q);();潣瑵?已求差集<<endl;}break;case 4:{bl = false; } break; }}void main(){while(bl == true){int i=meun();(i);}}。

C 语言程序设计中数组的有效运用

C 语言程序设计中数组的有效运用

C语言程序设计中数组的有效运用周亚辉(荆州教育学院,湖北荆州434000)摘要:随着人工智能和计算机技术的不断发展,C语言因其独特优势一直被广泛应用。

数组是C语言中常用的数据类型之一,本文介绍了C语言在程序设计中数组的有效运用,首先文章从数组的排序、插入、删除和应用四个方面介绍了数组的各类应用和编程方法,然后介绍了数组和指针的关系,并以处理转置矩阵为例介绍了数组和指针的联合应用是如何解决实际问题的。

本文所做研究对C语言的数组的学习和应用提供了一定的指导意义。

关键词:C语言;数组;应用中图分类号:TP311文献标识码:A文章编号:1009-3044(2020)35-0209-02开放科学(资源服务)标识码(OSID):1引言自1972年C语言作为一种独立的面向过程的开发语言问世以来,一直作为适应于底层开发的通用设计语言。

因其编译方式简单,低级存储器便可处理编译工作,不需要任何其他编译环境,且支持高校程序设计,多年来一直被广大开发者热衷[1]。

其跨平台输出的特点,决定了C语言程序可在嵌入式处理器等平台中被编译和使用。

与C++和JAVA等面向对象编程的语言不同,C语言的主要目标是实现简易编译、适应低级存储器,高编译效率[2]。

C语言主要的数据类型包括:整数型、字符型、实型、浮点型、枚举型、数组类型、结构体类型、共用体类型、指针类型和空类型。

数组是一组有序的元素组合序列,为了方便计算机进行数据处理[3],把无序的元素按照一定的次序有序组织起来。

从数据处理角度讲,数组能够方便解决各类复杂的数据处理问题。

元素是构成数组的基本单位,不同元素通过顺序号将其顺序标识。

根据数组中元素的类型可以分为字符型数组、数值型数组、指针数组和结构数组等[4]。

虽然C语言中数组类型定义比较简单,但因其由于范围广,在进行排序、字符串处理、计算函数处理等过程中,都离不开数组[5]。

本文介绍C语言设计过程中,数组的有效运用,对其在解决实际问题过程中的方法进行总结。

实验4 排序和检索程序设计

实验4   排序和检索程序设计

实验4 排序和检索程序设计编写程序1:将内存中10个无符号数(长度为2字节)由小到大排序。

编写程序2:在上述已排好序的数据区里查找某一个数。

若找到,显示其在数据区中的位置,否则显示‘N’字符。

编写主程序,通过调用程序1和程序2,实现排序和检索。

【编程参考】1.子程序1流程图(选择排序法,见图)说明:N:数据个数A:有序数组首地址CX:内外循环计数DX:暂存外循环计数BX、BX+SI+2:数组元素相对偏移下标2.子程序2流程图(折半查找法,见图3-2)说明:A:有序数组首地址KEY:查找关键字DH:查找区间上限DL:查找区间下限CH:查找区间中间值DI:存放查找关键字SI:数组元素相对偏移图实验4程序1流程图实验5 系统调用程序设计编程1:将内存中的一串字符输出,再从键盘上输入一串字符,再输出。

编写出源程序。

编程2:在屏幕中间部位开出一个窗口,随后接收用户按键,并把按键字符显示在窗口的最底行;当窗口底行显示满时,窗口内容就自动向上滚动一行;用户按Ctrl+C键时,结束运行。

程序5_1:字符串输入输出程序清单; 程序名:ZHSY4_2_1DATA SEGMENTA DB ‘How do you do?’,0AH,0DHDB ‘$’B DB 20,?,20 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX, DATAMOV DS, AXMOV AH, 09HLEA DX, AINT 21HLEA DX, BMOV AH, 0AHINT 21HMOV DL, 0AH ; 输出换行MOV AH, 02HINT 21HMOV AL, B+1 ; 键盘输入的字符个数送ALMOV AH, 0MOV SI, AX ; 字符个数值存SIMOV DX, OFFSET B+2MOV BX, DXMOV BYTE PTR [BX+SI], ‘$’; 末尾添‘$’以便输出MOV AH, 09HINT 21HMOV AH, 4CHINT 21HCODE ENDSEND START程序5_2:窗口字符显示程序清单; 程序名:ZHSY4_2_2; 常量定义WINWIDTH = 40 ; 窗口宽度WINTOP = 8 ; 窗口左上角行号WINLEFT = 20 ; 窗口左上角列号WINBOTTOM = 17 ; 窗口右下角行号WINRIGHT = WINLEFT+WINWIDTH-1 ; 窗口右下角列号COLOR = 74H ; 属性值PAGEN = 0 ; 显示页号CTRL_C = 03H ; 结束符ASCII码CODE SEGMENTASSUME CS:CODESTART: MOV AL, PAGEN ; 选择显示页MOV AH, 5INT 10HMOV CH, WINTOP ; 清规定窗口MOV CL, WINLEFTMOV DH, WINBOTTOMMOV DL, WINRIGHTMOV BH, COLORMOV AL, 0MOV AH, 6INT 10HMOV BH, PAGEN ; 定位光标到窗口左下角MOV DH, WINBOTTOMMOV DL, WINLEFTMOV BH, COLORMOV AH, 2INT 10HNEXT: MOV AH, 0 ; 接受一个键INT 16HCMP AL, CTRL_C ; 是否结束键JE EXITMOV BH, PAGEN ; 在当前光标位置显示所按键MOV CX, 1MOV AH, 0AHINT 10HINC DL ; 光标列数加1,准备向右移动光标CMP DL, WINRIGHT+1 ; 是否越出窗口右边界JNE SETCURMOV CH, WINTOP ; 窗口内容上移一行MOV CL, WINLEFT ; 空出窗口的最底行MOV DH, WINBOTTOMMOV DL, WINRIGHTMOV BH, COLORMOV AL, 1MOV AH, 6INT 10HMOV DL, WINLEFT ; 光标要回到最左面SETCUR: MOV BH, PAGEN ; 置光标MOV AH, 02HINT 10HJMP NEXTEXIT: MOV AH, 4CHINT 21HCODE ENDSEND START实验6 模块化程序设计主模块A编程:设计一个能实现加、减、乘、除计算的程序,要求该程序接受从键盘输入的两个十六进制数,调用相应的程序模块执行相应的计算后,计算结果以十六进制数输出。

Java练习题 实验4-2新

Java练习题 实验4-2新

实验4-2 数组与字符串【实验目的】1、熟练掌握String类的构造方法以及一些常用的方法的使用;2、熟练掌握StringBuffer类的构造方法以及一些常用的方法的使用;【实验内容】1、运行//TestStringCase2.java程序,分析该程序的作用。

public class TestStringCase2 {public static void main(String[] args) {String str = "Chinese New Year is the most important festival for Chinese people all over the world. It is also called the Spring Festival or the Lunar New Year.";String sFind = "Chinese";int count = 0;int index = -1;while(str.indexOf(sFind) !=-1) {index = str.indexOf(sFind);str = str.substring(index + sFind.length());count ++;}System.out.println(count);}}考虑:能否用indexOf(String str,int fromIndex)方法在不截取字符串的情况下实现。

2、编程实现下列问题,判断下列两个字符串是否相等:str1 = “The Lion King”,str2 = “THE LION KING”,若忽略大小写,是否相等?//Test.java3、编写一个方法,返回一个Double的二维数组。

数组中的元素通过解析字符串参数获得,如字符串参数:"1, 2;3, 4, 5;6, 7, 8"对应的数组应为:a[0][0] = 1.0; a[0][1] = 2.0;a[1][0] = 3.0; a[1][1] = 4.0; a[1][2] = 5.0;//TestArrayParser.java。

C语言上机实验

C语言上机实验

实验一(第1章实验)实验目的:1.掌握运行C语言程序的全过程。

2.熟悉编译环境。

3.初步熟悉C语言程序的语法规定。

4.了解简单函数的使用方法。

实验内容:1.编程且上机运行:求3个整数的和。

2.编程且上机运行:求2个数的和、差、积和商。

3.编程且上机运行:输入3个数,求最大值。

4.编程且上机运行:输入圆的半径,求圆的面积和周长。

5.在屏幕上输出:“hello world!”实验结果:实验二(第3章实验)1.实验目的:理解C语言的类型系统。

实验内容:写程序测试数据-2在类型char,int,unsigned int,long int,unsigned long int 中存储情况。

实验过程:实验结果:参见各种类型的存储实现描述。

2.实验目的:了解混合类型计算中类型的转换规则。

实验内容:写程序测试多种类型数据一起运算时类型的转换及表达式结果的类型。

注意unsigned int和int数据运算时类型转换的方向。

实验过程:/** 类型转换问题* 试问下面两个表达式等价吗?*/#include <stdio.h>#include <stdlib.h>int main() {unsigned int ui,uj;ui = 1;uj = 2;if (ui < uj)printf("\n%u < %u is true !\n", ui, uj);elseprintf("\n%u < %u is false !\n", ui, uj);if (ui - uj < 0)printf("\n%u - %u <0 is true !\n", ui, uj);elseprintf("\n%u - %u <0 is false !\n", ui, uj);system("pause");return 0;}实验结果:参见类型转换规则。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
class Student{
private String name;
private double score;
public void setName(String name){
=name;
}
public String getName(){
return ;
}
public void setScore(double score){
n = in.nextInt();
int []sores=new int[n];
for(i=0;i<n;i++){
sores[i]=(int) (Math.random()*200+1);
}
Arrays.sort(sores);
for(i=0;i<n;i++)
System.out.print(sores[i]+" ");
Arrays.sort(sores);
for(i=j-1;i>=0;i--)
System.out.print(sores[i]+" ");
}
}
(2)编写一个程序,提示用户输入学生数量、各自的姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。
package test4;
import java.util.Scanner;
this.score=score;
}
public double getScore(){
return score;
}
}
public class test源自_b {public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println();
int s;
s=Arrays.binarySearch(sores,55);
if(s<0 || s>n)
System.out.println("55不在数组中");
else
System.out.println("元素55在数组中的位置是:"+s);
}
}
Student []stuArr;
int num;
Scanner reader=new Scanner(System.in);
num=reader.nextInt();
stuArr=new Student[num];
for(int i=0;i<num;i++){
stuArr[i]=new Student();
Student temp=new Student();
temp=stuArr[i];
stuArr[i]=stuArr[j];
stuArr[j]=temp;
}
}
}
for(int i=0;i<num;i++){
System.out.println(stuArr[i].getName()+"\t"+stuArr[i].getScore());
(1)有一列乱序的字符,‘a’、‘d’、‘m’、‘z’、‘h’、‘c’、‘o’,排序并按照英文字母表的逆序输出。
解:按照字母表排序也就是按照ASCLL码值进行排序,只需要定义一个String型数组应用Arrays.sort函数进行排序,然后进行输出就可以了。
package test4;
import java.util.Arrays;
public class test4_a {
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] sores={"a","d","m","z","h","c","o"};
int i,j;
j=sores.length;
}
}
}
(3)现有如下的一个数组:int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}
要求将数组中值为0的项去掉,将不为0的值存入一个新的数组。
package test4;
public class test4_c {
public static void main(String[] args){
j=j+1;
}
}
for(i=0;i<j;i++)
System.out.print(a[i]+" ");
}
}
(4)定义一个长度为n的整型数组,初始值为1~200之间的随机整数。要求:对数组的元素值进行排序,打印排序后的数组。在数组中查找整数55,并输出相应的提示信息。
package test4;
import java.util.Arrays;
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int i,len;
len=oldArr.length;
int j=0;
int []a = new int[len];
for(i=0;i<len;i++){
if(oldArr[i]!=0){
a[j]=oldArr[i];
import java.util.Scanner;
public class test4_d {
public static void main(String[] args) {
int n;
int i;
Scanner in = new Scanner(System.in);
System.out.println("请输入数组的长度:");
stuArr[i].setName(reader.next());
stuArr[i].setScore(reader.nextDouble());
}
for(int i=0;i<num;i++){
for(int j=i+1;j<num;j++){
if(stuArr[i].getScore()>stuArr[j].getScore()){
相关文档
最新文档