亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

設(shè)計(jì)要求

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

要求如下:

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

實(shí)現(xiàn)代碼

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
typedef struct book ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*定義結(jié)構(gòu)體*/
{
?? ?char bookname[100] ; ? ? ? ?/*書(shū)名*/
?? ?char writer[100]; ? ? ? ? ? /*作者*/
?? ?char classnumber[100]; ? ? ?/*編號(hào)*/
?? ?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請(qǐng)輸入賬號(hào):");
?? ??? ?scanf("%s",getuser);
?? ??? ?printf("\t\t\t請(qǐng)輸入密碼:");
?? ??? ?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賬號(hào)不存在或密碼輸入錯(cuò)誤,請(qǐng)重新輸入\n");
?? ??? ??? ?i = 0;
?? ??? ?}
?? ?}
}

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

? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ? printf("\t ? ? ? ? ? ? ? ? 歡迎來(lái)到圖書(shū)信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.錄入圖書(shū)信息 ? ? ? ? ? ? ? ? ? ? ? \n");
? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.刪除圖書(shū)信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? ? ? ?
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 3.修改圖書(shū)信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 4.查詢圖書(shū)信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 5.顯示所有圖書(shū)信息 ? ? ? ? ? ? ? ? ? \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 ? ? ? ? ? ? ? ? 歡迎來(lái)到圖書(shū)信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.查詢圖書(shū)信息 ? ? ? ? ? ? ? ? ? ? ? \n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n");
?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.顯示所有圖書(shū)信息 ? ? ? ? ? ? ? ? ? \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); ? ? ? ? /* 把這個(gè)結(jié)點(diǎn)的數(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)換到下一個(gè)結(jié)點(diǎn)*/
?? ?}while(p!=NULL);
?? ?fclose(fp);
?? ?return 0;
}

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

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

int readbookdata(Book **head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*將數(shù)據(jù)從文件中讀取*/?
{
? ? int n;
? ? Book *s, *p;
? ? FILE *fp;
? ??
? ? fp=fopen("d:\\java\\zuoye.txt","r");
? ? /* 如果文件打開(kāi)失敗,就返回-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));?? ? ? ? ? ? ? ??? ?/* 為下個(gè)結(jié)點(diǎn)分配內(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é)點(diǎn)*/
?? ??? ?p=p->next; ? /*切換到下一個(gè)結(jié)點(diǎn)*/
?? ??? ?p->next=NULL; /*保證最后一個(gè)結(jié)點(diǎn)為NULL*/
?? ?}
? ? ?
? ? fclose(fp);/* 關(guān)閉文件 */
? ? return 0;?
}

void deletebook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*刪除圖書(shū)信息*/
{
?? ?system("cls");
?? ?int flag=0;
?? ?char name[100],ch[10];
?? ?Book *p,*t;
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒(méi)有記錄圖書(shū)信息!\n");
? ? ? ? system("pause");
? ? ? ? return;
? ? }
?? ?
?? ?p=head;
?? ?printf("\n\n\n");
? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ?printf("請(qǐng)輸入要?jiǎng)h除的書(shū)名;");
?? ?scanf("%s",&name);
?? ?printf("----------------------------------------------------------------------\n");
?? ?printf("書(shū)名\t\t作者名\t\t編號(hào)\t出版單位\t出版時(shí)間\t類別\t存放位置\n"); ??
?? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?? ?while(p->next)
?? ?{
?? ??? ?t=p;
?? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個(gè)結(jié)點(diǎn)*/
?? ? ? ?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("是否刪除該本圖書(shū)信息(y/n)");
?? ??? ?scanf("%s",ch);
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
?? ??? ?{
?? ??? ??? ?t->next=p->next;
?? ??? ??? ?printf("該書(shū)已刪除!\n");
?? ??? ?}
?? ??? ?else
?? ??? ? ? ?return;
?? ?}
?? ?else if(flag==0)
?? ? ? ?printf("沒(méi)找到那本書(shū)!\n");
?? ?
?? ?system("pause");
}

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

