实验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;}实验结果:参见类型转换规则。

《c++程序设计》第4章 数组

《c++程序设计》第4章 数组
; (2)字符数组1必须足够大,以便容纳被复制的字符串; (3)字符串2后的'\0'也一起复制到字符数组1中; (4)在赋值运算符“=”没有重载之前,不能用赋值语句将一个字符串常量或字符数组
赋给另一个字符数组,只能用字符串复制函数来处理。例如下面操作是非法的: str2="C++ program"; str1=str2;
4.1 数组的定义与使用
4.1.1 一维数组的定义和使用
1.一维数组的定义与初始化赋值 (1)一维数组的定义
定义格式为:
〔存储类型〕 <类型> <数组名>[<常量表达式>]; 例:int a[10];
表示定义一个名为a的整型数组,有10个元素,分别为a[0]、a[1]、 a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9] 。
int a[ ][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; 或: int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};
二维数组的初始化赋值
② 给数组的部分元素赋初值 给数组的部分元素赋初值的方法与给数组的所有元素赋初值的方法 类似。
3.字符串连接函数strcat()
格式:strcat(<字符数组1>,<字符串2>) 功能:将字符串2连接到字符数组1中的字符串后,其结果存放在字符数组1中。 例如:
char str1[30]="I am a "; char str2[]="student."; strcat(str1,str2); 则字符数组1的内容为"I am a student."。 说明: (1)字符数组1必须是字符数组名,字符串2可以是字符数组名,也可以是字符串常量; (2)字符数组1必须足够大,以便容纳连接后的新字符串; (3)连接时字符串1之后的'\0'取消,只在新字符串最后保留一个'\0'。

大学计算机实验4 实验报告

大学计算机实验4 实验报告

深圳大学实验报告课程名称:计算机基础实验名称:电子表格处理学院:建筑与城市规划学院专业:建筑学报告人:XXX学号:2015XXXX班级:XXXXXX同组人:指导教师:李炎然实验时间:2015.11.16实验报告提交时间:2015.11.22教务处制一.实验目的1.掌握工作表和工作簿的基本操作。

2.掌握公式和函数的使用方法。

3.掌握数据清单的管理方法。

4.掌握数据分析工具和VBA编程方法。

二.实验步骤与结果5.2实验环境1.硬件环境:微机2.软件环境:Windows8中文版,WPS表格20165.3实验内容1.Excel的基本操作⑴Excel工作窗口的组成执行“开始”菜单的“所有程序”/“WPS Office2016”/“WPS表格”命令(如图5-1所示),图5-1“开始”菜单或双击桌面上的“WPS 表格”快捷图标。

点击按钮打开菜单后单击“新建”新建空白表格文件,同时在该工作簿中新建了一个名为“sheet1”的空工作表,该工作表就是默认的当前工作表,如图5-2和图5-3所示。

(2)单元格的操作图5-2新建空工作表图5-3WPS 表格2016工作窗口①选择单元格选择一个单元格,直接单击相应的单元格即可。

若选择一行或一列单元格,将鼠标移动到相应行或列对应的数字或字母处,单击即可。

若选择多行或多列单元格,将鼠标移动到相应行或列对应的数字或字母处,然后拖动到适当的位置松开即可。

②清除单元格选择要清除的单元格,按Delete或单击右键选择“清除内容”命令即可,如图5-4所示。

图5-4快捷菜单③修改单元格内容双击需要修改内容的单元格,然后输入新的内容,单击Enter即可。

④插入单元格首先在要插入单元格的地方选择单元格,选择单元格的数目和即将要插入的单元格。

然后在选择的区域右击,选择“插入”命令,从弹出的对话框中选择要插入的方式。

⑤删除单元格首先在要删除单元格的地方选择单元格,选择单元格的数目和即将要删除的单元格。

C语言上机实验报告 (1)

C语言上机实验报告 (1)

青岛理工大学课程实验报告步骤调试过程及实验结果1 2总结掌握了掌握C语言基本数据类型,变量的定义及变量的初始化和赋值操作,不同的类型数据之间赋值的规律。

