实验项目4:数组1

合集下载

jsp试验报告实训4 JSP内置对象-1

jsp试验报告实训4 JSP内置对象-1

实训4 JSP内置对象
实验目的:了解JSP内置对象,及其使用方法
掌握使用JSP的request对象处理页面提交信息的基本方法
实验内容:
实验一:利用request对象获取表单提交信息
制作一个用户信息提交页面,如下所示:
注意内容:
要解决其中的多项选择“爱好”这一项的信息获取,需要采用到数组,使用方法如下:String 数组1[]=request.getParameterValues("输入框名");
提交的信息便存储进入数组1中,输出时候使用循环即可。

用户填写完成后完成,提交到另一个页面,将用户信息显示出来,如下示:
要求:1.页面提交的用户姓名为中文,不能出现乱码
2.表单中的多项选择内容要求正确显示
实训项目二:request对象
在前面实验的基础上,编写程序实现,若用户提交的用户名和密码为空的时候,提示有关错误信息,并跳转回用户信息填写页面,若信息不为空,则跳转到欢迎页面,显示XX用户,欢迎您。

实验步骤:
建立工程—编写程序—编译程序—调试、运行程序。

(可以参考“实验一“中任意一种方法来进行)
实验小结:。

C语言实验五实验报告——数组

C语言实验五实验报告——数组

C语言实验五实验报告——数组一、实验目的:1.了解数组的概念和基本使用方法;2.掌握一维数组和二维数组的定义、初始化、赋值及基本运算实现;二、实验内容与方法1.理论部分数组是一些具有相同类型的数据元素按一定顺序排列组合而成的集合,在程序设计中它是一个变量列表,由若干相同数据类型的元素组成。

通常用一个名字和一个下标来表示,下标可理解为数组元素在数组中的位置编号。

数组的特点:数组是根据顺序排列的元素的集合;所有的元素必须是相同类型。

数组的定义方法:1. 定义数组,数组元素类型 + 数组名[元素的个数];2. 元素的个数必须是整型常量或变量,定义时必须明确、指定元素的个数;3. 声明一个数组时,除了要指定数组的类型外,还要指定数组的名称;4. 数组定义完后,需要对其中的每个元素进行初始化。

可以在定义数组时赋初值,也可以通过赋值符号,对数组元素逐个进行赋值。

数组的初始化:1. 元素个数之间用逗号分开,最后1个元素后无逗号;2. 支持部分元素初始化;3. 定义和初始化可以一步完成。

二维数组数组可分为一维和多维数组。

一维数组可以看作是包含多个元素的向量,而二维数组可以看做是包含了多个一维数组的矩阵。

二维数组有行号和列号,因此,它同样需要两个下标。

数组元素类型数组名[行数][列数];数组元素类型数组名[ ][ ] = { {元素1, 元素2, ……}, {元素1, 元素2, ……}, ……{元素1, 元素2, ……}}2.实验代码**问题1:**定义一个一维数组a,包含有5个元素,分别为1,2,3,4,5;**问题2:**定义一个一维数组a,接收用户从键盘输入的5个数值,分别打印存储的各个元素。

三、实验结果与分析结果分析:定义了一个5个元素的一维数组a,并初始化了各个元素的值,其元素分别为1,2,3,4,5.循环遍历一遍数组a,并打印数组元素。

程序执行正常。

3.针对问题3:定义一个二维数组a,由4行3列组成,每个元素初始化为0,打印存储的各个元素;程序运行结果如下:四、实验总结:该实验主要是通过对C语言数组的理论知识和基本操作进行练习,加深了对数组的了解和掌握。

实验四 Java知识

实验四 Java知识

实验四java知识本实验目的是练习如何创建Java 的基本语法,以及面向对象的知识,为后续的实验作好准备工作。

【课堂练习】一(1)对数组排序【实验效果】根据实验要求,您必须在浏览器的地址栏中输入:Tomcat服务器的IP地址和端口号,如:http://localhost:8080/sort.jsp【课堂练习】Java面向对象思想课堂练习——包创建和引用案例:新建Project项目,在该项目中创建aa.bb包,然后再引入java.util包中的Date类,并创建ShiJian类,练习包的创建和引用。

课堂练习——相同包之间的访问案例:在已经建立Project项目中创建mr.bbb包,然后在该包中创建Test和ImpTest两个类,测试同包之间类的访问。

课堂练习——不同包中类之间的访问案例:在已经建立Project项目中创建mr.aaa包和mr.zzk包,然后分别在包中创建Exam 和ImpExam两个类,测试不同包之间类的访问。

