数据结构书店图书管理系统.docx

上传人:b****5 文档编号:2801292 上传时间:2022-11-15 格式:DOCX 页数:21 大小:207.33KB
下载 相关 举报
数据结构书店图书管理系统.docx_第1页
第1页 / 共21页
数据结构书店图书管理系统.docx_第2页
第2页 / 共21页
数据结构书店图书管理系统.docx_第3页
第3页 / 共21页
数据结构书店图书管理系统.docx_第4页
第4页 / 共21页
数据结构书店图书管理系统.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

数据结构书店图书管理系统.docx

《数据结构书店图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据结构书店图书管理系统.docx(21页珍藏版)》请在冰豆网上搜索。

数据结构书店图书管理系统.docx

数据结构书店图书管理系统

书店图书管理程序的设计与实现

 

摘要:

本学期我们对《数据结构》进行了学习。

这门课程实践性非常强,为了让我们能够掌握所学的知识,并能够灵活的运用,我们进行了此次课程设计。

该设计要求掌握数据结构的内容,也需要一定的c语言基础。

课程设计的目的是:

熟练掌握基本的数据结构,熟练掌握各种算法,运用高级语言编写质量高、风格好的应用程序。

对于“书店图书管理程序的设计与实现”这个题目来说,要求掌握的主要有:

线性表的存储结构及其相关操作算法,查找的相关算法,文件的保存与读取等等。

通过此次课程设计,能够进一步的加深对数据结构的理解,同时也提高动手实践能力,进一步熟练了对visualC++平台的使用。

关键字:

查找,线性表,保存,读取

1.引言:

中小型书店、个体书店其日常管理工作都是人工操作,历史数据很难保存和利用,对于书店的经营非常不利。

针对这种状况,开发一个面向中小型书店、个体书店的图书管理系统,实现对人员、物流的全面管理,以帮助这些书店早日实现书店管理信息化。

2.需求分析:

①书店管理员能将书的信息输入到系统书库中②书店管理员能对书库内的信息进行查询,删除及修改③书店管理员对销售信息进行查询④顾客对书店书目进行查询,并决定是否购买

3.数据结构设计:

StructBook:

书的基本信息

StructBookList:

链表用以存放从书库内读取的所有信息

4.算法设计:

4.1管理员向书库内输入信息:

voidInput(BookList*Books)

