c语言程序设计--图书管理系统
生活随笔
收集整理的這篇文章主要介紹了
c语言程序设计--图书管理系统
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這個(gè)原本是c語言程序設(shè)計(jì)書里面的習(xí)題,老師布置的作業(yè),既然寫好了,就在網(wǎng)上分享下,相信肯定有很多和我一樣使用的是這本教材,大家可以借鑒下答案,在dev c++上運(yùn)行是沒有任何錯(cuò)誤的。文末已經(jīng)貼了源碼,還有什么不了解的可以在評(píng)論里講下!!!
輸入1添加數(shù)據(jù)
輸入2
輸入3 查詢
輸入4
再輸入2,查看改變后的數(shù)據(jù)
輸入5(注意此程序只能從后面刪除,切不可刪前面的id,否則就是復(fù)制后面的數(shù)據(jù))
輸入6(借書)
可看到存數(shù)減一
輸入7歸還圖書
至此整個(gè)功能介紹完畢,輸入8退出系統(tǒng)
下面貼出源代碼
#include<stdio.h> //預(yù)處理 #include<string.h> #include<stdlib.h> #include<conio.h>//定義結(jié)構(gòu)體 struct book {int id;char name[31];char author[27];char publish[31];int store;int total;int user[10];int days[10]; }books[100];//顯示整體標(biāo)題標(biāo)題函數(shù) void page_title(char *menu_item) {printf("\t\t********歡迎大家使用阜陽師范大學(xué)圖書館管理系統(tǒng)********\n\n-%s-\n\n",menu_item);} //等待返回函數(shù) void return_confirm() {printf("\n請(qǐng)按任意鍵返回……\n");getch(); } book_add() {int i;system("cls"); //清屏 page_title("注冊(cè)新書"); for(i=0;i<2;i++){printf("序號(hào):");scanf("%d",&books[i].id);printf("書名:");scanf("%s",&books[i].name); printf("作者:");scanf("%s",&books[i].author); printf("出版社:");scanf("%s",&books[i].publish); printf("數(shù)量:");scanf("%d",&books[i].total);books[i].store=books[i].total;printf("\n"); } }book_show() {int i,flag=0;system("cls");for(i=0;i<100;i++){ if(strlen(books[i].publish)!=0){printf("序號(hào):%d\t ",books[i].id);printf("書名:%s\t ",books[i].name);printf("作者:%s\t ",books[i].author);printf("出版社:%s\t ",books[i].publish);printf("存數(shù):%d\t",books[i].store);printf("總數(shù):%d\n\n",books[i].total);flag=1;} } if(flag==0){printf("沒有找到相關(guān)書籍\n");}getch();return i; }int book_search() {int n,i,flag=0;char nam[30];system("cls");printf("請(qǐng)輸入書名:");scanf("%s",&nam);for(i=0;i<100;i++){if(strcmp(books[i].name,nam)==0){printf("序號(hào):%d\t ",books[i].id);printf("書名:%s\t ",books[i].name);printf("作者:%s\t ",books[i].author);printf("出版社:%s\t ",books[i].publish);printf("存數(shù):%d\t",books[i].store);printf("總數(shù):%d\n",books[i].total);n=i;flag=1;getch();break;} } if(flag==0){printf("\n沒有找到相關(guān)書籍\n");getch();return -1;}return n; }book_edit() {int i,id_change;system("cls");page_title("修改圖書信息:");printf("輸入要修改的圖書id:");scanf("%d",&id_change);for(i=0;i<100;i++){if(books[i].id==id_change){printf("修改書名:");scanf("%s",&books[i].name); printf("修改作者:");scanf("%s",&books[i].author); printf("修改出版社:");scanf("%s",&books[i].publish); printf("修改數(shù)量:");scanf("%d",&books[i].total);printf("修改圖書信息成功\n");books[i].store=books[i].total;return i; } } printf("\n沒有找到相關(guān)信息\n");getch();return -1; }int book_del() {int i,num,j;system("cls");page_title("刪除圖書");printf("輸入所要?jiǎng)h除的書的id:");scanf("%d",&num);for(i=0;i<100;i++){if(books[i].id==num){for(j=i;j<100;j++){books[j].id=books[j+1].id;strcpy(books[j].name,books[j+1].name);strcpy(books[j].publish,books[j+1].publish);printf("該書已經(jīng)刪除了!!!\n");getch();return i;}} } printf("未找到相關(guān)記錄\n");getch();return -1; }//借書 book_out() {int n,s,i,d;system("cls");page_title("借閱圖書");n=book_search();if(n!=-1&&books[n].store>0){//賦初值,全為零 for(i=0;i<10;i++){books[n].user[i]=0;books[n].days[i]=0;} printf("借書證序號(hào):");scanf("%d",&s);printf("輸入可借天數(shù):");scanf("%d",&d); books[n].user[0]=s;books[n].days[0]=d; books[n].store--; // 書上這有何意義 // for(i=0;i<10;i++) // { // if(books[n].user[i]==0) // { // books[n].user[i]=0; // books[n].days[i]=0; // break; // } // books[n].store--; // } }else if(n!=-1&&books[n].store==0){printf("此書已經(jīng)完全借完\n\n");getch();}else;return_confirm(); }//歸還圖書 void book_in() {int n,s,i;page_title("歸還圖書");n=book_search();printf("%d",n);if(n!=-1&&books[n].store<books[n].total){printf("借閱圖書證列表\n");for(i=0;i<10;i++){if(books[n].user!=0){printf("[%d]--%d天\n",books[n].user[i],books[n].days[i]);}printf("輸入借書證號(hào):");scanf("%d",&s);for(i=0;i<10;i++){if(books[n].user[i]==s){books[n].store++;}}} }if(n!=-1&&books[n].store==books[n].total){printf("全部歸還\n");}else if(n!=-1&&books[n].store<books[n].total){printf("歸還成功\n");}else ;return_confirm();} main() {menu:page_title("操作選單");printf("用數(shù)字選擇操作\n\n");printf("\t\t1注冊(cè)新書\t\t2顯示圖書\n");printf("\t\t3查詢圖書信息\t\t4修改圖書信息\n");printf("\t\t5刪除圖書\t\t6借閱圖書\n");printf("\t\t7歸還圖書\t\t8退出系統(tǒng)\n");printf("請(qǐng)按數(shù)字鍵:\n");switch(getchar()){case'1': book_add();break;case'2': book_show();break;case'3': book_search();break;case'4': book_edit();break;case'5': book_del();break;case'6': book_out();break;case'7': book_in();break;case'8': exit(0);} goto menu;}代碼與書上不一樣的點(diǎn):
書上的struct結(jié)構(gòu)體錯(cuò)誤,未在后面添加數(shù)組
借書里面有一段都等于0看不懂
這個(gè)項(xiàng)目主要訓(xùn)練了我調(diào)試項(xiàng)目的能力,受教了
帶有多名學(xué)生的動(dòng)態(tài)鏈表
#include<stdio.h> #include<stdlib.h> #define LEN sizeof(struct Student)struct Student {long num;int score;struct Student *next; };int n;struct Student *creat() {struct Student *head;struct Student *p1,*p2;n=0;printf("請(qǐng)輸入學(xué)號(hào)和成績(jī)以逗號(hào)隔開:\n");printf("結(jié)束請(qǐng)按911+回車鍵:\n");printf("第1個(gè)學(xué)生學(xué)號(hào)和成績(jī):\n");p1=p2=(struct Student *)malloc(LEN);scanf("%d,%d",&p1->num,&p1->score);head=NULL;while(p1->num!=911){n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(struct Student *)malloc(LEN);printf("第%d個(gè)學(xué)生學(xué)號(hào)和成績(jī):\n",n+1);scanf("%ld,%d",&p1->num,&p1->score);}p2->next=NULL;return head; }struct Student *del(struct Student *head) {struct Student *p1,*p2;long n;printf("輸入刪除的學(xué)號(hào):");scanf("%ld",&n);p1=head;if(p1->num==n)head=p1->next;else{do{p2=p1;p1=p1->next;} while(p1!=NULL&&p1->num!=n);if(p1->num==n)p2->next=p1->next;elseprintf("沒找到\n");}free(p1);return(head); }void print(struct Student *head) {struct Student *p;p=head;n=0;if(head!=NULL)do{n=n+1;printf("第%d個(gè)學(xué)生的學(xué)號(hào):%ld,成績(jī):%d\n",n,p->num,p->score);p=p->next;}while(p!=NULL); }int main() {struct Student *pHead;pHead=creat();print(pHead);pHead=del(pHead);print(pHead);return 0; }總結(jié)
以上是生活随笔為你收集整理的c语言程序设计--图书管理系统的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 许昌工业用电收费标准?
- 下一篇: 聊天系统