课堂练习——final变量案例:在已经建立Project项目中创建mingri包,并在该包中创建T1类,在该类中定义一个final变量,然后再主方法中创建T1类的实例,并测试能否改变final变量的值。

课堂练习——final方法案例:在已创建的项目Project的包mingri中创建T1类的之类ExT1,然后再ExT1类中测试是否能重写父类T1中的final方法。

课堂练习——继承性案例:在项目的包aaa中创建A和B两个类,使类B是类A的子类,然后在子类B中创建B的实例,并通过该实例分别调用类A和类B的方法,掌握继承的原理。

课堂练习——抽象类案例:在项目的包aaa中创建抽象类Example及其子类SubExample,在抽象类Example 中分别定义一个成员方法和一个抽象方法,并在子类中进行测试。

课堂练习——权限访问案例:在项目的包aaa中创建类Exm,在该类中分别定义4种权限修饰符的成员变量并附初值,然后在主方法中创建类的实例,并分别输出这4个成员变量的值,测试上述4种权限修饰符的成员变量在当前类中的可见性。

四《C语言程序设计》实验四选择结构程序设计实验目的1、掌握分支

四《C语言程序设计》实验四选择结构程序设计实验目的1、掌握分支

四《C语言程序设计》实验四选择结构程序设计一、实验目的1、掌握分支语句的格式和功能。

2、掌握选择结构的程序设计。

3、掌握分支结构的嵌套。

二、实验内容与要求1、编程,计算下列分段函数值:x2+3x-4,x<0且x≠-4f(x)= x2-6x+5,0=x<10且x≠1及x≠5x2-4x-1,其他要求如下:(1)用if语句实现分支。

自变量x与函数值均采用双精度类型。

(2)自变量x值从键盘输入,且输入前要有提示信息。

(3)数据的输出格式采用以下形式:x=输入值,f(x)=计算值(4)分别以-3.0,-1.0,0.5,1.5,2.5,3.5,4.5,5.5为自变量,运行该程序。

记录结果。

(5)源程序以sy4_1.c存盘。

2、编程,将一个百分制成绩转换成等级制成绩。

具体要求如下:(1)百分制与等级制的对应关系如下:(3)用键盘输入百分制成绩,输入前要有提示信息。

(4)要能判断输入数据的合理性,对于不合理的数据应输出错误信息。

(5)输出结果中应包含百分制成绩和成绩等级。

(6)分别输入成绩-10,99,60,85,70,101,45,运行该程序。

记录结果。

(7)源程序以sy4_2.c存盘。

三、思考题1、实现选择结构程序设计的方法有哪几种?各有什么特点?适用条件是什么?2、如何设置选择结构中的判断条件?它在程序设计中的意义何在?实验五循环结构程序设计(1)一、实验目的1、掌握循环的概念。

2、掌握三种常用的循环语句的格式和功能。

3、初步掌握循环结构的编程方法。

二、实验内容与要求1、编程,分别利用三种循环语句,求1+2+3+…50之和。

要求如下:(1)输出计算结果;数据的输出格式采用以下形式:1+2+3+…50=计算值(2)源程序分别以sy5_1.c、sy5_2.c、sy5_3.c存盘。

2、编程,穷举算法解百马百担问题(有100匹马驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,问有大、中、小马各多少?)要求如下:(1)输出计算结果;在数据输出之前应有提示信息。

软件工程实验总结(四个实验)

软件工程实验总结(四个实验)

软件工程实验报告实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,以及结构化分析所采用的基本图形工具。

2. 实验内容:假设你在一所职业髙中工作,负贵该校信息系统的建设和维护。

财务科长请你研宂用学校拥有的PC机生成工资明细表和各种财务报表的可能性。

3. 实验要求:1. 问题定义:谙在这个阶段描述你需要解决的问题。

包括用户面临的问题和预期的项目规模。

最后生成一份问题定义报告书。

2. 可行性研宂:在这个阶段产生处理工资事务的大致过程,画出髙层逻辑模型,并且画出相应的数据流图,建立数据字典。

3. 对此系统进行成本效益分析。

4. 实验步骤:4.1问题定义报告书1. 项目名称:工资支付2. 问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越來越大。

目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本髙。

今后学校规模将进一步扩大,人工计算工资的成本还会进一步提髙。

3. 项目目标:1)研宂开发费用较低的新工资支付系统的可能性。

