c语言实现图书馆课程设计报告

上传人:第*** 文档编号:58561964 上传时间:2018-10-30 格式:DOC 页数:22 大小:50KB
返回 下载 相关 举报
c语言实现图书馆课程设计报告_第1页
第1页 / 共22页
c语言实现图书馆课程设计报告_第2页
第2页 / 共22页
c语言实现图书馆课程设计报告_第3页
第3页 / 共22页
c语言实现图书馆课程设计报告_第4页
第4页 / 共22页
c语言实现图书馆课程设计报告_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《c语言实现图书馆课程设计报告》由会员分享,可在线阅读,更多相关《c语言实现图书馆课程设计报告(22页珍藏版)》请在金锄头文库上搜索。

1、南京工程学院 课程设计说明书课程设计说明书( (论文论文) ) 题 目 图书借阅管理系统 课 程 名 称 C/C+程序设计 I 院(系、部、中心) 计算机工程学院 专 业 电子信息科学与技术 班 级 电科技 121 学 生 姓 名 王文涛 学 号 202120727 设 计 地 点 图书信息大楼 401 指 导 教 师 解 芳 设计起止时间:2013 年 2 月 25 日至 2013 年 2 月 29 日 目录目录 设计任务设计任务 1 1 系统设计方案系统设计方案 2 2 程序主要代码分析程序主要代码分析 3 3 程序调试中出现的问题及其解决方法程序调试中出现的问题及其解决方法 4 4 改进

2、意见与收获体会改进意见与收获体会 5 5 主要参考资料主要参考资料 6 6 一、一、设计任务 编写一个图书借阅管理的程序。由键盘输入数据(最好要考虑输入数 据输入的格式及输入数据的有效性) ,然后进行以下的功能实现。程序要求 主函数是一个功能选择菜单,其它各功能都用各自的函数实现。 要求至少有 20 个图书借阅的原始数据。原始数据如下: 学生信息: 学号 姓名 所在系部 1001王 计算机 图书信息: 图书编号 书名 出版社 单价 是否借出 12345678 C 语言程序设计 清华大学 38.00 y 借阅信息: 学号 图书编号 借阅日期 还书日期 逾期罚款 1001 12345678 200

3、7/9/10 2007/10/10 功能要求如下: 1、增加图书信息 2、增加学生信息 3、借、还书登记 4、计算逾期罚款金额,按 0.1 元/天计算。 5、对数据可以进行增、删、改的编辑操作。 6、对数据可进行查询操作。 7、逾期罚款单 二、系统设计方案 可以实现图书信息的登记,以及增、删、改,可以对图书进行多方面操作。 实现对学生的借书登记等功能。定义了三个结构体,分别是图书信息,学生 信息和日期结构体。其中调用了 11 个自定义函数,运用菜单函数实现函数的 连接,切换。整个系统,多用了数组进行实现。 三、程序主要代码分析 /头文件 #include #include #include #

4、include /全局变量 int a=0; int b=0; int c=0; /结构体 struct bookinfo char num10; char name20; char publish50; float price; book100,abook;/图书 struct studentinfo char number10; char name20; char major50; student100;/学生 struct lendinfo char stunum10; char booknum10; int year; int month; int day; lend100;/借阅信息

5、 /函数说明 void putin(struct bookinfo book);/图书信息录入 void putout(struct bookinfo book);/图书信息显示 void menu();/菜单 void putinstudent (struct studentinfo student);/学生信息录入 void putoutstudent (struct studentinfo student);/学生信息显示 void addbook(struct bookinfo book);/增加图书信息 void addstudent (struct studentinfo stud

6、ent);/增加学生信息 void searchbook(struct bookinfo book);/查询想要图书 void lendinfo(struct lendinfo leng);/借阅信息输入 void putlendinfo(struct lendinfo lend);/借阅信息查询 void alterbook(struct bookinfo book);/修改图书信息 void delbook(struct bookinfo book);/删除图书信息 /主函数 void main() menu(); /菜单 void menu() /struct bookinfo ; in

7、t k; system(“cls“); printf(“nnnnntttt 图书信息管理系统ttttn“); printf(“tt*n“); printf(“ttt1 -图书信息录入n“); printf(“ttt2 -图书信息显示n“); printf(“ttt3 -增加图书信息n“); printf(“ttt4 -修改图书信息n“); printf(“ttt5 -删除图书信息n“); printf(“ttt6 -查询图书信息n“); printf(“ttt7 -学生信息录入n“); printf(“ttt8 -学生信息显示n“); printf(“ttt9 -增加学生信息n“); prin

