8A版C语言图书销售管理系统.docx
- 文档编号:747493
- 上传时间:2022-10-12
- 格式:DOCX
- 页数:27
- 大小:398.61KB
8A版C语言图书销售管理系统.docx
《8A版C语言图书销售管理系统.docx》由会员分享,可在线阅读,更多相关《8A版C语言图书销售管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
8A版C语言图书销售管理系统
目录
图书销售管理系统设计2
一、设计要求2
二、总体设计思路2
1.主要功能:
系统主要包括八个功能模块。
3
2.总体思路框图3
三、主要参数和函数4
1.全局变量4
2.主要函数5
四、程序调试及整体实现14
1.主菜单运行界面14
2.图书信息录入界面14
3.图书信息浏览界面14
4.图书查询界面15
5.图书信息修改界面16
6.图书信息删除界面16
7.图书信息排序主界面17
8.购书清单界面17
五、体会总结18
附件19
图书销售管理系统设计
一、设计要求
1.图书信息包括:
序号、书名、作者、出版单位、价格。
2.系统以菜单方式工作。
3.图书信息录入功能(图书信息用文件保存)--输入。
4.图书信息的删除与修改功能。
5.图书信息浏览功能--输出。
6.查询功能--算法:
(按书名/作者查询)。
7.排序功能--算法:
(按书名排序/按价格排序)。
8.图书购买功能:
统计选购图书的总价,给出清单,屏幕输出参考以下的实际购书单。
二、总体设计思路
1.主要功能:
系统主要包括八个功能模块。
1)图书信息的录入:
将所要录入的图书信息包括序号、书名、作者、出版社、价格等录入一个文本文件中。
每录入一本书,系统提示是否继续,若不继续,则返回主界面。
2)图书信息的查询:
将所有图书信息包括序号、书名、出版社、作者、价格等显示在屏幕上,最后返回主界面。
3)图书信息的查询:
通过输入图书名称或作者完成图书信息的查找,并在屏幕上显示,返回主界面。
4)图书信息的修改:
通过输入序号,判断此图书是否存在,若不存在则提示用户重新输入图书序号,若存在则要求输入要修改图书的序号,对该图书重新录入信息。
录入后,提示是否继续,如不继续,则返回主界面。
5)图书信息的删除:
通过输入序号,判断此图书是否存在,若存在,则提示用户是否显示删除后的信息,若不存在则提示用户重新输入图书序号,删除完毕后,返回主界面。
6)图书信息的排序:
通过输入书名或价格,提示用户输入想要使用的排序方式,排序后的信息显示在屏幕上,返回主界面。
7)图书的购买:
通过输入要购买的图书序号,计算出总本书和总价格并连同其他购买信息一并显示在屏幕上。
8)退出系统:
返回主页面。
2.总体思路框图
图1.总体思路框图
三、主要参数和函数
1.全局变量
1)定义一个存放图书信息的结构体structbook,并定义此类型的变量structbooklist[N],用来表示图书数组。
structbook/G定义结构体类型G/
{
intnum;/G序号为整型G/
charname[40];/G书名为字符串G/
charauthor[20];/G作者为字符串G/
charpublish[50];/G出版社为字符串G/
floatprice;/G价格为浮点型G/
};
structbooklist[N];/G定义structbook类型的变量listN个G/
2)intCount=0,定义全局变量,用来表示图书的个数,初始值为0。
2.主要函数
1)主函数main(),控制整个系统的执行流程,使系统菜单可以循环执行。
根据图书馆信息管理系统的要求,可设计一个主函数,及定义多个用户自定义函数。
通过将switch语句与break语句联合使用来实现多分支选择结构程序的设计。
case1至case7分别实现不同的功能,并能返回主界面;case0直接返回主界面。
程序代码:
voidmain()
{
intchoice1;
printf("G~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~G\n");
printf("G欢迎进入图书销售管理系统G\n");
printf("G~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~G\n");
do
{
printf("##################################################");/G显示菜单G/
printf("功能选项:
\n");
printf("1:
图书信息录入\n");
printf("2:
图书信息浏览\n");
printf("3:
图书信息查询\n");
printf("4:
图书信息修改\n");
printf("5:
图书信息删除\n");
printf("6:
图书信息排序\n");
printf("7:
图书的购买\n");
printf("0:
退出系统\n");
printf("###############################################################");
printf("\t请选择操作:
");
scanf("%d",&choice1);
switch(choice1)/G菜单选择G/
{
case1:
input();break;
case2:
show_bookinformation(list);break;
case3:
check_bookinformation(list);break;
case4:
modify_bookinformation(list);break;
case5:
delete_bookinformation(list);break;
case6:
reorder_bookinformation(list);break;
case7:
buytotal(list);break;
case0:
break;}
}while(choice1!
=0);
printf("谢谢!
欢迎下次使用使用!
\n");}
2)打开数据文件函数open(),把文件的信息打开到一个结构体数组中。
定义指向文件的指针读取数据,若指针指向NULL,则显示“无法操作,无文件信息!
!
!
”,要调用fopen、fclose和fread函数。
程序代码:
voidopen()
{inti;
FILEGfp;
if((fp=fopen("book.tGt","rb+"))==NULL)
{printf("无法操作,无文件信息!
!
!
\n");
eGit(0);}
for(i=0;i {if(fread(&list[i],sizeof(structbook),1,fp)==0) {printf("数据输出失败! ! ! \n"); eGit(0);}}fclose(fp);} 3)信息录入文件函数read(),函数类型为void。 定义指向文件的指针读取数据,把输入的图书信息保存到文件中,若指针指向NULL,则输出无法操作。 利用for循环保存信息到指定文件。 程序代码: voidread() {inti; FILEGfp; if((fp=fopen("book.tGt","wr+"))==NULL) {printf("\n不能打开文件! ! ! \n"); eGit(0);} for(i=0;i if(fwrite(&list[i],sizeof(structbook),1,fp)! =1) printf("文件写入错误! ! ! \n"); fclose(fp);} 4)信息录入系统函数input(),提供录入图书信息功能。 在for循环下,一次提示用户输入图书序号、书名、作者、出版社以及价格。 每循环一次,提示用户是否继续,当选“1”时继续输入图书信息,选“2”时返回主界面;每循环一次Count自增1。 程序代码: voidinput() {inti,k,j,t; for(j=0;list[j].num! =0;j++) t=j+1; for(i=t;i {printf("\t请输入您的图书序号: "); scanf("\t%d",&list[i].num); printf("\t请输入书名: "); scanf("\t%s",list[i].name); printf("\t请输入作者: "); scanf("\t%s",list[i].author); printf("\t请输入出版社: "); scanf("\t%s",list[i].publish); printf("\t请输入价格: "); scanf("\t%f",&list[i].price); fflush(stdin); printf("\t\n是否继续录入? (1.是2.否)"); scanf("%d",&k); if(k==2)break; }Count=i+1; read();} 5)删除图书信息函数delete_bookinformation(structbooklist[]),提供对图书信息的删除功能。 此函数运行时利用open函数打开数据文件,读取信息;利用for循环,当输入序号与循环中的某一对应数据相同时,将后一个赋值给前一个从而把要删除的图书信息删除掉。 如果i=0,则直接输出“图书销售系统没有你要输出的图书信息! ! ! ”。 删除后会显示“删除成功”,同时Count自减1;最后还要执行read函数,重新记录图书信息。 程序代码: voiddelete_bookinformation(structbooklist[]) {intj,k,d,i=0; open(); printf("请输入要删除的图书的序号: \n"); scanf("%d",&d); for(j=0;list[j].num! =0;j++) {if(list[j].num==d) {for(k=j;list[k].num! =0;k++) list[k]=list[k+1]; i++;}} if(i==0) printf("图书销售系统没有你输入的图书序号,请重新选择输入! ! ! \n"); else Count=Count-1; read(); printf("删除成功\n");} 6)修改图书信息函数modify_bookinformation(structbooklist[]),提供对图书信息的修改功能。 首先提示用户输入要修改的图书序号,利用for循环找到要修改的list[],系统提示用户依次输入修改后的图书序号、图书名、作者、出版社、价格。 如果输入的序号a为0,则提示“未发现您要找的书! ”。 程序代码: voidmodify_bookinformation(structbooklist[]) { intj,k=0,number; open(); printf("\t请输入您要修改的图书的序号: "); scanf("%d",&number); for(j=0;list[j].num! =0;j++) if(list[j].num==number) { printf("\n\t请输入您修改后的图书信息: \n\n"); printf("\t请输入您要修改的图书的序号: "); scanf("%d",&list[j].num); printf("\t请输入您修改后的书名: "); scanf("%s",list[j].name); printf("\t请输入您修改后的作者名: "); scanf("%s",list[j].author); printf("\t请输入您修改后的出版社: "); scanf("%s",list[j].publish); printf("\t请输入您修改后的书的价格: "); scanf("%f",&list[j].price); read(); printf("\n修改成功! "); k++;}i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 销售 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)