C言語課程設計-図書管理システム

14988 ワード

実訓プロジェクト名:図書管理システムの設計と実現
1.実習の目的
図書情報の登録、閲覧、貸し出し、返却、削除、更新などの操作を実現できる小型の図書管理アプリケーションを開発した.このシステムの実現により,C++接続データベースの原理と技術を理解し,VCインタフェースの設計方法を把握できる.
2.実習要求
(1)適切なプログラム開発言語(CまたはC++)とデータベースシステムを選択し,実習内容を完了する.
(2)プログラムは正常に動作し、演算結果が正確で、設計要求を満たす.
3.機能説明
この図書管理システムは主に以下の基本機能を含む.
(1)図書基本情報:書号ISBN,書名,出版社,出版日,著者,価格など.
(2)図書カテゴリ情報:科学技術、言語文学、政治経済、歴史地理、イデオロギー、芸術などのカテゴリに分けられ、各カテゴリには異なるカテゴリコードがある.
(3)図書販売情報:図書販売日、販売価格、販売数量.
4.全体設計
 
図書管理システムは主に図に示すように、図書情報、貸し出しシステム、および終了システムから構成される.各モジュールの機能は以下の通りです.
1.メニューインタフェースを作成します.アクセス機能にはメニューを開き、ユーザーがメニューに基づいて適切な操作方法を選択する必要があります.
 
「図書情報」モジュールは図書に対する操作を含み、図書の増加、図書の削除及び図書の照会、在庫閲覧などの機能を含み、「図書の増加」機能には順次書号、書名、著者、出版社、カテゴリ、入庫量、単価を入力する必要があり、「図書照会」機能は書名、書号、著者、図書分類によって照会する.いずれかの条件を入力すればクエリーできます.
2.「図書貸し出し」モジュールは借入書登録、返却書登録と貸し出し状況モジュールから構成され、「借入書登録」では管理者が借入した図書を登録し、証明書番号、氏名、返却日、借入書書名を登録する必要があり、図書庫では
この本の在庫は減少し、読者は図書を返却する図書庫にこの本の在庫が増加した.図書管理貸し出しシステムは図書管理者の日常の管理業務、すなわち図書貸し出し、返却などの登録業務に相当する.
 
3.システムを終了します.
5.プログラム実装及び関連説明

struct library { //      
	int xcl;//  

	float price;//  

	char name[20],author[20],chuban[20],kind[20],shuhao[20];

	struct library *next;

};

struct reader { //     

	int zhenghao;

	char mingzi[20],riqi[20],zname[20];

	struct reader *next;

};

void mainmenu()//   