了解了C语言的算术运算符的使用以及算术表达式的使用,自加自减运算符的特点及使用。

附录实验一 1#include<>void main(){int a,b,s;scanf("%d%d",&a,&b);printf("s=%d\n",a+b);}实验一 2#include<>#include<>void main(){double a,b,c,d,x1,x2;printf("a b c :");scanf("%lf%lf%lf",&a,&b,&c);d=b*b-4*a*c;if (d<0)printf("无解\n");else if (d==0){x1=(-b)/(2*a);printf("一个解:x=%g\n",x1);}else{x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);printf("两个解:x1=%g,x2=%g\n",x1,x2);}}青岛理工大学课程实验报告课程名称计算机程序设计 (C) 班级软件 111 实验日期姓名赵亚东学号实验成绩实验名称实验二选择结构程序设计实验目的及要求1.掌握赋值语句的使用方法。

2.掌握各种类型数据的输入输出方法,能正确使用各种格式转换符。

3.能正确使用关系运算符及表达式、逻辑运算符及表达式。

4.熟练掌握if语句,学会使用if-else语句设计双分支和多分支结构程序。

5.熟练掌握switch语句的特点,学会使用switch语句设计多分支结构程序。

实验环境Visual ++ Windows 7实验内容3.编写程序,根据输入的学生成绩,给出相应的等级。

实验4-函数

实验4-函数

实验4 函数程序填空1.普通参数本题分值:4题目描述:输入日期的年份和月份,求该月有多少天。

要求编写函数int daynum(int year,int month),求出以year为年份、以month为月份的某个月的天数。

以下是完成此项工作的程序,请在计算机上调试程序以补足其中的空格。

代码://通过日期求某月的天数。

#include<iostream>using namespace std;int main(){int daynum(int year,int month);int y,m,d;cin>>y>>m;if(y<1900 || y>=3000 || m<1 || m>12){cout<<"输入错误!"<<endl;return 0;}d=daynum(__(1)__); //以y、m作实参调用函数,求出该月的天数cout<<"此月的天数为"<<d<<endl;return 0;}int daynum(int year,int month){int days;switch(month){case 1:case 3:case 5:case 7:case 8:case 10:case 12: days=31; break;case 4:case 6:case 9:case 11: days=30; break;case 2: if(year%4==0&&year%100!=0 || year%400==0)days=29;elsedays=28;break;}return __(2)__;}答案:(1) y,m(2) days每空分值:2参考答案:yx3-t1.cpp2.字符数组参数本题分值:4题目描述:编写一个函数,用来求字符串s的任意子串。

《MATLAB程序设计》第4章数组及应用

《MATLAB程序设计》第4章数组及应用
数组在内 存中的地 址
0x0012FF68 a[0] 0x0012FF6C a[1] 0x0012FF70 a[2] 0x0012FF74 a[3]
数组元素
0x0012FF78 a[4]
0x0012FF7C a[5]
8
一维数组在内存中的存储形式
说明:
(1)数组名a表示内存首地址,是地址常量。
(2)数组a中每个数组元素占的内存空间根据 数组类型确定,整个数组占的内存为:数组元 素个数乘以每个元素所占内存空间如: int a[10]; 4×10=40 float b[20]; 4×20=80 double c[5]; 8×5=40 char d[8]; 1×8=8
第4章 数组
教学内容
数组的定义及应用
字符串处理函数
几个常用算法:排序算法(选择排序、
冒泡排序)
1
第4章 数组
重点、难点
数组的定义及应用
常用算法的设计(选择排序、
冒泡排序)
2
第4章 数组
教学目标
熟练掌握数组的定义及应用
掌握字符数组的定义及应用
掌握常用的字符串处理函数
熟练掌握几个常用算法:排序
算法(选择排序、冒泡排序)
分析:所谓转置就是将矩阵的行列互换,即将 a矩阵 的a[i][j]元素变成b矩阵的b[j][i]。
24
#include <iostream> using namespace std; int main() { int a[3][4] ={{1,2,3,4},{3,4,5,6},{5,6,7,8}}; int b[4][3],i,j; for(i=0;i<3;i++) //输出二维数组a[3][4] { for(j=0;j<4;j++) cout<<a[i][j]<<" "; cout<<endl; } for(i=0;i<4;i++) //将矩阵a转置给矩阵b for(j=0;j<3;j++) b[i][j]=a[j][i]; for(i=0;i<4;i++) //输出二维数组b[4][3] { for(j=0;j<3;j++) cout<<b[i][j]<<" "; cout<<endl; } return 0;}

