欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言實現(xiàn)圖書管理系統(tǒng)課程設(shè)計

 更新時間:2022年07月22日 11:58:00   作者:成就一億技術(shù)人  
這篇文章主要為大家詳細介紹了C語言實現(xiàn)圖書管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了C語言實現(xiàn)圖書管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

設(shè)計要求

設(shè)計圖書管理系統(tǒng)

要求如下:

1.對書名,作者,編號,出版單位,出版日期,類別,存放位置進行添加、刪除、修改
2.查詢相關(guān)信息
3.保存所有信息

實現(xiàn)代碼

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
typedef struct book ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*定義結(jié)構(gòu)體*/
{
?? ?char bookname[100] ; ? ? ? ?/*書名*/
?? ?char writer[100]; ? ? ? ? ? /*作者*/
?? ?char classnumber[100]; ? ? ?/*編號*/
?? ?char publisher[100]; ? ? ? ?/*出版單位*/

?? ?char time[100]; ? ? ? ? ? ? /*出版日期*/
? ? char ?type[100]; ? ? ? ? ? ? ? ?/*類別*/?
? ? char ? place[100]; ? ? ? ? ? ? ?/*存放位置*/
? ? ? struct ?book *next;
}Book;

int mima()
{
?? ?int i=0;
?? ?char user[10]="aa";
?? ?char Code[10]="123456";
?? ?char getuser[10];
?? ?char Getskey[10];

?? ?while(1)
?? ?{
?? ??? ?printf("\t\t\t請輸入賬號:");
?? ??? ?scanf("%s",getuser);
?? ??? ?printf("\t\t\t請輸入密碼:");
?? ??? ?while(1)
?? ??? ?{
?? ??? ??? ?Getskey[i]=getch();
?? ??? ??? ?if(Getskey[i]=='\r')
?? ??? ??? ??? ?break;
?? ??? ??? ?else if(Getskey[i]=='\b')
?? ??? ??? ?{
?? ??? ??? ??? ?if(i==0)
?? ??? ??? ??? ??? ?continue;
?? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ?printf(" ");
?? ??? ??? ??? ?printf("\b");
?? ??? ??? ??? ?i--;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?printf("*");
?? ??? ??? ??? ?i++;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?Getskey[6]='\0';
?? ??? ?if(strcmp(user, getuser)==0&&strcmp(Code, Getskey)==0)
?? ??? ??? ?return 1;
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("\n\n\t\t\t賬號不存在或密碼輸入錯誤,請重新輸入\n");
?? ??? ??? ?i = 0;
?? ??? ?}
?? ?}
}

void showmenu1() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示管理員菜單*/?
{
?? ?system("cls");
?? ?printf("\n\n\n\n\n");

? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ? printf("\t ? ? ? ? ? ? ? ? 歡迎來到圖書信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.錄入圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.刪除圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? ? ? ?
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 3.修改圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 4.查詢圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 5.顯示所有圖書信息 ? ? ? ? ? ? ? ? ? \n"); ? ? ? ?
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? 6.返回登錄界面 ? ? ? ? ? ? ? ? ? ? ? \n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 7.保存數(shù)據(jù)并退出系統(tǒng) ? ? ? ? ? ? ? ? \n");?
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
}

void showmenu2() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示游客菜單*/?
{
?? ?system("cls");
?? ?printf("\n\n\n\n\n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? 歡迎來到圖書信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.查詢圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.顯示所有圖書信息 ? ? ? ? ? ? ? ? ? \n"); ? ? ? ?
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? 3.返回登錄界面 ? ? ? ? ? ? ? ? ? ? ? \n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 4.退出系統(tǒng) ? ? ? ? ? ? ? ? ? ? ? ? ? \n");?
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
}

int savebookdata(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*將數(shù)據(jù)保存到文件中*/
{
?? ?Book *p;
?? ?FILE*fp;
?? ?fp=fopen("D:\\java\\zuoye.txt","w");
?? ?p=head->next;
?? ?do
?? ?{
?? ??? ?fprintf(fp,"%s\t",p->bookname); ? ? ? ? /* 把這個結(jié)點的數(shù)據(jù)全部寫入至文件內(nèi)由于next指針不需要寫入至文件,*/
?? ??? ?fprintf(fp,"%s\t",p->writer); ? ? ? ? ?/*因此,數(shù)據(jù)大小就是sizeof(book)-sizeof(book*)總數(shù)據(jù)大小減去指針的大小 */
?? ??? ?fprintf(fp,"%s\t",p->classnumber);
?? ??? ?fprintf(fp,"%s\t",p->publisher);
?? ? ? ?fprintf(fp,"%s\t",p->time);
?? ? ? ?fprintf(fp,"%s\t",p->type);
? ? ? ? fprintf(fp,"%s\t\n",p->place);
?? ? ? ?fprintf(fp,"\n");
?? ??? ?p=p->next; ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ?}while(p!=NULL);
?? ?fclose(fp);
?? ?return 0;
}

void addnewbook(Book **head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*錄入圖書信息*/
{
?? ?int i;
?? ?Book *p,*s;
?? ?system("cls");
?? ?if(*head == NULL) { ? ? ? ? ? ? ? ? /* 如果表頭為空,先為它分配內(nèi)存 */
? ? ? ? *head = (Book *)calloc(1, sizeof(Book));
? ? ? ? p = *head;
? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 否則,就說明有內(nèi)容,直接切換到尾結(jié)點 */
? ? ? ? p = *head;
? ? ? ? while(p->next)?
? ? ? ? p = p->next;?
? ? }
? ? printf("\n\n\n");
?? ?printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
? ? printf("\t\t\t請問添加幾本書:");?
? ? scanf("%d",&i);
? ? printf("\t--------------------------------------------------------\n");
? ? while(i)
? ? {
? ? ?? ?s = (Book *)calloc(1, sizeof(Book)); ? ? ? ? ? ? ? ? ? ? ? ?/*為這個結(jié)點分配內(nèi)存 */
?? ??? ?printf("\t\t\t請輸入書名:");
?? ??? ?scanf("%s",s->bookname);
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?printf("\t\t\t請輸入作者:");
?? ??? ?scanf("%s",s->writer);
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?printf("\t\t\t請輸入編號:");
?? ??? ?scanf("%s",s->classnumber);
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?printf("\t\t\t請輸入出版單位:");
?? ??? ?scanf("%s",s->publisher);
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?printf("\t\t\t請輸入出版日期:");
?? ??? ?scanf("%s",s->time);
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?printf("\t\t\t請輸入類別:");
?? ??? ?scanf("%s",s->type);
?? ??? ?printf("\t--------------------------------------------------------\n");
? ? ? ? printf("\t\t\t請輸入存放位置:");
?? ??? ?scanf("%s",s->place);
?? ??? ?printf("\t--------------------------------------------------------\n");

?? ??? ?printf("\n");
?? ??? ?printf("\t--------------------------------------------------------\n");
?? ??? ?i--;
?? ??? ??? ?
?? ??? ?p->next=s; ? ?/*保存輸進去的這個結(jié)點*/
?? ??? ?p=p->next; ? ?/*切換到下一個結(jié)點*/?
?? ??? ?p->next=NULL; /*最后一個結(jié)點為NULL*/
?? ?}
?? ? ? ? ? ?
? ? printf("\t\t\t圖書添加成功!!!\n");
?? ?system("pause");
}

int readbookdata(Book **head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*將數(shù)據(jù)從文件中讀取*/?
{
? ? int n;
? ? Book *s, *p;
? ? FILE *fp;
? ??
? ? fp=fopen("d:\\java\\zuoye.txt","r");
? ? /* 如果文件打開失敗,就返回-1 */
? ? if(NULL == fp) {?
? ? ? ? *head = NULL;?
? ? ? ? return -1;
? ? }?
? ? ?
? ? *head = (Book *)calloc(1, sizeof(Book));
? ? p = *head;?
? ? ?
??? ? while (!feof(fp))
?? ?{
? ? ? ? s = (Book *)calloc(1, sizeof(Book));?? ? ? ? ? ? ? ??? ?/* 為下個結(jié)點分配內(nèi)存空間 */
?? ??? ?fscanf(fp,"%s",s->bookname);
?? ??? ?fscanf(fp,"%s",s->writer);
?? ??? ?fscanf(fp,"%s",s->classnumber);
?? ??? ?fscanf(fp,"%s",s->publisher);
?? ??? ?fscanf(fp,"%s",s->time);
?? ??? ?fscanf(fp,"%s",p->type);
? ? ? ? fscanf(fp,"%s\n",p->place);
?? ??? ?p->next=s; ? /*保存該結(jié)點*/
?? ??? ?p=p->next; ? /*切換到下一個結(jié)點*/
?? ??? ?p->next=NULL; /*保證最后一個結(jié)點為NULL*/
?? ?}
? ? ?
? ? fclose(fp);/* 關(guān)閉文件 */
? ? return 0;?
}

void deletebook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*刪除圖書信息*/
{
?? ?system("cls");
?? ?int flag=0;
?? ?char name[100],ch[10];
?? ?Book *p,*t;
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒有記錄圖書信息!\n");
? ? ? ? system("pause");
? ? ? ? return;
? ? }
?? ?
?? ?p=head;
?? ?printf("\n\n\n");
? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ?printf("請輸入要刪除的書名;");
?? ?scanf("%s",&name);
?? ?printf("----------------------------------------------------------------------\n");
?? ?printf("書名\t\t作者名\t\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ?while(p->next)
?? ?{
?? ??? ?t=p;
?? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ? ? ?if(strcmp(name,p->bookname)==0)
?? ? ? ?{
?? ? ? ??? ?flag=1;
?? ? ? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ? ? ? ? ?break;
?? ??? ?}
?? ?}
?? ??
?? ?if(flag==1)
?? ?{
?? ??? ?printf("是否刪除該本圖書信息(y/n)");
?? ??? ?scanf("%s",ch);
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
?? ??? ?{
?? ??? ??? ?t->next=p->next;
?? ??? ??? ?printf("該書已刪除!\n");
?? ??? ?}
?? ??? ?else
?? ??? ? ? ?return;
?? ?}
?? ?else if(flag==0)
?? ? ? ?printf("沒找到那本書!\n");
?? ?
?? ?system("pause");
}

void modifybook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*修改圖書信息*/
{
?? ?system("cls");
?? ?int flag=0;
?? ?char name[100],ch[10];
?? ?Book *p,*t;
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒有記錄圖書信息!\n");
? ? ? ? system("pause");
? ? ? ? return ;
? ? }
?? ?
?? ?p=head;
?? ?
?? ?printf("\n\n\n");
?? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ?printf("請輸入要修改的書名:");
?? ?scanf("%s",name);
?? ?printf("--------------------------------------------------------------------\n");

?? ?while(p->next)
?? ?{
?? ??? ?p=p->next; ? ? ? ? ? ? ? ? /*切換到下一個結(jié)點*/
?? ? ? ?if(strcmp(name,p->bookname)==0)
?? ? ? ?{
?? ? ? ??? ?flag=1;
?? ? ? ??? ?t=p;
?? ??? ??? ?printf("書名\t\t作者名\t\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ? ? ??? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ??? ?}
?? ?}
?? ?
?? ?if(flag==1)
?? ?{
?? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ?printf("\t\t是否修改該本圖書信息(y/n):");
?? ??? ?scanf("%s",ch);
?? ??? ?printf("\t--------------------------------------------------------------------\n");
?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
?? ??? ?{
?? ??? ??? ?int c;
?? ??? ??? ?printf("\t\t【1】書名\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【2】作者\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【3】編號\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【4】出版單位\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【5】出版日期\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【6】類別\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
? ? ? ? ? ? printf("\t\t【7】存放位置\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");

?? ??? ??? ?printf("\t請輸入你要修改的內(nèi)容;");
?? ??? ??? ?scanf("%d",&c);
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?p=t;
?? ??? ??? ?switch(c)
?? ??? ??? ?{
?? ??? ??? ??? ?case 1:
?? ??? ??? ??? ? ? ?printf("\t請輸入書名:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->bookname);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 2:
?? ??? ??? ? ? ? ? ?printf("\t請輸入作者:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->writer);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 3:
?? ??? ??? ? ? ? ? ?printf("\t請輸入編號:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->classnumber);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 4:
?? ??? ??? ? ? ? ? ?printf("\t請輸入出版單位:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->publisher);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 5:
?? ??? ??? ? ? ? ? ?printf("\t請輸入出版日期:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->time);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 6:
?? ??? ??? ? ? ? ? ?printf("\t請輸入類別:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->type);
?? ??? ??? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ?case 7:
?? ??? ??? ? ? ? ? ?printf("\t請輸入存放位置:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->place);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ?}
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ? ? ?printf("\t恭喜大佬修改成功!!!\n");
?? ??? ?}
?? ?}
?? ?
?? ?else if(flag==0)
?? ? ? ?printf("對不起,該書庫沒有該書\n");
?? ? ? ?system("pause");
}

void searchbook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*查詢圖書信息*/
{
?? ?system("cls");
?? ?int choose,flag=0;
?? ?Book *p;
?? ?char b[100];
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒有記錄圖書信息!\n");
? ? ? ? system("pause");
? ? ? ? return ;
? ? }
? ??
? ? do
?? ?{
?? ??? ?system("cls");
?? ??? ?printf("\n\n\n");
?? ??? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ??? ?printf("\t\t1.按書名查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?printf("\t\t2.按作者名查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t3.按編號查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t4.按出版單位查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t返回主菜單(其他數(shù)字)\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?printf("\t\t請輸入您的選擇:");
?? ??? ?scanf("%d",&choose);
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?p=head;
?? ??? ?
?? ??? ?if(choose==1)
?? ??? ?{
?? ??? ??? ?printf("輸入所查書名:");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ??? ??? ??? ?if(strcmp(b,p->bookname)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ? ? ?{
?? ??? ??? ??? ? ? ? flag=1;
?? ??? ??? ??? ? ? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ??? ??? ??? ??? ? printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
? ? ? ?? ??? ??? ? ??? ? printf("----------------------------------------------------------------------\n");
?? ??? ??? ??? ? ? ? printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ??? ??? ? ? ?}
?? ??? ??? ?}
?? ??? ??? ?if(flag==0)
?? ??? ??? ? ? ? ? ? printf("不存在該信息\n");
?? ??? ?}
?? ??? ?
?? ??? ?else if(choose==2)
?? ??? ?{
?? ??? ??? ?printf("輸入所查作者名:");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ??? ??? ??? ?if(strcmp(b,p->writer)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n");
?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if(flag==0)
?? ??? ??? ? ? ? ? ?printf("不存在該信息\n");
?? ??? ?}
?? ??? ?else if(choose==3)
?? ??? ?{
?? ??? ??? ?printf("輸入所查編號:");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ??? ??? ??? ?if(strcmp(b,p->classnumber)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n");
?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if(flag==0)
?? ??? ??? ? ? ? ? ?printf("不存在該信息\n");
?? ??? ?}
?? ??? ?else if(choose==4)
?? ??? ?{
?? ??? ??? ?printf("輸入所查出版單位:");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ??? ??? ??? ?if(strcmp(b,p->publisher)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n");
?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if(flag==0)
?? ??? ??? ? ? ? ? ?printf("不存在該信息\n");
?? ??? ?}?? ??? ?
?? ??? ?else
?? ??? ? ? ?return;
?? ??? ?system("pause");
?? ?}while(1);
}

int printfbook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*顯示所有圖書信息*/ ? ? ? ? ?
{
?? ?Book *p;
?? ?system("cls");
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒有記錄圖書信息!\n");
? ? ? ? system("pause");
? ? ? ? return 0;
? ? }
?? ?
? ? p=head->next;
? ? printf("\n\n\n");
? ? printf("**********************************************************************************\n");
? ? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖書列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \n");
? ? printf("----------------------------------------------------------------------------------\n");
?? ?printf("書名\t作者\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ??
?? ?printf("----------------------------------------------------------------------------------\n");
? ??
?? ?do
?? ?{
?? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place);
?? ? ? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/
?? ?}while(p!=NULL);
?? ?
?? ?system("pause");
}

int main(void)
{
?? ?system("cls");
?? ?Book *head=NULL;
?? ?readbookdata(&head);
?? ?int choice,z,c;
?? ?printf("\n\n\n");
?? ?printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ?printf("\t\t\t歡迎光臨圖書信息管理系統(tǒng)\n");
?? ?printf("\t--------------------------------------------------------\n");
?? ?printf("\t\t\t【1】游客\n");
?? ?printf("\t\t\t【2】管理員\n");
?? ?printf("\t\t\t【3】退出系統(tǒng)\n");
?? ?printf("\t--------------------------------------------------------\n");
?? ?while(printf("\t\t\t請選擇身份:")&&scanf("%d",&c)!=EOF)
?? ?{
?? ??? ?if(c==1)
?? ??? ?{
?? ??? ??? ?showmenu2();
?? ??? ??? ?while (printf("\t請輸入選擇項(1-3):")&&scanf("%d",&choice)!=EOF)
? ? ?? ??? ?{
?? ??? ? ? ??? ?switch (choice)
? ? ?? ??? ??? ?{
? ? ?? ??? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書信息*/
?? ??? ??? ??? ? ? ??? ?searchbook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書信息*/
? ? ?? ? ? ? ? ? ? ??? ?printfbook(head);
?? ??? ??? ? ? ??? ??? ?break;?
?? ??? ??? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/
?? ??? ??? ??? ??? ??? ?main();
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 4:
?? ??? ??? ??? ??? ??? ?exit(0);?
?? ??? ??? ? ? ??? ?default:
?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯誤!!!\n");
?? ??? ??? ??? ? ? ??? ?system("pause");
?? ??? ??? ??? ? ? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?showmenu2();
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(c==2)
?? ??? ?{
?? ??? ??? ?z=mima();
?? ??? ??? ?showmenu1();
?? ??? ??? ?while (printf("\t請輸入選擇項(1-6):")&&z==1&&scanf("%d",&choice)!=EOF)
? ? ?? ??? ?{
?? ? ? ??? ??? ?switch (choice)
? ? ?? ??? ??? ?{
?? ??? ? ? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*錄入圖書信息*/
?? ??? ??? ??? ? ? ??? ?addnewbook(&head);
?? ??? ??? ? ? ??? ??? ?break; ?
?? ??? ? ? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*刪除圖書信息*/
?? ??? ??? ? ? ??? ??? ?deletebook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ? ? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*修改圖書信息*/
?? ??? ??? ? ? ??? ??? ?modifybook(head);
?? ??? ??? ? ? ?? ??? ? ?? ?break;
?? ??? ? ? ??? ??? ?case 4: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書信息*/
?? ??? ??? ??? ? ? ??? ?searchbook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 5: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書信息*/
? ? ? ? ? ? ?? ? ? ??? ?printfbook(head);
?? ??? ? ? ??? ??? ??? ?break;
?? ??? ? ? ??? ??? ?case 6: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/
?? ??? ??? ??? ??? ??? ?main();
?? ??? ??? ??? ??? ??? ?break;?
?? ??? ??? ??? ??? ?case 7: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*保存數(shù)據(jù)并退出系統(tǒng)*/
?? ??? ??? ??? ? ? ??? ?savebookdata(head);
?? ??? ??? ??? ??? ??? ?exit(0);
?? ??? ? ? ??? ??? ?default:
?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯誤!!!\n");
?? ??? ??? ??? ? ? ??? ?system("pause");
?? ??? ??? ??? ? ? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?showmenu1();
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(c==3)
?? ??? ??? ?exit(0);
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("\t\t\t輸入錯誤!!!\n\n");
?? ??? ?}
?? ?}
?? ?return 0;
}

運行結(jié)果

這里提供的是管理員身份

這里提供游客身份(供選擇的功能相對管理員少)

后面大家就可以自行輸入對應(yīng)功能前的序號,實現(xiàn)此系統(tǒng)的功能

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • OpenCV?通過Mat遍歷圖像的方法匯總

    OpenCV?通過Mat遍歷圖像的方法匯總

    對圖像中的所有點或特殊點進行運算,所以遍歷圖像就顯得很重要,如何高效的遍歷圖像是一個很值得探討的問題,本文給大家?guī)砹硕喾N方法操作OpenCV?通過Mat遍歷圖像,感興趣的朋友一起看看吧
    2022-02-02
  • c++實現(xiàn)高精度加法

    c++實現(xiàn)高精度加法

    高精度運算是指參與運算的數(shù)(加數(shù),減數(shù),因子……)范圍大大超出了標準數(shù)據(jù)類型(整型,實型)能表示的范圍的運算。例如,求兩個200位的數(shù)的和。這時,就要用到高精度算法了。
    2017-05-05
  • C語言實現(xiàn)雙人五子棋游戲

    C語言實現(xiàn)雙人五子棋游戲

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)雙人五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 基于Qt實現(xiàn)C/C++調(diào)用Matlab函數(shù)全過程

    基于Qt實現(xiàn)C/C++調(diào)用Matlab函數(shù)全過程

    這篇文章給大家詳細介紹了基于Qt平臺實現(xiàn)C/C++調(diào)用Matlab函數(shù)全流程,文中通過圖文和代碼示例給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • EasyC++靜態(tài)持續(xù)變量

    EasyC++靜態(tài)持續(xù)變量

    這篇文章主要介紹了EasyC++靜態(tài)持續(xù)變量,除了自動存儲變量之后,C++當(dāng)中還有靜態(tài)持續(xù)變量。關(guān)于靜態(tài)持續(xù)變量的定義C++和C語言是一樣的,它擁有三種鏈接性,即外部鏈接性、內(nèi)部連接性和無鏈接性,下面一起進入文章了解更具體內(nèi)容吧
    2021-12-12
  • C++寫Linux框架示例解析

    C++寫Linux框架示例解析

    這篇文章主要為大家介紹了C++實現(xiàn)Linux框架示例代碼詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • C++成員函數(shù)中const的使用詳解

    C++成員函數(shù)中const的使用詳解

    這篇文章主要為大家詳細介紹了C++成員函數(shù)中const的使用,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++帶頭雙向循環(huán)鏈表超詳細解析

    C++帶頭雙向循環(huán)鏈表超詳細解析

    帶頭雙向循環(huán)鏈表:結(jié)構(gòu)最復(fù)雜,一般用在單獨存儲數(shù)據(jù)。實際中使用的鏈表數(shù)據(jù)結(jié)構(gòu),都是帶頭雙向循環(huán)鏈表。另外這個結(jié)構(gòu)雖然結(jié)構(gòu)復(fù)雜,但是使用代碼實現(xiàn)以后會發(fā)現(xiàn)結(jié)構(gòu)會帶來很多優(yōu)勢,實現(xiàn)反而簡單
    2022-03-03
  • C++使用tinyxml庫處理XML文件

    C++使用tinyxml庫處理XML文件

    TinyXML是一個開源的解析XML的解析庫,能夠用于C++,能夠在Windows或Linux中編譯,這個解析庫的模型通過解析XML文件,然后在內(nèi)存中生成DOM模型,從而讓我們很方便的遍歷這棵XML樹,本文為大家介紹的是使用tinyxml庫處理XML文件,需要的可以參考一下
    2023-07-07
  • 深入淺析C語言與C++的區(qū)別與聯(lián)系

    深入淺析C語言與C++的區(qū)別與聯(lián)系

    這篇文章主要為大家介紹了深入的分析了C語言與C++的區(qū)別與聯(lián)系,文中通過詳細的示例進行了對比,以便大家更容易的看懂理解,有需要的朋友可以借鑒參考下
    2021-11-11

最新評論