图书管理系统含源代码c语言 数据结构课程设计报告.docx
- 文档编号:3237108
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:30
- 大小:66.20KB
图书管理系统含源代码c语言 数据结构课程设计报告.docx
《图书管理系统含源代码c语言 数据结构课程设计报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统含源代码c语言 数据结构课程设计报告.docx(30页珍藏版)》请在冰豆网上搜索。
图书管理系统含源代码c语言数据结构课程设计报告
《算法与数据结构》
课程设计实验报告
设计题目:
图书管理
专业:
计算机科学与技术
班级:
学生姓名:
学号:
指导教师:
2011年7月
烟台大学计算机学院
一题目要求
1目的要求
本课程设计任务的目的是要求学生按照分析、设计、编码、调试和测试的软件开发过程独立完成管理系统设计,以及C语言算法的掌握,并能最终实现本系统的功能要求,通过这个程序可以学习到以前调试短程序没有的的经验。
2、题目要求
实现图书管理信息系统的设计。
要求实现图书添加、显示全部图书、查询、借阅和归还。
主要考查利用文件的操作!
二总体设计
图书数据:
书号,书名,图书ID,图书状态,借阅次数
1.借书模块:
输入图书ID
如果存在提示借阅成功,如果没有或已借出提示借阅失败
2.还书模块:
输入图书ID
进行还书操作
3.图书管理:
对书库中书进行管理
新书入库
对库存量进行统计和查询
4.查询模块:
对书库中书进行查询
根据图书ID进行查询
三编码实现
定义图书结构体
structBook
{
intid;
//图书的编号
charname[20];
//图书名字
inttype;
//图书类型
intstatus;
//图书现在状态
intcount;
//图书借出的次数
};
定义图书类型
typedefstructBookBook;
Bookdata[Max];
intall=0;
//添加图书类型,用户信息显示
charBookTypes[][32]=
{
"文学",
"中文社科",
"自然科学",
"计算机",
"报刊/杂志",
"",
};
添加图书状态
charBookStatus[][32]=
{
"在架上",
"已借出",
"",
};
图书管理菜单
charBookMenu[][32]=
{
"添加图书",
"列出图书",
"查找图书",
"借书",
"还书",
"退出",
"",
};
实现程序对文件的读取
voidRead()
{
inti=0;
intj=0;
ifstreamin("Libra.txt",ios:
:
out);
in>>i;
all=i;
if(i>0&&i<=Max)
{
for(j=1;j<=i;j++)
{
in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].count;
}
}
in.close();
}
对写入信息进行保存
voidSave()
{
inti=0;
ofstreamoutfile;//在Libra.txt文件中输入数据
outfile.open("Libra.txt",ios:
:
trunc);
outfile< for(;all>0;all--) { i++; outfile< outfile< outfile< outfile< outfile< } cout< "< outfile.close(); //exit (1); } Main函数 intmain() { intch=0,i,loop=1; while(loop) { Read(); print_menu(BookMenu); scanf("%d",&ch); if(ch<1||ch>6) { printf("\n没有所输选项,请确定所输入选项为1-6中的选项! ! \n"); printf("\n"); } switch(ch) { case1: //添加图书信息 PutInfor(); break; case2: Read(); Printall(); break; case3: system("cls"); Read(); searchBook(); break; case4: system("cls"); Read(); Borrow(); break; case5: system("cls"); Read(); Return(); break; case6: loop=0; break; default: break; } printf("\n-------------------------------分割线----------------------------------\n\n"); } return0; 四调试与测试 主菜单 生成的文件内信息 五心得体会 首先,写程序应先确定目标要求,所用平台和工具,不求最好,但求最适合自己。 开始时决定用MFC但是我对MFC的了解就像它对我的了解一样多,一天之后果断和它说再见,我不想把仅有时间用在学习一门工具上。 其次是代码的编写,最主要的的是编程思想,语言其实不是太重要,思路最重要! 在此感谢一下在我卡壳时帮助我的同学和解答的老师,虽然我没问什么,还是要感谢一下! 附录: 源代码1 此代码为此报告所用代码,有文件操作,运行后会生成一Libra.txt文件 #include #include #include #include #include #include #include #include #include #defineBORROWED1 #defineNOBORROW0 #defineMax100 voidSave(); voidRead(); intBinSearch(intkey); //定义图书结构体 structBook { intid; //图书的编号 charname[20]; //图书名字 inttype; //图书类型 intstatus; //图书现在状态 intcount; //图书借出的次数 }; //定义图书类型 typedefstructBookBook; Bookdata[Max]; intall=0; //添加图书类型,用户信息显示 charBookTypes[][32]= { "文学", "中文社科", "自然科学", "计算机", "报刊/杂志", "", }; //添加图书状态 charBookStatus[][32]= { "在架上", "已借出", "", }; //图书管理菜单 charBookMenu[][32]= { "添加图书", "列出图书", "查找图书", "借书", "还书", "退出", "", }; //菜单输出 voidprint_menu(charmenus[][32]) { intn=0; printf("请输入所需选项: \n"); while(strlen(menus[n])) { printf("%d%s\n",n+1,menus[n]); ++n; } printf("请选择("); while(n) { printf("%d|",n--); } printf(")"); } voidRead() { inti=0; intj=0; ifstreamin("Libra.txt",ios: : out); in>>i; all=i; if(i>0&&i<=Max) { for(j=1;j<=i;j++) { in>>data[j].id>>data[j].name>>data[j].type>>data[j].status>>data[j].count; } } in.close(); } voidPutInfor()//信息输入函数 { all++; cout<<"输入图书ID: "< cin>>data[all].id; cout<<"输入图书名字: "< cin>>data[all].name; cout<<"输入图书类别: "< print_menu(BookTypes); cin>>data[all].type; Save(); Read(); cout<<"输入完成! "< } voidBorrow()//借阅图书 { intk=0; BookB; cout<<"输入所要借阅图书ID: "< cin>>B.id; k=BinSearch(B.id); if(k==0) cout<<"*无此书信息,可能是输入错误! *"< else{ ofstreamoutfile;//在Libra.txt文件中输入数据 outfile.open("Libra.txt",ios: : trunc); outfile< data[k].status=1; for(inti=1;i<=all;i++) { if(i==k) { data[k].status=1; data[k].count++; outfile< outfile< outfile< outfile< outfile< } else { outfile< outfile< outfile< outfile< outfile< } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书管理系统含源代码c语言 数据结构课程设计报告 图书 管理 系统 源代码 语言 数据结构 课程设计 报告