交大程序设计(C)实验四程序

合集下载

大学C 程序设计教程 - 西安交通大学共25页文档

大学C  程序设计教程 - 西安交通大学共25页文档

语句序列可以是一个语句,也可以是复合语句结构(分程序)
6
分程序
{ <局部数据变量说明部分> <执行语句段>
}
▪ 分程序在语法上是一个整体,相当于一个语句。 ▪ 分程序中也可以再嵌套新的分程序,用以构成更加复杂
的控制结构。
7
选择结构(之二)
▪ 多路(开关)选择语句 :
switch(整数表达式)
{ case 数值1: 语句序列1; …... case 数值n: 语句序列n; [default : 语句序列n+1;]
条件?
不成立
9
循环结构(之二)
▪ for语句用来实现计数循环: for (<表达式1>; <表达式2>; <表达式3>)
<循环体>
10
C++数据类型的分类
11
类型不同的数据之间的混合算术运算
▪ 不同类型的数据在参加运算之前会自动转换成 相同的类型, 然后再进行运算。
▪ 转换规则
• 转换的原则是由低级向高级转换 char -> int -> float -> double
化)处理,最后到求解域中只是比较简单的编程问题。
20
基本思想和方法
▪ 基本思想
• 从问题本身开始,经过逐步求精,将解决问题的步骤分解为由 基本程序结构模块组成的结构化程序框图,据此编写程序。
▪ 基本方法
• 从题目本身开始, 找出解决问题的基本思路, 将其用结构化框 图(可能是非常粗糙)表示。
• 对框图中的比较抽象的、用文字描述的模块进一步分析细化, 结果仍用结构化框图表示。
23
结束语

《C++程序设计(第2版)》lab4

《C++程序设计(第2版)》lab4

西安交通大学实验报告课程_计算机程序设计_实验名称__C++集成开发环境的使用___第1页共2页系别_______理学院_________________实验日期 2010年3月24日专业班级___光信息91_____组别_____________实验报告日期 2010年3 月24日姓名_吴子强____学号_ 09095019 _报告退发 ( 订正、重做 )一.实验目的(1)掌握集成开发环境的使用方法;(2)了解C++程序的基本特点。

二.实验内容(-)实验题目一:将一个矩阵转置。

1.要点分析将matrix[i][j]在输出时表示为matrix[j][i]即可。

2.程序源代码#include<iostream>using namespace std;int main(){int m[4][4]={4,6,8,9,2,7,4,5,3,8,16,15,1,5,7,11};cout<<"转置后的矩阵是"<<endl;for(int i=0;i<4;i++){for(int j=0;j<4;j++){cout<<m[j][i]<<'\t';}cout<<endl;}return 0;}3.实验结果(二)实验题目二:凯撒密码加密1.要点分析算法的选择;利用字符ASCLL码之间的关系,把存储在字符数组中的每个字符按照替换加密规则进行处理并输出。

2.程序源代码#include<iostream>using namespace std;int main(){char ch[10];int i=0;cin>>ch;while(ch[i]>'a'&&ch[i]<='z'){if(ch[i]>'w'&&ch[i]<'z')ch[i]=ch[i]-('z'-'a'+1);ch[i]=ch[i]-'a'+'A'+3;i++;}while(ch[i]>'A'&&ch[i]<='Z'){if(ch[i]>'W'&&ch[i]<'Z')ch[i]=ch[i]-('Z'-'A'+1);ch[i]=ch[i]-'A'+'a'+3;i++;}cout<<ch<<endl;return 0;}3.实验结果三.个人小结在凯撒加密问题中关键在于算法的选择,先把所有字母进行转换加密,超过z的用ch[i]=ch[i]-26转换一下。

《交通流理论》实验教学指导书

《交通流理论》实验教学指导书

《交通流理论》实验指导书邵春福编写适用专业:交通运输类北京交通大学交通运输学院2010年 4 月前言《交通流理论》是交通工程学科最重要的基础课程之一。

在交通规划和交通管理中,应用交通流理论可以对道路等交通设施的使用情况进行科学地分析和评价。

交通流理论的主要内容有交通流特性理论、车流波动理论和跟车理论等。

为了加深学生对交通流理论课程中的基本理论知识及基本概念的理解,提高学生理论联系实际的能力,培养学生在实践中思考、分析、解决交通运输中实际问题的能力,《交通流理论实验》课程是一种重要的教学手段和途径。

本实验指导书分为四个实验部分,分别是《车辆的到达分布实验》、《道路断面交通流特性实验》、《车辆到达实验》和《区域交通流实验》。

《车辆的到达分布实验》重在让学生理解车辆到达服从的随机分布规律;《道路断面交通流特性实验》重点让学生理解交通流理论中速度、流量、密度等交通特征之间的关系;《车辆到达实验》和《区域交通流实验》重点让学生理解掌握在一天中车辆到达分布的情况和在区域交通中,各路段交通流特征之间的联系等。

各实验在内容上相互联系并注重理论分析与实际动手相结合,旨在通过完成本实验课程,提高学生分析问题、解决问题的能力并建立较为完整的交通流理论的概念。