4项目规模:1)开发成本应该不超过7.2万元5. 初步设想:1)用学校自己的计算机系统生成工资明细表和财务报表6. 可行性研宂:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研宂。

这个研宂的成本不超过4000元。

4.2可行性研究:1.处理工资事务的大致过程:1)每月月末教师把他们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况登记在任务表上,汇总后交给财务科。

2)两名会计根据这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。

然后,把记有每名教职工工资总额的工资表报送银行。

3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。

2髙层逻辑模型,4. 数据字典:1)名字:授课情况登记表别名:描述:记录每个教师的当月完成的课时及任务。

定义:授课情况登记表=教职工编号+姓名+职务+职称+基本工资+生活补贴+ 书报费+交通费+洗理费位罝:输出到打印机字名述义置名别描定位 名别描 :教职工编号 :唯一的标识一个教职工 :教职工编号=8{字符}8 :授课情况登记表: 义 定S .字名⅛义位 名别描定 每个人当月的实发工资数记录每个教师当月应发的工资数每个人当月的实发工资数=课时费+岗位津貼-个人所得税-住房公积金-保险费 工资明细表 工资明细表 置 位 记录每个教职工每个月应得的和应扣除的费用 工资明细表=每个人当月的实发工资数+课时费+岗位津貼+个人所得税+住 房公积金+保险费 输出到打印机 4.3成本效益分析:1. 低成本系统:解决方案:把每月发一次工资改为每两个月发一次工资,则人工计算工资的成本大约可 减少一半,即每年可节省1.2万元。

实验四 数组与指针

实验四 数组与指针

