基于vc++的C语言图书馆管理系统课程设计报告
图书管理课程设计
学生姓名:
学生学号: 所在班级: 任课教师:
图书馆管理系统
【设计目的】
图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等. 试设计一图书信息管理系统,使之能提供以下功能: 1)系统以菜单方式工作
2)图书信息录入功能(图书信息用文件保存)--输入 3)图书信息浏览功能--输出
4)查询和排序功能:(至少一种查询方式)--算法 5)按书名查询 6)按作者名查询
7)图书信息的删除与修改(可选项)*/
【设计思路】
根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中去,所以应该提供下个结构体和文件的输入等操作:在程序中需要实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现:另外还需提供选择菜单实现功能,在运行时达到所要求的目的。
【总体设计】
图1 系统功能模块图
【详细设计】
1. 主函数
主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】
#include<stdio.h> #include<stdlib.h> #include<conio.h> int get() { int o; scanf("%d",&o); }
struct BOOK { int ID,usr[10],total,store,days[10]; char name[31],aurthor[21];
}books[100];
/*上面是结构体的定义,用于存放书籍及借书的信息。*/
void page_title(char*menu_item) { printf("图书管理系统\n-%s-\n",menu_item); }
/*通过参数menu_item,可以显示当前的状态。*/
void return_confirm() {
printf("\n按任意返回\n"); getch(); }
/*上面是返回前请求确认的函数,以便在返回前观察结果*/
int search_book() { int n,i; printf("输入图书序号:"); scanf("%d",&i); for(n=0;n<100;n++) { if(books[n].ID==i) { printf("书名:%s\n",books[n].name); printf("作者:%s\n",books[n].aurthor ); printf("存数:%d of ",books[n].store ); printf("%d\n",books[n].total); return n; } } printf("\n输入错误或无效图书序号\n"); return -1; }
/*上面的函数是在数组中找到图书号匹配的记录,显示其信息并返 回数组下标,如果找不到相应记录则提示错误并返回-1。*/
void book_out() { int n,s,l,d; page_title("借阅图书"); if((n=search_book())!=-1 && books[n].store >0) { printf("请输入可借天数:\n"); scanf("%d",&d); for(l=0;l<10;l++) { if(books[n].usr [l]==0) { books[n].usr[l]=s; books[n].days[l]=d; break; }
} books[n].store--; } if(n!=-1 && books[n].store==0) printf("此书已借出。\n"); return_confirm(); }
/*上面是借书的函数,首先调用找书函数*/
void book_in() { int n,s,l; page_title("图书归还"); if((n=search_book())!=-1 && books[n].store<books[n].total) { printf("借阅者图书证列表:\n"); for(l=0;l<10;l++) if(books[n].usr[l]) !0; printf("[%d]-%d天\n",books[n].usr[l],books[n].days[l]); printf("请输入借书证序号:"); scanf("%d",&s); for(l=0;l<10;l++) { if(books[n].usr[l]==s) { books[n].usr[l]=0; books[n].days[l]=0; break; } } books[n].store++; } if(n!=-1 && books[n].store==books[n].total) printf("全部入藏。\n"); return_confirm(); }
void book_add() { int n; page_title("注册新书"); for(n=0;n<100;n++) if(books[n].ID==0) break;
printf("序号:"); scanf("%d",&books[n].ID); printf("书名:"); scanf("%s",&books[n].name); printf("作者:"); scanf("%s",&books[n].aurthor); printf("数量:"); scanf("%d",books[n].total); books[n].store=books[n].total; return_confirm(); }
void book_del() { int n; page_title("注销旧书\n"); if((n=search_book())!=-1) books[n].ID=0; printf("该书已注销\n"); return_confirm(); }
void main() { while(1) {
menu:page_title("操作选单"); printf("请用数字选择操作\n\n"); printf("1,借阅图书\n2,归还图书\n"); printf("3,注册新书\n4,注销旧书\n\n"); printf("\n0,退出\n"); switch(get()) { case 1: book_out();break; case 2: book_in();break; case 3: book_add();break; case 4: book_del();break; default : exit(0); }
return; } }
【设计体会】
通过为期一周的课程设计,对《C语言》这门课程有了更深一步的了解。它是计算机程序设计的重要理论技术基础,在我们软件工程专业的学习中占据着十分重要的地位。这个程序的结构大体是从网络上借鉴的,但是结果无法运行,只能自己修改,最后终于调试通过,同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。因为我们学习知识就是为了实践。而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
…… 此处隐藏:1089字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [外语考试]管理学 第13章 沟通
- [外语考试]07、中高端客户销售流程--分类、筛选讲
- [外语考试]2015-2020年中国高筋饺子粉市场发展现
- [外语考试]“十三五”重点项目-汽车燃油表生产建
- [外语考试]雅培奶粉培乐系列适用年龄及特点
- [外语考试]九三学社入社申请人调查问卷
- [外语考试]等级薪酬体系职等职级表
- [外语考试]货物买卖合同纠纷起诉状(范本一)
- [外语考试]青海省实施消防法办法
- [外语考试]公交车语音自动报站系统的设计第3稿11
- [外语考试]logistic回归模型在ROC分析中的应用
- [外语考试]2017-2021年中国隔膜泵行业发展研究与
- [外语考试]神经内科下半年专科考试及答案
- [外语考试]园林景观设计规范标准
- [外语考试]2018八年级语文下册第一单元4合欢树习
- [外语考试]分布式发电及微网运行控制技术应用
- [外语考试]三人行历史学笔记:中世纪人文主义思想
- [外语考试]2010届高考复习5年高考3年联考精品历史
- [外语考试]挖掘机驾驶员安全生产责任书
- [外语考试]某211高校MBA硕士毕业论文开题报告(范
- 用三层交换机实现大中型企业VLAN方案
- 斯格配套系种猪饲养管理
- 涂层测厚仪厂家直销
- 研究生学校排行榜
- 鄱阳湖湿地景观格局变化及其驱动力分析
- 医学基础知识试题库
- 2010山西省高考历年语文试卷精选考试技
- 脉冲宽度法测量电容
- 谈高职院校ESP教师的角色调整问题
- 低压配电网电力线载波通信相关技术研究
- 余额宝和城市商业银行的转型研究
- 篮球行进间运球教案
- 气候突变的定义和检测方法
- 财经大学基坑开挖应急预案
- 高大支模架培训演示
- 一种改进的稳健自适应波束形成算法
- 2-3-鼎视通核心人员薪酬股权激励管理手
- 我国电阻焊设备和工艺的应用现状与发展
- MTK手机基本功能覆盖测试案例
- 七年级地理教学课件上册第四章第一节




