當前位置:歷史故事大全網 - 圖書館 - 圖書信息管理系統的c語言

圖書信息管理系統的c語言

我自己寫的!

題目和妳的壹樣!

# include & ltstdio.h & gt

# include & ltmath.h & gt

# include & ltstring.h & gt

# include & ltstdlib.h & gt

結構書籍_列表

{

char作者[20];/*作者姓名*/

char bookname[20];/*標題*/

char publisher[20];/*出版商*/

char Pb time[15];/*出版日期*/

char loginnum[10];/*登陸號碼*/

浮動價格;/*價格*/

char classfy[10];/*分類號*/

struct books _ list * next/*鏈表的指針字段*/

};

struct Books _ list * Create _ Books _ Doc();/*創建新的鏈接列表*/

void insert doc(struct books _ list * head);/*插入*/

void delete doc(struct books _ list * head,int num);/*刪除*/

void Print _ Book _ Doc(struct books _ list * head);/*瀏覽*/

void search _ book(struct books _ list * head);/*查詢*/

void info _ change(struct books _ list * head);/*修改*/

void save(struct books _ list * head);/*將數據保存到文件*/

/*創建新的鏈表頭節點*/

struct Books _ list * Create _ Books _ Doc()

{

結構books _ list * head

head =(struct books _ list *)malloc(size of(struct books _ list));/*分配頭節點空間*/

head->;next = NULL/*頭節點的指針字段被初始化並設置為空*/

回程頭;

}

/*將數據保存到文件*/

void save(struct books_list * head)

{

結構books _ list * p;

FILE * fp

p =頭部;

fp=fopen("data.txt "," w+");/*通過編寫*/創建並打開data.txt文件

fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n”);/*將表格輸出到文件*/

Fprintf(fp,"┃登記號┃書名┃作者┃出版單位┃出版時間┃分類號┃價格\ n);

fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n”);

/*指針從頭節點移動到尾節點,依次輸出圖書信息*/

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->;loginnum,p-& gt;書名,p-& gt;作者,p-& gt;出版商,p-& gt;pbtime,p-& gt;classfy,p-& gt;價格);

}

fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n”);

fclose(FP);

Printf("圖書數據已保存到data.txt文件\ n ");

}

/*插入*/

void insert doc(struct books _ list * head)

{

/*定義結構指針變量S指向打開的新節點的第壹個地址p作為中間變量*/

struct books_list *s,* p;

char flag = ' Y/*定義標誌,方便用戶選擇重復輸入*/

p =頭部;

/*遍歷到尾節點,p指向尾節點*/

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

}

/*打開新空間,存儲數據並將其添加到鏈表中*/

while(flag=='Y'||flag=='y ')

{

s =(struct books _ list *)malloc(size of(struct books _ list));

printf(" \ n請輸入圖書登錄號:");

fflush(stdin);

scanf("%s ",s-& gt;loginnum);

printf(" \ n請輸入書名:");

fflush(stdin);

scanf("%s ",s-& gt;書名);

printf(" \ n請輸入圖書作者姓名:");

fflush(stdin);

scanf("%s ",s-& gt;作者);

printf(" \ n請輸入圖書出版商:");

fflush(stdin);

scanf("%s ",s-& gt;出版商);

printf(" \ n請輸入圖書出版時間:");

fflush(stdin);

scanf("%s ",s-& gt;Pb time);

printf(" \ n請輸入圖書分類號:");

fflush(stdin);

scanf("%s ",s-& gt;classfy);

printf(" \ n請輸入圖書價格:");

fflush(stdin);

scanf("%f ",& amps-& gt;價格);

printf(" \ n ");

p->;next = s;/*將新添加的節點添加到鏈表中*/

p = s;/*p指向尾節點並向後移動*/

s-& gt;next = NULL

Printf ("━ ━ ━添加成功!━━━━");

printf(" \ n繼續添加嗎?(Y/N):);

fflush(stdin);

scanf("%c ",& amp旗幟);

printf(" \ n ");

if(flag=='N'||flag=='n ')

{ break}

else if(flag=='Y'||flag=='y ')

{繼續;}

}

保存(頭);/*將數據保存到文件*/

返回;

}

/*查詢操作*/

void search _ book(struct books _ list * head)

{

結構books _ list * p;

充電溫度[20];

p =頭部;

if(head = = NULL | | head-& gt;Next==NULL) /*確定數據庫是否為空*/

{

Printf ("━ ━ ━庫是空的!━━━\ n ");

}

其他

{

Printf("請輸入妳要找的書的書名:");

fflush(stdin);

scanf("%s ",temp);

/*指針從頭節點移動到尾節點以查找書目信息*/

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

if(strcmp(p-& gt;bookname,temp)==0)

{

printf(" \ n找到壹本書!\ n ");

printf(" \ n ");

Printf("登錄號:%s\t\n ",p-& gt;loginnum);

Printf ("Title: %s\t\n ",p-& gt;書名);

Printf("作者姓名:%s\t\n ",p-& gt;作者);

Printf ("Publisher: %s\t\n ",p-& gt;出版商);

Printf("發布日期:%s\t\n ",p-& gt;Pb time);

Printf("分類號:%s\t\n ",p-& gt;classfy);

Printf("價格:%.2f\t\n ",p-& gt;價格);

}

如果(p->;next==NULL)

{

printf(" \ n查詢完成!\ n ");

}

}

}

