面向对象程序设计练习题1_类与对象_廖老师书中例题相关
题目与代码片段
1.
** 有一个类PrimeNumber,里面含有一个判断素数的方法(IsPrimeNumber),其中IsPrimeNumber不是静态(static)方法, 另有一个类TestPrimeNumber,其中有Main方法,利用PrimeNumber类的方法计算输出100万以内的素数及素数的个数。
试写出上面两个类的代码。
参见:面向对象程序设计(CSharp)-廖浩德-P43
**
bool isPrimeNumber;
int number = 3;
long count = 0;
do
{
isPrimeNumber = true;
int divisor = 2;
do
{
if(number%divisor == 0)
{
isPrimeNumber = false;
break;
}
divisor++;
}while(divisor<number);
if(isPrimeNumber)
count++;
number++;
}while(number<=1000000);
Console.WriteLine(count);
2.
** 若上题中的IsPrimeNumber是静态(static)方法,试给出程序的代码。
**
static bool IsPrimeNumber(int num)
{
int divisor = 2;
do
{
if(num%divisor == 0)
{
return false;
}
divisor++;
}while(divisor<num);
return ture;
}
3.
** 定义职工类Employee,含有私有的name, age字段、公有的Say()方法,定义类的构造函数初始化姓名及年龄,
进一步定义共有的Name与Age属性向外界公开姓名及年龄,
当年龄出现负数时给予“年龄不可以小于0!”的提示,定义类的析构函数输出“该员工的信息已不存在!”。
实例化该类测试其中的数据及操作。
参见:面向对象程序设计(CSharp)-廖浩德-P56-57-58
**
class Employee
{
private sting name;
private int age;
public string Name
{
get{return name;}
}
public int Age
{
get{return age;}
set{
if(value<0)
{
Console.WriteLine("输入的年龄不正确!");
}
else
{
age=value;
}
}
}
public void Say()
{
Console.WriteLine("我是" + name + "今年" + age + "岁");
}
}
4.
** 编写一个复数类,
定义复数的实部double real与虚部double image;
定义复数的加(Add)减(Sub)方法,
重载加(Add)减(Sub)方法,
重载“+”、“-”运算符。
实例化该类测试其中的数据及操作。
参见:面向对象程序设计(CSharp)-廖浩德-P59-60
We call a number of the form z = a + bi (a, b are real numbers) a complex number,
where a is the real part, b is the imaginary part, and i is the imaginary unit.
class Test{
static void Main(String[] args)
{
string[] inputs = Console.ReadLine().Split("".ToCharArray(),
StringSplitOptions.RemoveEmptyEntries);
int r1 = int.Parse(inputs[0]);
int i1 = int.Parse(inputs[1]);
int r2 = int.Parse(inputs[2]);
int i2 = int.Parse(inputs[3]);
Complex c1 = new Complex(r1,i1);
Complex c2 = new Complex(r2,i2);
(c1 + c2).Print();
(c1 - c2).Print();
}
}
收获与体会
小十七好菜啊…期望开学又不想开学呜呜,开学了可以做好多事情,不想开学是因为网课划水几个月,我是fw…