{
	system ("cls");

	printf("**************************************************");

	printf("

1.

"); printf("

2.

"); printf("

3.

"); printf("


"); printf("*************************************************
"); return ; } void menu1() // { system ("cls"); printf("****************************************************"); printf("
1.

"); printf("
2.

"); printf("
3.

"); printf("
4.

"); printf("
5.

"); printf("

"); printf("***************************************************
"); return ; } void menu2() // { system ("cls"); printf(" , , :
"); printf(" ( )

"); return ; } void main1()//main1 { void tsgxx();// void jieshuxitong();// char choose; mainmenu(); scanf("%c",&choose); switch(choose)// { case '1': ????tsgxx(); break; case '2': ????jieshuxitong(); break; case '3': ????system ("cls"); getch(); exit(0); system ("cls"); break; } } void tsgxx()// { void tsjinku(); void shanchu(); void chaxunts(); void xianshikucun();// char choose; menu1(); scanf("%c",&choose); scanf("%c",&choose); for (;;) switch(choose) { case '1': ????tsjinku(); ????break; case '2': ????shanchu(); ????break; case '3': ????chaxunts(); ????break; case '4': ????xianshikucun(); ????break; case '5': ????main1(); ????break; } } int tjzs()// { FILE *fp; int txcl=0,n; float tprice=0; char tname[20]= {'\0'},tauthor[20]= {'\0'},tchuban[20]= {'\0'},tkind[20]= {'\0'},tshuhao[20]= {'\0'}; fp=fopen("library.txt","r");// for (n=0; !feof(fp); n++) // fscanf(fp,"%s%s%s%s%s%d%f",tshuhao,tname,tauthor,tchuban,tkind,&txcl,&tprice); n--; fclose(fp);// return (n);// } int tjdzzs()// { FILE *fp; int zhenghao=0,n; char mingzi[20]= {'\0'},riqi[20]= {'\0'},zname[20]= {'\0'}; fp=fopen("reader.txt","r");// for (n=0; !feof(fp); n++) // fscanf(fp,"%d%s%s%s ",&zhenghao,&mingzi,&riqi,&zname); fclose(fp);// return (n);// } void tsjinku()// { FILE *fp; int xcl=0,n=0; float price=0; char name[20]= {'\0'},author[20]= {'\0'},kind[20]= {'\0'},chuban[20]= {'\0'},shuhao[20]= {'\0'}; char hitkey; system ("cls"); if ((fp=fopen("library.txt","r"))==NULL)// , { fp=fopen("library.txt","w"); fclose(fp); } fp=fopen("library.txt","a"); printf("
:
"); printf("
( ( ))
"); for (; hitkey!=27;) // { if (n!=0) printf(" :"); scanf("%s%s%s%s%s%d%f",shuhao,name,author,chuban,kind,&xcl,&price); fprintf(fp,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f
",shuhao,name,author,chuban,kind,xcl,price); printf(" , Esc
"); n++; hitkey=getch(); for (; hitkey!=13&&hitkey!=27;) hitkey=getch(); } fclose(fp); printf("
, !"); getch(); tsgxx();// } void shanchu()// { struct library *head=NULL; struct library *p,*p1,*p2; int txcl=0,n=0,j,i; float tprice=0; char tname[20]= {'\0'},tauthor[20]= {'\0'},tchuban[20]= {'\0'},tkind[20]= {'\0'},ttname[20]= {'\0'},tshuhao[20]= {'\0'}; char hitkey; FILE *fp; if ((fp=fopen("library.txt","r"))==NULL)// { system ("cls"); printf("
! "); getch(); tsgxx(); } else { system ("cls"); printf("
:");// scanf("%s",&ttname); printf("
, Esc
"); hitkey=getch(); for(; hitkey!=13&&hitkey!=27;) hitkey=getch(); if (hitkey==27) tsgxx(); fp=fopen("library.txt","r"); for (j=0; !feof(fp);) // , { j++; fscanf(fp,"%s%s%s%s%s%d%f",tshuhao,tname,tauthor,tchuban,tkind,&txcl,&tprice); } fclose(fp); fp=fopen("library.txt","r"); for (i=1; inext=p1; p2=p1; p1=(struct library*)malloc(LEN);// } strcpy(p1->shuhao,tshuhao);// strcpy(p1->name,tname);// strcpy(p1->author,tauthor);// strcpy(p1->chuban,tchuban);// strcpy(p1->kind,tkind);// p1->xcl=txcl;// p1->price=tprice;// } } if (n==0) { head=NULL; } else { p2->next=p1; p1->next=NULL; fclose(fp); } } fp=fopen("library.txt","w");// fclose(fp); fp=fopen("library.txt","a");// p=head; for (; p!=NULL;) // { fprintf(fp,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f
",p->shuhao,p->name,p->author,p->chuban,p->kind,p->xcl,p->price); p=p->next; } fclose(fp);// system ("cls"); printf("


"); getch();// tsgxx(); } void chaxunts()// { FILE *fp; char choose; int txcl=0,n=0,k=0,i,l; float tprice=0; char tname[20]= {'\0'},tauthor[20]= {'\0'},chazhao[20]= {'\0'},tchuban[20]= {'\0'}, tshuhao[20]= {'\0'},tkind[20]= {'\0'}; if ((fp=fopen("library.txt","r"))==NULL)// { system ("cls"); printf("
! "); getch(); tsgxx(); } l=tjzs();// menu2();// scanf("%s",chazhao); system ("cls"); for (i=0; inext=p1; p2=p1; p1=(struct library*)malloc(LEN);// } strcpy(p1->shuhao,tshuhao);// strcpy(p1->name,tname);// strcpy(p1->author,tauthor);// strcpy(p1->chuban,tchuban);// strcpy(p1->kind,tkind);// p1->xcl=txcl;// p1->price=tprice;// } if (n==0) head=NULL; else { p2->next=p1; p1->next=NULL; fclose(fp); } } } p=head; for (; p!=NULL;) // { if(!(strcmp(p->name,zname)))// { flag=1;// 1 loop=p->xcl;// 1 (p->xcl)--; } p=p->next; } if(flag&&(loop>0))// 0 { fp=fopen("library.txt","w"); fclose(fp); fp=fopen("library.txt","a"); p=head; for (; p!=NULL;) { fprintf(fp,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f
",p->shuhao,p->name,p->author,p->chuban,p->kind,p->xcl,p->price); p=p->next; } free(p);// fclose(fp); } if(flag&&(loop>0))// 0 {{ if ((fp3=fopen("reader.txt","r"))==NULL)// { fp3=fopen("reader.txt","w");// fclose(fp3); } fp3=fopen("reader.txt","a");// } {{ if (n!=0) printf("
:

:");// scanf("%d %s %s %s",&zhenghao,&mingzi[20],&riqi[20],&zname[20]); fprintf(fp3,"
%-8d%-23s%-18s%-10s
",zhenghao,&mingzi[20],&riqi[20],&zname[20]); fp=fopen("library.txt","w");// fclose(fp); fp=fopen("library.txt","a");// p=head; for (; p!=NULL;) // { fprintf(fp,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f
",p->shuhao,p->name,p->author,p->chuban,p->kind,p->xcl,p->price); p=p->next; } fclose(fp); fclose(fp3); printf(" !
"); getch();// jieshuxitong();// } } jieshuxitong();// } else printf(" ! !");// getch();// jieshuxitong();// } } void huanshu()// { FILE *fp,*fp3; struct reader *head=NULL; struct reader *p,*p1,*p2; struct library *lhead1=NULL; struct library *zp1,*lp1,*lp2; int txcl=0,i; float tprice=0; char?tname[20]= {'\0'},tauthor[20]= {'\0'},tkind[20]= {'\0'}, tchuban[20]= {'\0'},ttname[20]= {'\0'},tshuhao[20]= {'\0'}; int ttzhenghao=0,tzhenghao=0,n=0,k=0,t=0,flag=0; char tmingzi[20]= {'\0'},triqi[20]= {'\0'},tzname[20]= {'\0'},ttzname[20]= {'\0'}; char hitkey=0; system ("cls"); { if ((fp=fopen("reader.txt","r"))==NULL)// , { system ("cls"); printf("
! !"); getch(); exit (0); } else {{ printf("
:
:"); scanf("%d %s",&ttzhenghao,ttzname);// k=tjdzzs();// for (i=0; inext=p1; p2=p1; p1=(struct reader*)malloc(LEN1);// } p1->zhenghao=tzhenghao;// strcpy(p1->mingzi,tmingzi);// strcpy(p1->riqi,triqi);// strcpy(p1->zname,tzname);// } } if (n==0) head=NULL; else { p2->next=p1; p1->next=NULL; fclose(fp); } fp=fopen("reader.txt","w");// fclose(fp); fp=fopen("reader.txt","a");// p=head; for (; p!=NULL;) // { fprintf(fp,"
%-8d%-23s%-18s%-10s
",p->zhenghao,p->mingzi,p->riqi,p->zname); p=p->next; } free(p); fclose(fp); } } } } if(flag)// 1, {{ { printf(" !"); for (; hitkey!=13&&hitkey!=27;) hitkey=getch(); if (hitkey==13) printf(" ! !"); n=0; flag=0; fp3=fopen("library.txt","r");// k=tjzs();// for (i=0; inext=lp1; lp2=lp1; lp1=(struct library*)malloc(LEN);// } strcpy(lp1->shuhao,tshuhao);// strcpy(lp1->name,tname);// strcpy(lp1->author,tauthor);// strcpy(lp1->chuban,tchuban);// strcpy(lp1->kind,tkind);// lp1->xcl=txcl; // lp1->price=tprice;// } if (n==0) { lhead1=NULL; } else { lp2->next=lp1; lp1->next=NULL; fclose(fp3); } } } zp1=lhead1; for (; zp1!=NULL;) { if(!(strcmp(zp1->name,ttzname)))// ++(zp1->xcl);// 1 zp1=zp1->next; } fp3=fopen("library.txt","w");// fclose(fp); fp3=fopen("library.txt","a");// zp1=lhead1; for (; zp1!=NULL;) // { fprintf(fp3,"%-8s%-9s%-14s%-16s%-18s%-7d%-8.2f
", ????????zp1->shuhao,zp1->name,zp1->author,zp1->chuban,zp1->kind,zp1->xcl,zp1->price); zp1=zp1->next; } fclose(fp3); getch();// jieshuxitong();// } else printf(" ! !"); getch();// jieshuxitong();// } void duzheyilang()// { FILE *fp; int zhenghao=0,xcl=0,n=0,i=0,j=0; char mingzi[20]= {'\0'},riqi[20]= {'\0'},zname[20]= {'\0'}; if ((fp=fopen("reader.txt","r"))==NULL)// { system ("cls"); printf("
!"); } n=tjdzzs(); if (n==0) { system ("cls"); printf("
!"); } fp=fopen("reader.txt","r"); system ("cls"); printf("
\t \t\t \t
"); for (i=0; i

必要なものがあれば行ってもいいhttps://download.csdn.net/download/chaokudeztt/11244824ソースコードをダウンロードして、C言語課程は図書管理システムを設計します.