所包含的10天再累加到Tday中。
内容四:测试数据
2012 2012 2012 2012 年 2月10日 年 5月10日 年10月10日 年12月21日 存1000元 存200元 取300元 计息 年利率0.36%
计算结果:利息 = 3.38元
计算过程: 5月10日 日积数 1000元*90天
10月10日
注:5 即金额变动日期3.10减去开户日期3.5,也即1000元的存款天数。 10 即计息日期3.20减去金额变动日期3.10,也即3000元的存款天数。
由此,我们看出利息的计算重要的是计算出每次金额变动时日积数 的累计值,而要计算此值首先需要计算每次金额变动时前次金额的存款 天数。
内容四:活期储蓄类设计
主控函数实现:
Int main() { int i,n ; float s ; char na[10]; Cstudent st[N]; //定义对象数组 for(i=0;i<N;i++) { cout<<"输入学号 姓名 成绩:"; cin>>n>>na>>s; st[i].setdata (n ,na ,s); //调用设置函数给对象的数据成员赋值 } cout<<endl<<" 输出数据:"<<endl; cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(5)<<"成绩"<<endl; for(i=0;i<N;i++) st[i].disp(); cout<<" 平均分="<<setprecision(4)<<Cstudent::Avg()<<endl; return 0; }

实验四小学生四则运算需求分析结对报告

实验四小学生四则运算需求分析结对报告

实验四⼩学⽣四则运算需求分析结对报告任务⼀:实践软件需求获取⽅式(1)在线咨询⽼师层⾯:特意找到了母校的⽼师,由于双⽅地处较远所以采⽤电话等⽅式进⾏的咨询。

(2)实地访问学⽣层⾯:询问了⼏位⼩学⽣,主要是家教的时候顺便访问的。

(3)调查问卷1.⽤户⾓⾊本次调查中,学⽣和家长⼈数基本上相同,⽼师相⽐于其他两个⼈数较少。

2.学⽣所在年级(包括教师的学⽣、家长的孩⼦)在本次调查中⼀年级的学⽣占⼤多数,其他年级的⼈数基本上⼀致。

3.学⽣通常使⽤电脑及是否使⽤四则运算的系统情况:通过调查发现⼤多数⼩学⽣在⽇常⽣活中还是会使⽤电脑,并且能够接受四则运算这类软件,说明⼩学⽣四则运算的软件有很⼤的市场。

4.运算的难易程度:通过分析柱状图发现很少有⼈选择难度⼤的平⽅运算,说明在开发软件的时候应该在难易程度的设置上要费⼤⼒⽓,难度应该适中,适当的应当设置⼀些简单题来提⾼学⽣的信⼼。

5.运算题数量:通过分析圆环图不难发现,⼤多数⼈(⽆论学⽣、家长还是⽼师)建议题量应该设置少⼀些,适当的让学⽣进⾏休息,学⽣如果想提⾼能⼒可进⾏多轮测试,这样既照顾到了优⽣,也照顾到了后进⽣。

6.软件功能: 出题功能 错误显⽰功能 错题重测功能 ⿎励功能 专项训练功能 监督功能通过调查及分析发现,学⽣希望四则运算系统具有⾃动出题功能,错误显⽰及重测功能,⿎励功能,⼤多数⼈认为混合型运算相⽐与专项训练对学⽣更有利,对于监督功能的不同意见基本上平衡,所以我认为可以将监督功能设置为可选择的功能,除此之外,还有⼈提出了应当设置登陆界⾯,⽼师检查功能,成绩应当保证准确性还要及时统计等。

7. 页⾯风格及背景:四则运算系统是针对⼩学⽣的,因此在设置界⾯的时候应当结合⼩学⽣的性格特征,采⽤⼩动物其他具有童趣的界⾯或颜⾊。

任务⼆:任务三:⽬录1.引⾔ (2)1.1 编写⽬的 (2)1.2 背景 (2)1.3 参考资料 (2)2.任务概述 (2)2.1 ⽬标 (2)2.2 针对⽤户 (4)2.3 假定和约束 (4)3.需求规定 (5)3.1 对功能的规定 (5)3.1.1 主要功能 (5)3.1.2 功能描述(详细) (5)3.1.3 ⽤户界⾯ (6)3.1.4 ⽤户场景 (10)3.2 对性能的规定 (12)3.2.1 精度 (12)3.2.2 时间特性要求 (13)3.2.3 灵活性 (13)3.3 输⼊输出要求 (13)3.4 数据管理能⼒要求 (13)3.4.1出题及答案表 (13)3.4.2 运算符号表 (14)3.4.3 符号优先级处理表 (14)3.4.4 得分计算表 (14)3.5 故障处理要求 (15)3.6 故障处理要求 (15)3.7 其他要求 (15)4.运⾏环境规定 (15)4.1 设备 (15)4.2 开发环境 (16)4.3 接⼝ (16)4.4 控制 (16)5.验收标准 (16)1.引⾔1.1 编写⽬的 本⽂档的⽬的是详细地介绍《⼩学⽣四则运算练习软件》所包含的需求,使得⽤户能确认该软件的确切需求以及开发⼈员能够根据需求设计编码完善产品,以下叙述将结合⽂字描述,流程图,界⾯原型以及类图等来描述《⼩学⽣四则运算练习软件》的功能,性能,⽤户界⾯,运⾏环境,外部接⼝以及针对⽤户操作给出的各种响应。

11《C语言程序设计》教案第四章数组(1)—一维数组

11《C语言程序设计》教案第四章数组(1)—一维数组

min_p=j;} printf(“the min is%d,position %d”,min,min_p);
} (5)数组在内存中的存放 例如 int data[3];则在内存中的状态如下:
1000 1002
1004
data[0] data[1] data[2]
讨论、思考题、作业: 实验指导书习题
f[0]=1;f[1]=1;f[2]=f[0]+f[1];f[3]=f[2]+f[1];依次类推找出 公式为: f[i]=f[i-1]+f[i-2]; 循环语句为:for(i=2;i<20;i++) 程序代码: main()
{ int i;
static int f[20]={1,1};
/*定义 20 个元素的数组
参考资料(含参考书、文献等):
叶斌 陈世强. C 语言程序设计. 北京:科学出版社 授课类型:理论课 讨论课□ 实验课□ 练习课□ 其他□ 教学方式:传统授课 双语□ 讨论□ 示教□ 指导□ 其他□ 教学资源:多媒体 模型□ 实物□ 挂图□ 音像□ 其他□
定义了一个二维数组 b,该数组由 9 个元素构成,其中每一个数组元素都属于浮点(实
数)数据类型。
数组
b
的各 个数据元 素依次
是:b[0][0],b[0][1],b[0][2],b[1][0],b[1][1],b[1][2],b[2][0],b[2][1],b[2][2](注意:下标从 0-2)。
每个数组元素也都可以作为单个变量使用。
例如:int a[10]={0,0,0,0,0,0,0,0,0,0}; 或 int a[10];系统会对所有数
组元素自动赋 0 值。
4)在对全部数组元素赋初值时,可以不指定数组长度。

实验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的任意子串。

VB项目4数组习题答案

VB项目4数组习题答案

一、单选题1.在中,一组具有相同名字、不同下标的变量称为____________。

A.数组B.变量C.同类数据D.同类变量2.一维数组的大小为______________。

A.上界+下界+1B.上界+下界-1C.上界-下界+1D.上界-下界-13.数组的存放是按____________存放的。

A.数据大小B.数据类型C.列D.行4.数组具有相同的_____________。

A.下标B.类型C.数值D.存放地址5.重定义数组大小的语句是______________。

A.Dim语句B.ReDim语句C.Static语句D.Public语句6.使用Dim A(100) As Integer 语句声明了数组A,其下标的取值范围为____________。

A.0~100B.1~100C.0~99D.1~997.若使用Dim A(100) As Integer 语句声明了数组A,下列引用错误的是___________。

A.A(0)=2B.A(1)= -28C.A(56)= A(-56)D.A(100)=A(0)+A(55)8.如果要对已经声明的数组重新定义大小,并保留原有数据,可使用语句___________。

A.DimB.ReDimC.Dim PreserveD.ReDim Preserve9.对于Integer 类型的静态数组,如果没有赋值,则所有元素的值为____________。

A.空B.0C.1D.最大数10.执行重定义数组大小语句ReDim A(UBound(B))后,A数组的上界为______________。

A.B数组的上界B.B数组的上界+1C.B数组的上界- 1D.不确定11.下列数组声明语句中正确的是______________。

A.Dim A(9) As Single ={1,2,3,4,5,6,7,8,9,10}B.Dim A() As Single ={1,2,3,4,5,6,7,8,9,10}C.DimA() As Single ={1,”abc”,”ccc”,4,5,6,7,8,9,10}D.Dim A( , ) As Single ={1,2,3,4,5,6,7,8,9,10}12.若有声明Dim a(2 ,3) as Integer,则数组a共有元素个。

程序设计1实验习题实验一

程序设计1实验习题实验一

程序设计1实验习题实验一程序设计(1)实验习题实验一(1)运行以下程序,并解释运行结果。

#includestdio.hintmain(void){intx=1;unsignedu=;printf(x=%u=%d\n,x,x);printf(u=%u=%d\n,u,u);return0;}(2)运行以下程序,解释运行结果,并修改程序以使结果正确。

#includestdio.hintmain(void){intx=;printf(x+1=%d\n,x+1);return0;}(3)运行以下程序,解释运行结果。

程序1:#includestdio.hintmain(void){floata;doubleb;a=123456.789e4;b=123456.7 89e4;printf(%f\n%f\n,a,b);return0;}程序2:#includestdio.hintmain(){floata,b;a=123456.789e5;b=a+20;printf(%f\n,a);printf(%f\n,b);return0;}(4)求平方根:输入1个实数x,计算并输出其平方根(保留1位小数)。

(5)华氏温度转换为摄氏温度::度输入华氏温度f,计算并输出相应的摄氏温度c(保留2位位小数)。

c=5/9(f-32).(6)三天打鱼两天晒网:中国有句俗语叫三天打鱼两天晒网。

假设某人从某天起,开第始三天打鱼两天晒网,问这个人在以后的第n天中是打鱼还是晒网?编写相应程序)(第一天就是当天)。

例如:输入:103输出:Fishinginday103输入:35输出:Dryinginday35(7)按照规定,在高速公路上行使的机动车,达到或超出本车道限速的10%则处200元元出罚款;若达到或超出50%,就要吊销驾驶证。

请编写程序根据车速和限速自动判别对该机动车的处理。

输入格式:在一行中给出2个正整数,分别对应车速和限速,其间以空格分隔。

《C语言程序设计》教案 第四章 数组—一维数组

《C语言程序设计》教案 第四章 数组—一维数组
for(i=1;i<=100;i++)
if(a[i]>average)
printf(“%f\n”,a[i]);
(2)在这里,a代表数组名,a[i]代表a数组中的一个元素,i是数组元素的下标,当i的值为1时,a[i]代表a[1];当i的值为2时,a[i]代表a[2]。在循环中当i从1变化到100时,a[i]也就逐个代表a[1]到a[100]。
if(a1>average)printf(“%f\n”,al);
if(a2>average)printf(“%f\n”,a2);
……
if(a100>average)printf(“%f\n”,a100);这样的程序是无法让人接受的。
解决上述问题方法:(1)在C语言中,我们可以定义一个名叫a的变量,它不代表一个单一的成绩值,而是代表整个成绩组。使用数组元素a[1]、a[2]、…、a[100]来代替a1、…、a2、…、a100,则程序就会简单得多,只需要用一个for循环就能完成100次比较:
每个数组元素也都可以作为单个变量使用。
3、一维数组(45分钟)
(1)一维数组的定义(先定义后使用)
格式:类型说明数组名[常量表达式]
例如:
int grades[10]; /*定义了一个数组grades,元素个数为10,数组元素类型为整型。*/
说明:1)数组的类型就是数组各个元素的类型,对于一个数组,所有元素的数据类型都是相同的。
(3)数组的下标:是数组元素的位置的一个索引或指示。
(4)数组的维数:数组元素下标的个数。根据数组的维数可以将数组分为一维、二维、三维、多维数组。
例如:int a[10];
定义了一个一维数组a,该数组由10个数组元素构成的,其中每一个数组元素都属于整型数据类型。

