编程题复习要点

上传人:壹****1 文档编号:507928096 上传时间:2024-02-10 格式:DOCX 页数:40 大小:45.44KB
返回 下载 相关 举报
编程题复习要点_第1页
第1页 / 共40页
编程题复习要点_第2页
第2页 / 共40页
编程题复习要点_第3页
第3页 / 共40页
编程题复习要点_第4页
第4页 / 共40页
编程题复习要点_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《编程题复习要点》由会员分享,可在线阅读,更多相关《编程题复习要点(40页珍藏版)》请在金锄头文库上搜索。

1、编程题复习方法:做编程题时,先别着急动手,一定认真把题意理解清楚,在纸上写出解题方法与关键语句用到什么算法,最后按照输入数据-处理数据-输出数据的流程实现主程序与相关函数。按步骤给分,人工阅卷编写程序时一定要注意格式,要有缩进或退格。1、 定义类的框架2、 成员函数的实现3、 在主函数中测试类具体实现的公式:class 类名private: 私有数据成员;public: 数据成员; 成员函数;(构造函数与析构函数)类名:类名() /构造函数成员函数的个数及类中的个数一样,函数名前加类名:void main()类名 对象名( 参数 );/是否带参数取决于构造函数构造函数的定义方法 数据成员是内置

2、类型变量,直接用该类型的形参变量初始化数据成员。class A int i;public: A(int x) i=x;数据成员是一维数组,通过一个for循环将形参数组元素初始化一维数组成员。class A int t5;public: A(int b,int n) for(int i=0;in;i+)ti=bi; 数据成员是二维数组,通过双重循环将形参数组元素初始化二维数组成员。class A int t34;public: A(int b4,int n) for(int i=0;in;i+) for(int j=0;j4;j+)tij=bij;数据成员是一维字符数组,可以用字符串拷贝函数st

3、rcpy,将形参字符数组中的字符串,初始化字符数组成员。#include #include class A char t100;public: A(char b ) strcpy(t,b);数据成员是字符类型指针变量,先用new动态申请长度为形参指针指向的字符串长度+1的内存空间,把返回的首地址赋给指针成员,再把形参指向字符串拷贝到动态数组中。#include #include class A char *s;public: A(char *b) if(b) s=new charstrlen(b)+1; strcpy(s,b);数据成员是数值类型指针变量,先用new动态申请长度为形参数组长度的

4、内存空间,把返回的首地址初始化指针成员,再把形参数组元素循环赋给动态数组元素。#include class A int *s;public: A(int b 10) s=new int10; int i; for(i=0;i10;i+) si=bi; 编程的根本类型题分析:一、学生成绩2021春VC01 1排序算法2四舍五入算法int保存整数 int/10.0 保存小数点后一位intx*100*100/100.0 保存小数点后两位3友元函数的定义与调用4字符串拷贝函数【题目】试定义一个实现计算学生课程成绩的类STU,对学生学期总评成绩进展计算并排序。具体要求如下:(1) 私有数据成员int n

5、orm, ex, final,overall:分别表示平时成绩、实验成绩、期末考试与总评成绩。char name15:学生姓名。(2) 公有成员函数void init(char *name1, int nor1, int ex1, int fin1):用参数name1,nor1,exp1,fin1分别初始化成员name,norm, ex, final。void fun( ):计算学生的总评成绩。计算方法为:总评成绩=平时成绩占*20%+实验成绩占*25%+期末成绩占*55%。总评成绩计算时要求四舍五入,并且期末考试成绩缺乏50分时,那么期末考试成绩即为总评成绩。friend void sort

6、(STU st, int n):友元函数,对st按总评成绩进展从大到小排序。void print( ):输出该学生信息。(3) 在主函数中先定义一个有5个元素的对象数组,用循环语句输入学生信息,并根据这些信息利用成员函数init()更新学生信息,然后使用函数sort()对数组排序,最后输出排序后的学生信息。输入/输出例如(下划线局部为键盘输入):请输入姓名、平时成绩、实验成绩、期末成绩:AAA 82 75 58请输入姓名、平时成绩、实验成绩、期末成绩:BBB 93 60 84请输入姓名、平时成绩、实验成绩、期末成绩:CCC 67 82 81请输入姓名、平时成绩、实验成绩、期末成绩:DDD 54

