C语言图书馆管理系统课程设计Word文档下载推荐.docx

上传人:b****6 文档编号:16634877 上传时间:2022-11-25 格式:DOCX 页数:20 大小:126.21KB
下载 相关 举报
C语言图书馆管理系统课程设计Word文档下载推荐.docx_第1页
第1页 / 共20页
C语言图书馆管理系统课程设计Word文档下载推荐.docx_第2页
第2页 / 共20页
C语言图书馆管理系统课程设计Word文档下载推荐.docx_第3页
第3页 / 共20页
C语言图书馆管理系统课程设计Word文档下载推荐.docx_第4页
第4页 / 共20页
C语言图书馆管理系统课程设计Word文档下载推荐.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

C语言图书馆管理系统课程设计Word文档下载推荐.docx

《C语言图书馆管理系统课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言图书馆管理系统课程设计Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。

C语言图书馆管理系统课程设计Word文档下载推荐.docx

if((fp=fopen("

"

r+"

))==NULL)

{

printf("

无法打开文件!

\n"

);

return;

}

2.程序构造

add()

通过此函数将输入的书本信息添加存储进"

文件中,用于下一次的查询或删、改、统操作的调用。

del()

通过此函数完成对"

文件中书本信息的删除,“printf("

确定要删除该书吗?

(y/n)\n"

”键盘输入y/n确定书本信息的删除,删除后将不再有该书记录

modify()

通过此函数完成对书本信息的修改,修改内容包括:

ISBN、书名、作者名、图书类别、出版单位、出版时间、价格、数量。

search()

此函数为查询书本信息操作,可查询"

文件中存储的书本信息。

count()

此操作为统计操作,用于统计"

文件中存储书本的总数量及金额数。

main()

通过对上述函数的调用,将所得信息打印出来

3.主程序流程

主函数

增加模块

删除模块

修改模块

查询模块

统计模块

三、详细设计

1.图书馆管理的数据类型

structlibrary{

charISBN[20];

//ISBN

charname[30];

//书名

charauthor[30];

//作者名

charvari[10];

//图书类别

charpubplace[50];

//出版单位

intpubtime;

//出版时间

intprice;

//价格

intnum;

//数量

};

//----------基本操作的算法描述--------------------

1.文件部分

FILE*fp;

if((fp=fopen("

))==NULL)//检查打开的操作是否出错

//若出错则打印该行文字

2.查询操作部分

printf("

\n请输入您要查找的书名\n"

scanf("

%s"

bookname);

//输入想查询的书名

while(!

feof(fp))//循环直到文件尾部,函数值为真

{fread(&

bookinf,sizeof(structlibrary),1,fp);

//从fp中读入1个长度为sizeof(structlibrary)的数据,存到bookinf[]中

if(strcmp(bookinf.name,bookname)==0)//比较输入的书名和文件中保存的书名,若相同

{printf("

ISBN书名作者名图书类别出版单位出版时间价格数量\n"

printf("

%s%s%s%s%s%d%d%d\n"

bookinf.ISBN,bookinf.name,bookinf.author,

bookinf.vari,bookinf.pubplace,bookinf.pubtime,bookinf.price,bookinf.num);

//若相同,则打印出书本的信息

i=1;

break;

}

if(i!

=1)//若没有找到该书

{printf("

没有找到您要找的书本\n"

}

3.删除部分

strcpy(bookinf[flag].ISBN,bookinf[flag+1].ISBN);

//将后一本书的ISBN复制给前一本书的ISBN

strcpy(bookinf[flag].name,bookinf[flag+1].name);

//将后一本书的书名复制给前一本书的书名

strcpy(bookinf[flag].author,bookinf[flag+1].author);

//将后一本书的作者名复制给前一本书的作者名

strcpy(bookinf[flag].vari,bookinf[flag+1].vari);

//将后一本书的图书种类复制给前一本书的图书类别

strcpy(bookinf[flag].pubplace,bookinf[flag+1].pubplace);

//将后一本书的出版单位复制给前一本书的出版单位

bookinf[flag].pubtime=bookinf[flag+1].pubtime;

//将后一本书的出版时间复制给前一本书的出版时间

bookinf[flag].price=bookinf[flag+1].price;

//将后一本书的价格复制给前一本书的价格

bookinf[flag].num=bookinf[flag+1].num;

//将后一本书的数量复制给前一本书的数量

4.修改部分

if(strcmp(bookinf[i].ISBN,nbook)==0)//如果输入的书本nbook与文件中存储的ISBN相同,则开始修改

5.统计部分

inttn,total=0,alprice=0;

//初始化总数和总价格的值为0

for(i=0;

i<

=tn;

i++){

total=total+bookinf[i].num;

//运用递归,新的总数和为上一次的总数值加上这一次的值

alprice=alprice+(bookinf[i].num)*(bookinf[i].price);

//运用递归,新的总价钱和为上一次的总价钱值加上这一次的价钱

printf("

图书总册书为%d总金额数为%d\n"

total,alprice);

//打印出图书总册书和总金额数

6.菜单部分

欢迎登录图书管系统\n"

************************************\n"

*1.添加图书2.删除图书*\n"

*3.修改图书4.查询图书*\n"

*5.统计图书0.退出系统*\n"

7.选择部分

switch(b){

case1:

add();

//选择1时,执行添加操作

case2:

del();

//选择2时,执行删除操作

case3:

modify();

//选择3时,执行修改操作

case4:

search();

//选择4时,执行查询操作

case5:

count();

//选择5时,执行统计操作

case0:

flag=1;

//选择0时,执行退出操作

default:

您输入的选择错误!

//否则,打印输入错误

四.调试部分

1.开始写程序时,没有运用文件保存函数,导致输入的书本信息不能被查看

2.程序删除函数部分产生左值方面的错误,后运用strcmp()解决

3.程序删除函数部分,开始不论找到还是没找到要删除的书本,都会打印循环外的"

该书已删除!

"

,后运用i=n,解决了这个问题。

五.用户手册

1.本程序执行文件为“bookinf.txt”.

2.进入菜单部分,会出现一下选择菜单

1.添加图书2.删除图书

3.修改图书4.查询图书

5.统计图书0.退出系统

并提示"

请输入你的选择!

,用户仅需选择0~5运行该程序

3.添加、修改图书部分,其中ISBN、name、author、vari、pubplace、需输入字符(即字母或数字),pubtime、price、num需输入数字。

4.添加、修改图书部分,输入的信息不可超标,需遵循ISBN为20字节,name、author为30字节,vari为10字节,pubplace为50字节。

六、测试部分

欢迎登录图书管系统************************************

*1.添加图书2.删除图书*

*3.修改图书4.查询图书*

*5.统计图书0.退出系统*

************************************

请输入你的选择!

1

请输入需要添加的书本书以及您要添加的书本数信息

ISBN:

1

书名:

作者:

图书类别:

出版单位:

出版时间:

价钱:

数量:

欢迎登录图书管系统************************************

3

请输入您要修改的书号

2

没有找到要修改的书本

欢迎登录图书管系统************************************

请输入你的选择!

2

修改成功!

请输入您的选择!

4

请输入您要查找的书名

ISBN书名作者名图书类别出版单位出版时间价格数量

22222222

请输入您要删除的书本名

确定要删除该书吗?

(y/n)

y

该书已删除!

0

pressanykeytocontinue!

七、附录

#include"

stdio.h"

string.h"

struct.h"

conio.h"

structlibrarybookinf[30];

intn;

//结构体部分

voidmain(){//主函数部分

intb,flag=0;

while

(1){//菜单部分

欢迎登录图书管系统\n"

*1.添加图书2.删除图书*\n"

*3.修改图书4.查询图书*\n"

*5.统计图书0.退出系统*\n"

scanf("

%d"

&

b);

switch(b){

//选择1,执行添加操作

//选择2,执行删除操作

//选择3,执行修改操作

//选择4,执行查询操作

//选择5,执行统计操作

//选择0,退出程序操作

//否则,打印该句

}

voidadd(){/*添加函数*/

inti;

charx;

\n请输入需要添加的书本书以及您要添加的书本数信息\n"

n);

//输入要添加的书本数

for(i=0;

n;

i++){//用循环添加书本信息

ISBN:

bookinf[i].ISBN);

书名:

bookinf[i].name);

作者:

bookinf[i].author);

图书类别:

bookinf[i].vari);

出版单位:

bookinf[i].pubplace);

出版时间:

bookinf[i].pubtime);

价钱:

bookinf[i].price);

数量:

bookinf[i].num);

x=getch();

//按任意键返回菜单

save();

/*调用保存函数*/

voiddel(){//删除函数

inti=0,flag,t=0,tn=0;

//tn为保存文件内的书本数

chara,bookname[20];

r"

))==NULL)//如果无法打开文件