C语言程序设计(课程)实验教学大纲

C语言程序设计(课程)实验教学大纲

C语言程序设计(课程)实验教学大纲一、课程中文名称(课程英文名称):C语言程序设计(THE C PROGRAMMING LANGUAGE)二、课程编码:0921163005三、课程目标和基本要求:通过本课程的学习,要求学生掌握C 语言的基本语法、基本语句、基本控制结构以及程序设计的一般方法,使学生具有熟练使用 C 语言编程解决实际问题的能力。

基本要求:掌握C语言的基本控制结构和基本控制语句及相关的语法规范,熟练运用C语言进行顺序、选择和循环结构程序设计的能力;熟练的上机编程和程序调试的能力;掌握一些常用的算法,如递推法、迭代法、穷举法、求最大最小值、排序、查找、插入、删除等,具有熟练运用这些算法解决实际问题的能力;了解结构化程序设计和模块化设计方法的基本思想,掌握必要的程序设计技巧、程序测试和程序调试技巧。

四、课程总学时: 90 学时(严格按教学计划时数)[理论: 54 学时;实验: 36 学时]五、程总学分: 4 学分(严格按教学计划学分)六、适用专业和年级:适用专业:信息与计算,应用数学,统计学,数学教育。

适用年级:大学一年级七、实验项目汇总表:注:1、实验编号:学校内部使用的编号(不超过13位),在校内具有永久唯一性。

