diff --git a/code/sell.cpp b/code/sell.cpp index ce6c83d7359d482e9c1f1bfc3605357544e195b1..265a60e71b287f00d7da8c2a83b8345b778c7126 100644 --- a/code/sell.cpp +++ b/code/sell.cpp @@ -5,10 +5,10 @@ #include "sellFun.h" extern commodity commodity_head;//商品(库存)头指针 - __declspec(selectany) records *all;//总销售记录头指针 records *single;//实时销售记录头指针 -bool isAllInited = false;//总销售记录头指针是否已被初始化 + +FILE *fsingleRecords; /**************************************************** * createRecordList -- 创建记录链表 @@ -23,6 +23,17 @@ records *createRecordList() return recordHead; } +/**************************************************** + * initAllRecordList -- 初始化总销售记录 + * 参数:无 + * 返回值:无 + ****************************************************/ +void initAllRecordList() +{ + all = createRecordList(); + all = read_In(); +} + /**************************************************** * searchGoods -- 货物是否存在(货查) * 参数:id:商品编号 @@ -172,6 +183,10 @@ void printAllRecord(records *head) ****************************************************/ double sell(goods *goodsHead, records *singleRecord, int &a) { + time_t t; + struct tm *lt; + time(&t); + lt = localtime(&t); //获取当前时间 soldGoods soldGoods; double money; char salespersonName[15]; @@ -191,10 +206,6 @@ double sell(goods *goodsHead, records *singleRecord, int &a) { printf("%s(%s)正好卖没货了。\n", n->goods_Name, n->id_Number); //可以删除但还是要进货的 } - time_t t; - struct tm *lt; - time(&t); - lt = localtime(&t); //获取当前时间 addRecords(singleRecord, soldGoods, n, salespersonName, lt); //更新实时销售记录 addRecords(all, soldGoods, n, salespersonName, lt); // 更新总销售记录 return soldGoods.count * n->sell_Price; @@ -207,6 +218,33 @@ double sell(goods *goodsHead, records *singleRecord, int &a) } } +/**************************************************** + * read_In -- 将singleRecords文件中的内容读入 + * 参数:无 + * 返回值:新的总销售指针 + ****************************************************/ +records *read_In() +{ + records *q; + records *head; + records *rear; + head = (records *)malloc(sizeof(records)); + head->next = NULL; + rear = head; + q = (records *)malloc(sizeof(records)); + fsingleRecords = fopen("singleRecords.txt", "r"); + while(fscanf(fsingleRecords, "%s %s %s %d %lf %d %d %d %d %d %d\n", + q->id, q->goodsName, q->people, &q->count, &q->price, + &q->year, &q->mon, &q->day, &q->hour, &q->min, &q->sec) != EOF) + { + q->next = NULL; + rear->next = q; + rear = q; + q = (records *)malloc(sizeof(records)); + } + return head; +} + /**************************************************** * sellmain -- 销售管理主界面 * 参数:无 @@ -216,14 +254,11 @@ int sellmain() { goods *goods = commodity_head;//货物头指针 double money1 = 0, money2 = 0, money3 = 0; + records *p1; + records *p2; int n; int a; single = createRecordList(); - if(!isAllInited) - { - all = createRecordList(); - isAllInited = true; - } while(1) { system("cls"); @@ -241,8 +276,19 @@ int sellmain() while(n > 0) { money2 = money2 + sell(goods, single, n); + n--; } + p1 = all->next; + fsingleRecords = fopen("singleRecords.txt", "a+"); + while(p1) + { + fprintf(fsingleRecords, "%s %s %s %d %lf %d %d %d %d %d %d\n", + p1->id, p1->goodsName, p1->people, p1->count, p1->price, + p1->year, p1->mon, p1->day, p1->hour, p1->min, p1->sec); + p1 = p1->next; + } + fclose(fsingleRecords); printf("金额合计:%.2lf元。\n", money2); printf("输入顾客所付钱数:"); scanf("%lf", &money1); @@ -262,7 +308,8 @@ int sellmain() } else if(a == 3) { - printAllRecord(all); + p2 = read_In(); + printAllRecord(p2); } else if(a == 0) { @@ -270,6 +317,5 @@ int sellmain() } system("pause"); } - return 0; } \ No newline at end of file diff --git a/code/sellFun.h b/code/sellFun.h index 7f3c1587bb9b238aa9cd019ef0c4326027f73a30..555f8fa4cf1289a7f93123f600b874ab9f9e9973 100644 --- a/code/sellFun.h +++ b/code/sellFun.h @@ -6,6 +6,9 @@ //创建记录链表 records *createRecordList(); +//初始化总销售记录 +void initAllRecordList(); + //货物是否存在(货查) goods *searchGoods(char *id, goods *head); @@ -27,6 +30,9 @@ void printAllRecord(records *head); //卖货,返回实时销售记录(货删和改,记录增) double sell(goods *goodsHead, records *singleRecord, int &a); +//将singleRecords文件中的内容读入 +records *read_In(); + //销售管理主界面 int sellmain(); diff --git a/code/singleRecords.txt b/code/singleRecords.txt new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391