# 打卡机

1.题目：

Problem Description
LPRJ小工厂是刚兴起不久的标准工厂，每天早上八点开始上班，每天工作八小时，但是由于LPRJ小工厂近来员工懈怠于工作，经常迟到，于是经理LP决定用考勤打卡机来记录员工的上班时间，经理为了整顿一下员工的上班态度，决定员工每迟到半小时将扣除10元的工资，若不迟到员工每天的工资有80元，计算每位员工在今天可获得的工资。（要求用类完成）

Input

Output

Sample Input
3
12078 LP 07:45
12080 shik 08:00
12012 junl 08:31

Sample Output
12078 LP 07:45 80
12080 shik 08:00 80
12012 junl 08:31 60

2.代码一:

#include <iostream>
#include <cstring>
using namespace std;

class LPRJ
{

private:
char id[21], name[21], temp[2];
int hour, minute, money;

public:
LPRJ(char a[], char b[], int c, char d[], int e);
int count();
void show();

};

LPRJ::LPRJ(char a[], char b[], int c, char d[], int e)
{
strcpy(id, a);
strcpy(name, b);
hour = c;
minute = e;
}

int LPRJ::count()
{

int totle = hour * 60 + minute;

if (totle <= 8 * 60)
money = 80;
else if (totle > 11 * 60 + 30)
money = 0;
else {
if (minute == 0)
money = 80 - (hour - 8) * 20;
else {
int i, sum = 0, a;

for (i = 8; i < 12; i++) {
if (minute > 0 && minute <= 30)
a = 1;
else if (minute > 30 && minute <= 59)
a = 2;
}

sum += (hour - 8) * 2 + a;

money = 80 - sum * 10;
}
}

return money;
}

void LPRJ::show()
{
printf("%s %s %02d:%02d %d\n", id, name, hour, minute, count());
}

int main()
{
int hour, minute, t;
char id[21], name[21], temp[2] = ":";

while (cin >> t) {
while (t--) {
scanf("%s %s %d:%d", id, name, &hour, &minute);

LPRJ w(id, name, hour, temp, minute);

w.show();
}
}

return 0;
}



代码二：

#include<iostream>
#include<string>
using namespace std;

class Time
{

private:
int id;
string a;
string b;
int m;

public:
Time(int i, string aa, string bb, int mm): id(i), a(aa), b(bb), m(mm)
{}

void set() {
int t;
t = ((b[0] - '0') * 10 + (b[1] - '0')) * 60 + (b[3] - '0') * 10 + b[4] - '0' - 480;
if (t > 0) {
if (t % 30 == 0)      m -= 10 * (t / 30);
else       m -= 10 * (t / 30 + 1);
if (m < 0)      m = 0;
}
}

void show() {
cout << id << ' ' << a << ' ' << b << ' ' << m << endl;
}

};

int main()
{
int t, id, i; string aa, bb;

while (scanf("%d", &t) != EOF) {
for (i = 0; i < t; i++) {
cin >> id >> aa >> bb;

Time w(id, aa, bb, 80);

w.set();

w.show();
}
}

return 0;
}


• 点赞
• 评论
• 分享
x

海报分享

扫一扫，分享海报

• 收藏
• 打赏

打赏

持续学习刻意练习

你的鼓励将是我创作的最大动力

C币 余额
2C币 4C币 6C币 10C币 20C币 50C币
• 举报
• 一键三连

点赞Mark关注该博主, 随时了解TA的最新博文

11-29

09-05 3万+
01-11 105
10-06
10-18
12-05