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