实验4 串操作

实验4 串操作

实验报告四串操作班级:姓名:学号:专业:一、实验目的:(1)掌握串的定义、术语。

(2)掌握串的基本操作算法。

(3)掌握串的匹配算法。

二、实验内容:1.在常量串MyString类中,增加以下方法,并求各算法的时间复杂度。

public MyString trim() //删除串中所有空格public char[] toCharArray() //返回字符数组public MyString toLowerCase() //返回将大写字母转换成小写字母的字符串public MyString toUpperCase() //返回将小写字母转换成大写字母的字符串public MyString replace(char old, char newc) //用字符newc替换串中的字符old public Boolean equals(Object obj) //判断两个串是否相等public Boolean equalsIgnoreCase(String1 str) //判断两个串是否相等,忽略大小写public int compareTo(MyString str) //比较两个串大小,实现Comparable接口public int compareToIgnoreCase(MyString str) //比较两个串大小,忽略大小写public Boolean startsWith(MyString prefix) //判断prefix是否前缀子串public Boolean endsWith(MyString suffix) //判断suffix是否前缀子串源代码:package Ex4.Ex4_1;import java.util.Arrays;/*** Created by 74062 on 2017/3/27.*/public class MyString implements Comparable{public static void main(String[] args) {MyString myString1 = new MyString("a b c d");MyString myString2 = new MyString("A B C D");System.out.println(new MyString("a b c d").trim().toString()); System.out.println(pareTo(myString2));System.out.println(pareToIgnoreCase(myString2)); System.out.println(myString1.toUpperCase());System.out.println(myString1.startsWith(new MyString("a "))); System.out.println(myString1.endsWith(new MyString(" d")));System.out.println(myString1.replace('a','A'));}private final char[] values;public MyString(char[] values) {this.values = values;}public MyString(String string){values = new char[string.length()];for(int i=0;i < string.length();i++){values[i] = string.charAt(i);}}public MyString trim(){char[] result = new char[values.length];int count = 0;int j = 0;for(int i=0;i<values.length;i++){if(values[i] != ' '){result[j] = values[i];j++;}elsecount++;}result = Arrays.copyOf(result,result.length-count);return new MyString(result);}public int length(){return values.length;}public char[] toCharArray(){char[] temp = new char[values.length];for(int i=0;i<values.length;i++){temp[i] = values[i];}return temp;}public MyString toLowerCase(){char[] temp = new char[values.length];for(int i=0 ; i<values.length;i++){if(values[i]>=65&&values[i]<=90){temp[i] = (char)(values[i]+32);}elsetemp[i] = values[i];}return new MyString(temp);}public MyString toUpperCase(){char[] temp = new char[values.length];for(int i=0 ; i<values.length;i++){if(values[i]>='a' && values[i]<='z'){temp[i] = (char)(values[i]-32);}elsetemp[i] = values[i];}return new MyString(temp);}public MyString replace(char old, char newc){ char[] temp = new char[values.length];for(int i=0;i<values.length;i++){if(values[i] == old ){temp[i] = newc;}else {temp[i] = values[i];}}return new MyString(temp);}public boolean equals(Object obj){char[] temp = ((MyString)obj).toCharArray();for(int i=0;i<values.length;i++){if(temp[i] != values[i]){return false;}}return true;}public Boolean equalsIgnoreCase(MyString str) {return this.toLowerCase().equals(str.toLowerCase());}@Overridepublic int compareTo(Object o) {char[] chars = ((MyString)o).toCharArray();int length = Math.min(chars.length,values.length);for(int i=0;i<length;i++){if(values[i]-chars[i]<0){return -1;}else if(values[i]-chars[i]>0){return 1;}}if(values.length>chars.length){return 1;}else if (values.length<chars.length){return -1;}elsereturn 0;}/*** 比较两个串大小,忽略大小写* @param str* @return*/public int compareToIgnoreCase(MyString str){return this.toLowerCase().compareTo(str.toLowerCase()); }/*** 判断prefix是否前缀子串* @param prefix* @return*/public Boolean startsWith(MyString prefix){if(values.length<prefix.length()){return false;}char[] chars = prefix.toCharArray();for(int i=0;i<prefix.length();i++){if(values[i]!=chars[i]){return false;}}return true;}/*** 判断suffix是否前缀子串* @param suffix* @return*/public Boolean endsWith(MyString suffix){if(values.length<suffix.length()){return false;}char[] chars = suffix.toCharArray();int i = this.length()-1;for(int j=suffix.length()-1;j>=0;j--){if(values[i]!=chars[j]){return false;}i--;}return true;}@Overridepublic String toString() {StringBuffer stringBuffer = new StringBuffer();for(int i=0;i<values.length;i++){stringBuffer.append(values[i]);}return stringBuffer.toString();}}2.统计在一个串中各字符的出现次数。