\n请输入您要删除的书本名\n"

rewind(fp);

while(!

feof(fp))/*没有结束时进行循环*/

bookinf[tn],sizeof(structlibrary),1,fp);

tn++;

fclose(fp);

tn;

i++)

{if(strcmp(bookinf[i].name,bookname)==0)//如果输入的书名与文件内保存的书名相同

{

%s%s%s%s%s%d%d%d\n"

bookinf[i].ISBN,bookinf[i].name,bookinf[i].author,bookinf[i].vari,bookinf[i].pubplace,bookinf[i].pubtime,bookinf[i].price,bookinf[i].num);

getch();

flag=i;

t=1;

a);

if(a=='

y'

{

for(flag;

flag<

flag++)

{strcpy(bookinf[flag].ISBN,bookinf[flag+1].ISBN);

//将后一本书的ISBN复制给前一本书的ISBN

strcpy(bookinf[flag].name,bookinf[flag+1].name);

strcpy(bookinf[flag].author,bookinf[flag+1].author);

strcpy(bookinf[flag].vari,bookinf[flag+1].vari);

//将后一本书的图书类别复制给前一本书的图书类别

strcpy(bookinf[flag].pubplace,bookinf[flag+1].pubplace);

bookinf[flag].pubtime=bookinf[flag+1].pubtime;

bookinf[flag].price=bookinf[flag+1].price;

bookinf[flag].num=bookinf[flag+1].num;

tn--;

//删除后书的数量减一

}

\n该书已删除!

getch();

if(t!

=1)//如果没有找到要删除的书

\n没有找到该书,退出操作\n"

voidsearch(){//查询函数

inti=0;

//文件打开

structlibrarybookinf;

charbookname[20];

if(strcmp(bookinf.name,bookname)==0)/*比较输入的书名和文件中保存的书名*/

ISBN书名作者名图书类别出版单位出版时间价格数量\n"

=1)//如果没有找到要查询的书

\n按任意键返回菜单\n"

getch();

voidmodify(){//修改函数

inti=0,n=0;

charnbook[20];

\n请输入您要修改的书号\n"

nbook);

feof(fp))/*没有结束时进行循环*/

bookinf[n],sizeof(structlibrary),1,fp);

n++;

{

if(strcmp(bookinf[i].ISBN,nbook)==0)//如果输入的nbook与文件内保存的ISBN相同

请输入你要修改的信息\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1