数据结构实验1-日期:9月8日

三更半夜写博客,一口老血喷出来哭

题目如下:

(1) 编写一个程序计算长途电话费。电话费根据以下费率计算:

² 周一到周五,上午八点到下午六点之间打出的任何电话都按每分钟0.4元收取;

² 周一到周五,上午八点之前到下午六点之后打出的任何电话都按每分钟0.25元收取;

² 周六和周日,打出的任何电话都按每分钟0.15元收取。

要求:

² 输入时,应指定当前是星期几、开始通话的时间(以24小时格式输入)、通话时间(以分钟为单位的整数);

² 输入星期几时,采用如下格式,将它们存储在char类型的一个变量中:MoTuWeThFrSaSu,务必允许用户采用大写、小写或者大小写混合的形式输入;

程序应包含一个循环,允许用户重复这一计算,直到他们表示操作完毕为止

刚看这题,感觉好复杂,用户通话时长可能跨越好几个计价时段,甚至打一整个星期。。。

问了问老师,说直接输入单独计费时段就行

於是得出以下代码

#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里面资料还是挺全面的,而且有交流群,学习气氛很好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值