程序设计基础综合实验 综合实验四:学生电子通讯录管理系统—链表的应用实验报告

程序设计基础综合实验   综合实验四:学生电子通讯录管理系统—链表的应用实验报告
实验名称: 班 级: 实验地点:
**大学**学院
程序设计基础综合实验 实验报告
综合实验四:学生电子通讯录管理系统—
一、实验内容:
问题描述:基于结构体链表,重新设计“综合实验二:学生电子通讯录管理系统——数组的 应用”里涉及的学生电子通讯录管理系统,要求重新设计后的系统应用以下功能。
二、实验源代码:
三、实验结果与分析(含测试数据、运行结果截图、分析和实验总结等):
四、教师评语: 实验成绩:
教师:谢胜利
1.链表应用:输入功能。基于用户键盘输入,创建学生个人通讯信息链表,要求对用户输入 的个人信息进行有效性检查。
2.链表应用:输出功能。在上面设计的基础上,设计链表输出函数。 3.链表应用:查找功能。在上面设计的基础上,设计链表查找函数。要求可以根据 1)学号 查找、2)姓名查找、3)手机查找、4)性别查找、以及 5)生日范围查找等。然后,在显示器上 输出查找到的学生信息。 4.链表应用:插入功能。在上面设计的基础上,设计节点插入函数; 5.链表应用:删除功能。在上面设计的基础上,基于查找函数,设计节点删除函数,要求能 够根据查找的结果删除相应的节点。然后,在显示器上显示删除后的链表内容。 6.链表应用:排序功能。在上面设计的基础上,设计链表排序函数。要求可以根据 1)学号 排序、2)姓名排序、3)性别排序、4)手机排序、以及 5)生日排序等。然后,在显示器上,输 出排序后的通讯录。 7.链表应用:保存功能。在上面设计的基础上,设计链表保存到外部文件的函数; 8.链表应用:创建功能。在上面设计的基础上,设计基于外部文件创建链表的函数。

c语言程序设计实验报告怎么写

c语言程序设计实验报告怎么写

c语言程序设计实验报告怎么写C语言程序设计实验报告一、实验目的二、实验环境三、实验内容1. 实验一:C语言基础练习2. 实验二:流程控制语句练习3. 实验三:函数练习4. 实验四:数组和指针练习四、实验过程及结果分析1. 实验一过程及结果分析a. 编写程序代码的步骤及思路b. 程序运行结果及分析2. 实验二过程及结果分析a. 编写程序代码的步骤及思路b. 程序运行结果及分析3. 实验三过程及结果分析a. 编写程序代码的步骤及思路b. 程序运行结果及分析4. 实验四过程及结果分析a. 编写程序代码的步骤及思路b. 程序运行结果及分析五、总结与体会一、实验目的本次实验旨在通过对C语言基础知识的学习,掌握C语言编程技能,提高编程能力。