若实验撤消,该实验编号将不再使用。

如果实验内容更新较大,则应另设新的实验编号。

实验编号十二或十三位,前十位为该课程代码(培养方案中的课程代码),第十一、十二位为该门课程的实验序号(01-99),独立设课的实验编号最后一位为“*”,非独立设课的实验编号最后一位为空,例如:《大学物理实验》的某实验项目编号为102000400601,该实验又为独立设课实验,则编号为102000400601*。

2、实验类别:基础、专业基础、专业;实验类型:演示性、验证性、综合性、设计研究、其它;实验要求:必修、选修、其它。

八、大纲内容:实验序号: 0921163005001实验名称:C语言环境[实验目的和要求]1.了解所用的计算机C语言编译系统(如VC++6.0)的基本操作方法,学会独立使用该系统。

实验报告_数组的应用

实验报告_数组的应用

一、实验目的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++中,可以使用数组实现冒泡排序算法,如上述代码所示。

C语言上机操作指导实验五数组(1) 实验八函数(2)

C语言上机操作指导实验五数组(1) 实验八函数(2)

第 4页,共 14页
《C 程序设计》实验及课程设计项目报告
下标= a 2
0
1 8
2 16
3 14
4 1 10
5 8
6
7 16
8 4
9 20
10 6
部分源代码: k=0; if ( a[k]<a[1] ) 真 k=1; 执行 k=0; if ( a[k]<a[2] ) 假 for ( i=1; i<10; i++ ) k=2; 不执行 if ( a[k]<a[i] ) if ( a[k]<a[3] ) 真 k=i; k=3; 执行 相关知识:①删除数组元素的概念;②移动数组元素的算法;③求最大值位置的算法。 7. 以下 sy30.c 程序的功能是:从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输 出低于平均分的学生成绩,用输入负数结束输入。请填空: #include <stdio.h> void main( ) { float x[1000], sum=0.0, ave, a; int n=0, i; printf ("Enter mark : \n") ; scanf("%f", &a); while (a>=0.0 && n<1000) { sum+= ; x[n]= ; n++; scanf("%f", &a); } ave= ; printf ("Output : \n"); printf ("ave = %f\n", ave); for (i=0; i<n; i++) if ( ) printf("%f\n", x[i]); } 8.打印如下杨辉三角形 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 编程点拨: 杨辉三角形有如下特点: 1 只有下半三角形有确定的值; 2 第一列和对角线上的元素值都是 1; 3 其它元素值均是前一行同一列元素与前一行前一列元素之和。

