當前位置:
首頁 >
大一写的C课程设计(图书馆管理系统)
發布時間:2025/3/20
52
豆豆
生活随笔
收集整理的這篇文章主要介紹了
大一写的C课程设计(图书馆管理系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、功能簡要介紹
二、效果圖
三、代碼
注意:須將測試文件“text.txt"與cpp文件放在同一目錄下;文件內的內容格式不要隨意修改。
#include <iostream> #include <algorithm> #include <cstring> #include <cctype>//字符分類函數 #include <cstdlib> #include <cstdio> #include <fstream> using namespace std; typedef long long ll; ll n,i;struct Library {char name[50];char publish[50];ll ISBN;char author[50];ll amount;char price[20]; }book[2000];bool cmp1(Library a,Library b) {return strcmp(a.price,b.price)>0; }bool cmp2(Library a,Library b) {return a.amount>b.amount; }bool cmp3(Library a,Library b) {return strcmp(a.author,b.author)>0; }bool cmp4(Library a,Library b) {return strcmp(a.publish,b.publish)>0; }void read()//讀取文件內容{memset(book,0,2000);FILE *fp;ll k=0;fp=fopen("text.txt","r");while(!feof(fp)){fscanf(fp,"%lld %s %s %s %s %lld\n",&book[k].ISBN,&book[k].name,&book[k].author,&book[k].publish,&book[k].price,&book[k].amount);cout<<"\t-----------------------------------------------------------------------------------------------\t"<<endl;cout<<"\tISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name<<" |作者:"<<book[k].author;cout<<" |出版社:"<<book[k].publish<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<"\t"<<endl;k++;}cout<<"\t-----------------------------------------------------------------------------------------------\t"<<endl;i=k;n=k; }void menu()//菜單 {system("cls");system("color 2f");cout<<endl;cout<<" \t +-------------------------------------歡迎進入圖書管理系統V2-------------------------------+"<<endl;cout<<" \t | |"<<endl;cout<<" \t +-----------------------------------------------By Kant && https://blog.csdn.net/KK_2018---+"<<endl;cout<<" \t * *"<<endl;cout<<" \t *\t\t\t\t 按1,圖書銷售系統 *"<<endl;cout<<" \t *\t\t\t\t *"<<endl;cout<<" \t *\t\t\t\t 按2,圖書管理系統 *"<<endl;cout<<" \t *\t\t\t\t *"<<endl;cout<<" \t *\t\t\t\t 按3,圖書信息統計 *"<<endl;cout<<" \t *\t\t\t\t *"<<endl;cout<<" \t *\t\t\t\t 按0,退出系統 *"<<endl;cout<<" \t --------------------------------------------------------------------------------------------"<<endl<<endl;cout<<" \t ==================================目前已存在的信息如下表所示================================="<<endl<<endl;read();cout<<"\t\t請選擇(0-3):"; }void sell()//銷售系統 {ll newISBN,t,k;cout<<"請輸入購買圖書的ISBN號:";cin>>newISBN;for(k=0;k<n;k++){if(book[k].ISBN==newISBN){cout<<"查詢到的結果如下所示"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" 書名:"<<book[k].name;cout<<" 作者:"<<book[k].author<<" 出版社:"<<book[k].publish;cout<<" 該圖書數量為:"<<book[k].amount<<"本,";cout<<" 單價為:"<<book[k].price<<"元。"<<endl;break;}}if(k==n) cout<<"查無此書,請重新輸入ISBN號!"<<endl;else{cout<<"請輸入購買數量:";cin>>t;book[k].amount-=t;cout<<"購買成功,該圖書現剩余"<<book[k].amount<<"本"<<endl;FILE *fp;fp=fopen("text.txt","w");for(int t=0;t<n;t++){fprintf(fp,"%lld %s %s %s %s %lld\n",book[t].ISBN,book[t].name,book[t].author,book[t].publish,book[t].price,book[t].amount);}fclose(fp);} }void add()//添加 {ll a,k,q,t,m;cout<<"請輸入要添加圖書的種類數量:";cin>>t;q=1;for(k=i;k<i+t;k++){a=0;m=0;cout<<"請輸入第"<<q++<<"種圖書的ISBN號:";cin>>book[k].ISBN;if(k!=i){for(ll m=0;m<k;m++){if(book[k].ISBN==book[m].ISBN){cout<<"您已經添加過該圖書了,請重新輸入ISBN編號!"<<endl;a=1;k-=1;break;}}}if(a==1) continue;cout<<"請輸入書名:";cin>>book[k].name;cout<<"請輸入作者:";cin>>book[k].author;cout<<"請輸入出版社:";cin>>book[k].publish;cout<<"請輸入價格:";loop:cin>>book[k].price;for(int j=0;j<strlen(book[k].price);j++)//若輸入的不是數字則給出提示并重新輸入{if(isdigit(book[k].price[j]))continue;else{cout<<"輸入格式錯誤!"<<endl;m=100;break;}}if(m==100){cout<<"請重新輸入價格:";m=0;goto loop;}cout<<"請輸入要添加該種圖書的數量:";cin>>book[k].amount;}n+=t;cout<<"添加完畢!"<<endl;FILE *fp;fp=fopen("text.txt","w");if(fp==NULL){cout<<"文件打開失敗!"<<endl;exit(0);}else{for(k=0;k<i+t;k++)fprintf(fp,"%lld %s %s %s %s %lld\n",book[k].ISBN,book[k].name,book[k].author,book[k].publish,book[k].price,book[k].amount);fclose(fp);}}void inquiry()//查詢 {int j;ll k;char newname[50];char newauthor[50];char newpublish[50];char st[5];ll newISBN;do{system("cls");system("color 5e");cout<<"\t\t\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按1--按書名查詢 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按2--按出版社查詢 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按3--按作者查詢 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按4--按ISBN號查詢 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\t\t\t\t\t"<<endl;cout<<"請選擇 1-4:";cin>>j;if(j==1){cout<<"請輸入書名:";cin>>newname;for(k=0;k<n;k++){if(strcmp(book[k].name,newname)==0){cout<<"查詢到的結果為如下所示#"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<endl;break;}}if(k==n) cout<<"查無此書!"<<endl;}else if(j==2){cout<<"請輸入出版社:";cin>>newpublish;for(k=0;k<n;k++){if(strcmp(book[k].publish,newpublish)==0){cout<<"查詢到的結果為如下所示#"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<endl;break;}}if(k==n) cout<<"查無此書!"<<endl;}else if(j==3){cout<<"請輸入作者:";cin>>newauthor;for(k=0;k<n;k++){if(strcmp(book[k].author,newauthor)==0){cout<<"查詢到的結果為如下所示#"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<endl;break;}}if(k==n) cout<<"查無此書!"<<endl;}else if(j==4){cout<<"請輸入ISBN號:";cin>>newISBN;for(k=0;k<n;k++){if(book[k].ISBN==newISBN){cout<<"查詢到的結果為如下所示#"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<endl;break;}}if(k==n) cout<<"查無此書!"<<endl;}else cout<<"請輸入1-4的數字!"<<endl;cout<<"是否繼續查詢?是YES,否NO。請輸入:";cin>>st;}while(strcmp(st,"YES")==0);cout<<"查詢完畢,返回管理系統"<<endl; }void rewrite()//修改 {ll newISBN,k,t,m;char s[4];char st[4];do{m=0;memset(s,0,4);memset(st,0,4);cout<<"請輸入要修改信息的圖書的ISBN號:";cin>>newISBN;for(k=0;k<n;k++){if(book[k].ISBN==newISBN){cout<<"查詢到的結果如下"<<endl;break;}}if(k==n){cout<<"查無此書!請重新查詢!"<<endl;continue;}else{cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<"|"<<endl;}cout<<"是否修改書名?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){cout<<"請輸入更改后的書名:";cin>>book[k].name;}memset(st,0,4);cout<<"是否修改作者?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){cout<<"請輸入更改后的作者:";cin>>book[k].author;}memset(st,0,4);cout<<"是否修改出版社?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){cout<<"請輸入更改后的出版社:";cin>>book[k].publish;}memset(st,0,4);cout<<"是否修改數量?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){cout<<"請輸入更改后的數量:";cin>>book[k].amount;}memset(st,0,4);cout<<"是否修改價格?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){cout<<"請輸入修改后的價格:";loop:cin>>book[k].price;for(int j=0;j<strlen(book[k].price);j++)//若輸入的不是數字則給出提示并重新輸入{if(isdigit(book[k].price[j]))continue;else{cout<<"輸入格式錯誤!"<<endl;m=100;break;}}if(m==100){cout<<"請重新輸入價格:";m=0;goto loop;}}cout<<"修改完畢!更改過的信息如下"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<"|"<<endl;cout<<"是否繼續修改信息?YES or NO"<<endl;cin>>s;}while(strcmp(s,"YES")==0);FILE *fp;fp=fopen("text.txt","w");for(int t=0;t<n;t++){fprintf(fp,"%lld %s %s %s %s %lld\n",book[t].ISBN,book[t].name,book[t].author,book[t].publish,book[t].price,book[t].amount);}fclose(fp); }void delect()//刪除 {ll newISBN,k,m,t;char s[4];char st[4];do{memset(s,0,4);memset(st,0,4);cout<<"請輸入要刪除圖書的ISBN號:";cin>>newISBN;for(k=0;k<n;k++){if(book[k].ISBN==newISBN){cout<<"查詢到的結果如下^-^"<<endl;cout<<"ISBN號:"<<book[k].ISBN<<" |書名:"<<book[k].name;cout<<" |作者:"<<book[k].author<<" |出版社:"<<book[k].publish;cout<<" |價格:"<<book[k].price<<" |數量:"<<book[k].amount<<"|"<<endl;break;}}if(k==n) cout<<"該編號不存在!"<<endl;cout<<"確定要刪除該圖書信息嗎?是YES,否NO"<<endl;cin>>st;if(strcmp(st,"YES")==0){for(m=k;m<n-1;m++){book[m]=book[m+1];}n--;}cout<<"該圖書信息已經成功被您刪除!"<<endl;cout<<"是否繼續執行下一次的刪除功能?YES or NO"<<endl;cin>>s;}while(strcmp(s,"YES")==0);FILE *fp;fp=fopen("text.txt","w");for(int t=0;t<n;t++){fprintf(fp,"%lld %s %s %s %s %lld\n",book[t].ISBN,book[t].name,book[t].author,book[t].publish,book[t].price,book[t].amount);}fclose(fp); }void manage()//管理系統 {int m,j;do{j=1;system("cls");system("color B0");cout<<"\t\t\t\t\t+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按1--添加圖書信息 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按2--查詢信息 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按3--修改圖書信息 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按4--刪除圖書信息 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t| 按0--返回主菜單 |\t\t\t\t\t"<<endl;cout<<"\t\t\t\t\t=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+\t\t\t\t\t"<<endl;cout<<"請選擇 0-4:";cin>>m;switch(m){case 1:add();break;case 2:inquiry();break;case 3:rewrite();break;case 4:delect();;break;case 0:j=0;break;default:cout<<"請輸入0-4的數字"<<endl;}if(j!=0) cout<<"按任意鍵繼續!"<<endl;}while(j!=0); }void count()//統計系統 {int a;ll k;cout<<"\t\t---------歡迎進入圖書信息統計系統---------\t\t"<<endl;cout<<"\t\t按1,按照價格統計\t\t"<<endl;cout<<"\t\t按2,按照庫存量統計\t\t"<<endl;cout<<"\t\t按3,按照作者統計\t\t"<<endl;cout<<"\t\t按4,按照出版社統計\t\t"<<endl;cout<<"\t\t請輸入:";cin>>a;if(a==1){sort(book,book+n,cmp1);for(k=0;k<n;k++){cout<<"價格:"<<book[k].price<<" 書名:"<<book[k].name;cout<<" 作者:"<<book[k].author<<" 出版社:"<<book[k].publish;cout<<" 庫存量:"<<book[k].amount<<endl;}}else if(a==2){sort(book,book+n,cmp2);for(k=0;k<n;k++){cout<<" 庫存量:"<<book[k].amount<<" 書名:"<<book[k].name;cout<<" 作者:"<<book[k].author<<" 出版社:"<<book[k].publish;cout<<" 價格:"<<book[k].price<<endl;}}else if(a==3){sort(book,book+n,cmp3);for(k=0;k<n;k++){cout<<" 作者:"<<book[k].author<<" 書名:"<<book[k].name;cout<<" 出版社:"<<book[k].publish<<" 庫存量:"<<book[k].amount;cout<<" 價格:"<<book[k].price<<endl;}}else if(a==4){sort(book,book+n,cmp4);for(k=0;k<n;k++){cout<<" 出版社:"<<book[k].publish<<" 書名:"<<book[k].name;cout<<" ISBN號:"<<book[k].ISBN<<" 庫存量:"<<book[k].amount;cout<<" 價格:"<<book[k].price<<endl;}}else cout<<"請輸入1-4的數字!"<<endl; }int main()//主函數 {n=i=0;void manage();//管理系統void sell();//銷售系統void count();//統計系統void menu();//菜單void add();//添加void inquiry();//查詢void rewrite();//修改void delect();//刪除void read();//讀取文件int choice,quit;while(1){quit=0;menu();//菜單//read();cin>>choice;switch(choice){case 1:sell();break;case 2:manage();break;case 3:count();break;case 0:quit=1;break;default:cout<<"請輸入0-3的數字!"<<endl;}if(quit==1) break;printf("按任意鍵返回主菜單!\n");getchar();getchar();}printf("程序結束!\n");return 0; }四、文件名text.txt
1234567890001 離散數學1 小康 非洲出版社 15 39
1234567890002 離散數學2 小劉 亞洲出版社 19 50
1234567890004 離散數學4 小樂 歐洲出版社 20 60
1234567890005 離散數學5 小明 神洲出版社 18 65
1234567890006 離散數學6 老張 鄭州出版社 99 70
1234567890007 離散數學7 老李 焦作出版社 80 75
1234567890008 離散數學8 老王 河南出版社 50 80
1234567890009 離散數學9 老郭 黃河出版社 45 85
完。
總結
以上是生活随笔為你收集整理的大一写的C课程设计(图书馆管理系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTTP14种常见状态码详解——来自《h
- 下一篇: 获得系统当前时间的字符串格式