同时,通过对不同类型题目的练习,培养学生解决问题和思考问题的能力。

二、实验环境本次实验使用的是Visual Studio 2019开发环境,操作系统为Windows 10。

三、实验内容本次实验共分为四个部分,分别是C语言基础练习、流程控制语句练习、函数练习和数组和指针练习。

具体内容如下:1. 实验一:C语言基础练习a. 编写一个程序,输入两个整数,输出它们的和、差、积和商。

b. 编写一个程序,输入一个三位数的整数,将其百位数与个位数交换后输出。

c. 编写一个程序,输入六个整数,按照从小到大的顺序输出。

2. 实验二:流程控制语句练习a. 编写一个程序,输入两个整数a和b,如果a>b则交换它们的值,并输出结果。

b. 编写一个程序,输入三个整数a、b和c,求出其中最大值并输出。

c. 编写一个程序,输入一个字符c,如果它是大写字母,则将其转换成小写字母并输出;如果它是小写字母,则将其转换成大写字母并输出;否则不做处理。

3. 实验三:函数练习a. 编写函数sum(n),计算1到n之间所有整数的和,n由用户输入。

b. 编写函数isprime(n),判断一个整数n是否为素数,n由用户输入。

C语言实验指导书

C语言实验指导书

实验项目:实验一最简单的C程序设计(所属课程:《C语言程序设计》学时:2)一、实验目的1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。

2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。

3.掌握顺序结构程序设计的基本思路。

二、实验条件Pc和vc++编程环境三、实验内容1.熟悉编程环境。

2.输入并运行一个C程序3.掌握各种格式转换符的正确使用方法。

4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。

要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。

5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar 函数和printf函数输出这两个字符。

四、实验步骤编写程序,输入数据,观察结果。

五、实验结果观察结果和预期是否一致。

实验项目:实验二选择结构程序设计(所属课程:《C 语言程序设计》学时:2)一、实验目的1.了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。

2.学会正确使用逻辑运算符和逻辑表达式。