{

charcommand;

Bookbook;

inti;

ClearBook(&book);

system("cls");

for(i=1;i<=80;i++)

printf("*");

printf("请输入要添加书的信息\n");

printf("Commandlist:

输入完毕,返回上级:

r退出系统:

q\n");

for(i=1;i<=80;i++)

printf("*");

printf("\n");

printf("<特别注意如果某项信息不存在请务必输入0或¨-代替>\n");

printf("\n");

printf("书号书名作者进价(元)售价(元)库存总量现存量销售额\n");

scanf("%s",book.No);

command=book.No[0];

if(command!

='r'&&command!

='q')

{

scanf("%s",book.Name);

scanf("%s",book.Author);

scanf("%f",&book.Inprice);

scanf("%f",&book.Outprice);

scanf("%d",&book.Total);

scanf("%d",&book.Biomass);

scanf("%d",&book.Sales);

fflush(stdin);

InsertBookList(Books,book);

while(command!

='r'&&command!

='q')

{

ClearBook(&book);

scanf("%s",book.No);

command=book.No[0];

if(command=='r'||command=='q')

break;

scanf("%s",&book.Name);

scanf("%s",book.Author);

scanf("%f",&book.Inprice);

scanf("%f",&book.Outprice);

scanf("%d",&book.Total);

scanf("%d",&book.Biomass);

scanf("%d",&book.Sales);

fflush(stdin);

InsertBookList(Books,book);

}

}

fflush(stdin);

SaveData(Books);

if(command=='r')

{//返回管理员界面

Manager();

}

elseif(command=='q')

{//退出

system("exit");

}

}

4.2管理员查询算法:

voidQuery(BookList*Books)

{

inti;

charcommand;

charQueryChoose[100];

Block1:

memset(QueryChoose,'\0',100);

system("cls");

printf("\n");

printf("\n");

printf("-------------------------------------------------------------------\n");

printf("**\n");

printf("*1<按书号查询>2<按书名查询>*\n");

printf("*3<按作者查询>4<所有书目信息>*\n");

printf("**\n");

printf("-------------------------------------------------------------------\n");

for(i=1;i<=80;i++)

{

printf("*");

}

printf("CommandList:

按书号查询1按书名查询:

2按作者查询:

3\n");

printf("所有书目信息:

4返回上一级:

r退出系统3:

q\n");

for(i=1;i<=80;i++)

{

printf("*");

}

printf("EnteraCommand>>-");

command=getchar();

fflush(stdin);

while(command!

='1'&&command!

='2'&&command!

='3'&&command!

='4'&&command!

='r'&&command!

='q')

{

printf("%c为无效内部命令\n",command);

printf("Enteracommand>>-");

command=getchar();

fflush(stdin);

}

switch(command)

{

case'1':

//按书号查询

Block2:

printf("输入要查询的书号(输入e跳出输入)>>");

scanf("%s",QueryChoose);

fflush(stdin);

if(QueryChoose[0]=='e')

{

gotoBlock1;

}

QueryBookList(Books,QueryChoose);

gotoBlock2;

break;

case'2':

//按姓名删除

Block3:

printf("输入要查询的书名(输入e跳出输入)>>");

scanf("%s",QueryChoose);

fflush(stdin);

if(QueryChoose[0]=='e')

{

gotoBlock1;

}

QueryBookList1(Books,QueryChoose);

gotoBlock3;

break;

case'3':

//按作者删除

Block4:

printf("输入要查询的作者(输入e跳出输入)>>");

scanf("%s",QueryChoose);

fflush(stdin);

if(QueryChoose[0]=='e')

{

gotoBlock1;

}

QueryBookList2(Books,QueryChoose);

gotoBlock4;

break;

case'4':

//所有书目

system("cls");

QueryAll(Books);

system("pause");

gotoBlock1;

break;

case'r':

//返回

Manager();

break;

case'q':

//退出

system("exit");

break;

default:

break;

}

}

4.3管理员删除算法:

charDelete(BookList*Books)

{

inti;

charcommand;

charDeleteChoose[100];

Block1:

memset(DeleteChoose,'\0',100);

system("cls");

printf("\n");

printf("\n");

printf("----------------------------------------------------------------------------------\n");

printf("**\n");

printf("*1<按书号删除>2<按书名删除>3<按作者删除>*\n");

printf("**\n");

printf("-----------------------------------------------------------------------------------\n");

for(i=1;i<=80;i++)

{

printf("*");

}

printf("CommandList:

按书号删除:

1按书名删除:

2按作者删除:

3\n");

printf("返回上一级:

r退出系统3:

q\n");

for(i=1;i<=80;i++)

{

printf("*");

}

printf("EnteraCommand>>-");

command=getchar();

fflush(stdin);

while(command!

='1'&&command!

='2'&&command!

='3'&&command!

='r'&&command!

='q')

{

printf("%c为无效内部命令\n",command);

printf("Enteracommand>>-");

command=getchar();

fflush(stdin);

}

switch(command)

{

case'1':

//按书号删除

Block2:

printf("输入要删除的书号(输入e跳出输入)>>");

scanf("%s",DeleteChoose);

fflush(stdin);

if(DeleteChoose[0]=='e')

{//保存删除后的数据,并退出此删除模式

SaveData1(Books);

gotoBlock1;

}

DeleteBookList(Books,DeleteChoose);

gotoBlock2;

break;

case'2':

//按姓名删除

Block3:

prin

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

当前位置:首页 > 工程科技 > 能源化工

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

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