三更半夜写博客,一口老血喷出来
题目如下:
(1) 编写一个程序计算长途电话费。电话费根据以下费率计算:
² 周一到周五,上午八点到下午六点之间打出的任何电话都按每分钟0.4元收取;
² 周一到周五,上午八点之前到下午六点之后打出的任何电话都按每分钟0.25元收取;
² 周六和周日,打出的任何电话都按每分钟0.15元收取。
要求:
² 输入时,应指定当前是星期几、开始通话的时间(以24小时格式输入)、通话时间(以分钟为单位的整数);
² 输入星期几时,采用如下格式,将它们存储在char类型的一个变量中:Mo、Tu、We、Th、Fr、Sa、Su,务必允许用户采用大写、小写或者大小写混合的形式输入;
程序应包含一个循环,允许用户重复这一计算,直到他们表示操作完毕为止
刚看这题,感觉好复杂,用户通话时长可能跨越好几个计价时段,甚至打一整个星期。。。
问了问老师,说直接输入单独计费时段就行
於是得出以下代码
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
char str[7][3]={"Mo","Tu","We","Th","Fr","Sa","Su"};
char date[3];
int hour,min,flag,sum;
while(1)
{
cout<<"输入星期几:";
cin>>date;
cout<<"输入开始时间:";
cin>>hour>>min;
cout<<"输入通话时长:";
cin>>sum;
if((stricmp(date,str[0])==0)||(stricmp(date,str[1])==0)||(stricmp(date,str[2])==0)||(stricmp(date,str[3])==0)||(stricmp(date,str[4])==0))
{
if(hour>=8&&hour<18)
cout<<"话费:"<<sum*0.4<<endl;
else
cout<<"话费:"<<sum*0.25<<endl;
}
else
cout<<"话费:"<<sum*0.15<<endl;
cout<<"继续?输入1,否则输入0:";
cin>>flag;
if(flag==0)
break;
}
return 0;
}
本题主要使用了一个字符串不区分大小写比较函数stricmp
原型:extern int stricmp(char *s1,char * s2);
用法:#include <string.h>
功能:比较字符串s1和s2,但不区分字母的大小写。
说明:strcmpi是到stricmp的宏定义,实际未提供此函数。
当s1<s2时,返回值<0
当s1=s2时,返回值=0
当s1>s2时,返回值>0
在C++中头文件应写为include<cstring>
好了,到此本题也就写完了,我要睡觉了。
最近学前端开发,推荐个不错的练手网站http://how2j.cn/k/tmall-j2ee/tmall-j2ee-894/894.html?p=13028里面资料还是挺全面的,而且有交流群,学习气氛很好。