3.熟练掌握if 语句和switch 语句二、实验条件Pc 和vc++编程环境三、实验内容1.有一函数:≥−<≤−<=)10x (113x )10x 1(12x )1x (x y用scanf 函数输入x 的值,求y 值。

运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。

2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。

90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。

3.输入4个整数,要求按由小到大顺序输出。

四、实验步骤编写程序,输入数据,观察结果。

五、实验结果观察结果和预期是否一致。

实验报告_数组的应用

实验报告_数组的应用

一、实验目的1. 理解数组的定义和特点。

2. 掌握数组的创建、初始化和赋值方法。

3. 熟悉数组的基本操作,如遍历、排序、查找等。

4. 了解数组在实际编程中的应用。

二、实验环境1. 操作系统:Windows 102. 编程语言:C/C++3. 开发环境:Visual Studio 2019三、实验内容1. 数组的定义和特点数组是一种有序的数据集合,用于存储具有相同数据类型的元素。

数组具有以下特点:(1)数组中所有元素具有相同的数据类型;(2)数组中的元素按照一定顺序排列;(3)数组的大小在创建时确定,一旦创建,大小不能改变;(4)数组可以通过下标访问其中的元素。

2. 数组的创建、初始化和赋值(1)创建数组在C/C++中,可以通过以下方式创建数组:int arr[10]; // 创建一个整型数组,包含10个元素int arr2[3][4]; // 创建一个二维整型数组,包含3行4列的元素(2)初始化数组在创建数组时,可以同时初始化数组元素:int arr[5] = {1, 2, 3, 4, 5}; // 初始化整型数组arr (3)赋值数组在创建数组后,可以对数组元素进行赋值:int arr[5];arr[0] = 1;arr[1] = 2;arr[2] = 3;arr[3] = 4;arr[4] = 5;3. 数组的基本操作(1)遍历数组可以通过循环结构遍历数组元素:for (int i = 0; i < 5; i++) {printf("%d ", arr[i]);}(2)排序数组可以使用冒泡排序算法对数组进行排序:void bubbleSort(int arr[], int n) {for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - i - 1; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}}}(3)查找数组元素可以使用线性查找算法查找数组元素:int linearSearch(int arr[], int n, int x) {for (int i = 0; i < n; i++) {if (arr[i] == x) {return i;}}return -1;}4. 数组在实际编程中的应用(1)实现冒泡排序算法在C/C++中,可以使用数组实现冒泡排序算法,如上述代码所示。

数组应用实验报告

数组应用实验报告

数组应用实验报告
《数组应用实验报告》
在计算机科学领域,数组是一种非常重要的数据结构,它可以存储多个相同类型的数据,方便进行管理和操作。

在本次实验中,我们将探讨数组的应用,并通过实验报告来展示其在不同场景下的使用情况。

实验一:数组的创建和初始化
在本实验中,我们首先学习了如何创建和初始化数组。

通过编写简单的代码,我们成功创建了一个包含整数类型的数组,并对其进行了初始化。

我们发现,数组的索引是从0开始的,这意味着我们可以通过索引来访问数组中的元素。

实验二:数组的遍历和操作
接下来,我们学习了如何遍历数组并对其进行操作。

我们使用循环结构来遍历数组中的每个元素,并进行相应的操作。

我们发现,使用数组可以方便地对一组数据进行统一的处理,比如求和、平均值等操作。

实验三:多维数组的应用
在这个实验中,我们学习了多维数组的应用。

通过创建二维数组,我们可以模拟二维空间中的数据结构,比如矩阵、图像等。

我们发现,多维数组可以方便地表示复杂的数据结构,并且可以通过多重循环来对其进行遍历和操作。

实验四:数组的应用案例
最后,我们通过实际案例来展示数组的应用。

我们使用数组来实现一个简单的学生成绩管理系统,通过输入学生的成绩,然后计算平均分、最高分、最低分等统计数据。

我们发现,数组的使用大大简化了数据的管理和操作,提高了程序的效率和可维护性。

综上所述,本次实验通过实验报告展示了数组在不同场景下的应用情况。

通过学习和实践,我们深刻理解了数组的重要性和灵活性,相信在今后的编程工作中,我们将能够更加熟练地运用数组来解决实际问题。

数组(4)--应用1

数组(4)--应用1
2 2 2 3 3 3 4 0 0 5 5 5 6 0 0 7 7 7 8 0 0 9 9 0 10 0 0 11 11 11 12 0 0 13 13 13 14 0 0 15 15 0 16 0 0 17 17 17 18 0 0 19 19 19 20 0 0 … … … … … …
江苏省锡山高级中学 信息技术教研组
求素数表:输入一个自然数n 例 求素数表:输入一个自然数n, 输出1 之间的所有素数. 输出1到n之间的所有素数.
输入一个数,判断是否为素数.
for i:=2 to n-1 do if n mod i=0 then flag:=true;
江苏省锡山高级中学 信息技术教研组
program ex; ; var x,i,n:integer; flag:boolean; ,, ; begin readln(n); ; for x:=2 to n do begin flag:=true; flag:=true; for i:=2 to x div 2 do 2 if x mod i =0 then flag:=false; flag:=false; if flag then write(x,' '); , ; end; ; readln; ; end.
想一想:将十进制小数转化为二进制小数用的是乘2取整的方 想一想:将十进制小数转化为二进制小数用的是乘2 如果要求将十进制小数转化为二进制数,程序该如何改动? 法,如果要求将十进制小数转化为二进制数,程序该如何改动? 十进制实数改成二进制呢? 十进制实数改成二进制呢? 知识回顾:将十进制小数 知识回顾:将十进制小数0.625转换成二进制小数 转换成二进制小数
一维数组的应用
进制转化 筛法求素数
一维数组的应用—> 一维数组的应用 >进制转化
  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()){
相关文档
最新文档