实验内容
(1)搭建三层架构
① 在数据访问层实现添加卡,在card_file.c文件中,定义saveCard()函数
② 在业务逻辑层实现添加卡,修改addCard()函数,在此函数中调用数据访问层里的saveCard函数,保存卡信息。
③ 在表示层实现添加卡
④ 编译并运行程序
(2)在数据访问层,实现用文件保存添加的卡
① 实现saveCard()函数,将卡信息保存到文件。
② 调用saveCard函数,将添加的卡信息保存到工程目录下的card.txt文件
(3)读取文件中的卡信息
① 在card_file.c文件中,定义readCard()函数
② 编写readCard()函数,实现从文件中读取卡信息的功能
③编译并运行程序
(4)解析读取的卡信息
①在card_file.c文件中,定义praseCard()函数
②编写praseCard()函数,实现解析卡信息字符串的功能
③在tool.c文件中,定义stringToTime()函数
④编写stringToTime()函数,将字符串转换为time_t类型的数据
⑤在praseCard()函数中,调用stringToTime()函数
⑥在readCard()函数中,调用praseCard()函数
⑦编译并运行程序
(5)根据卡号查询卡信息
沿用第一次的main.cpp
沿用第二次的menu.h
沿用第二次的card.h
menu.cpp
菜单源文件
#define _CRT_SECURE_NO_WARNINGS//消除scanf警告
#include"stdio.h"
#include"stdlib.h"
#include "string.h"
#include"menu.h"
#include"card.h"
#include"card_file.h"
#include"time.h"
Card *card = initial();
void outputmenu() {
do {
char i;
printf("以下为本账户管理系统的菜单界面\n");
printf("1.添加卡\n");
printf("2.查询卡\n");
printf("3.上机\n");
printf("4.下机\n");
printf("5.充值\n");
printf("6.退费\n");
printf("7.查询统计\n");
printf("8.注销卡\n");
printf("0.退出\n");
printf("请输入0-8数字来进行选择\n");
scanf("%c", &i);
switch (i) {
case '0': {
exit(0);
break;
}
case '1': {
add();
break;
}
case '2': {
query();
break;
}
case '3': {
system("cls");
printf("以下为上机的菜单界面\n");
system("pause");
/*
上机
*/
break;
}
case '4': {
system("cls");
printf("以下为下机的菜单界面\n");
system("pause");
/*
下机
*/