目录前言 (2)实验一:《车辆的到达分布实验》 (4)实验二:《道路断面交通流特性实验》 (7)实验三:《车辆到达实验》 (11)实验四:《区域交通流实验》 (13)参考书目 (17)实验一:《车辆的到达分布实验》实验学时:4实验类型:综合实验实验要求:必修一、实验目的1、理解rtms 检测器采集的交通流数据的数据格式。

2、理解描述车辆到达分布规律的方法(各种离散型分布)。

3、理解车辆到达的分布的含义。

4、能够利用rtms 检测数据绘制车辆到达的分布规律图。

二、实验内容1、讲解遥感微波检测器(rtms )基本知识及采集的交通数据格式和数据库的存储形式。

2、通过演示《rtms 交通流实验程序》,讲解道路断面车辆到达分布规律。

西安交大本科生课表

西安交大本科生课表

西安交大本科生课表西安交通大学本科生课表星期一:\n8:00-9:50 数学分析(教室:教学楼A101)\n10:00-11:50 大学英语(教室:教学楼B201)\n14:00-15:50 计算机基础(实验室:计算机楼C301)星期二:\n8:00-9:50 物理实验(实验室:物理楼D201)\n10:00-11:50 数据结构与算法(教室:教学楼A301)\n14:00-15:50 离散数学(教室:教学楼B401)星期三:\n8:00-9:50 大学物理(教室:物理楼D101)\n10:00-11:50 线性代数(教室:教学楼A201)\n14:00-15:50 高级语言程序设计(实验室:计算机楼C401)星期四:\n8:00-9:50 概率论与数理统计(教室:教学楼B301)\n10:00-11:50 数据库原理与应用(实验室:计算机楼C501)\n14:00-15:50 操作系统原理(实验室:计算机楼C601)星期五:\n8:00-9:50 数字电路与逻辑设计(实验室:电子楼E301)\n10:00-11:50 信号与系统(教室:电子楼E201)\n14:00-15:50 软件工程(实验室:计算机楼C701)这是一个典型的西安交通大学本科生课表,涵盖了数学、英语、计算机科学、物理等多个学科。

课程设置合理,既包含了基础理论课程,也有实践性较强的实验课程。

这样的课表安排有助于培养学生的综合能力和实际操作能力。

此外,西安交通大学注重培养学生的创新精神和团队合作能力,因此在课表中还包含了一些项目课程和实践性较强的专业课程。

这些课程旨在让学生在实践中掌握专业知识,并培养解决问题和团队合作的能力。

总体而言,西安交通大学本科生课表设计合理,既注重基础理论知识的教授,也注重实践操作能力的培养。

这样的教育模式有助于培养出全面发展、具备创新精神和团队合作能力的优秀本科生。

西安交大C程序设计作业

西安交大C程序设计作业

西安交大C程序设计作业文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]西安交通大学实验报告课程__计算机程序设计__实验名称__指针与函数__第 1 页共 25 页系别____ _______ 实验日期 2014 年 4月 18日专业班级__ ____组别_____________ 实验报告日期 2014 年 4 月 19日姓名___ _______学号_ _报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的学会使用递归函数和函数重载,进一步熟练动态分配等指针使用方法。

二、实验内容(一)第一题:1、(必做题)使用递归算法编写如下程序:对于任意给定的实数 X 和整数k( k>0) ,计算 Xk 。

1.源程序代码:#include<iostream>using namespace std;double yunsuan(double x,int k);验结果:(1)输入X正实数:(2)输入X正整数:(3)输入x为负数:(4)输入k为负数:3.问题分析:该函数的循环方式是:x^k=x*x^(k-1).设f(x,k)=x^k,那么就有f(x,k)=f(x,k-1)*x.而其结束递归的条件是k=1,此时有f(x,1)=x,由此给出初值。

(二)第二题:使用递归算法编写求斐波那契数列的第 n 项的函数,并编出主函数进行验证。

1.源程序代码:#include<iostream>using namespace std;int fib(int n)验结果:(1)输入项数正确(0或正整数):(2)输入项数有误(负数):3.问题分析:该题的递归方式:第n项为之前两项之和,即:fib(n)=fib(n-1)+fib(n-2),由此递归至fib(1)和fib(2)时结束递归,而fib(1)和fib(2)已知。

西南交通大学程序设计基础实验四

西南交通大学程序设计基础实验四

实验__4__实验报告教学班级:_______ 学生学号:__________ 学生姓名:___________ 实验日期:___________ 实验地点:________(机房)指导教师签名:__________ 实验成绩:___________一、实验目的1.掌握多路分支结构的程序设计,以及switch语句的使用方法;2.学习通过程序调试来跟踪程序运行过程,查看程序运行过程中各个变量的取值变化情况。

二、实验任务1.模拟二人猜拳游戏:剪刀石头布。

要求:(1)给出选项菜单如下**********新一局************1.出剪子2.出石头3.出布*******************************请输入选择的数字:根据两个用户输入给出猜拳“战况”。

2.键盘输入一个数,判定:能不能被3、5和7整除,并如果失败输出失败的具体原因。

3. 输入某年某月某日,判断这一天是这一年的第几天。

三、实验结果(源程序+ 注释)1#include<iostream>#include<math.h>using namespace std;void main(){ inta,b;cout<<"**********新一局************"<<endl<<"1.出剪子"<<endl;cout<<"2.出石头"<<endl<<"3.出布"<<endl;cout<<"*******************************"<<endl<<"请玩家A输入选择的数字:"<<endl; cin>>a; cout<<"请玩家B输入选择的数字:"<<endl; cin>>b;if(a==b)cout<<"两人为平局"<<endl;else{ if(abs(a-b)==1){if(a<b)cout<<"玩家B获胜"<<endl;elsecout<<"玩家A获胜"<<endl;}if(abs(a-b)==2){if(a<b)cout<<"玩家A获胜"<<endl;elsecout<<"玩家B获胜"<<endl;}}}2#include<iostream>using namespace std;void main(){int x;cout<<"请输入一个数字X:"<<endl;cin>>x;if(x%3!=0)cout<<"X不能被3整除"<<endl;else{if(x%5!=0)cout<<"X不能被5整除"<<endl;else{if(x%7!=0)cout<<"X不能被7整除"<<endl;elsecout<<"X能够被3、5、7整除"<<endl;}}}3#include<iostream>using namespace std;void main(){inty,m,d,sum; sum=0;boolleapyear;leapyear=(y%100!=0&&y%4==0||y%100==0&&y%400==0); cout<<"请输入年份:"<<endl; cin>>y;cout<<"请输入月份:"<<endl; cin>>m;cout<<"请输入天数:"<<endl; cin>>d;switch(m-1){case 11:sum=sum+30;case 10:sum=sum+31;case 9:sum=sum+30;case 8:sum=sum+31;case 7:sum=sum+31;case 6:sum=sum+30;case 5:sum=sum+31;case 4:sum=sum+30;case 3:sum=sum+31;case 2:if(leapyear)sum=sum+29;elsesum=sum+28;case 1:sum=sum+31;case 0:break;}sum=sum+d;cout<<"这一天是当年的第"<<sum<<" 天"<<endl;}。

C语言程序设计实验指导_上交大_课前练习

C语言程序设计实验指导_上交大_课前练习