?? ?while(p->next)
?? ?{
?? ??? ?p=p->next; ? ? ? ? ? ? ? ? /*切換到下一個(gè)結(jié)點(diǎn)*/
?? ? ? ?if(strcmp(name,p->bookname)==0)
?? ? ? ?{
?? ? ? ??? ?flag=1;
?? ? ? ??? ?t=p;
?? ??? ??? ?printf("書(shū)名\t\t作者名\t\t編號(hào)\t出版單位\t出版時(shí)間\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是否修改該本圖書(shū)信息(y/n):");
?? ??? ?scanf("%s",ch);
?? ??? ?printf("\t--------------------------------------------------------------------\n");
?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0)
?? ??? ?{
?? ??? ??? ?int c;
?? ??? ??? ?printf("\t\t【1】書(shū)名\n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【2】作者\(yùn)n");
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?printf("\t\t【3】編號(hào)\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請(qǐng)輸入你要修改的內(nèi)容;");
?? ??? ??? ?scanf("%d",&c);
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ??? ?p=t;
?? ??? ??? ?switch(c)
?? ??? ??? ?{
?? ??? ??? ??? ?case 1:
?? ??? ??? ??? ? ? ?printf("\t請(qǐng)輸入書(shū)名:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->bookname);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 2:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入作者:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->writer);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 3:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入編號(hào):");
?? ??? ??? ? ? ? ? ?scanf("%s",p->classnumber);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 4:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入出版單位:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->publisher);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 5:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入出版日期:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->time);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ? ? ?case 6:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入類別:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->type);
?? ??? ??? ? ? ? ? ?break;
? ? ? ? ? ? ? ? ? ? ?case 7:
?? ??? ??? ? ? ? ? ?printf("\t請(qǐng)輸入存放位置:");
?? ??? ??? ? ? ? ? ?scanf("%s",p->place);
?? ??? ??? ? ? ? ? ?break;
?? ??? ??? ?}
?? ??? ??? ?printf("--------------------------------------------------------------------\n");
?? ??? ? ? ?printf("\t恭喜大佬修改成功!!!\n");
?? ??? ?}
?? ?}
?? ?
?? ?else if(flag==0)
?? ? ? ?printf("對(duì)不起,該書(shū)庫(kù)沒(méi)有該書(shū)\n");
?? ? ? ?system("pause");
}