《算法设计与分析》课程实验报告 (分治法(三))

《算法设计与分析》课程实验报告 (分治法(三))

《算法设计与分析》课程实验报告实验序号:04实验项目名称:实验4 分治法(三)一、实验题目1.邮局选址问题问题描述:在一个按照东西和南北方向划分成规整街区的城市里,n个居民点散乱地分布在不同的街区中。

用x 坐标表示东西向,用y坐标表示南北向。

各居民点的位置可以由坐标(x,y)表示。

街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值∣x1−x2∣+∣y1−y2∣度量。

居民们希望在城市中选择建立邮局的最佳位置,使n个居民点到邮局的距离总和最小。

编程任务:给定n 个居民点的位置,编程计算邮局的最佳位置。

2.最大子数组问题问题描述:对给定数组A,寻找A的和最大的非空连续子数组。

3.寻找近似中值问题描述:设A是n个数的序列,如果A中的元素x满足以下条件:小于x的数的个数≥n/4,且大于x的数的个数≥n/4 ,则称x为A的近似中值。

设计算法求出A的一个近似中值。

如果A中不存在近似中值,输出false,否则输出找到的一个近似中值4.循环赛日程表问题描述:设有n=2^k个运动员要进行网球循环赛。

现要设计一个满足以下要求的比赛日程表:每个选手必须与其他n-1个选手各赛一次,每个选手一天只能赛一次,循环赛一共进行n-1天。

二、实验目的(1)进一步理解分治法解决问题的思想及步骤(2)体会分治法解决问题时递归及迭代两种不同程序实现的应用情况之差异(3)熟练掌握分治法的自底向上填表实现(4)将分治法灵活于具体实际问题的解决过程中,重点体会大问题如何分解为子问题及每一个大问题涉及哪些子问题及子问题的表示。

三、实验要求(1)写清算法的设计思想。

(2)用递归或者迭代方法实现你的算法,并分析两种实现的优缺点。

(3)根据你的数据结构设计测试数据,并记录实验结果。

(4)请给出你所设计算法的时间复杂度的分析,如果是递归算法,请写清楚算法执行时间的递推式。

