c语言图书资产管理系统.docx
- 文档编号:3798475
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:27
- 大小:326.48KB
c语言图书资产管理系统.docx
《c语言图书资产管理系统.docx》由会员分享,可在线阅读,更多相关《c语言图书资产管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
c语言图书资产管理系统
C语言程序设计
课程设计报告
设计题目:
图书资产统计系统
学院:
班级:
学号:
姓名:
指导老师:
成绩:
2013年6月27日
一.任务描述
开发一个图书资产管理系统,具体有以下功能:
1.图书信息录入。
先输入图书的种数;然后依次输入图书的具体信息,即图书的书号、书名(不重复)、价格、作者、出版社、出版日期(年份)、册数。
将这些信息用结构数组保存。
2.图书信息维护。
该功能中有三种选择:
添加图书的信息、修改图书的信息、退出。
添加:
先输入需要添加的图书的种数,再依次输入图书的信息;修改:
先输入需要修改的图书的书号,再重新输入该图书的信息以达到修改的目的。
3.图书查询检索。
该功能中有四种选择:
查询某书的出版社、查询某书的作者、查询某书的价格、退出。
选择其中的一种,通过输入某本书的书名,能够查询该书的出版社,或作者,或价格。
4.图书信息浏览。
通过输入作者的名字,查询该作者所有的图书的名字。
5.图书资产统计。
该功能中有四种选择:
统计某图书的总金额、某作者的图书的总册数、某年图书的总册数、退出。
分别输入书名、作者、年份来实现。
6.退出系统。
二.系统概要设计
系统模块框图
退出
图书资产统计系统
说明:
1.将图书信息存入结构数组中。
2.添加、修改图书信息。
3.查询某书的出版社、作者、价格。
4.查询某作者所有的图书。
5.统计某图书的总金额、某作者的图书的总册数、某年图书的总册数。
三.系统详细设计
1.数据结构设计
structlibrary
{intnumber;/*书号*/
charname[20];/*书名*/
intprice;/*价格*/
charauthor[20];/*作者*/
charpublish[50];/*出版社*/
chartime[20];/*出版时间*/
intceshu;/*册数*/
}book[100];
2.模块接口设计
首先通过主函数调用主菜单,用键盘选择进入某一模块;运用模块功能之后,选择“退出”返回主菜单,再选择下一个进入的模块。
函数原型说明:
Mainmenu()/*打印主菜单*/
save()/*图书信息录入*/
update()/*图书信息维护*/
updatemenu()/*打印图书信息维护菜单*/
tianjia()/*添加图书信息*/
xiugai()/*修改某图书信息*/
search()/*图书查询检索*/
searchmenu()/*打印图书查询检索菜单*/
chuban()/*查询某图书的出版社*/
zuozhe()/*查询某图书的作者*/
jiage()/*查询某图书的价格*/
liulan()/*图书信息浏览*/
tongji()/*图书资产统计*/
tongjimenu()/*打印图书资产统计菜单*/
money()/*统计某图书的总金额*/
zongce()/*统计某作者的图书的总册数*/
zongshu()/*统计某年图书的总册数*/
voidxitongexit()/*退出系统*/
worry()/*输入错误序号*/
3.流程图
主函数:
开始
模块一:
开始
模块二:
开始
(添加)
模块三:
开始
开始
模块四:
开始
Y
模块五:
四.系统实现
主菜单:
选择8:
选择1:
选择2:
选择1:
选择2:
选择3退出
选择3:
选择1:
选择2:
选择3:
选择4退出
选择4:
选择5:
选择1:
选择2:
选择3:
选择4退出
选择6:
五.系统调试
1.问题:
无法打印文字
解决方法;采用#include
main()
{system(“graftable936”);
printf(“输入汉字”);
system(“pause”);
return0;
}
2.问题:
信息无法录入
解决方法:
读取数据中有语法错误。
3.问题:
模块分支功能实现后直接跳回主菜单
解决方法:
在调用的的函数中,采用“goto”返回该调用函数的首部。
4.问题:
在查询功能中,打印出多余的“没有找到”
解决方法:
判断语句来打印没有找到的情况所放位置错误。
六.系统进一步扩充
1.书名的中英文区分;
2.价格可用实型更准确;
3图书信息维护中缺少删除功能;
4.修改图书信息时,能够针对某一项进行修改;
5.浏览功能可进一步扩充,如按某出版社所有图书查询;
6.针对中英文专著进行统计;
7.利用文件形式进行设计。
附录:
源程序代码
#include
#include
#include
#include
structlibrary
{intnumber;
charname[20];
intprice;
charauthor[20];
charpublish[50];
chartime[20];
intceshu;
}book[100];
intcount;
mainmenu()
{printf("\n*************************图书资产统计系统*************************\n\n");
printf("1.图书信息录入\n");
printf("2.图书信息维护\n");
printf("3.图书查询检索\n");
printf("4.图书信息浏览\n");
printf("5.图书资产统计\n");
printf("6.退出系统\n");
printf("\n******************************************************************\n\n");
printf("请选择:
");
}
worry()
{printf("\n------序号错误!
------\n\n");
printf("请重新选择:
");
}
save()
{inti;
system("cls");
printf("请输入需要录入图书的种数:
");
scanf("%d",&count);
printf("\n请依次输入\n");
printf("书号\t书名\t价格\t作者\t出版社\t出版日期\t册数\n");
for(i=0;i {scanf("%d",&book[i].number); scanf("%s",book[i].name); scanf("%d",&book[i].price); scanf("%s",book[i].author); scanf("%s",book[i].publish); scanf("%s",book[i].time); scanf("%d",&book[i].ceshu); } } updatemenu() {printf("\n*****************************************\n\n"); printf("1.添加图书信息\n"); printf("2.修改某图书信息\n"); printf("3.退出\n"); printf("\n*****************************************\n"); printf("请选择: "); } update() {intc; H2: system("cls"); updatemenu(); M2: scanf("%d",&c); switch(c) {case1: tianjia();gotoH2;break; case2: xiugai();gotoH2;break; case3: break; default: worry();gotoM2;break; } } tianjia() {intn,i; system("cls"); printf("请输入添加图书的种数: "); scanf("%d",&n); printf("\n请依次输入\n"); printf("书号\t书名\t价格\t作者\t出版社\t出版日期\t册数\n"); for(i=count;i {scanf("%d",&book[i].number); scanf("%s",book[i].name); scanf("%d",&book[i].price); scanf("%s",book[i].author); scanf("%s",book[i].publish); scanf("%s",book[i].time); scanf("%d",&book[i].ceshu); } count+=n; } xiugai() {intn,i; system("cls"); printf("请输入需修改图书的原书号: "); scanf("%d",&n); printf("请重新输入该图书的信息: \n"); printf("书号\t书名\t价格\t作者\t出版社\t出版日期\t册数\n"); for(i=0;i if(book[i].number==n) {scanf("%d",&book[i].number); scanf("%s",book[i].name); scanf("%d",&book[i].price); scanf("%s",book[i].author); scanf("%s",book[i].publish); scanf("%s",book[i].time); scanf("%d",&book[i].ceshu); } } searchmenu() {printf("\n*****************************************\n\n"); printf("1.查询某图书的出版社\n"); printf("2.查询某图书的作者\n"); printf("3.查询某图书的价格\n"); printf("4.退出\n"); printf("\n*****************************************\n"); printf("请选择: "); } search() {intb; system("cls"); H3: searchmenu(); M3: scanf("%d",&b); switch(b) {case1: chuban();gotoH3;break; case2: zuozhe();gotoH3;break; case3: jiage();gotoH3;break; case4: break; default: worry();gotoM3;break; } } chuban() {charshu[20]; inti,g=1; system("cls"); printf("请输入书名: "); scanf("%s",shu); for(i=0;i if((strcmp(book[i].name,shu))==0) {printf("该图书的出版社是: %s\n",book[i].publish); g=0; break; } if(g)printf("没有找到\n"); } zuozhe() {charshu[20]; inti,g=1; system("cls"); printf("请输入书名: "); scanf("%s",shu); for(i=0;i if((strcmp(book[i].name,shu))==0) {printf("该图书的作者是: %s\n",book[i].author); g=0; break; } if(g)printf("没有找到\n"); } jiage() {charshu[20]; inti,g=1; system("cls"); printf("请输入书名: "); scanf("%s",shu); for(i=0;i if((strcmp(book[i].name,shu))==0) {printf("该图书的价格是: %d\n",book[i].price); g=0; break; } if(g)printf("没有找到\n"); } liulan() {charzuozhe[20]; inti,g=1; system("cls"); printf("请输入您所要浏览的图书的作者: "); scanf("%s",zuozhe); for(i=0;i if(strcmp(zuozhe,book[i].author)==0) {printf("%s\t\t",book[i].name); g=0; } if(g)printf("没有找到\n"); } tongjimenu() {printf("\n*************************************************\n\n"); printf("1.统计某图书的总金额\n"); printf("2.统计某作者的图书的总册数\n"); printf("3.统计某年图书的总册数\n"); printf("4.退出\n"); printf("\n*************************************************\n"); printf("请选择: "); } tongji() {intd; system("cls"); H5: tongjimenu(); M5: scanf("%d",&d); switch(d) {case1: money();gotoH5;break; case2: zongce();gotoH5;break; case3: zongshu();gotoH5;break; case4: break; default: worry();gotoM5;break; } } money() {inti; charming[20]; system("cls"); printf("请输入书名: "); scanf("%s",ming); for(i=0;i if((strcmp(book[i].name,ming))==0) {printf("该图书的总金额是: %d\n",book[i].ceshu*book[i].price); break; } } zongce() {inti,zong=0; charzhe[20]; system("cls"); printf("请输入作者: "); scanf("%s",zhe); for(i=0;i if((strcmp(book[i].author,zhe))==0)zong+=book[i].ceshu; printf("该作者的图书的总册数是: %d\n",zong); } zongshu() {inti,zong=0; charnian[20]; system("cls"); printf("请输入时间: "); scanf("%s",nian); for(i=0;i if((strcmp(book[i].time,nian))==0)zong+=book[i].ceshu; printf("该年份的图书的总册数是: %d\n",zong); } voidxitongexit() {system("cls"); printf("\n谢谢使用! "); printf("\n\n\n\n退出! "); } main() {inta; system("graftable936"); L: system("cls"); L1: mainmenu(); M: scanf("%d",&a); switch(a) {case1: save();gotoL;break; case2: update();gotoL;break; case3: search();gotoL;break; case4: liulan();gotoL1;break; case5: tongji();gotoL;break; case6: xitongexit();break; default: worry();gotoM;break; } system("pause"); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 资产 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)