遇到了大问题,希望能够在这里遇见会C++的亲,解决问题,我不会做这个,主要是还是英文
题目1:
代码段A效率更高一些。代码段A中一旦条件符合,就不会再执行后面的条件语句,但是代码段B会执行所有的判断语句。
题目2:
switch(score)
{
case 1:
cout << "moderate";
break;
case 2:
cout << "good";
break;
default:
{
switch(level)
{
case 'T':
cout << "10% discount";
break;
case 'C':
cout << "15% discount";
break;
case 'E':
cout << "20% discount";
break;
default:
cout << "Sorry. No discount";
break;
}
break;
}
}
题目3:
a.答案
float CALCULATE_PAYMENT(char set,int num,float price);
b.答案
CALCULATE_PAYMENT(chicken_set,num_set,price_set)
c.答案
float s = 0.0;
switch(set)
{
case 'A':
case 'B':
s = price * 0.7 * num;
break;
case 'C':
case 'D':
s = price * 0.65 * num;
break;
}
return s;
d.答案
void CALCULATE_PAYMENT(char* size,char set,int num,float price)
{
float s = 0.0;
switch(set)
{
case 'A':
case 'B':
s = price * 0.7 * num;
break;
case 'C':
case 'D':
s = price * 0.65 * num;
break;
}
cout << "\n Chicken size:" << size << endl;
cout << "\n Chicken Set:" << set << endl;
cout << " Number of Set:" << num << endl;
cout << " Price: RM " << price << endl;
cout << "The total amount is RM" << s ;
}
题目4:
int price;
if(child_age >=2 && child_age <=4)
price = 180;
else if(child_age >=5 && child_age <=6)
price = 150;
else if(child_age < 2)
price = 250;
else
cout << "年龄必须在1-6岁之间";
题目5:
a.答案
没有计算总的收入和激励
b.答案
在cout前面添加如下内容
total_income = total_sales * 0.15;
if(total_sales >= 20000)
total_income += 2000;
SECTION B:
QUESTION 1:
a)答案
计算应付钱数的函数:
输入: Senior Citizen 的数量、Adult的数量 Child的数量
输出:应付的钱数
判断是否超过限定人数的函数,如果超员,提示剩余票数:
输入:当前需要购票的数量、当前已售票数
输出:1超员,0未超员
主函数:
输入:无
输出:无
b)答案
#include <iostream>
using namespace std;
//判断是否超员,如果超员,提示剩余票数
int isOut(int nmb,int current)
{
if( nmb+current > 50)
{
cout << "余票不足,当前剩余票数:" << 50 - current << endl;
return 1;
}else
return 0;
}
//购票并显示支付金额
int payment(int nmbS, int nmbA, int nmbC,int current)
{
return nmbS * 40 + nmbA * 80 + nmbC* 30;
}
int main()
{
int nmbS; //游客每次购买S票(Senior Citizen)的数量
int nmbA; //游客每次购买A票(Adult)的数量
int nmbC; //游客每次购买C票(Child)的数量
int current = 0; //当前游客数量
int totalfees = 0; //总收入
int pay; //需要支付的费用
char ch;
while(current < 50)
{
cout << "请分别输入购买S票、A票、C票的数量:";
cin >> nmbS >> nmbA >> nmbC;
if(isOut(nmbS+nmbA+nmbC,current))
continue;
pay = payment(nmbS,nmbA,nmbC);
cout << "购票成功,总共需要支付RM" << pay << endl;
totalfees += pay;
cout << "是否继续购票(Y/N)?";
cin >> ch;
if(ch == 'N' || ch == 'n')
break;
}
cout << "当天的总收入为RM" << totalfees<<endl;
return 0;
}
QUESTION 2:
a)答案
文件读取函数:
输入:文件名
输出:教学时长结构体数组、数组中元素的个数
主函数:调用文件读取函数获取每个老师的授课时长,计算薪资及纳税
输入:无
输出:打印每个教师的税后薪资和纳税
b)答案
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct StTeachHour
{
char id[10]; //staff number
int nmbLecture;
int nmbLabClass;
StTeachHour()
{
memset(id,0,10);
}
};
//读取文件
void ReadFile(const char* filename,StTeachHour arr[], int &nmbs)
{
ifstream infile; //输入流
nmbs = 0;
infile.open(filename, ios::in);
if(!infile.is_open ())
cout << "Open file failure" << endl;
while (!infile.eof()) // 若未到文件结束一直循环
{
infile >> arr[nmbs].id >> arr[nmbs].nmbLecture >> arr[nmbs].nmbLabClass;
if(arr[nmbs].nmbLecture >=0 && arr[nmbs].nmbLabClass >=0)
nmbs++;
}
infile.close();
}
int main()
{
int i = 0;
struct StTeachHour arr[100];
int nmbs = 0;
int salary = 0;
float tax = 0.0;
ReadFile("teacherhour.txt",arr,nmbs); //读取文件
for (i=0;i<nmbs;i++)
{
salary = arr[i].nmbLecture * 200 + arr[i].nmbLabClass * 100;
if(salary > 4000 && salary <= 8000)
tax = salary * 0.07;
else if(salary > 8000)
tax = salary * 0.11;
cout << arr[i].id << " salary:" << salary - tax << " tax:" << tax <<endl;
}
return 0;
}
附teacherhour.txt文件内容:
KV000015 40 8
KV000078 16 4
KV000149 24 8
这么多题,都要写?发个中文版的吧,方便看。
图片太过模糊,看不清楚,复制文字发出来吧。