亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bookms.c

?? 是一個比較好的圖書管理系統
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* ------------------------------------------------------------ */
/*     Name        : Books Management System v1.0");            */
/*     CopyRight   : (C) Lewsn 2006                             */
/*     Made by     : LiuBing  OUC  2006/12                      */
/*                                                              */
/* ------------------------------------------------------------ */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>

#include "Welcome.c"
#include "LendInf.c"

#define PAGESIZE 20   /* 每一頁顯示的記錄數目 */
#define MaxTime 30   /* 借閱的最大天數 */
#define INFORSZ 6   /* 信息字的大小 */
#define TIMESZ 9    /* 時間字符數組的大小 */
#define BKIDSZ 6       /* BookNode結構體中各成員數組的大小 */
#define BKNAMESZ 21
#define WRITERSZ 16
#define PRESSSZ  16
#define PUBTSZ  9


struct BookNode
{
   char bkID[BKIDSZ];         /*書號,約定書號為5位*/
   char bkName[BKNAMESZ];      /*書名 */
   char writer[WRITERSZ];      /*作者 */
   char Press[PRESSSZ];      /*出版社 */
   char pubTime[PUBTSZ];     /*出版時間 */
   char curStatus;       /*0表示在館,1表示借出(約定1位) */
   char rdID[RDIDSZ];      /* 指向借閱的讀者 */
};


const char ch5[] = "*****";
const char ch8[] = "********";
const char ch15[] = "***************";
struct BookNode *cur_book_ptr = NULL;
static int book_record_Total = 0;  /*記錄文件中總的記錄數   */
static int book_newID_Position = 0;  /*記錄下次插入記錄時的起始搜索未知 */
static int book_delete_total = 0;   /* 記錄記錄中無效記錄的個數 */
static const BKRECSIZE = sizeof(struct BookNode);



/******************************************/
/*        funtions declarations           */

/* initial and menu functions */
void Initial();
void Handle_Main_Choice(char);
void Books_Management();
void Handle_Books_Choice(char p);
void Readers_Management();
void Handle_Readers_Choice(char p);

/* functions to deal with the book datafile */
void Book_File_Init();
void Get_Book_Infor();
void Save_Book_Infor_Word();
int Load_Book_Record(int recordNum);
void Save_cur_Book_Node();

/* functions to add new book */
void Add_New_Book();
int Alloc_NewID();
int Search_Null_Record();
int Assure_Time_True(char *time);

/* functions to search a book by different ways */
void Search_Book();
void Switch_Search_Book(char c);
void Search_By_BookID();
void Search_By_Book_Fullname();
void Search_By_First_Letter();
void Search_By_Writer();
void Search_By_Press();
void Select_And_Display(int );

/* functions to display */
void Display_Book_List();
void Display_Record(struct BookNode* new_node);
void Display_curBook_Detail();
void Display_Timeout_Lending();
void Display_cur_Timeout_Lending(int p);

/* functions to deal with current book */
void Lend_Book();
void Calculate_Time(char *startTime, char *endTime);
int Days_Per_Month(int year, int mon);
void Return_Book();
void Delete_Book();

/* functions to deal with a reader record,  */
/* maybe they should be in the ReaderMS file*/
void Add_New_Reader_Lend();
void Search_Reader();
void Switch_Search_Reader(char c);
void Search_By_ReaderID();
void Search_By_Reader_Fullname();
void Display_Reader_Detail();
void Delete_Reader();

/* functions to get data from the user */
int Get_Reader_ID();
int Get_Book_ID();
int Assure_ReaderID_True(char *str);
int Assure_BookID_True(char *str);
int Delet_Verify();



/********************************/
/*    Functions' realizations   */

int main()
{
      char choice;

      Display_Welcome();  /*顯示歡迎界面*/
      clrscr();
      Initial();  /* 各文件的初始化和信息字的讀取*/
      clrscr();

      do
      {
          clrscr();
          printf("            MAIN MENU      \n");
          printf("  1 - Books management\n");
          printf("  2 - Readers management\n");
          printf("  3 - Lend out a book\n");
          printf("  4 - Return a book\n");
          printf("  5 - Search a book\n");
          printf("  6 - Search a reader\n");
          printf("  7 - Display the book-list\n");
          printf("  8 - Display the reader-list\n");
          printf("  9 - Display the Timeout lending\n");
          printf("  ESC - Exit!\n");
          printf("\nPlease input your choice:");
          choice = getch();
          printf("%c", choice);
          printf("\n");
          if(choice!=27)
              Handle_Main_Choice(choice);
          else
          {
              printf("Press any key to exit!\n");
              getch();
          }
      }while(choice != 27);

    return 0;
}


/*******************************************************/
/* when the system is start, to initialize the 3 files */

void Initial()
{
    /* 初始化book 文件 */
    Book_File_Init();
    Get_Book_Infor();   /*讀取book文件信息字,獲得書目記錄總數和新插入記錄位置 */
    printf("Press any key to continue!\n");
    getch();
    printf("\n");

    /* 初始化reader 文件*/
    Reader_File_Init();
    Get_Reader_Infor();  /*讀取reader文件信息字,獲得讀者記錄總數*/
    printf("Press any key to continue!\n");
    getch();
    printf("\n");

    /* 初始化lend 文件*/
    Lend_File_Init();
    printf("Press any key to continue!\n");
    getch();

    return;
}


/*************************************************/
/* to switch the Main-Menu in the main function  */

void Handle_Main_Choice(char p)
{
    switch(p)
    {
     case('1'):
         Books_Management();
         break;
     case('2'):
         Readers_Management();
         break;
     case('3'):
         Lend_Book();
         break;
     case('4'):
         Return_Book();
         break;
     case('5'):
         Search_Book();
         break;
     case('6'):
         Search_Reader();
         break;
     case('7'):
         Display_Book_List();
         getch();
         break;
     case('8'):
         Display_Reader_List();
         getch();
         break;
     case('9'):
         Display_Timeout_Lending();
         getch();
         break;
     default:
         printf("Invalid choice\n");
         printf("Press any key to continue!\n");
         getch();
         break;
    }

    return;
}


/****************************************/
/*   diaplay the Books-Management Menu  */

void Books_Management()
{
    char choice;
    do
    {
        clrscr();
        printf("       Books Management Menu \n");
        printf("  1 - Add a new book record\n");
        printf("  2 - Delete a book record\n");
        printf("  3 - Modify a book record\n");
        printf("  ESC - Return!\n");
        printf("\nPlease input your choice:");
        choice = getch();
        printf("%c\n", choice);
        if(choice!=27)
            Handle_Books_Choice(choice);
    }while(choice!=27);
    return;
}


/*****************************************/
/*  to switch the Books-Management Menu  */

void Handle_Books_Choice(char p)
{
    char ch;
    switch(p)
    {
     case('1'):
         do
         {
             Add_New_Book();
             printf("Press 'R' to add another book, else key to return!\n");
             ch = getch();
         }while((ch=='R') || (ch=='r'));
         break;
     case('2'):
         Delete_Book();
         break;
     case('3'):
         printf("Modify a book!\n");
         printf("Have not finished!\n");
         getch();
         break;
     default:
         printf("Invalid choice\n");
         printf("Press any key to continue!\n");
         getch();
         break;
    }
    return;
}


/****************************************/
/*   diaplay the Books-Management Menu  */

void Readers_Management()
{
    char choice;
    do
    {
        clrscr();
        printf("       Books Management Menu \n");
        printf("  1 - Add a new reader record\n");
        printf("  2 - Delete a reader record\n");
        printf("  ESC - Return!\n");
        printf("\nPlease input your choice:");
        choice = getch();
        printf("%c\n", choice);
        if(choice!=27)
            Handle_Readers_Choice(choice);
    }while(choice!=27);
}


/*****************************************/
/*  to switch the Books-Management Menu  */

void Handle_Readers_Choice(char p)
{
    char ch;
    switch(p)
    {
     case('1'):
         do
         {
             Add_New_Reader_Lend();
             printf("Press 'R' to add another reader, else key to return!\n");
             ch = getch();
         }while((ch=='r')||(ch=='R'));
         break;
     case('2'):
         Delete_Reader();
         break;
     default:
         printf("Invalid choice\n");
         printf("Press any key to continue!\n");
         getch();
         break;
    }
    return;
}


/**************************************************************/
/*    Initailize the book datafile, if the file is not exsit, */
/* to create a new file. If it is exsit and is a new file,    */
/* the InforWord is not exsit, to write the new InforWord to  */
/* the head of the file                                       */

void Book_File_Init()
{
     char ch;
     FILE *fp;
     printf("Book File Initializing...\n");
     delay(8000);
     if((fp=fopen("BookData.txt","r"))==NULL)
     {
         printf("Open File Error!\n");
         printf("Press any key to create a new file!");
         getch();
         printf("\n");

         /*the file is not exist, create the file   */
         if((fp=fopen("BookData.txt","w+"))==NULL)
         {
             printf("Create File Error!\n");
             return;
         }
         printf("Create file successful!\n");
         printf("The file is BookData.txt!\n");
     }

     ch = fgetc(fp);
     fclose(fp);   /*打開文件讀出首字符后關閉文件   */
                   /*因為后面的Save_Book_Infor_Word()將再次打開文件 */

     if(ch==EOF)  /*若文件為空時,調用函數Save_Book_Infor_Word()在文件頭寫入信息字段*/
     {
         book_record_Total = 0;
         book_newID_Position = 0;
         book_delete_total = 0;
         Save_Book_Infor_Word();
     }

     return;
}


/*****************************************************/
/* to get the book record total in the data file    */
/* and to get the posotion the newID will start form  */

void Get_Book_Infor()
{
   FILE *rfp;
   int num = 0;
   char ch;
   char str1[INFORSZ];
   char str2[INFORSZ];
   char str3[INFORSZ];

   if((rfp=fopen("BookData.txt","r")) != NULL)
   {
       fgets(str1, INFORSZ, rfp);
       book_record_Total = atoi(str1);

       fgets(str2, INFORSZ, rfp);
       book_newID_Position = atoi(str2);

       fgets(str3, INFORSZ, rfp);
       book_delete_total = atoi(str3);

       num = atoi(str1) - atoi(str3);
       printf("There are  %d book records in the book file.\n", num);
   }
   else
   {
       printf("Open File Error!\n");
       return;
   }

   fclose(rfp);
   return;
}


/*********************************************************/
/* if the infor_word has been modified, this function to  */
/* save the new infor_word to the data file      */

void Save_Book_Infor_Word()
{
    FILE *wfp;
    char str1[INFORSZ], str2[INFORSZ], str3[INFORSZ];
    sprintf(str1, "%-5d", book_record_Total);
    sprintf(str2, "%-5d", book_newID_Position);
    sprintf(str3, "%-5d", book_delete_total);

    if((wfp=fopen("BookData.txt","r+")) == NULL)
    {
    printf("Open File Error!\n");
    return;
    }
    fputs(str1, wfp);
    fputs(str2, wfp);
    fputs(str3, wfp);

    fclose(wfp);
    wfp = NULL;
    return;
}


/******************************************************************/
/* to load a record from the file to the pointer(cur_book_ptr)    */

int Load_Book_Record(int recordNum)
{
    FILE *rfp;
    char ch;
    int step = 0, loop;
    struct BookNode *new_Node_ptr;

    if(recordNum >= book_record_Total)
        return -1;

    new_Node_ptr =
         (struct BookNode*)malloc(BKRECSIZE);

    if((rfp=fopen("BookData.txt","r")) == NULL)
    {
     printf("Open File Error!\n");
     return 0;
    }

    step = recordNum * (BKRECSIZE+1);
    step += (INFORSZ-1)*3;
    fseek(rfp, step, 0);
    ch = fgetc(rfp);

    if(ch != '0')
    {
     fread(new_Node_ptr, BKRECSIZE, 1, rfp);

     cur_book_ptr = new_Node_ptr;
     new_Node_ptr = NULL;
     loop = 1;
    }
    else
    {
    // printf("The book has been deleted! \n");
     loop = -1;
    }

    fclose(rfp);
    return(loop);
}


/***********************************************************/
/* when add a new book, this function to save the new node  */
/* to the data file */

void Save_cur_Book_Node()
{
    int num, step;
    FILE *wfp;
    num = atoi(cur_book_ptr->bkID);
    
    /*找到記錄插入位置  */
    step = num * (BKRECSIZE+1);
    step += (INFORSZ-1)*3;
    if((wfp=fopen("BookData.txt","r+")) == NULL)
    {
     printf("Open File Error!\n");
     return;
    }
    fseek(wfp, step, 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产电影在线观看| 国产美女精品一区二区三区| 免费成人av在线播放| 99v久久综合狠狠综合久久| 欧美成人性福生活免费看| 亚洲综合网站在线观看| 成人综合在线观看| 日韩精品一区二区三区在线观看 | 国产suv精品一区二区三区| 欧美日韩成人综合| 一区二区三区中文字幕在线观看| 成人天堂资源www在线| 精品成a人在线观看| 麻豆成人久久精品二区三区红| 欧美视频在线播放| 亚洲精品免费一二三区| 不卡一卡二卡三乱码免费网站| 久久亚洲综合色一区二区三区| 青草国产精品久久久久久| 欧美性极品少妇| 亚洲综合丝袜美腿| 在线观看不卡视频| 一区二区在线观看免费视频播放| 99精品视频中文字幕| 国产精品卡一卡二卡三| 成人美女视频在线看| 国产精品久久久久一区| 99视频国产精品| 亚洲日本在线观看| 91九色最新地址| 婷婷亚洲久悠悠色悠在线播放| 欧美在线短视频| 亚洲18影院在线观看| 欧美日韩mp4| 久久精品理论片| 国产亚洲精品精华液| 成人一区在线看| 亚洲精品一二三四区| 欧美综合一区二区三区| 日日夜夜精品视频免费 | 欧美性生交片4| 亚洲国产精品久久久久秋霞影院| 欧美日韩精品二区第二页| 日韩福利电影在线| 精品噜噜噜噜久久久久久久久试看| 麻豆91精品视频| 欧美激情一区三区| 91久久精品国产91性色tv| 日韩av一区二区在线影视| 欧美成人aa大片| 成人免费视频播放| 亚洲成人在线免费| 精品奇米国产一区二区三区| 成人手机电影网| 亚洲国产一区二区三区| 欧美大白屁股肥臀xxxxxx| 国产精品亚洲综合一区在线观看| 亚洲日本电影在线| 日韩一区二区电影| 99久久久久久| 日本欧美在线观看| 亚洲欧美在线观看| 91精品国产综合久久香蕉的特点| 成人午夜私人影院| 天天综合天天综合色| 国产精品每日更新在线播放网址| 欧美色图在线观看| 国产精品白丝jk白祙喷水网站| 亚洲男人的天堂一区二区| 日韩三级精品电影久久久 | 日韩美女视频一区二区| 欧美日韩一区二区在线视频| 国产美女久久久久| 亚洲va在线va天堂| 亚洲人成电影网站色mp4| 欧美变态凌虐bdsm| 欧美日韩国产123区| 成人性生交大片免费看在线播放 | 亚洲第一福利视频在线| 久久亚洲私人国产精品va媚药| 在线视频欧美精品| 国产成人亚洲综合a∨婷婷 | 亚洲国产美女搞黄色| 久久久久久免费| 欧美精品色综合| 97精品电影院| 国产精品综合一区二区三区| 日本中文在线一区| 亚洲一区在线电影| 亚洲精品一二三| 国产精品成人一区二区三区夜夜夜| 精品国产乱码久久久久久影片| 在线视频亚洲一区| 色狠狠色狠狠综合| 99久久婷婷国产| 成人精品视频网站| 粉嫩一区二区三区性色av| 麻豆精品在线视频| 日韩av中文字幕一区二区| 亚洲成人黄色小说| 亚洲第一主播视频| 亚洲国产精品久久不卡毛片| 亚洲三级在线免费| 亚洲女同ⅹxx女同tv| 亚洲欧美在线观看| 亚洲美女免费在线| 国产精品二区一区二区aⅴ污介绍| 久久久99久久| 国产午夜精品一区二区三区嫩草 | 91麻豆精品国产自产在线| 日本道免费精品一区二区三区| 盗摄精品av一区二区三区| 国产精品一区二区不卡| 国产乱子伦视频一区二区三区| 久久福利视频一区二区| 久久se精品一区精品二区| 精品午夜久久福利影院| 久久精品国产亚洲一区二区三区| 日韩va欧美va亚洲va久久| 青青草国产成人av片免费| 日本一区中文字幕| 久久 天天综合| 国产精品自在欧美一区| 成人av中文字幕| 91猫先生在线| 欧美揉bbbbb揉bbbbb| 91精品国产黑色紧身裤美女| 欧美tk—视频vk| 国产欧美一区视频| 亚洲欧洲综合另类| 午夜视频在线观看一区| 久久99精品久久久久久国产越南| 国产白丝网站精品污在线入口| 成人免费av资源| 欧美日韩一区国产| 精品对白一区国产伦| 国产精品毛片a∨一区二区三区| 亚洲猫色日本管| 青青草国产成人av片免费| 国产成人精品一区二区三区四区 | aaa亚洲精品| 欧美美女一区二区在线观看| 精品日韩欧美一区二区| 日韩毛片视频在线看| 天天免费综合色| 国产a精品视频| 欧美日韩在线播放三区| 久久精品欧美日韩精品| 亚洲一区二区三区中文字幕 | 国产偷国产偷亚洲高清人白洁| 最近日韩中文字幕| 老司机精品视频导航| 99国产精品久久久久久久久久| 欧美一区二区在线视频| 国产精品视频免费| 日韩专区一卡二卡| av亚洲精华国产精华| 欧美一级二级三级蜜桃| 亚洲人亚洲人成电影网站色| 日本sm残虐另类| 日本大香伊一区二区三区| 久久青草欧美一区二区三区| 亚洲综合av网| caoporen国产精品视频| 91精品国产福利| 亚洲精品伦理在线| 国产精品一区二区久久精品爱涩| 欧美日韩国产小视频| 日韩一区在线看| 国内精品久久久久影院色| 欧美日韩专区在线| 国产精品成人一区二区三区夜夜夜| 美腿丝袜亚洲综合| 欧美日本国产视频| 亚洲综合在线免费观看| 成人爽a毛片一区二区免费| 精品国产乱码久久久久久图片 | 成人影视亚洲图片在线| 日韩欧美一级在线播放| 午夜精品福利一区二区三区蜜桃| 99久久国产综合精品麻豆 | 久久久久国产精品麻豆ai换脸| 五月天欧美精品| 欧美日韩国产高清一区二区三区 | av一区二区久久| 国产欧美日韩久久| 黄色小说综合网站| 日韩区在线观看| 美国三级日本三级久久99| 欧美日韩一区二区三区在线| 亚洲图片欧美色图| 欧美亚洲丝袜传媒另类| 亚洲综合成人在线视频| 欧美伊人久久大香线蕉综合69 | 欧美一区二区在线播放| 无吗不卡中文字幕| 欧美一级一区二区| 美女在线视频一区| 欧美va亚洲va国产综合| 国产很黄免费观看久久|