第三次上机作业
题目:
1.从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。
【编程要求】
1)编写函数int del(int r[ ], int n),计算r数组中前n个整数的平均值,删除
数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩
余整数的个数。
2)编写main函数,声明数组resource并用测试数据初始化,调用del函数
处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕。
【测试数据与运行结果】
数组初始数据为:17 5 6 18 8 28
运行结果:17 5 18 28
2.编程要求
1)编写函数int find(char *a , char *b),函数被调用时,a指向的数组中已
存储一个字符串,该字符串是一个包含了多个单词的英语句子。函数的
功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中,
函数返回最长单词在字符串的起迭位置下标。
2)编写main函数,接受键盘输入的一个英文句子。调用find函数找到该
句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到
屏幕。
附加题
3.重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。
【测试数据与运行结果】
数组原始数据为:17 15 10 14 16 17 19 18 13 12
输出结果:18 16 14 12 10 13 15 17 17 19 要求:
1)编写函数void resort(int *x, int n),使得左边的所有元素均为偶数并按由
大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。
(可根据编程需要增加函数)
2)编写main函数,接受键盘输入数据,调用resort函数完成上述功能,并
输出结果。
实验三类与对象 1.实验目的 1.掌握类的定义和使用 2.掌握类的定义和对象的声明 3.复习具有不同访问属性的成员的访问方式 4.观察构造函数和析构函数的执行过程 5.学习类的组合使用方法 6.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 2.实验要求 1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。 2.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom 为CDROM类的一个对象,定义并实现这个类。 3. (选做)设计一个用于人事管理的People(人员)类。考虑到通用性这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、组合。 3.实验内容 1.首先定义枚举类型CPU_Rank,例如enum CPU_Rank{P1=1, P2, P3, P4, P5, P6, P7},再定义CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等私有数据成员,定义成员函数run、stop,用来输出提示信息,在构造函数和析构函数中也可以输出提示信息。在主程序中定义一个CPU的对象,调用其成员函数,观察类对象的构造与析构顺序,以及成员函数的调用。程序名: 2.使用debug调试功能观察程序的运行流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。 3.调试操作步骤如下: 1)单击Build | Start Debug | Step Into命令,或按下快捷键F11,系统进入单步执行状态,程序开始运行,一个DOS窗口出现,此时Visual Studio 中光标停在main()函数的入口处; 2)从Debug菜单或Debug工具栏中单击Step Over,此时,光标下移,程序准备执行CPU 对象的初始化; 3)单击Step Into,程序准备执行CPU类的构造函数; 4)连续单击Step Over,观察构造函数; 5)此时程序准备执行CPU对象的run()函数,单击Step Into,程序进入run()成员函数,连续单击Step Over,直到回到main()函数。 6)继续执行程序,参照上述的方法,观察程序的执行顺序,加深对类的构造函数、析构函数、成员函数的执行顺序的认识。 7)再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。 4.首先定义CPU类(可使用第二题中的CPU类)、RAM类、CDROM类。再定义Computer类;
第三次上机作业 题目: 1.从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。 【编程要求】 1)编写函数int del(int r[ ], int n),计算r数组中前n个整数的平均值,删除 数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩 余整数的个数。 2)编写main函数,声明数组resource并用测试数据初始化,调用del函数 处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕。 【测试数据与运行结果】 数组初始数据为:17 5 6 18 8 28 运行结果:17 5 18 28 2.编程要求 1)编写函数int find(char *a , char *b),函数被调用时,a指向的数组中已 存储一个字符串,该字符串是一个包含了多个单词的英语句子。函数的 功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中, 函数返回最长单词在字符串的起迭位置下标。 2)编写main函数,接受键盘输入的一个英文句子。调用find函数找到该 句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到 屏幕。 附加题 3.重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。 【测试数据与运行结果】 数组原始数据为:17 15 10 14 16 17 19 18 13 12 输出结果:18 16 14 12 10 13 15 17 17 19 要求:
1)编写函数void resort(int *x, int n),使得左边的所有元素均为偶数并按由 大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。 (可根据编程需要增加函数) 2)编写main函数,接受键盘输入数据,调用resort函数完成上述功能,并 输出结果。
实验一: 1、已知华氏温度,根据转换公式计算相应的摄氏温度。 摄氏温度= 5*(华氏温度-32)/9 2.任意输入一个有五位数字的正整数,逆序输出每一数位上的数字。 如: 输入 12345 输出 5 4 3 2 1 #include"stdio.h" main() { double t,T; printf ("已知华氏温度,根据转换公式计算相应的摄氏温度"); scanf ("%lf",&t); T=(5*(t-32)/9); printf ("摄氏温度=%lf",T); } #include"stdio.h" main() { int value,a,b,c,d,e,m,n,h; printf ("任意输入一个有五位数字的正整数,逆序输出每一数位上的数字"); scanf ("%d",&value); a=value/10000; m=value%10000; b=m/1000; n=m%1000; c=n/100; h=n%100; d=h/10; e=h%10; printf ("%d%d%d%d%d",e,d,c,b,a); } 实验二: 1.一个成年人的身高与其父母的身高密切相关,根据以下人体标准身高预测公式计算自己或某个同学的身高,并跟实际身高比较,给出结论是否符合该公式(误
差在3厘米范围内即视为相符)。 男性身高=(父亲身高+母亲身高)×1.08÷2(厘米) 女性身高=(父亲身高×0.923+母亲身高)÷2(厘米) 2.从键盘上输入税前收入,根据以下公式及规则,计算个人所得税税额并输出。应纳个人所得税税额=(税前收入—起征点额度)*适用税率—速算扣除数 其中,起征点额度是3500元,其他如下: 应纳税所得额税率速算扣除数 不超过1500元的部分 3% 0 超过1500元至4500元的部分 10% 105 超过4500元至9000元的部分 20% 555 超过9000元至35000元的部分 25% 1005 超过35000元至55000元的部分 30% 2755 超过55000元至80000元的部分 35% 5505 超过80000的部分 45% 13505 如:某人月收入5000元,则应纳个人所得税税额为(5000-3500)* 10% - 105 = 45元。 #include
软基第三次上机实验报告 EX3.1 一、程序流程说明 1)链栈结点类型定义为: typedef struct node { int data; struct node *next; }node_type; 2)编写进栈函数push 3)编写出栈函数pop 4)编写main函数,首先建立一空链栈; 调用进栈函数,将从键盘输入的数据元素逐个进栈,输入0结束;显示进栈后的数据元素;调用两次出栈函数,显示出栈后的数据元素。 二、程序代码 #include
void pop(lstack_type *lp) { node_type*p; if(p==NULL) { return; } else { p=lp->top; lp->top=lp->top->next; free(p); } } node_type*print(node_type*head) { node_type*temp; temp=head; while(temp!=NULL) { printf("%d\t",temp->data); temp=temp->next; } return 0; } void main() { int i,j; i=0;j=0; lstack_type M,*lp; lp=&M; lp->top=NULL; printf("Please input the data(end by '0'):\n"); scanf("%d",&i); while(i!=0) { push(lp,i); scanf("%d",&i); } printf("All data is:\n"); print(lp->top); printf("\n The first pop:\n"); pop(lp); print(lp->top);
第5章上机实验报告 一、实验目的 (1)观察程序运行中变量的作用域74。 (2)学习类的静态成员的使用。 (3)学习多文件结构的C++程序中的使用。 二、实验任务 (1)运行下面的程序,观察变量x,y的值。 【代码lab5-1】 #include"iostream" usingnamespace std; void fun(); int x=1,y=2; int main() { cout<<"Begin..."< //client.h #ifndef CLIENT_H_INCLUDED #define CLIENT_H_INCLUDED usingnamespace std; class Client { public: Client(); Client(Client&p); ~Client(); staticvoid ChangeServerName(string Name); void show(); private: static string serName; staticint clientNum; }; #endif// CLIENT_H_INCLUDED //client.cpp #include"iostream" #include"client.h" usingnamespace std; int Client::clientNum=0; string Client::serName="ser"; Client::Client() { clientNum++; 数值线性代数第三次上机作业 对比试验希尔伯特矩阵和魔方矩阵及Matlab内置QR分解(六阶矩阵) 运行结果: 六阶的希尔伯特矩阵经典的Gram-Schmidt QR分解: Q = 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0332 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2322 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6189 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2784 R = 1.2212 0.7019 0.5045 0.3970 0.3284 0.2806 0 0.1385 0.1511 0.1444 0.1340 0.1237 0 0 0.0096 0.0152 0.0181 0.0195 0 0 0 0.0005 0.0010 0.0014 0 0 0 0 0.0000 0.0000 0 0 0 0 0 0.0000 六阶的希尔伯特修正的Gram-Schmidt QR分解: Q = 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0331 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2320 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6188 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2785 R = 1.2212 0.7019 0.5045 0.3970 0.3284 0.2806 0 0.1385 0.1511 0.1444 0.1340 0.1237 0 0 0.0096 0.0152 0.0181 0.0195 0 0 0 0.0005 0.0010 0.0014 0 0 0 0 0.0000 0.0000 0 0 0 0 0 0.0000 六阶的希尔伯特matlab内置的QR分解: Q= 0.8189 -0.5397 0.1893 -0.0482 0.0090 -0.0011 0.4094 0.3320 -0.7024 0.4489 -0.1617 0.0331 0.2730 0.4219 -0.1529 -0.5723 0.5854 -0.2320 0.2047 0.4067 0.2015 -0.3866 -0.4687 0.6188 0.1638 0.3735 0.3963 0.0915 -0.4285 -0.6961 0.1365 0.3399 0.4998 0.5574 0.4773 0.2785 第一次上机作业(2014): 要求: ?独立完成,上机调试通过后上交 ?作业提交邮箱: ?邮件主题命名:班级学号姓名(第1次作业), 例如:电1301班2王鹏(第1次作业) ?以附件形式将每次作业的所有程序源程序压缩打包后提交,压缩文件命名格式同上。 ?程序必须采用缩进格式 1.大写字母转换成小写字母 从键盘输入一个大写英文字母,输出相应的小写字母。 例:输入G 输出g 2.求平方根 输入一个实数x,计算并输出其平方根(保留1 位小数)。 例:输入17 输出The square root of 17.0 is 4.1 3.温度转换 设计一个程序将华氏温度转换成摄氏温度c = 5/9(f-32) a)输入华氏温度(实型) b)输出的摄氏温度结果保留两位小数 例:Please input Fahrenheit temperature: 76.8 The corresponding Celsius temperature is 24.89 4. 计算旅途时间 输入二个整数time1 和time2,表示火车的出发时间和到达时间,计算并输出旅途时间。 (输入的有效的时间范围是0000 到2359,不需要考虑出发时间晚于到达时间的情况。) 例:输入712 1411 (出发时间是7:12,到达时间是14:11) 输出The train journey time is 6 hours 59 minutes. 5. 数字加密 输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10 取余,做为该位上的新数字,最后将第1 位和第3 位上的数字互换,第2 位和第4 位上的数字互换,组成加密后的新数。 例:输入1257 输出The encrypted number is 4601 思考题:你能否编程找出谁做的好事? 有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 ?A说:不是我。 ?B说:是C。 ?C说:是D。 ?D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 第二次上机作业(2014): 要求: ?独立完成,程序必须采用缩进格式,上机调试通过后上交 实验报告 课程名称: 计算方法 指导老师: 太英 成绩: 实验名称: 第三次上机作业 实验类型: matlab 同组学生: 一、实验目的和要求(必填) 二、实验容和原理(必填) 三、主要仪器设备(必填) 四、操作方法和实验步骤 五、实验数据记录和处理 六、实验结果与分析(必填) 七、讨论、心得 一、实验目的 用龙贝格算法计算积分I =∫ssss s ss 01 ,要求误差不超过ε=12 ×105 二、实验原理 龙贝格算法是由递推算法得来的。由梯形公式得出辛普森公式得出柯特斯公式最后得到龙贝格公式。设将求积区间[a ,b]分为n 个等分,则一共有n+1个等分点,k x a kh =+,0,1,b a h k n -= =,n 。这里用n T 表示复化梯形法求得的积分 值,其下标n 表示等分数。 先考察下一个字段[1,k k x x +],其中点()112 1 2 k k k x x x ++= +,在该子段上二分前后两个积分值 ()()112 k k h T f x f x += +???? ()()21124k k k h T f x f x f x ++? ??? =+ +?? ??????? 显然有下列关系 2112122k h T T f x +? ?=+ ??? 将关系式关于k 从0到n-1累加求和,即可得递推公式1 210 2122n n n k k h T T f x -+=?? =+ ??? ∑ 需要强调指出的是,上式中的b a h n -= 代表二分前的步长,而12 12k x a k h +? ?=++ ??? 根据梯形法的误差公式,积分值n T 的截断误差大致与2h 成正比,因此步长减半后误差将减至四分之一,即有 211 14 n n T T -≈- 将上式移项整理,知 221 1()3 n n n T T T -≈- 按上式,积分值2n T 的误差大致等于21 ()3 n n T T -,如果用这个误差值作为2n T 的 一种补偿,可以期望,所得的()222141 333 n n n n n T T T T T T =+ -=-应当是更好的结果。 组合得到的近似值T 直接验证,用梯形二分前后的两个积分值n T 和2n T 按式组合, 结果得到辛普森法的积分值241 33 n n n S T T =- 再考察辛普森法。其截断误差与4h 成正比。因此,若将步长折半,则误差相应的减至十六分之一。既有 21 16n n I S I S -≈- 由此得 21611515 n n I S S ≈ - 不难验证,上式右端的值其实就等于n C ,就是说,用辛普森法二分前后的两个积分值n S 和2n S ,在按上式再做线性组合,结果得到柯特斯法的积分值n C ,既有 2161 1515n n n C S S ≈ - 重复同样的手续,依据斯科特法的误差公式可进一步导出龙贝格公式 2641 6363 n n n R C C ≈ - 在步长二分的过程中运用公式加工三次,就能将粗糙的积分值n T 逐步加工成精度较高的龙贝格n R ,或者说,将收敛缓慢的梯形值序列n T 加工成熟练迅速的龙贝 格 值序列n R ,这种加速方法称龙贝格算法。 三、实验过程 1.流程图 第二次上机作业参考答案: 1. 4个数排序 从键盘任意输入4个整数,将其按从小到大顺序排序后输出。 例:输入 5 12 -9 3 输出After ascending sorting: -9 3 5 12 #include 3. 编程计算表达式:data1 op data2 的值。(+ - * / %) 例:输入23+12 输出23+12=35 #include 答案仅供参考 实验一 4.设计main函数实现从键盘上输入两个整型变量a、b的值,交换它们的值并输出。#include printf("x=%d,y=%d\n",x,y); getch(); } 实验二 1.编写程序,从键盘上输入一个整数(例如560)表示分钟,将其换算成用小时和分钟表示,然后输出至屏幕。 #include 实验报告 课程名称:软件工程实验名称:用PowerDesigner建模工具绘制数据流图班级:学生姓名:学号: 指导老师评定:签名: 一、实验环境 Windows 2000、Rational Software公司的Rational Rose应用软件 二、实验目的 1)了解Rational Rose工具软件的组成及功能 2)掌握用Rational Rose画用例图的具体的使用方法 三、实验内容 1)设计用例图(Use Case框图) 2)用Rational Rose在Use Case视图中创建Use Case框图。 四、实验要求 建立一个Use Case框图,并给出“预订教室”的用例描述。 1) 背景 某大学需要一个教室预订系统,将空闲的教室提供给师生做学术报告或班级活动。师生可使用该系统预订所需的教室,以便让管理员在恰当的时间开放教室、准备好多媒体设备。 2) 功能要求 2.1) 管理员可使用该系统增加用户、删除用户。 2.2) 管理员可向系统中增加或删除供预订的教室,设置任一教室可使用的时间段。 2.2) 师生可登录系统、修改密码。 2.3) 师生在登录后,可浏览给定时间段的空闲(供预订的且未被预订的)教室;选择教室和使用时间段,预订教室。 2.4) 管理员可浏览任意时间段内的教室预订情况。 3) 性能要求 3.1) 教室占用的时间段精确到“课时”。 3.2) 支持最多10000人同时在线使用系统,确保系统稳定流畅。 五、实验步骤 Use Case框图表示整个机构提供的功能,可以用来回答下列一些问题:公司是干什么的?为什么要建立这个系统?还有那些人使用这些系统。Use Case框图在业务建模活动期间大量用于设置系统情景和形成创建使用案例的基础。 1)如何使用Rational Rose画Use Case框图 S1:点击“开始”在“程序”中找到“Rational rose”点击“Rational Rose Enterprise Edition”进入该软件。 数据库实验 (第三次) 题目1 实验内容: 1. 检索上海产的零件的工程名称; 2. 检索供应工程J1零件P1的供应商号SNO; 3. 检索供应工程J1零件为红色的供应商号SNO; 4. 检索没有使用天津生产的红色零件的工程号JNO; 5. 检索至少用了供应商S1所供应的全部零件的工程号JNO; 6. 检索购买了零件P1的工程项目号JNO及数量QTY,并要求对查询的结果按数 量QTY降序排列。 1 select jname from j where jno in (select jno from spj where sno in (select sno from s where city ='上海' ) ); 2 select sno from spj where jno ='j1'and pno ='p1' 3 selectdistinct sno from spj where pno in (select pno from p where color='红'and pno in (select pno from spj where jno ='j1' ) ); 4 selectdistinct jno from spj where pno notin (select pno from p where color ='红'and pno in (select pno from spj where sno in (select sno from s where city ='天津' ) ) ) 5 select jno from spj where sno ='s1' 6 select jno,qty from spj where pno ='p1' orderby qty desc 四﹑思考题 1.如何提高数据查询和连接速度。 建立视图 2. 试比较连接查询和嵌套查询 有些嵌套查询是可以用连接来代替的,而且使用连接的方式,性能要比 嵌套查询高出很多 当查询涉及多个关系时,用嵌套查询逐步求解结构层次清楚,易于构造,具有结构化程序设计的优点。但是相比于连接运算,目前商用关系数据库管理系统对嵌套查询的优化做的还不够完善,所以在实际应用中,能够用连接运算表达的查询尽可能采用连接运算。 题目一:永久机械厂生产Ⅰ、Ⅱ、Ⅲ三种产品,均要经过A 、B 两道工序加工。设有两种规格的设备A1、A2能完成 A 工序;有三种规格的设备B1、B2、B3能完成 B 工序。Ⅰ可在A 、B 的任何规格的设备上加工;Ⅱ 可在任意规格的A 设备上加工,但对B 工序,只能在B1设备上加工;Ⅲ只能在A2与B2设备上加工。数据如表。问:为使该厂获得最大利润,应如何制定产品加工方案? 解:设设备A 1生产I 产品1x 件,产品II 生产2x 件,设备A 2生产产品I,3x 件,产品IIx 4件, 产品IIIx 5件,设备B 1生产Ix 6件,IIx 7件,设备B 2生产Ix 8件,IIIx 9件,设备B 3生产Ix 10件。由题意可得: Max Z=0.751x +1.152x +0.77533x +1.3611 x 4 +1.9148 x 5-0.375 x 6-0.5 x 7 -0.447429 x 8-1.230429 x 9-0.35 x 10 ST.?? ? ?? ? ? ? ????? 9574210863110987654320040007700011440008610000 12976000105x x x x x x x x x x x x x x x x x x x x ==-+=---+≤≤+≤+≤++≤+ 经运算可得: **********************最优解如下************************* 目标函数最优值为: 1146.41367867589 变量最优解 ------- -------- x1 1200 x2 0 x3 230 x4 500 x5 324 x6 0 x7 500 x8 859 x9 324 x10 571 约束松弛/剩余 ------- --------- 1 0 2 2 3 0 4 0 5 3 6 0 7 0 8 0 故设备A 1生产I产品1200件,产品II生产零件;设备A 2 生产产品I,230件,产品II500件, 产品III324件;设备B 1生产I零件,II500件;设备B 2 生产I859件,III324件;设备B 3 生 华中科技大学 《计算机基础与程序设计(C++)》 实验报告 实验名称:第三次上机实验实验学时:4 姓名:学号:班级:电气 实验日期:2017/3/27 教师批阅签字: 一、实验目的 ●掌握三种循环语句的使用。 ●学会使用continue 和break。 ●掌握多重循环的设计。 ●掌握常用算法的应用。 二、实验内容 1.在vc环境下编写下述程序代码,编译调试然后用不同的数据测试直至得到完全正确的 结果。并解释出错原因。 #include数值线性代数第三次上机作业
C语言上机作业试题5套含答案
计算方法第三次上机实习报告
第二次上机作业参考答案
扬州大学C语言上机作业1-9整理
软件工程实验报告第三次
数据库上机实验报告
运筹学第三次上机作业之资源利用问题
华中科技大学c第3次上机作业