返回;

}

/*瀏覽操作*/

void Print _ Book _ Doc(struct books _ list * head)

{

結構books _ list * p;

if(head = = NULL | | head-& gt;Next==NULL) /*確定數據庫是否為空*/

{

Printf ("\ n ━ ━沒有圖書記錄!━━━\ n \ n ");

返回;

}

p =頭部;

printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓\n”);

Printf("┃登錄號┃書名┃作者┃出版單位┃出版時間┃分類號┃價格┃n”);

printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫\n”);

/*指針從頭節點移動到尾節點,依次輸出圖書信息*/

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃\n",p->;loginnum,p-& gt;書名,p-& gt;作者,p-& gt;出版商,p-& gt;pbtime,p-& gt;classfy,p-& gt;價格);/*循環輸出表*/

}

printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛\n”);

printf(" \ n ");

}

/*修改操作*/

void info _ change(struct books _ list * head)

{

結構books _ list * p;

int pan Duan = 0;/*該變量用於判斷是否找到文獻目錄*/

充電溫度[20];

p =頭部;

Printf("請輸入要修改的書名:");

scanf("%s ",temp);

while(p->;下壹個!=空)

{

p = p-& gt;接下來;

if(strcmp(p-& gt;bookname,temp)==0)

{

printf(" \ n請輸入圖書登錄卡號:");

fflush(stdin);

scanf("%s ",p-& gt;loginnum);

printf(" \ n請輸入書名:");

fflush(stdin);

scanf("%s ",p-& gt;書名);

printf(" \ n請輸入圖書作者姓名:");

fflush(stdin);

scanf("%s ",p-& gt;作者);

printf(" \ n請輸入圖書出版商:");

fflush(stdin);

scanf("%s ",p-& gt;出版商);

printf(" \ n請輸入圖書出版時間:");

fflush(stdin);

scanf("%s ",p-& gt;Pb time);

printf(" \ n請輸入圖書分類號:");

fflush(stdin);

scanf("%s ",p-& gt;classfy);

printf(" \ n請輸入圖書價格:");

fflush(stdin);

scanf("%f ",& ampp->;價格);

printf(" \ n ");

panduan = 1;

}

}

if(panduan==0)

{

Printf ("\ n ━ ━沒有圖書記錄!━━━\ n \ n ");

}

返回;

}

/*刪除操作*/

void delete doc(struct books _ list * head)

{

struct books_list *s,* p;/*s是中間變量,p是指針*/

充電溫度[20];

int panduan/*該變量用於判斷文獻目錄是否已經找到*/

panduan = 0;

p = s =頭;

printf("[請輸入您要刪除的書名]:);

scanf("%s ",temp);

/*遍歷到尾節點*/

而(p!=空)

{

if(strcmp(p-& gt;bookname,temp)==0)

{

潘端++;

打破;

}

p = p-& gt;接下來;

}

if(panduan==1)

{

for(;s-& gt;下壹個!= p;)/*找到上壹個節點刪除卡號節點*/

{

s = s-& gt;接下來;

}

s-& gt;next = p-& gt;接下來;/*將後壹個節點的地址分配給前壹個節點的指針字段*/

免費(p);

Printf ("\ n ━ ━刪除成功!━━━\ n ");

}

Else /*沒有找到相應的書目*/

{

Printf("您輸入的書目不存在,請確認後輸入!\ n ");

}

返回;

}

int main(void)

{

結構books _ list * head

char選擇;

head = NULL

for(;;)/*實現重復輸入和選擇*/

{

printf(“┏━┓━━━━━━━━━━━━━━━━━━━┏━┓\n”);

printf(“┃┃\n socat圖書管理系統”)。

printf(“┃┗━━━━━━━━━━━━━━━━━━━┛┃\n”);

Printf(" ┃ ●[1]圖書信息錄入┃\n ");

printf(“┃┃\n”);

Printf(" ┃ ●[2]圖書信息瀏覽┃\n ");

printf(“┃┃\n”);

Printf(" ┃ ●[3]圖書信息查詢┃\n ");

printf(“┃┃\n”);

Printf(" ┃ ●[4]圖書信息修改┃\n ");

printf(“┃┃\n”);

Printf(" ┃ ●[5]刪除圖書信息┃\n ");

printf(“┃┃\n”);

Printf(" ┃ ●[6]退出系統┃\n ");

printf(“┗━━━━━━━━━━━━━━━━━━━━━━━┛\n”);

Printf("請選擇:");

fflush(stdin);

scanf("%c ",& amp選擇);

if(choice=='1 ')

{

if(head==NULL)

{

head = Create _ Books _ Doc();

}

insert doc(head);

}

else if(choice=='2 ')

{

Print_Book_Doc(表頭);

}

else if(choice=='3 ')

{

search_book(頭);

}

else if(choice=='4 ')

{

info_change(頭);

}

else if(choice=='5 ')

{

delete doc(head);

}

else if(choice=='6 ')

{

printf(" \ n ");

Printf ("━ ━ ━ ━ ━ ━ ━感謝使用圖書館管理系統━━n ");

打破;

}

其他

{

Printf ("━ ━ ━輸入錯誤,請重新輸入!━━━━");

打破;

}

}

返回0;

}

  • 上一篇:重慶航天職業技術學院是公立還是私立?
  • 下一篇:中國插畫——國潮插畫的風格特征
  • copyright 2024歷史故事大全網