实验一Visual C++集成环境实验内容(-)程序改错1.(1)无法运行(2)将第二个C程序重新存放到另一个工程文件中(3)同一个工程文件只能有一个mam函数2.(1)/*一个简单的程序*/(2)void niainQ⑶}3.(1)int a, b, c ;(2)a=2;(3)c=a*b;(二)完善程序1.(1)year(2)month(3)day2.(1) c(2)a*a+b*b(3) c3.(1) 4(2)4*a(3)s课后练习l. D2. D3. A4. C5. C6. C7.stdio.h8.niain 函数实验二数据类型.运算符和表达式课前练习1.20 __________ 8 70 ________ 02.Abs3 Class _else sum mv_class _________________________________3block a+b fbi fim(4)3. B4. D5. A6. C7. D8. B实验内容(一)程序改错1.(1)int xl, x2, x3, x4;(2)scanf(H%d,%d n,&a5&b);(3)c=x4* 1000+x2* 100+x3* 10+xl;2.程序1:① 2 2②Error C2065: 'al' : undeclared identifi^r 变量al没有定文sum二a+b+c® 1error C2146: syntax error : missing before identifier 'printf' printf语句之前缺少分号sum二a+b+c;④0 error (s), 0 warning(s)⑤a二1 b二3 c二2 sum二6⑥语句以分号结束;变量要先定义后使用________________程序2:① 2 _____________ 2__©error C2065: 'sum' : undeclared identifier 变量sum没有定义int sum二a+b;1error C2086: ' c‘ : red己finition变量c重复定义c二a+b+sum;b—3 suni-:-8④在同一个函数体内,变量要先定义后使用,但不能重复定义程序3:①1error C2106:'二':left operand must be 1一value赋值符号左边参数错误c二a+b;②c=4③赋值符号左边只能是变量,不能是常量或表达式3.(1)t=a;(2)a二b;;(3)printf(a=%d\tb=%d\n, a, b);(二)完善程序1.(1)int n(2)” %d”,&n(3)s2.(1)float s(2)(float)a/b(3)%f3.(1)#include<math・ h>(2)pow(x, y)(3)a%lf w , s课后练习1. D2. D3. A4. B5. C6. D7. D8. A9. C10. A11. A12. B13. B14. C15. B16. A17. C18.819. 5 和 420.2.00000021. double (删除最后“语句”两字)22 ・ double23. a=3(回车)实验三if选择结构语句课前练习•9 0•11 0•(1) n%2=0(2) 11%2!=0(3) a>=J0?&& a<=9(4) a>=>a>&& a<=>z>(5) a>=A?&&(6) (a>=0 && a<=z,) II (a>=>A> && a<=N)(7) (x<-10) II((x>10) && (x<=20))(8)a%b!=O(9)a*b>04.-15. D6.10 30 407. C8. A9. D10. A实验内容1.(1)scaiif(H%d,\&t);(2)if(t%5=0&& t%7==0)(3)else2.(1)char v;(2)if(x==O)(3)3.(1)if(x==m)(2){ printf (/z Wrong\n z,);(3)printf ("Too low\n,z) ;}(二)完善程序1.(1)#include<math・h>(2)("b+sqrt (d))/(2*a);(3)sqrt(fabs(d))/(2*a);2.(1)c>二'a && c<- u(2)c>二'v' && c<- z'(3)c二c+5-26;3.(1)c>=,a && c<- z'(2)c>二'A'&& c<='Z'(3)else课后练习1. D2. C3. A4. A5. B6. C7. C8. C9. B10. D11. A12. D13. D14. A152016. A17. D18. A19. D20. B21. C22.!23. D24. C25. D26. B实验四switch开关语句课前练习1・ 4 112.if((k==l 川(k==2)prmtf(n a\n n);else if((k=3)||(k=4)||(k=5)) pnntf「b\ir);else3.switch (x)case 1:case 2:case 3:priiitf(M x\ii H);break;case 19:case 20:case 21:printf(n y\ii H);bieak;default:prmtf(n z\n M);1.(1)switch(x)(2)case 4:(3)default:2.(1)a二s/250;(2)case 0:d=0;break;(3)default:d=15;3.(1)else p=l;(2)a二num/1000;(3)num%10(二)完善程序1.(1 ) grade/10(2) break(3 ) default2.(1)x<0(2)a=x/10(3) a3.(1)month(2)days=31(3 ) (year%4==0 && yearWIOO!二0)| |(year%400二二0)课后练习1. C2. D (将程序最后一条语句改为:printf("a=%d,b=%d\ii",a,b);)3. A4.B5.pass中及格不及格6.2实验五while> do... while循环结构语句课前练习1.02.103. A4. C5. A6. A7. C实验内容(一)程序改错1.(1)long k=l;(2)num/=10;(3)while(num);2.(1)int m二0, mc=0, j;(2)if((k%7==0)| |(k%ll==0))(3)m=m+k3.(1)max二min二grade;(2)while(grade>=0)(3)if(grade<min)(二)完善程序1.(1)t%2=0(2 ) m=m*10+t;(3)ii=n/10 ;2.(1)ch=getchai()(2)ch>=,0,&&ch<=9(3)(ch>=,a,&& ch<=,z,) ||(ch>=A&& ch<=Z)3・(1)fabs (t)(2)s/n(3)pi*4课后练习1. A2. A3. D4. B5. A6. C7. A8.30实验六for循环结构语句课前练习1. C2. D3. C4.fbr(i=100;i!=0;i~) printffpj;5. D6. C7. D8.k<=n __________k++9. A10. C11. C实验内容(一)程序改错1.(1)int sum=l, s0=0, sl=0, s2=l,s;(2)for(n=4;n<=10:n++)(3)s2=s;2.(1)for(i=l;i<=y;i++)(2)t*=x;(3)t=t%1000;3.(1)int i,count=0;(2)辻((i%7二二0 | | i%U==0) &&(i%77!二0))(3)count++;(二)完善程序1.(1)s二0.0(2)scanf (“%d", &n)(3)s+l.O/sl2.(1)i%100(2)a+b+c=x(3)t++3.(1) 2(2)n(3)n%i==0课后练习1. A2. B3. C4. A5. D6. C7. A8. B9. A10. C实验七循环控制语句课前习题1. D2.循环语句3.break4. A5.206.___ 6 ________ 67.88. B实验内容(-)程序改错1.(1)int i, j, k, sum=0;(2)for(i=l;i<=3;i++)(3)if ((k>=l&&k<=6) && (i!=0)&&(j!=0)|| (k==0)) 2.(1)for (j二2; j<i; j++)(2)if (i%j = 0)(3)if (j>= i)3.(1)m=n;(2)while(m!=0 && m>=c)(3)if(m=0)(二)完善程序1.(1)i<10(2)j%3!=0(3 ) continue;2.(1)total二0;(2)sum二0;(3 ) total+sum;3.(1)j=(y%100)/10;(2)i!=j && i!=k && k!=j(3)t%5==0课后练习1. D2. C3. D4. B5. C6. B7. A& ______________________ _________________ 19.__ 10 __________ __________________________ 710._____ x=]6 ______________ y=8实验八函数的初步应用课前练习1.void _______return2. C3. A4. C6. C7. D8. D实验内容 (一)程序改错1.(1) int fun(int a, int b, int c) (2) if(a+b>c&&b+c>a&&a+c>b) (3) else if(a==b b==c| a==c) 2.(1) if (n==l) (2) c=age (n~l)+2; (3 ) printf (,z %d\n /z , age (5)) 3.(1) while(n!=i) (2) if(n%i==O) (3 ) n=n/i;1. (1) i*i==x (2) return 0(3) f(i+100) && f(i+168) 2. (1) x(2) sl+s2+s3=15 (3) t++ 3. (1) f<t (2) return f (3) fun(n)课后练习1. C2. C3. A4. D5. A6. B序8. A9. A10. C11. A12. A13. B14. D15.10,2016.13 11 12 17.218.______ 3 _________ 119.-3120.22121.2222 .main 函数23. ___ etum ____________ void24. ___ void __________________ int实验九函数的其他应用课前练习1. B2. A3. A4. C5. D6. D7.558. C9. D10. A实验内容(-)程序改错1.(1)#define S) temp=x;x=y;y二temp2Ju(e)8 寸 u ( t )〈Itdqgxpnloul# (2)(q)i p ) (q (0)03 Q U -rH 七p# (e)A*x(1x)13Q U -rH ±p #(T )tr w e能(M )Qs©。

西南交通大学C实验报告

西南交通大学C实验报告

计算机程序设计基础(C++)实验报告软件学院二O一O年三月11实验__1__实验报告教学班级: 6 学生学号:学生姓名:指导教师签名:王健金焕实验成绩:___________一、实验目的1.熟悉Visual studio 6.0集成开发环境;2.学习新建和打开控制台应用程序的方法;3.通过运行示例程序了解程序开发过程;二、实验任务.输出下面图形:12.输入一摄氏温度,输出显示所转换的华氏温度。

(提示:摄氏温度=(华氏温度-32)×5/9)三、实验结果(源程序+ 注释)#include<iostream>using namespace std;void main(){cout<<" * "<<endl;cout<<" * * * * "<<endl;cout<<" * * * * "<<endl;cout<<" * "<<endl;}2233#include<iostream>using namespace std;void main(){double a,b;cout<<"请输入一摄氏温度:"<<endl;cin>>a;b=a*9/5+32;cout<<"对应的华氏温度是:"<<b<<endl;}4 455实验__2__实验报告一、实验目的1.掌握对一般数据的输入和输出格式控制方法;2.掌握对实型数据输出形式的设置和小数位数的控制方法;3.了解数据输入的相关注意事项。

二、实验任务1. 输入一台计算机的编号和该计算机的价格,并输出这些信息。

(如编号为10987654321,价格为5 998.00元,注意此处计算机的编号作为一个整数而言超出了int 所定义的变量的存储范围,因此只能用double 型变量来存储,但输出时要求看见的是整数形式的编号)2. 输入三个同学的学号,计算机和英语课程的考试成绩,并输出这些信息。

西安交大C++程序设计第四章作业

西安交大C++程序设计第四章作业

西安交通大学实验报告课程_计算机程序设计_实验名称_数组与结构体_第 1 页共 15页系别_______________ 实验日期 2014年 3 月 18 日专业班级___ ___组别_____________ 实验报告日期 2014年 3 月 22 日姓名__ __ __学号____ 报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的:掌握数组与字符串的输入方法,包括一维数组、二位数组,不含空格的一个字符串以及含空格的多个字符串的输入以及处理。

二、实验内容:1.第一题:编写一个程序将给出的矩阵转置。

(1)源程序代码:#include<iostream>using namespace std;int main(){int jz[4][4]={{4,6,8,9},{2,7,4,5},{3,8,16,15},{1,5,7,11}};int zz[4][4];int i,j;for(i=0;i<4;i++){for(j=0;j<4;j++){zz[i][j]=jz[j][i];cout<<zz[i][j]<<" ";}cout<<endl;}return 0;}(2)实验结果:2.第二题:改写例4-5冒泡排序程序,由每轮挑选最小元素改为每轮挑选最大元素。

(必做题)(1)源程序代码:#include<iostream>using namespace std;int main(){const int COUNT=16;int list[COUNT]={503,87,512,61,908,170,897,275,653,426,154,509,612,677,765,703};for(int i=COUNT-1;i>=0;i--){for(int j=0;j<i;j++){if(list[j+1]<list[j]){int tmp=list[j+1];list[j+1]=list[j];list[j]=tmp;}}}cout<<"结果是:"<<endl;for(int k=0;k<16;k++)cout<<list[k]<<" ";cout<<endl;return 0;}(2)实验结果:3.第三题:编写程序:输入N(例如N为20)个整数,统计输出负数的个数、正整数的个数及0的个数;计算输出所有负数之和、所有正整数之和。

西安交大C 程序设计第十章作业

西安交大C  程序设计第十章作业

_ 报 告 退 发 ( 订正 、 重做 )
同 组 人_________________________________ 教 师 审 批 签 字
一、实验目的
理解掌握多态的使用方法,学会用虚函数。
二、实验内容
(一)第一题:定义一个类 Base,该类含有虚函数 display,然
后定义它的两个派生类 FirstB 和 SecondB,这两个派生类均含有
double sidelength; public:
Square(int x=0,int y=0,double s=0.0):Rectangle(x,y) {
Seta(s); } void Seta(double s) {
sidelength=s; } virtual double Area() const {
virtual void display() {
cout<<"sound!sound!sound!"; } }; class FirstB:public Base
{ public:
void virtual display() {
cout<<"miao!miao!miao!"; } }; class SecondB:public Base { public: void virtual display() {
#endif
//square.h正方形类,几乎跟矩形类一样而已
#ifndef SQUARE_H #define Square_H #include"rectangle.h" #include<iostream> using namespace std; class Square:public Rectangle {

西安交大C 程序设计 作业

西安交大C 程序设计 作业

西安交通大学实验报告课程__计算机程序设计__实验名称_____函数______第 1 页共 18 页系别____ _______ 实验日期 2014 年 3月 28日专业班级____组别_____________ 实验报告日期 2014 年 3 月 29日姓名___ _______学号_ _报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的掌握函数的概念,使用函数的优越性,定义函数的方法以及调用函数的方法。

二、实验内容(一)第一题:编写字符串反转函数mystrrev(),该函数的功能是将指定字符串中的字符顺序颠倒排列。

然后再编写主函数验证之。

1.源程序代码:#include<iostream>#include<cstring>using namespace std;void mystrrev(char string[]);验结果:由于函数中有“for(int i=0;i<m/2;i++)”的语句,为避免该循环条件不准确,对奇数和偶数个的字符均进行了检测,并有对含空格和符号的字符串的检测:(1)奇数:(2)偶数:(3)含空格字符串:3.问题分析:(1)起初没有用“.get”,不够全面;(2)如果一直执行到i=m的话,就等于反转两次又回到了原来的字符串顺序,因而要考虑只执行一半,而由于字符串长度有奇偶的问题,所以容易错误;(3)第一次编写时,没有写string[m]='\0';这使得输出结果混乱。

(二)第二题:编写一组求数组中最大元素和最小元素的函数。

其函数原型为:int imax(int array[],int count);int imin(int array[],int count);1.源程序代码:#include<iostream>using namespace std;int imax(int array[],int count);验结果:3.问题分析:(1)起初误将:cout<<"最大值为:"<<imax(num,n)<<endl;cout<<"最小值为:"<<imin(num,n)<<endl;写成imin、imax,不能执行。

西安交大C 程序设计第七章作业

西安交大C  程序设计第七章作业

西安交通大学实验报告课程__计算机程序设计__实验名称_类与对象___第 1 页共 18 页系别____ _____ __ 实验日期 2014 年 5 月 2 日专业班级__ ___组别_____________ 实验报告日期 2014 年 5 月 2日姓名___ ______学号_2130405034_ 报告退发 ( 订正、重做 )同组人_________________________________ 教师审批签字一、实验目的理解类与对象的概念,掌握类的定义方法和使用方法。

二、实验内容(一)第一题:定义一个Dog类,包含name、age、sex、weight 等属性以及对这些属性操作的方法。

实现并测试这个类。

1.源程序代码:#include<iostream>using namespace std;class Dog//狗类{private://私有成员char name[20];//字符型数组用于存储名字int age;//年龄,整型数char sex;//性别double weight;//体重,定义为双精度型public://公有成员void Register(char *Name,int Age,char Sex,double Weight);//输入函数void print();//输出函数};void Dog::Register(char *Name, int Age, char Sex, double Weight)//输入函数,将各个参数导入到定义的类中相应元素{strcpy(name,Name);age=Age;sex=(Sex=='m'?'m':'f');weight=Weight;}void Dog::print()//输出函数{cout<<"名字:"<<name<<"\t年龄:"<<age<<"\t性别:"<<sex<<"\t体重:"<<weight<<endl;}int main(){Dog dog1,dog2,dog;char Name1[20],Sex1,Name2[20],Sex2;int Age1,Age2;double Weight1,Weight2;cout<<"请输入第一只小狗的名字、年龄、性别、体重:\n";//信息录入cin>>Name1>>Age1>>Sex1>>Weight1;dog1.Register(Name1,Age1,Sex1,Weight1);cout<<"请输入第二只小狗的名字、年龄、性别、体重:\n";cin>>Name2>>Age2>>Sex2>>Weight2;dog2.Register(Name2,Age2,Sex2,Weight2);cout<<"第一条狗的信息如下:\n";//信息显示dog1.print();cout<<"第二条狗的信息如下:\n";dog2.print();dog=dog1;//交换dog1和dog2的内容dog1=dog2;dog2=dog;cout<<"二者交换以后信息为:\n";//通过输出交换结果检验类的定义有作用cout<<"第一条狗:\n";dog1.print();cout<<"第二条狗:\n";dog2.print();return 0;}2.实验结果:3.问题分析:设计思路:首先输入两个狗的信息,然后显示输入的信息,然后交换二者再次输出,通过再次输出的结果表明对其操作有效,从而表明类的定义是有效的。

交大程序设计(C)实验三程序

交大程序设计(C)实验三程序

交大程序设计(C)实验三程序1、程序填空给定程序中函数fun的功能是:找出100~n(不大于1000)之间的三位数字相等的所有整数,把这些整数放在s所指的数组中,整数的个数作为函数值返回。

在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果即可。

程序填空如下:修改后代码如下:#include#define N 100int fun(int *s,int n){ int i,j,k,a,b,c;j=0;for(i=100;i<="">/**************found**************/k=i;a=k%10; k/=10;b=k%10; k/=10;/**************found**************/c=k;if(a==b&&a==c) s[j++]=i;}return j;}main(){ int a[N],n,num=0,i;do{ printf("\nEnter n(<=1000); "); scanf("%d",&n); }while(n>1000);num=fun(a,n);printf("\n\nThe result:\n");for(i=0; i<="">printf("\n\n");}2、程序改错给定程序中函数fun的功能是:将形参n中各位上为偶数的数取出,并按原来从高位到低位的顺序组成一个新的数,并作为函数值返回。

例如,从主函数输入一个整数27638496,函数返回值为26846。

请改正函数fun中指定部位的错误,使它能够得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

需改正程序如下:修改后代码如下:#includelong fun(long n){ long x=0,s,i;int t;s=n;/*********found**********/i=1;/*********found**********/while(s>0){ t=s%10;if(t%2==0){/*********found**********/x=x+t*i; i=i*10;}s=s/10;}return x;}main(){ long n=-1;while(n>99999999||n<0){ printf("Please input(0<n<100000000):");< p="">scanf("%ld",&n); }printf("\nThe result is:%ld\n",fun(n));}3、编程题(1)给定程序中函数fun的功能是:输出M行M列的整数方阵,然后求两条对角线上的元素之和,要求返回此和数。

西安交通大学第四次汇编上机报告

西安交通大学第四次汇编上机报告

西安交通大学第四次汇编上机报告80x86 汇编语言程序设计课内实验报告班级实验时间2021.6.10姓名学号实验内容概述(1)试编制一程序,要求测出一个子程序的运行时间(指该子程序从被调用、执行、再返回调用程序所花费的时间),并把其运行时间按照时分秒(HH:MM:SS)的形式在屏幕上输出。

(使用时钟服务INT 1AH)(2)编写程序,使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入字变量单元NUM 中。

程序启动后等待用户输入,输入字符Q 后退出,并将NUM 值用十六进制形式显示出来。

例如NUM 的内容为1234h,则在屏幕上显示1234h。

(3)编写一个程序,接收从键盘输入的10 个十进制数字(你的学号),输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。

实验步骤(1)定义时分秒数据段,调用子程序ENCRYPT,子程序中调用DOS 系统的INT1AH 中的时钟服务,将得到的值赋给HH、MM、SS,最后调用INT21H 的9号功能,在屏幕上显示出来(2)定义数据段,修改1 号中断为COUNT,保存1CH 中断向量,然后使类型1CH 的中断向量指向中断处理程序COUNT,COUNT 统计1CH 中断次数并存入字变量单元NUM 中。

调用INT21H0A 号功能读取用户在缓存区的键入字符,当检测到输入字符Q 后退出,用02 号功能将NUM 值用十六进制形式显示出来(3)调用INT21H0A 号功能将键盘输入读取至缓存区,接收从键盘输入的10个十进制数字,同时判断当输入回车符则停止输入,然后将这些数字加密后(用XLAT 指令变换)存入内存缓冲区BUFFER。

实验中遇到的问题及其解决方法本次实验主要是做了对DOS 和BIOS 功能的使用,过程很顺利,没有遇到困难。

实验结果正确年月日建议无备注无。

西南交大C++实验四.doc

西南交大C++实验四.doc

实验__4__实验报告教学班级:______ 学生学号:______ _ 学生姓名:__________实验日期:__________ 实验地点:___指导教师签名:__________ 实验成绩:___________ 一、实验目的1.掌握if else 的嵌套结构;2.掌握多路分支结构的程序设计,以及switch 语句的使用方法;二、实验任务1. 已知一个函数输入x 的值,求解并输出相应的y 值。

要求用if …else 的嵌套结构实现。

2. 从键盘任意输入三个整数a 、b 、c ,计算并输出它们的最大数。

要求用if …else 的嵌套结构实现。

3.某工厂有如下规定:工龄不到一年的(工龄为0),无年休假;工龄为1~5年的,年休假为7天;工龄为6~10年的,年休假为14天;工龄为11~20年的年休假为21天;工龄20年以上的,年休假为28天。

编程实现:输入工龄,输出对应的年休天数。

要求用if …else 的嵌套结构实现。

4. 文具厂销售笔袋,按照客户的购买数量不同,给出了不同的优惠政策,详见下表:要求编程实现:输入客户购买笔袋数量,输出购买总金额。

要求用switch 语句实现。

5.模拟二人猜拳游戏:剪刀石头布。

要求:(1)给出选项菜单如下⎪⎩⎪⎨⎧>=-<<=-<=)10(13)100(12)0(x x x x x x y**********新一局**********1.出剪子2.出石头3.出布***************************请输入甲、乙猜拳代码:根据两个用户输入给出猜拳“战况”,要求用switch语句实现。

三、实验结果(源程序+ 注释)1. //已知一个函数,输入x的值,求解并输出相应的y值。

#include<iostream>using namespace std;void main(){cout<<"学号:"<<endl;double x,y;cout<<"请输入x的值:";cin>>x;if (x<0){y=x;cout<<y<<endl;}else if(x>=0&&x<10){y=2*x-1;cout<<y<<endl;}else if(x>=10){y=3*x-1;cout<<y<<endl;}}2.//从键盘任意输入三个整数a、b、c,计算并输出它们的最大数。

交大程序设计C试验二程序

交大程序设计C试验二程序

1、程序填空下面程序的功能为:计算1〜100之间的偶数之和,完成以下的程序并运行出正确的结果。

修改后代码如下:# include <stdio.h> void main() {int i,s=0;/**************found*************/i=2;while(i<=100){s=s+i;/**************found**************/ i=i+2;}printf("s=%d",s);2、程序改错(1)下面程序的功能为:计算10!,修改以下的程序并上机运行通过。

修改后代码如下:#include <stdio.h> void main() {int n,t;for(n=1,t=1;t<=10;t++) n=n*t;printf("10!=%d\n”,n);(2)下面程序的功能为:计算1〜100之间能被3和7整除的数之和,修改以下的程序并上机运行通过。

修改后代码如下:#include <stdio.h> void main() {int i,s;i=0, s=0;while(i<=100){if(i%3==0 && i%7==0) s+=i;i=i+1;}printf("s=%d",s);3、编程题(1)有一个分数序列:2/1、3/2、5/3、8/5、13/8、……,编写一个C程序,求出这个数列的前30项之和。

编程后代码如下:#include <stdio.h> void main() {int a=1, b=2, c, i;float s=0;for (i=1; i<=3 0; i + +) {printf("第%2d 项:%d/%d\n", i, b, a);s += b*1.0/a*1.0;c=b;b=a+c;a=c; }printf("\n");printf ("分数序列:/1、/2、/3、/5、/8、……前项之和为:%f\n", s); }(2)编写程序,求1!+2!+3!+…+10!。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

in***********/
main() { char s[80]="baawrskjghzlicda",p[50]; printf("\nThe original string is: %s\n",s); fun(s,p); printf("\nThe result is: %s\n",p); }
2、程序填空 学生的记录由学号和成绩组成,N 名学生的数据已在主函数中放入结构体数组 s 中,
在以下程序的下划线处填入正确的内容并把下划线删除,使程序得出正确结果。不得 增行或删行,也不得更改程序结构。
程序填空如下:
修改后代码如下: #include <stdio.h> void fun(char *s,char *p) { int i,j,n,x,t; n=0; for(i=0;s[i]!='\0';i++) n++; for(i=1;i<n-2;i=i+2) {
/**********found**********/ t=i;
/**********found**********/ for(j= t+2;j<n;j=j+2)
if(s[t]>s[j]) t=j; if(t!=i) { x=s[i]; s[i]=s[t]; s[t]=x; } } for(i=1,j=0;i<n;i=i+2,j++) p[j]=s[i]; /**********found**********/ p[j]= '\0' ; }
修改后代码如下: #include <stdio.h> /**********found**********/ void fun(long s, long *t) { long s1=10; s/=10; *t=s%10; /**********found**********/ while(s>0) { s=s/100; *t=s%10*s1+*t; s1=s1*10; } }
实验要求
本实验要求完成函数的应用程序设计。具体要求如下:
1、程序填空 给定程序中函数 fun 的功能是:对形参 s 所指字符串中下标为奇数的字符按 ASCII
码大小递增排序,并将排序后下标为奇数的字符取出,存入形参 p 所指字符数组中,形成 一个新串。
例如,形参 s 所指字符串为 baawrskjghzlicda,执行后 p 所指字符数组中的字符 串应为 aachjlsw。
main() { long s,t; printf("\nPlease enter s:"); scanf("%ld",&s); fun(s,&t); printf("The result is: %ld\n",t); }
4.程序改错 给定程序中函数 Creatlink 的功能是创建带头结点的单向链表,并为各结点数据域
main() {STREC s[N]={{"GA05",85},{"GA03",76},{"GA02",69}, {"Gh04",85},{"GA01",91},{"GA07",72}, {"GA08",64},{"GA06",87},{"GA015",85}, {"GA013",91},{"GA012",64},{"GA014",91}, {"GA011",91},{"GA017",64},{"GA018",64}, {"GA016",72}}; STREC h[N]; int i,n; FILE *out; n=fun(s,h); printf("The %d lowest score: \n",n); for(i=0;i<n;i++) printf("%s %4d\n",h[i].num,h[i].s); printf("\n"); out=fopen("out14.dat","w"); fprintf(out,"%d\n",n); for(i=0;i<n;i++) fprintf(out,"%4d\n",h[i].s); fclose(out); }
3.程序改错 给定程序中函数 fun 的功能是:从低位开始取出长整型变量 S 中偶数位上的数,依次
构成一个新数放在 t 中。高位仍在高位,低值仍在低位。 例如,当 S 中的数为 7654321 时,t 中的数为 642。 请改正程序中指定部位的错误,使它能够得出正确结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。 需改正程序如下:
给定函数 fun 的功能是:把分数最低学生的数据放在 b 指定的数组中,分数最低的学生可 能不止一个,函数应返回分数最低学生的人数。在程序的下划线处填入正确的内容并把下 划线删除,使程序得出正确结果。不得增行或删行,也不得更改程序结构。
需填空程序如下:
修改后代码如下: #include <stdio.h> #define N 16 typedef struct { char num[10]; int s; } STREC; int fun(STREC *a,STREC *b) { int i,n=0,min; min=a[0].s; for(i=0;i<N;i++) /**********found***********/ if(a[i].s<min) min=a[i].s; for(i=0;i<N;i++) if(a[i].s==min) /**********found***********/ {*(b+n)=a[i]; n++; } /**********found***********/ return n; }
赋 0~m-1 的值。 请改正函数 Creatlink 中指定部位的错误,使它能够得出正确结果。 需改正程序如下:
修改后代码如下: #include <stdio.h> #include <stdlib.h> typedef struct aa { int data; struct aa *next; } NODE; NODE *Creatlink(int n,int m) { NODE *h=NULL,*p,*s;
相关文档
最新文档