void searchbook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*查詢圖書(shū)信息*/
{
?? ?system("cls");
?? ?int choose,flag=0;
?? ?Book *p;
?? ?char b[100];
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒(méi)有記錄圖書(shū)信息!\n");
? ? ? ? system("pause");
? ? ? ? return ;
? ? }
? ??
? ? do
?? ?{
?? ??? ?system("cls");
?? ??? ?printf("\n\n\n");
?? ??? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ??? ?printf("\t\t1.按書(shū)名查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?printf("\t\t2.按作者名查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t3.按編號(hào)查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t4.按出版單位查找\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
? ? ? ? printf("\t\t返回主菜單(其他數(shù)字)\n");
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?printf("\t\t請(qǐng)輸入您的選擇:");
?? ??? ?scanf("%d",&choose);
?? ??? ?printf("----------------------------------------------------------------------\n");
?? ??? ?p=head;
?? ??? ?
?? ??? ?if(choose==1)
?? ??? ?{
?? ??? ??? ?printf("輸入所查書(shū)名:");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個(gè)結(jié)點(diǎn)*/
?? ??? ??? ??? ?if(strcmp(b,p->bookname)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ? ? ?{
?? ??? ??? ??? ? ? ? flag=1;
?? ??? ??? ??? ? ? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ??? ??? ??? ??? ? printf("書(shū)名\t作者名\t編號(hào)\t出版單位\t出版時(shí)間\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)換到下一個(gè)結(jié)點(diǎn)*/
?? ??? ??? ??? ?if(strcmp(b,p->writer)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書(shū)名\t作者名\t編號(hào)\t出版單位\t出版時(shí)間\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("輸入所查編號(hào):");
?? ??? ??? ?scanf("%s",b);
?? ??? ??? ?printf("----------------------------------------------------------------------\n\n");
?? ??? ??? ?while(p->next)
?? ??? ??? ?{
?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個(gè)結(jié)點(diǎn)*/
?? ??? ??? ??? ?if(strcmp(b,p->classnumber)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書(shū)名\t作者名\t編號(hào)\t出版單位\t出版時(shí)間\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)換到下一個(gè)結(jié)點(diǎn)*/
?? ??? ??? ??? ?if(strcmp(b,p->publisher)==0) ? ? ? ? /*判斷是否找到并輸出*/
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?flag=1;
?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");
?? ? ? ? ? ? ? ? ? ?printf("書(shū)名\t作者名\t編號(hào)\t出版單位\t出版時(shí)間\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) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*顯示所有圖書(shū)信息*/ ? ? ? ? ?
{
?? ?Book *p;
?? ?system("cls");
?? ?
?? ?/* 如果表頭為空 */
? ? if(head == NULL || head->next == NULL) {
? ? ? ? printf("沒(méi)有記錄圖書(shū)信息!\n");
? ? ? ? system("pause");
? ? ? ? return 0;
? ? }
?? ?
? ? p=head->next;
? ? printf("\n\n\n");
? ? printf("**********************************************************************************\n");
? ? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖書(shū)列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \n");
? ? printf("----------------------------------------------------------------------------------\n");
?? ?printf("書(shū)名\t作者\(yùn)t編號(hào)\t出版單位\t出版時(shí)間\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)換到下一個(gè)結(jié)點(diǎn)*/
?? ?}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歡迎光臨圖書(shū)信息管理系統(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請(qǐng)選擇身份:")&&scanf("%d",&c)!=EOF)
?? ?{
?? ??? ?if(c==1)
?? ??? ?{
?? ??? ??? ?showmenu2();
?? ??? ??? ?while (printf("\t請(qǐng)輸入選擇項(xiàng)(1-3):")&&scanf("%d",&choice)!=EOF)
? ? ?? ??? ?{
?? ??? ? ? ??? ?switch (choice)
? ? ?? ??? ??? ?{
? ? ?? ??? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書(shū)信息*/
?? ??? ??? ??? ? ? ??? ?searchbook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書(shū)信息*/
? ? ?? ? ? ? ? ? ? ??? ?printfbook(head);
?? ??? ??? ? ? ??? ??? ?break;?
?? ??? ??? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/
?? ??? ??? ??? ??? ??? ?main();
?? ??? ??? ??? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 4:
?? ??? ??? ??? ??? ??? ?exit(0);?
?? ??? ??? ? ? ??? ?default:
?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯(cuò)誤!!!\n");
?? ??? ??? ??? ? ? ??? ?system("pause");
?? ??? ??? ??? ? ? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?showmenu2();
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(c==2)
?? ??? ?{
?? ??? ??? ?z=mima();
?? ??? ??? ?showmenu1();
?? ??? ??? ?while (printf("\t請(qǐng)輸入選擇項(xiàng)(1-6):")&&z==1&&scanf("%d",&choice)!=EOF)
? ? ?? ??? ?{
?? ? ? ??? ??? ?switch (choice)
? ? ?? ??? ??? ?{
?? ??? ? ? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*錄入圖書(shū)信息*/
?? ??? ??? ??? ? ? ??? ?addnewbook(&head);
?? ??? ??? ? ? ??? ??? ?break; ?
?? ??? ? ? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*刪除圖書(shū)信息*/
?? ??? ??? ? ? ??? ??? ?deletebook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ? ? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*修改圖書(shū)信息*/
?? ??? ??? ? ? ??? ??? ?modifybook(head);
?? ??? ??? ? ? ?? ??? ? ?? ?break;
?? ??? ? ? ??? ??? ?case 4: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書(shū)信息*/
?? ??? ??? ??? ? ? ??? ?searchbook(head);
?? ??? ??? ? ? ??? ??? ?break;
?? ??? ??? ??? ??? ?case 5: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書(shū)信息*/
? ? ? ? ? ? ?? ? ? ??? ?printfbook(head);
?? ??? ? ? ??? ??? ??? ?break;
?? ??? ? ? ??? ??? ?case 6: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/
?? ??? ??? ??? ??? ??? ?main();
?? ??? ??? ??? ??? ??? ?break;?
?? ??? ??? ??? ??? ?case 7: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*保存數(shù)據(jù)并退出系統(tǒng)*/
?? ??? ??? ??? ? ? ??? ?savebookdata(head);
?? ??? ??? ??? ??? ??? ?exit(0);
?? ??? ? ? ??? ??? ?default:
?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯(cuò)誤!!!\n");
?? ??? ??? ??? ? ? ??? ?system("pause");
?? ??? ??? ??? ? ? ??? ?break;
?? ??? ??? ??? ?}
?? ??? ??? ??? ?showmenu1();
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if(c==3)
?? ??? ??? ?exit(0);
?? ??? ?else
?? ??? ?{
?? ??? ??? ?printf("\t\t\t輸入錯(cuò)誤!!!\n\n");
?? ??? ?}
?? ?}
?? ?return 0;
}

運(yùn)行結(jié)果

這里提供的是管理員身份

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

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

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

相關(guān)文章

  • OpenCV?通過(guò)Mat遍歷圖像的方法匯總

    OpenCV?通過(guò)Mat遍歷圖像的方法匯總

    對(duì)圖像中的所有點(diǎn)或特殊點(diǎn)進(jìn)行運(yùn)算,所以遍歷圖像就顯得很重要,如何高效的遍歷圖像是一個(gè)很值得探討的問(wèn)題,本文給大家?guī)?lái)了多種方法操作OpenCV?通過(guò)Mat遍歷圖像,感興趣的朋友一起看看吧
    2022-02-02
  • c++實(shí)現(xiàn)高精度加法

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

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

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

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

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

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

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

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

    C++寫Linux框架示例解析

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

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

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

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

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

    C++使用tinyxml庫(kù)處理XML文件

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

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

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

最新評(píng)論