银行卡实例的封装包括:存款、存款、查询余额等功能,以及设置(set)和获取(get)用户名、账号、密码等功能。 要求:开发下面bankcard类,其中成员变量已给 class bankcard{ private string name; //用户名 private string password; //密码6位 private string cardno; //卡号8位 private double money; //余额 以下功能: 构造函数;//初始化4个成员变量 读取卡号; 设置卡号; 读取密码; 设置密码; 读取用户名; 设置用户名; 存款: 要有输出信息,您刚才存款多少元 取款: 要有输出信息,您刚才取款多少元;或者出错信息,例如余额只有200,但是要取300等不符合实际的情况 查询余额; } 在主类中: 创建bankcard实例,并存款300,取款200,查询余额。
时间: 2023-05-02 12:04:54 浏览: 100
这是一道关于银行卡的实例程序题,要求实现存款、取款、查询余额等功能,并设计一个 BankCard 类,其中包含用户姓名、密码、卡号和余额等属性,以及构造函数、存款、取款、查询余额等方法。在主函数中创建一个 BankCard 实例并初始化余额为 300 元,进行存款、取款、查询余额等操作,并输出相关信息。
相关问题
我需要时间精确到2ms的精度,并且你使用读写锁对获取和设置全局时间进行封装,封装成get_global_time()和set_goble_time()
如果你需要将全局时间精确到2ms的精度,并且希望使用读写锁对获取和设置全局时间进行封装,可以按照以下方式修改示例代码:
```c
#include "FreeRTOS.h"
#include "task.h"
#include "timers.h"
#include "semphr.h"
// 全局变量,用于保存全局时间
TickType_t globalTime = 0;
// 读写锁,用于保护全局时间的读写操作
SemaphoreHandle_t timeLock;
// 获取全局时间
TickType_t get_global_time()
{
TickType_t time;
xSemaphoreTake(timeLock, portMAX_DELAY); // 获取写锁
time = globalTime;
xSemaphoreGive(timeLock); // 释放写锁
return time;
}
// 设置全局时间
void set_global_time(TickType_t time)
{
xSemaphoreTake(timeLock, portMAX_DELAY); // 获取写锁
globalTime = time;
xSemaphoreGive(timeLock); // 释放写锁
}
void vTaskFunction(void *pvParameters)
{
TickType_t startTime, endTime;
startTime = xTaskGetTickCount();
// 在这里执行你想要测量执行时间的代码
endTime = xTaskGetTickCount();
TickType_t executionTime = endTime - startTime;
// 打印执行时间
printf("Execution time: %ld ticks\n", executionTime);
vTaskDelete(NULL);
}
int main(void)
{
// 初始化FreeRTOS
// 创建读写锁
timeLock = xSemaphoreCreateReadWriteMutex();
// 创建任务
xTaskCreate(vTaskFunction, "Task", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
// 启动调度器
vTaskStartScheduler();
// 不会执行到这里
return 0;
}
```
在这个示例中,我添加了一个读写锁 `timeLock`,用于保护全局时间的读写操作。`get_global_time()` 函数使用读锁获取全局时间,`set_global_time()` 函数使用写锁设置全局时间。
请注意,为了使用读写锁,需要包含 `semphr.h` 头文件,并且创建一个读写锁的实例 `timeLock`。
在任务函数中,你可以使用 `get_global_time()` 函数获取全局时间,在需要修改全局时间时可以使用 `set_global_time()` 函数进行设置。这样,读取和修改全局时间的操作将会被保护,并且可以避免并发访问导致的竞态条件。
同时,根据你的要求,你可能还需要根据FreeRTOS的时钟频率来将全局时间转换为2ms的精度。你可以在初始化FreeRTOS时配置时钟频率,然后在获取和设置全局时间时进行相应的转换。
(0bject类)编程:定义一个用户类(User类)属性有用户名、用户密码password、电话(tel) 要求如下: (1)对类进行封装,提供get/set方法; 同时提供无参数、有参数的构造方
在Java中,我们可以创建一个名为`User`的类,按照您的要求来实现。首先,我们需要定义类的基本结构,包括属性和相应的get/set方法以及构造函数。
```java
public class User {
// 定义属性
private String username;
private String password;
private String tel;
// 提供set方法来设置属性值,get方法获取属性值(封装)
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setTel(String tel) {
this.tel = tel;
}
public String getTel() {
return tel;
}
// 无参构造函数,用于创建默认实例
public User() {
}
// 有参构造函数,接收所有属性的初始值
public User(String username, String password, String tel) {
this.username = username;
this.password = password;
this.tel = tel;
}
}
```
在这个类中,我们使用了访问修饰符`private`来保护属性,只暴露`get`和`set`方法对外部操作,实现了数据的封装。同时,提供了两个构造函数,一个无参的用于创建空的`User`对象,另一个带参的用于初始化用户的详细信息。
阅读全文