8、tf(“ttt10-输入借阅信息n“); printf(“ttt11-借阅信息查询n“); printf(“ttt0 -退出系统n“); printf(“tt*n“); printf(“tt 请输入对应编号进入对应系统n“); fflush(stdin); scanf(“%d“, switch(k) case 1:putin(book);break; case 2:putout(book);break; case 3:addbook(book);break; case 4:alterbook(book);break; case 5:delbook(book);break; case 6:sea

9、rchbook(book);break; case 7:putinstudent(student);break; case 8:putoutstudent (student);break; case 9:addstudent (student);break; case 10:lendinfo(lend);break; case 11:putlendinfo(lend);break; case 0:exit(1);break; default:printf(“n 序号不对n“); /1.图书信息录入 void putin(struct bookinfo book) int k=1; system

10、(“cls“); while(k!=0) printf(“请输入图书编号:n“); scanf(“%s“,booka.num); printf(“请输入书名:n“); scanf(“%s“,booka.name); printf(“请输入出版社:n“); scanf(“%s“,booka.publish); printf(“请输入单价:n“); scanf(“%f“, a+; printf(“n 是否继续录入(1.继续;0,退出录入):“); fflush(stdin); scanf(“%d“, if(k!=1) menu(); /2.图书信息显示 void putout(struct boo

11、kinfo book) int i,k; system(“cls“); printf(“编号t 书名t 出版社t 单价n“); for(i=0;i头文件,然后使用 system(“cls“);进行清屏。感觉这个函数十分实用,用了之后,明显感觉整个 函数的使用都变清楚了。 3、编写删除图书信息这个功能时,我的逻辑是:先找到删除的书,然后 把之后的图书信息提前一个位置。但是当我编译时发现,每次删除一个图书, 总是最后一个图书信息留着两个,当时感觉很疑惑。但是经过和同学的讨论发 现,删完之后,宏定义 a 必须减一,不然最后一个图书信息还会留着。 4、编写借书函数时,我发现,日期是个很难的操作,当我们

12、借书是 12 月时,年份会加一,当时没想到怎么编译,但是经过查阅信息后发现,我可以 假想了每个月是 30 天,这样编译会更加简单。 5、编写查询图书信息的功能时,我无法想到怎样让一个数组等于我想查 找的数组,但是询问老师后发现,原来我们学过这个功能,只需要定义一个 #include头文件,然后用 strcmp(s2,booki.name)=0 来进行实现 这个功能。 五 、改进意见与收获体会 当我编译完这个系统时,我感到其实还是有很多缺陷,比如说,计算还 书年份日期时,我只能假想到每月是 30 天,其实这个是不科学的,现实生活中 的日期是分 30,31 天的,并且还有闰年 2 月有 29 天这

13、种情况,总的来说还是不 完善的系统,但是现在我想到了用 switch 函数来实现,其实也是很简单的,不 要用 break,可以很明显的发现,妙用这种情况是可以很简单的计算日期的, 不管是不是闰年。如果这个函数加进去的话,我觉得就比较好了,这个是我的 改进意见。 说到收获和体会,我真的是感慨万千,第一,我发现了自己的不足和见识 的浅陋,每次老师都能很准确的发现到我的问题,但是我却到不到这种境界, 看来真的是学无止境啊,我还年轻,要学的东西还很多。第二,我深深体会到 了 c 语言的变化万千和博大精深,有的时候仅仅是一点变化,有时会发现编译 不出来,有时会发现,编译出来的东西和自己想象中的情况相差很大,我们还 需要更加深刻的去了解 c 语言,了解它的精妙之处。第三,我体会到了成功的 喜悦感和充实感,看到自己辛辛苦苦编译了 500 多行的程序大功告成时,心中 充满了一种兴奋,这么多行的程序在外人看来肯定会觉得很牛吧,哈哈。第四, 我学会了一种不畏困难的精神,回想到当时老师给我们这个要求时,心中充满 了不满和痛苦,感觉凭借自己学的东西,根本编译不出这么复杂的程序,但是 经过 5 天连续的编译和查找资料,终于慢慢的一层一层剥掉这神秘的面纱,最 后慢慢的发现,原来我们以前认为的问题其实都根本就不是问题。我想再以后 的学习中,再也不会这么畏惧 c 语言了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 事务文书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号