- 实验目的或任务
面向对象软件开发方法是吸收了软件工程领域有益概念和有效的方法而发展起来的一种软件开发方法。它集抽象性、封装性、继承性和多态性于一体,可以帮助程序设计者开发出模块化、数据抽象程度高,体现信息隐蔽、可复用、易修改、易移植等特性的程序。
本课程以C++语言中的面向对象机制为主,讨论面向对象程序设计的基本理念与方法机理。通过实验教学环节,使学习者在学习过程中通过一定量的程序实例和相关练习,逐步掌握C++的面向过程和面向对象的功能,从而掌握面向对象程序设计的基本知识和基本技能。
通过本实验教学环节,可以在以下几个方面提高学习者的专业能力:
- 提高学习者解决问题的抽象能力和逻辑思维能力;
- 初步掌握面向对象的软件设计思路;
- 提高学习者面向对象程序开发工具的自学习能力;
- 使学习者具备面向对象程序开发的基本素养。
- 实验教学基本要求
- 理解掌握C++语言函数的高级特性,理解面向对象程序设计的数据抽象与数据封装性,掌握C++通过类与对象实现数据封装与信息隐藏的机制和方法;
- 理解面向对象程序设计代码重用的设计思想,掌握C++类的继承与派生机制与实现途径;
- 理解面向对象程序设计多态性的概念与思想,掌握C++运算重载、函数重载、虚函数技术实现多态性的机制与方法;
- 理解掌握C++ I/O流实现输入输出的设备无关性理念与方法
内容提要
1. 设计程序找出1-100间的质数,显示出来。
2. 二维数组:M个同学N门课成绩处理,字符数组存放姓名。
基本要求
用for或while或do-while循环语句实现,能对数据进行排序的程序,能运用二维数组能熟练对学生成绩进行输入,查找,排序,输出等功能并提交程序。
#include<iostream>
#include<cmath>
using namespace std;
int main(){
int cinLine=0;
for(int i=2;i<=100;i++){
int sqrtNumber = (int)sqrt(i);
int count=0;
for(int j=2;j<=sqrtNumber;j++){
if(i%j==0){
count++;
break;
}
}
if(count==0){
cout<<" "<<i;
cinLine++;
}
}
return 0;
}
#include <iostream>
#include <cmath>
#include <cstring>
#define M 5//定义数学的数量
#define N 5//定义课程数数量
using namespace std;
struct student{
string name[M];
double studentcore[M][N];
};
class Student {
public:
void insert(){
for(int i=0;i<M;i++){
cout<<"输入学生的姓名: ";
cin>>studentName[i];
cout<<"输入学生"<<studentName[i]<<"的成绩:";
for(int j=0;j<N;j++)
cin>>studentCore[i][j];
}
}
void showCore(){
for(int i=0;i<M;i++){
cout<<studentName[i]<<" ";
for(int j=0;j<N;j++)
printf("%5.1f",studentCore[i][j]);
cout<<endl;
}
}
void serach(){
string name;//待查找的学生姓名
bool flag=false;
cout<<"输入你要查找的学生姓名:";
cin>>name;
for(int i=0;i<M;i++){
flag=false;
if(name==studentName[i]){
flag=true;
if(flag){
for(int j=0;j<N;j++)
printf("%5.1f",studentCore[i][j]);
}
}
}
}
private:
string studentName[M];//学生的姓名集合
double studentCore[M][N];//二维学生成绩
};
int main() {
Student student;
student.insert();//初始化学生和成绩
student.showCore();//展示学生和成绩
student.serach();//根据姓名查找成绩
return 0;
}