图书管理系统Word下载.docx

上传人:b****5 文档编号:21012733 上传时间:2023-01-26 格式:DOCX 页数:13 大小:47.21KB
下载 相关 举报
图书管理系统Word下载.docx_第1页
第1页 / 共13页
图书管理系统Word下载.docx_第2页
第2页 / 共13页
图书管理系统Word下载.docx_第3页
第3页 / 共13页
图书管理系统Word下载.docx_第4页
第4页 / 共13页
图书管理系统Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

图书管理系统Word下载.docx

《图书管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

图书管理系统Word下载.docx

structbook

{

charID[20];

//图书的序列号,具有身份证的唯一性

charbookname[50];

//图书名称

charauthor[10];

//作者

charbookconcern[100];

//出版商

};

//定义结构体数组

structbookbook[500];

//定义全局变量,用来获得图书输入总数目

intlength;

/*主菜单显示*/

voidshow()

system("

cls"

);

//dos自带清屏函数

//system("

colorc0"

//将界面颜色更改的windows函数,头文件为<

//SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);

printf("

\n\n\n\n\t||========================================================||\n"

\t||WELCOMETOLeMONBOOKSYSTEM||\n"

\t||========================================================||\n"

\t||\t1-显示所有图书信息||\n"

\t||\t2-添加图书信息||\n"

\t||\t3-修改图书信息||\n"

\t||\t4-删除图书信息||\n"

\t||\t5-查询图书信息||\n"

\t||\t6-退出||\n"

\n\t\tEnteryourchoice<

1-6>

:

"

}

//main()函数

intmain()

intn;

//定义选项的接受变量

show();

//菜单显示,为自定义函数

scanf("

%d"

&

n);

while(n)//用于多次接收键盘输入

{

switch(n)//switch的多分支语句,配带break;

{

case1:

showall();

break;

case2:

addbook();

case3:

modifybook();

case4:

deletebook();

case5:

querybook();

case6:

exit(0);

default:

}

scanf("

//循环输入的必要保证,必须放置在循环内部

}

return0;

/*系统数据初始化导入函数,定义文件指针*/

voidshowall()

FILE*fp;

charfilename[50];

inti=0,j;

charch[10];

/*此处用来向文档输入数据,时间有点折磨人,所以省去输入的环节,如果想完善程序,可以考虑*/

/*fp=fopen("

filename.txt"

"

wb"

//以新建文件的可读写方式新建文件

是否进行初始化数据(y/n)"

%s"

ch);

if(strcmp(ch,"

Y"

)==0||strcmp(ch,"

y"

)==0)

for(i=0;

i<

10;

i++)

{

printf("

\tID:

scanf("

book[i].ID);

\tBookname:

book[i].bookname);

\tAuthor:

book[i].author);

\tBookconcern:

book[i].bookconcern);

if(fwrite(&

book[i],sizeof(structbook),1,fp)!

=1)//fwrite文件函数,用于块状数据的大范围输入

printf("

文件写入错误!

\n"

}

fclose(fp);

*///文件关闭

//printf("

请输入文件路径:

//scanf("

filename);

if((fp=fopen("

rb"

))==NULL)//以只读写方式打开文件

printf("

\t不能打开的文件!

exit(0);

while(!

feof(fp))//判断文件指针fp移动过程是否指向文件末尾,feof()函数返回值为0和1

fread(&

book[i],sizeof(structbook),1,fp);

//块状数据读出函数,fread与fwrite成对出现,多用于结构体

i++;

//用于计算写入数据的个数

length=i-1;

//此处实验多次,不知为何数据会多出来一个,你有兴趣可以问老师?

//文件关闭

if(length!

=0)//判断读文件结束时的数据是否为空,即是否文件为空

\t===========================================================\n"

\t显示所有图书信息\n"

\t图书编号图书名作者出版社\n"

\t-----------------------------------------------------------\n"

for(j=0;

j<

length;

j++)//输出数据

\t%s%s%s%s\n"

book[j].ID,book[j].bookname,book[j].author,book[j].bookconcern);

elseprintf("

\t没有记录信息!

//否则便显示没有数据记录

inquire();

//询问是否显示主菜单?

/*用于返回主菜单的选择函数*/

voidinquire()

\t显示主菜单?

(y/n):

)==0)show();

elseexit(0);

//为终止程序运行的函数

/*追加信息*/

voidaddbook()

inti;

//定义随机读写变量i

charid[20];

//定义暂时寄存器,用来存储中间键入值ID

\t添加图书信息\n"

id);

for(i=0;

if(strcmp(book[i].ID,id)==0)//strcmp头文件为<

字符串处理函数,用于判断两个字符串是否相等,相等,返回0,否则返回非零

\t存在该书目,按任意键继续!

gotopress;

//goto语句,此处用来实现函数跨越,书本可能未介绍,一方面老师说它会破坏函数结构使编程混乱,另一方面可能使用太过灵活

strcpy(book[length].ID,id);

//strcpy()与srcmp()函数同为<

的字符串处理函数,用来将字符串复制

book[length].bookname);

book[length].author);

book[length].bookconcern);

length++;

//插入则整体个数增1

\t插入成功!

save();

//随时更新文件内容

press:

inquire();

//goto跳转到此处

/*数据修改*/

voidmodifybook()

charch[10],ch1[10];

//定义接收的字符数组

\t请输入你想要修改的图书编号."

if(strcmp(book[i].ID,id)==0)

printf("

\t发现记录信息,是否显示?

(y/n)"

scanf("

if(strcmp(ch,"

\t******显示图书信息*******\n"

\t%s%s%s%s\n"

book[i].ID,book[i].bookname,book[i].author,book[i].bookconcern);

Modify?

ch1);

if(strcmp(ch1,"

)==0||strcmp(ch1,"

{

\tNewID:

scanf("

}

save();

\t修改成功!

break;

if(i>

=length)printf("

\t没有发现要修改的信息!

//如果循环跳出,仍然没有找到,则显示无果

/*删除数据*/

voiddeletebook()

inti,m;

m=length;

//中转数据长度,用来在删除过程中,避免总数被覆盖

\t请输入你想要删除的图书编号."

findtherecord,show?

能否删除?

book[i]=book[i+1];

//查找到,删除即为其后面的结构体取代该位的位置

m--;

//删除后,总数自减

\t删除成功!

break;

length)printf("

\t没有发现要删除的信息!

length=m;

//返回给length

/*查询*/

voidquerybook()

\t请输入你想要查询的图书编号."

\t没有发现要查询的信息!

/*保存*/

voidsave()

))==NULL)

n\t打开文件发生错误!

}

fwrite(&

截图:

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

当前位置:首页 > 高等教育 > 工学

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

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