7、 78 51请输入姓名、平时成绩、实验成绩、期末成绩:EEE 91 52 41按总评成绩排序后:姓名 平时成绩 实验成绩 期末成绩 总评成绩BBB 93 60 84 80CCC 67 82 81 78AAA 82 75 58 67DDD 54 78 51 58EEE 91 52 41 412021秋VC02编程题四舍五入算法 int保存整数 int/10.0 保存小数点后一位int*100/100.0 保存小数点后两位【题目】假设二维数组的一行代表一名学生课程情况记录,前5列为考勤记录出勤值为1,缺勤值0,第610列为作业得分记录5分制,第11列为实验考核成绩,第12列为期末考试成绩。学生课程

8、总评成绩的计算式为四舍五入保存整数:平时成绩*20%+实验成绩*30%+期末考试成绩*50%,其中,平时成绩计算方法为:出勤一次记10分,作业每得1分,平时成绩记2分。例如,设有如下学生课程情况记录:考勤1考勤2考勤3考勤4考勤5作业1作业2作业3作业4作业5实验期末总评111104452490891011143434857511011345249580表中第一行学生的平时成绩计算为:(1+1+1+1+0)*10+(4+4+5+2+4)*2=78,那么其总评成绩计算为,总评成绩四舍五入计为87分。试定义一个类Array,根据上述要求计算学生的总评成绩。具体要求如下:1私有成员:l int a3

9、13: 学生课程情况记录数组。2公有成员:l Array (float t13, int n): 构造函数,用参数t初始化成员数组a,参数n为t的行数。l int sum(int k): 辅助函数,计算并返回成员数组a的第k行学生的平时成绩。l void fun( ): 根据题意计算每个学生的总评成绩。l void print( ): 按例如格式输出每个学生的信息。注意总评成绩结果要四舍五入。3在主函数中给定原始数组可利用题目中的样例数据,总评成绩暂定为0,并用该数组对类Array进展测试。 输出例如:考勤: 1,1,1,1,0,作业: 4,4,5,2,4,平时成绩: 78 实验: 90 期末

10、: 89 总评: 87考勤: 1,0,1,1,1,作业: 4,3,4,3,4,平时成绩: 76 实验: 85 期末: 75 总评: 78考勤: 1,1,0,1,1,作业: 3,4,5,2,4,平时成绩: 76 实验: 95 期末: 80 总评: 84【要求】翻开T盘中文件空文件,编写后的源程序文件必须保存在T盘的根目录下,供阅卷用。1答案#include#include class STUprivate:int norm,ex,final,overall;char name15;public: void init(char *name1,int norm1,int ex1,int fin1);

11、 void fun(); friend void sort(STU st,int n); void print();void STU:init(char *name1,int norm1,int ex1,int fin1)strcpy(name,name1);norm=norm1;ex=ex1;final=fin1;overall=0;void STU:fun() if(final=50) overall=int(norm*0.2+ex*0.25+final*0.55+0.5); else overall=int(final+0.5);void sort(STU st,int n)for(in

12、t i=0;in-1;i+)for(int j=i+1;jn;j+)if(sti.overallstj.overall)STU t;t=sti;sti=stj;stj=t;void STU:print()coutnametnormtextfinaltoverallendl;void main()STU s3;char name100;int norm,ex,fin;for(int i=0;i3;i+)cout请输入姓名、平时成绩、实验成绩、期末成绩:namenormexfin;si.init(name,norm,ex,fin);si.fun(); cout按总评成绩排序后:n姓名 平时成绩 实

13、验成绩 期末成绩 总评成绩endl;sort(s,3); for(i=0;i3;i+)si.print();2答案#include using namespace std;class Arrayprivate:int a313;public:Array(float t13,int n);int sum(int k);void fun();void print();Array:Array(float t13,int n) for(int i=0;in;i+) for(int j=0;j13;j+) aij=tij;int Array:sum(int k)int s1=0,s2=0,s=0; for(int i=0;i

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号