四、实验过程(算法设计思想、源码)1.邮局选址问题(1)算法设计思想根据题目要求,街区中任意2 点(x1,y1)和(x2,y2)之间的距离可以用数值∣x1−x2∣+∣y1−y2∣度量。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例项目名为:2013050201_***_01)
1.运行下面的c程序。
运行结果:
1 2 3 4 5 0
分析:
赋值的时候num[0]=1 num[1]=2 num[2]=3 num[3]=4 num[4]=5 num[5]=0
2.运行下面的c程序:
1)从键盘输入字符串:how are you,观察结果。
(4)如果现改为20个元素的数组,怎样修改程序?修改程序后,运行程序进行检查。如果需要数组元素不断改变,应怎样修改程序?
答:将数组a【10】扩大范围就可以,要输入2.个数,就把定义为a【20】
将输入函数改为随机数函数
#include<stdio.h>
int main()
{
int a[10],i,j,k,max,min;
a[0]=1;a[1]=1;i=2;
for(i=2;i<40;i++)
a[i]=a[i-1]+a[i-2];
for(j=0;j<39;j++)
{
if (j%8==0)printf ("\n");
printf("%9d ",a[j]);
}
return 0;
}
7.用冒泡法对20个整数排序。20个整数需要键盘键入。
源程序:
#include<stdio.h>
int main()
{
int a[10]={27,13,5,32,23,3,17,43,55,39};
int i;
int sort(int[],int);
sort(a,10);
for(i=0;i<10;i++)
printf("%6d",a[i]);
printf("\n");
}
9.编程实现:对任意一个一维数组,从中找出数组元素的最大值和最小值。要求:
(1)数组为整型数组(10个元素)。
(2)使用scanf函数实现数组元素的输入。在输入前给出必要的提示。
(3)输出时给出必要的说明,首先输出原始的10个元素,换行后输出最大值以及最大值在数组中的位置、最小值以及最小值在数组中的位置。
#include<stdio.h>
int main()
{
int a[10],i,z,f,l;
z=0;f=0;l=0;
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(i=0;i<=9;i++)
{
if (a[i]>0) z=z+1;
if (a[i]==0) l=l+1;
if (a[i]<0) f=f+1;}
#include<stdio.h>
#define M 3
#define N 4
int main()
{
int max,i,j,r,c;r=0;c=0;
int a[M][N]={{323,94,-10,218},{3,9,10,-83},{45,16,44,-99}};
max=a[0][0];
for(i=0;i<M;i++)
#include<stdio.h>
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
int b[4][3],i,j;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{printf("%5d ",a[i][j]);
b[j][i]=a[i][j];}
#include<stdio.h>
int main()
{
int i;
char str[11]={'h','o','w','a','r','e','y','o','u'};
for(i=0;i<=10;i++)
printf("%c",str[i]);
return 0;
}
3.改错
有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。
ቤተ መጻሕፍቲ ባይዱprintf("请输入十个数");
for(i=0;i<10;i++)
{
scanf("%d ",&a[i]); }
max=min=a[0];
for(i=0;i<10;i++)
{
if(max<a[i])
max=a[i];
j=i;
if(min>a[i])
min=a[i];
k=i;}
for(i=0;i<10;i++)
(4)掌握冒泡排序、选择排序及查找算法。
(5)掌握字符窜的结束标志,正确使用字符串的结束标志对字符串进行处理。
通过编程和调试程序,加深对数组、字符数组和字符串函数应用的理解二、实验设备(环境)及要求
使用Visual C++ 6.0;windows系列操作系统的环境。
三、实验内容与步骤(要求以“学号_姓名_题号”为名建立项目;
printf("\n");} printf("\n");
for(i=0;i<4;i++)
{for(j=0;j<3;j++)
printf("%5d ",b[j][i]);
printf("\n");
}return 0;
}
11.编程实现“折半查找”的过程。折半查找的处理过程是:在一个数据已排好序的数组中,首先比较关键字与数组中间的元素,如果两者相等,则查找结束;如果前者比后者小,则要查找的数据必然在数组的前半部,此后只需在数组的前半部中继续折半查找;如果前者的数值比后者大,则要查找的数据必然在数组的后半部,此后只需在数组的后半部继续进行折半查找。
(6)修改程序,改为函数调用的形式。编写一个选择法排序函数,对无序数据进行排序;编写一个查找函数对已排好序的数据进行查找。在主函数中输入数据(无序),调用上述函数,输出结果。
#include<stdio.h>
int main()
{
int a[20]={1,2,3,5,6,8,12,13,15,18,19,26,27,29,34,36,38,40,42,46};
《C语言程序设计》实验报告
实验项目一:数组
学 号
姓 名
专业、班级
实验时间
2019.03.06
实验地点
机房6
指导教师
一、实验目的及要求
(1)正确理解数组的概念,熟练掌握一维数组和二维数组的定义和初始化方法。
(2)熟练掌握字符数组和字符串的区别和使用、字符串函数的使用。
(3)熟练掌握一维数组、二维数组以及字符串的输入和输出方法。
int x,low,mid,high,found;
low=0,high=19,found=0;
scanf("%d",&x);
while(low<high&&!found)
{mid=(low+high)/2;
if(x>a[low])
low=mid-1;
else if(x<a[mid])
high=mid-1;
for(j=0;j<N;j++)
if(a[i][j]>max)
{
max=a[i][j];
r=i;c=j;
printf("max=%d,行=%d,列=%d\n",max,r,c);
return 0;
4.改错
下面是用来将数组a中元素按升序排序后输出的源程序。分析源程序中存在的问题,并对源程序进行修改,使之能争取完成任务。
printf("%d",a[i]);
printf("\n");
printf("最大值为%d,在数组中的位置为%d\n",max,j);
printf("最小值为%d,在数组中的位置为%d",min,k);
return 0;
}
10.编写一个程序,从键盘读入数据,对一个3*4矩阵进行赋值,求其转置矩阵,然后输出原矩阵和转置矩阵。
}
for(j=0;j<=19;j++)
printf("%3d",a[j]);
printf("\n");
return 0;
}
8.用选择法对20个整数排序。20个整数需要键盘键入。
#include<stdio.h>
int main()
{
int a[20],i,j,t;
for(i=0;i<=19;i++)
要求:
(1)设定一个数组存放20个数据,用赋初值的方法在程序中给出(假设这些数据已排序)。
(2)用scanf函数输入一个要找的数。
(3)对查找的结果给出相应的说明,如果找到该数,则给出该数是数组中第几个元素。如果该数不在数组中,则输出“无此数”信息。
(4)任意输入一些数据,检查程序的正确性。
相关文档
最新文档