以下是部分代码。需要源码的私信
#include<easyx.h>
#include<stdio.h>
#include<stdlib.h>
#define width 1280
#define height 840
#define font_w 35 //字体宽度
#define font_h 90 //字体高度
typedef struct node
{
char name[100];//名字
char number[100];//编号
char classify[100];//分类
int price;//进价
int sales;//售价
int repertory;//库存
int extant;///现存
node* nxet;
}Lnode, * Hnode;
Lnode L;//创建头结点//用于历史记录
typedef struct anode
{
char name[100];
char number[100];
char classify[100];
int price;
int sales;
int repertory;
int extant;
}ARRnode;
ARRnode ArrList[1000];
int count_goods = 0;//全局变量--统计商品的多少
int InitList(Lnode& L) //初始化链表
{
L.nxet = NULL; //创建一个头结点
return 0;
}
int history_count = 0;//用于判断是否有历史记录
int history_goods_Lnode(Lnode& L)//将history中的数据读入到链表中
{
FILE* fp = fopen("./history.txt", "r");
if (!fp)
{
printf("读取history失败\n");
return 0;
}
Lnode* p, * q;
p = &L;
q = (Lnode*)malloc(sizeof(Lnode));
if (!q)
{
printf("q--malloc失败\n");
return 0;
}
while (fscanf(fp, "%s%s%s%d%d%d%d", q->name, q->number, q->classify, &q->price, &q->sales, &q->repertory, &q->extant) != EOF)
{
history_count++;//记录链表中的数据数
p->nxet = q;
p = q;
q = (Lnode*)malloc(sizeof(Lnode));
if (!q)
{
printf("q--malloc失败\n");
return 0;
}
}
p->nxet = NULL;
printf("history_count=%d\n", history_count);
fclose(fp);
return 0;
}