⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataprocess.c

📁 图书管理系统,可以查询,借书,统计借书时间日期,功能较为全面,但比较简单.
💻 C
字号:

#include "myStd.h"
#include "main.h"
#include "util.h"
#include "dataProcess.h"

int FindBook(ListNode* pLstHeader, char* pID)
{
	int nRet = 0;
	ListNode* pLstTmp = pLstHeader;

	while(pLstTmp != NULL)
	{
		if(0 == strcmp(pID, ((BookRec*) (pLstTmp->pData))->ID))
		{
			return nRet;
		}
		else
		{
			pLstTmp = pLstTmp->pNext;
			nRet++;
		}
	}

	return -1;
}

void SaveAllBooks(ListNode* pHead)
{
	ListNode* pTmp = pHead;
	if(NULL != pTmp)
	{
		FILE* stream = fopen(STR_FILE_BOOKS, "w+");
		if(stream != NULL)
		{
			int nCount = GetListCount(pTmp);
			int i;
			fprintf(stream, "Book Num: %d\n\n", nCount);

			for(i=0; i<nCount; i++)
			{
				fprintf(stream, "Book ID: %s\n", ((BookRec*)(pTmp->pData))->ID);
				fprintf(stream, "Book Name: %s\n", ((BookRec*)(pTmp->pData))->Name);
				fprintf(stream, "Book Author: %s\n", ((BookRec*)(pTmp->pData))->Author);
				fprintf(stream, "Lent Num: %d\n", ((BookRec*)(pTmp->pData))->nLentNum);
				fprintf(stream, "Store Num: %d\n", ((BookRec*)(pTmp->pData))->nStoreNum);
				fprintf(stream, "Book Sort: %s\n", ((BookRec*)(pTmp->pData))->Sort);
				fprintf(stream, "Company: %s\n\n", ((BookRec*)(pTmp->pData))->PublishCom);

				pTmp = pTmp->pNext;
			}

			fclose(stream);
		}
		
	}
}


ListNode* GetAllBooks(ListNode* pHead)
{
	ListNode* pRet = pHead;
	FILE* stream;
	stream = fopen(STR_FILE_BOOKS, "r");
	if(NULL != stream)
	{
		int nCount = 0;
		int i;
		fscanf(stream, "Book Num: %d\n\n", &nCount);
		
		for(i=0; i<nCount; i++)
		{
			BookRec bookTmp;
			fscanf(stream, "Book ID: %s\n", bookTmp.ID);
			fscanf(stream, "Book Name: %s\n", bookTmp.Name);
			fscanf(stream, "Book Author: %s\n", bookTmp.Author);
			fscanf(stream, "Lent Num: %d\n", &bookTmp.nLentNum);
			fscanf(stream, "Store Num: %d\n", &bookTmp.nStoreNum);
			fscanf(stream, "Book Sort: %s\n", bookTmp.Sort);
			fscanf(stream, "Company: %s\n\n", bookTmp.PublishCom);
			
			if(pRet == NULL)
			{
				pRet = ListGenerate(&bookTmp, sizeof(BookRec));
			}
			else
			{
				ListAddTail(pRet, &bookTmp, sizeof(BookRec));
			}
		}
		
		fclose(stream);
	}
	return pRet;
}

int GetListCount(ListNode* pHead)
{
	int nRet = 0;
	
	ListNode* pTmp = pHead;
	while(NULL != pTmp)
	{
		nRet++;
		pTmp = pTmp->pNext;
	}

	return nRet;
}

void GetCurDate(time_t time, char* pCh)
{
	struct tm tmTmp;
	char chTmp[20];
	int n;
	
	tmTmp = *localtime(&time);
	n = tmTmp.tm_year+1900;
	
	ltoa(n, pCh, 10);
	
	strcat(pCh, "/");
	
	ltoa(tmTmp.tm_mon+1, chTmp, 10);

	if(tmTmp.tm_mon<10)
	{
		strcat(pCh, "0");
	}

	strcat(pCh, chTmp);
	
	strcat(pCh, "/");
	
	ltoa(tmTmp.tm_mday, chTmp, 10);

	if(tmTmp.tm_mday<10)
	{
		strcat(pCh, "0");
	}
	
	strcat(pCh, chTmp);
}

time_t TimeAddDays(time_t time, int nDays)
{
	time_t tRet;
	struct tm tmTmp;
	tmTmp = *localtime(&time);
	
	tmTmp.tm_mday = tmTmp.tm_mday + nDays;
	
	tRet = mktime(&tmTmp);
	
	return tRet;
}

ListNode* GetAllBorrow(ListNode* pHead)
{
	ListNode* pRet = pHead;
	FILE* stream;
	stream = fopen(STR_FILE_LENT, "r");
	if(NULL != stream)
	{
		while (TRUE)
		{
			BorrowRec borrow;
			int n = 1;
			n = fscanf(stream, "Book ID: %s\n", borrow.BookID);
			if(n<0)
			{
				break;
			}
			n = fscanf(stream, "Card ID: %s\n", borrow.CardID);
			if(n<0)
			{
				break;
			}
			n = fscanf(stream, "Borrower: %s\n", borrow.Borrower);
			if(n<0)
			{
				break;
			}
			n = fscanf(stream, "Borrow Date: %s\n", borrow.BorrowTime);
			if(n<0)
			{
				break;
			}
			n = fscanf(stream, "Return Date: %s\n", borrow.ReturnTime);
			if(n<0)
			{
				break;
			}
		
		
			if(pRet == NULL)
			{
				pRet = ListGenerate(&borrow, sizeof(BorrowRec));
			}
			else
			{
				ListAddTail(pRet, &borrow, sizeof(BorrowRec));
			}

			n = fscanf(stream, "\n\n");
		}
	
		fclose(stream);
	}
	return pRet;
}

void GetBookName(ListNode* pLst, char* pID, char* pRet)
{
	ListNode* pLstTmp = pLst;
	while(pLstTmp != NULL)
	{
		BookRec* pBook = pLstTmp->pData;
		if(strcmp(pBook->ID, pID) == 0)
		{
			strcpy(pRet, pBook->Name);
			break;
		}
		pLstTmp = pLstTmp->pNext;
	}
}

int GetDays2Now(char* chSrc)
{
	/*
	char chYear[4];
		char chMon[2];
		char chDay[2];
		struct tm tmSrc;
	
		time_t tSrc;
		time_t tNow;
		
	
		chYear[0] = chSrc[0];
		chYear[1] = chSrc[1];
		chYear[2] = chSrc[2];
		chYear[3] = chSrc[3];
	
		chMon[0] = chSrc[5];
		chMon[1] = chSrc[6];
		
		chDay[0] = chSrc[8];
		chDay[1] = chSrc[9];
	
		tmSrc.tm_year = atol(chYear)-1900;
		tmSrc.tm_mon = atol(chMon)-1;
		tmSrc.tm_mday = atol(chDay);
	
		tSrc = mktime(&tmSrc);
		time(&tNow);*/
	

	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -