亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产91精品久久久久久久网曝门| 久久99久久99精品免视看婷婷| 久久综合九色综合久久久精品综合| 欧美亚洲一区三区| 欧美午夜精品一区二区蜜桃| 91网页版在线| 在线免费观看视频一区| 色网站国产精品| 在线影院国内精品| 欧美日韩第一区日日骚| 欧美一区日韩一区| 精品久久国产97色综合| 久久久久久久久久看片| 亚洲欧洲日韩一区二区三区| 亚洲日本成人在线观看| 一区二区三区丝袜| 日韩va亚洲va欧美va久久| 裸体在线国模精品偷拍| 成人午夜激情影院| 91成人看片片| 欧美精品一区二| 亚洲桃色在线一区| 免费美女久久99| 成人午夜视频福利| 欧美人牲a欧美精品| 久久综合色综合88| 亚洲欧美日韩人成在线播放| 五月天精品一区二区三区| 精品中文字幕一区二区| 成人精品一区二区三区中文字幕| 91精品1区2区| 精品国产免费视频| 亚洲三级在线观看| 国内精品免费在线观看| 91在线视频观看| 日韩网站在线看片你懂的| 中文字幕欧美一| 青青青伊人色综合久久| aaa亚洲精品一二三区| 欧美一区二区高清| 亚洲视频中文字幕| 国产精品66部| 91精品国产综合久久精品图片| 精品国产网站在线观看| 亚洲国产精品一区二区尤物区| 国产二区国产一区在线观看| 欧美老人xxxx18| 国产精品久久久久久久第一福利| 青青国产91久久久久久| 欧美性猛交一区二区三区精品 | 国模大尺度一区二区三区| 色婷婷国产精品久久包臀| 久久久精品影视| 青青草视频一区| 欧美吻胸吃奶大尺度电影| 国产喷白浆一区二区三区| 欧美96一区二区免费视频| 在线观看精品一区| 国产精品久久久久久久久免费丝袜| 久久精品国产一区二区三| 欧美日韩国产一区二区三区地区| 欧美国产日产图区| 国产91在线观看| 久久精品视频在线看| 另类的小说在线视频另类成人小视频在线| 99精品桃花视频在线观看| 久久精品亚洲麻豆av一区二区 | 欧美日韩在线三区| 一区二区三区中文字幕| 95精品视频在线| 亚洲色图20p| 91女厕偷拍女厕偷拍高清| 亚洲国产成人在线| 成人app软件下载大全免费| 久久精品人人做| 国产精品亚洲а∨天堂免在线| 精品久久一区二区三区| 国产一区二区福利| 国产日韩av一区二区| 国产ts人妖一区二区| 国产欧美一区二区精品忘忧草 | 在线观看视频欧美| 亚洲免费av高清| 欧美性猛交xxxxxx富婆| 亚洲国产毛片aaaaa无费看 | 亚洲美腿欧美偷拍| 欧美色图在线观看| 日韩精品一卡二卡三卡四卡无卡| 日韩色视频在线观看| 国模套图日韩精品一区二区| 久久久久久99精品| 91麻豆国产在线观看| 亚洲成年人网站在线观看| 日韩色在线观看| 成人看片黄a免费看在线| 一区二区成人在线| 在线播放中文一区| 国产精品69久久久久水密桃| 国产精品久久久久久久裸模| 欧洲av在线精品| 免费欧美在线视频| 国产精品久久久久永久免费观看 | 久久久久久一级片| av一区二区三区四区| 三级精品在线观看| 中文字幕免费不卡在线| 欧美日韩精品三区| 国产精品资源在线| 亚洲国产你懂的| 国产欧美日韩一区二区三区在线观看| 国产sm精品调教视频网站| 亚洲一区二区黄色| 久久久美女毛片| 欧美日韩精品一区二区三区四区| 精品一二三四在线| 一区二区三区国产精品| 精品国产凹凸成av人导航| 色狠狠色噜噜噜综合网| 国产精品一区二区不卡| 亚洲成av人片在线| 18成人在线观看| 久久综合九色综合97婷婷女人 | 蓝色福利精品导航| 亚洲精品成a人| 国产性天天综合网| 在线播放中文字幕一区| 色噜噜狠狠色综合中国| 国产寡妇亲子伦一区二区| 天堂av在线一区| 亚洲欧美日韩成人高清在线一区| 久久久夜色精品亚洲| 日韩精品一区二区三区视频播放| 色哟哟亚洲精品| av午夜精品一区二区三区| 国产精品亚洲一区二区三区妖精 | jizzjizzjizz欧美| 国产乱码精品一区二区三区忘忧草| 天天综合天天做天天综合| 亚洲乱码精品一二三四区日韩在线| 久久精品亚洲国产奇米99| 日韩免费观看高清完整版在线观看| 欧美无乱码久久久免费午夜一区 | 欧美日韩成人一区| 在线日韩av片| 色综合天天综合在线视频| 成人看片黄a免费看在线| 粉嫩绯色av一区二区在线观看| 韩国精品主播一区二区在线观看 | 亚洲情趣在线观看| 亚洲欧美在线高清| 亚洲人成精品久久久久久| 国产精品国产自产拍高清av| 国产精品美女久久久久久久久| 国产亚洲精品超碰| 国产校园另类小说区| 国产精品欧美久久久久一区二区| 国产亚洲综合av| 一区在线中文字幕| 亚洲天堂av老司机| 午夜欧美在线一二页| 日韩黄色片在线观看| 麻豆成人免费电影| 国产精品一级片| www.日本不卡| 欧美在线观看18| 欧美一区二区高清| 久久精品亚洲精品国产欧美kt∨| 国产精品国产三级国产aⅴ中文| 综合精品久久久| 一区二区三区久久久| 天天av天天翘天天综合网| 麻豆久久久久久| hitomi一区二区三区精品| 欧美色综合影院| 精品国产第一区二区三区观看体验 | 欧美最新大片在线看| 欧美精品视频www在线观看| 日韩三级高清在线| 国产日韩欧美高清| 亚洲一区二区在线播放相泽| 久久国产精品99精品国产| 国产黄色精品网站| 欧美人牲a欧美精品| 国产午夜久久久久| 亚洲一区二区三区四区五区黄| 另类小说综合欧美亚洲| 不卡一区在线观看| 日韩网站在线看片你懂的| 自拍视频在线观看一区二区| 日本三级韩国三级欧美三级| 成人丝袜高跟foot| 欧美一级高清片| 亚洲欧美日韩精品久久久久| 乱中年女人伦av一区二区| 色综合激情久久| 国产精品午夜久久| 男女男精品网站| 欧美色区777第一页| 中文一区二区在线观看| 狂野欧美性猛交blacked|