版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2014年第二阶段课程设计成果报告实训项目: 程序设计技术课程设计 学号:20130210470335 姓名:郑毓豪 专业: 电气工程及其自动化 实训日期:2014年6月 8 日至2014年6月20日指导教师: 舒蔚 实训成绩: 华东交通大学理工学院- 1 -一、 问题概述(对问题背景及主要实现的功能进行简要说明。)随着图书馆图书的不断增加,图书管理的难度也随之加大,一个好的图书馆图书信息管理系统,能够使图书管理工作简便,有条不紊。通过c语言学习,我们已经能够完成基本的c语言编程,此次实训,是将学习和实践结合,充分感受c语言解决实践问题的魅力。此次编写的图书馆信息管理系统,能够实现基本的图书管
2、理功能。它包括图书库的创建,打印图书信息表,录入新图书,修改图书信息,删除图书信息,借书,还书。图书库包含图书的各方面信息,编号,类型,作者,出版社,总数,剩余量等等,并且打印图书信息表。录入,修改,删除这些功能都是对图书库的操作。借书,还书这两项最重要的功能也都能很好的实现。把此系统应用于图书馆的图书管理,能使图书馆的各项工作便捷,可靠的完成。二、 系统目标 (主要是对系统技术目标和要求)欢迎界面、主菜单、系统管理功能、图书信息管理、借阅功能模块、其中系统管理功能包括系统管理员添加、删除、修改信息以及用管理员身份登录系统等功能。图书信息管理包括新增图书、修改图书、删除图书、等功能。借阅功能模
3、块包括借书功能、还书功能、查询已借图书、查询过期未还图书,其中借书还书功能可以按图书编号信息进行操作。三、 设计的过程及步骤1、需求分析(描述系统需求,既详细分析系统需求和功能)根据题目要求,应当把图书信息用结构体形式输入,再定义一个全局变量和文件指针进行整个程序的运行,然后把图书信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;在程序中需实现图书信息录入,浏览,查询,删除和修改等功能的操作,所以需要建立相应的模块来实现;另外还需提供键盘式选择菜单实现功能,在运行时达到所要目的。2、设计文件结构(设计文件结构,并扼要说明设计缘由)此系统根据所要实现的功能,使用的函数等综合考虑,设计
4、了两个,图书信息文件(tushu.red),借还书文件(borrow.red),录入新图书,修改,删除图书等一些操作时在图书信息文件上运行,借还书功能则在借还书文件上运行,同时也要在图书信息文件上运行。两个文件相互结合,使各个功能很好的实现了,运用c语言的文件功能,也是整个程序的主线。3、设计系统功能图(根据需求分析结果和文件结构,应用结构化分析与设计技术设计功能结构图,如下图所示)图书管理信息系统创建文件信息基本信息管理图书流通管理图书统计借书管理还书管理本月借出统计超期未还统计统计按期归还率按图书类别查询按书名查询按作者名查询图书查询图书管理信息系统图书输入与追加删除图书记录修改图书记录显
5、示图书信息借书统计报表 4、函数设计( 详细分析每一个子模块的子功能,定义主要的子函数原型,并对每一个函数的功能加以说明)此系统主要有7个功能,也就有主要的7个函数,他们分别是void shan() /删除图书信息void xiu() /修改图书信息void putin() /录入新图书void print() /打印图书信息表void returned() /还书void books() /创建图书文件void borrowed() /借书其中每一个函数都用到了两个结构体,它们分别是:struct tushu char bianhao110; char bianhao210; char le
6、ixing20; char shuming50; char chubanshe50; char writer20; long zongshu; long shengyu; shu;struct books char bianhao110; char bianhao210; long nian; long borrowmonth; long borrowday; long returnedmonth; long returnedday; long limittime; char student10; book;四、 实训成果(对自己的最后的实验成果进行概括)经过长达9天的编写,修改,运行,最后完
7、成时,预想的功能都能比较好的实现。下面是各个功能运行的界面:进入界面 :功能选择界面 :录入新图书界面 :还有各个功能各种界面,这里就不一一列出了。五、 实训心得与体会此次系统编程,我感受很多,从开始编程时的迷茫,到修改时的烦躁,再到运行时的无奈,最后是成功时无法表达的喜悦和兴奋。每一步都是自己努力走过来的,虽然这个过程比较辛苦,但是现在回过头去想想,这几天还是过得很有意义和价值的。大家都说编程最需要的是耐心,我这次是深有体会,程序刚开始编,满身都是信心和兴趣,到修改的时候,检查一遍又一遍,修改一次有一次还是无法成功运行,这个时候只有耐心才能坚持完成。同时,编程时,会发现许多以前学的概念都记错
8、了,这时候要找出课本重新温习,所以这也是一个不断学习的过程。还有,编程时不能太死板,要实现一个功能其实都会有很多种算法,我们应边做边学习新的方法。对于我的不足之处,要实现一个功能时,我总是第一遍编程实现后,就不愿意在深探究下去,这种惰性很不适合做编程工作。总而言之,通过此次c语言实践编程,使我对c语言的兴趣更加浓厚,也对c语言的实践应用更加了解,充分感受到了它的魅力,同时也明白了自身在这方面工作的优势和不足。六、 附录#include#include#includestruct tushu char bianhao110; char bianhao210; char leixing20; ch
9、ar shuming50; char chubanshe50; char writer20; long zongshu; long shengyu; shu;struct books char bianhao110; char bianhao210; long nian; long borrowmonth; long borrowday; long returnedmonth; long returnedday; long limittime; char student10; book;void shan() /删除图书信息 file *fp; int i=0,j,n,m,l; char bo
10、oknum20; struct tushu tu1000; if(fp=fopen(tushu.txt,r)=null) printf(can not open the tushu.txt.n); exit(0); while(fread(&tui,sizeof(shu),1,fp) i+; m=i; printf(要删除几本书:); scanf(%d,&n); getchar(); for(i=0;in;i+) printf(输入图书编号2:); gets(booknum); for(j=0;jm;j+) if(strcmp(booknum,tuj.bianhao2)=0) break; i
11、f(jm)for(l=0;lm;l+)if(strcmp(tuj.bianhao1,tul.bianhao1)=0)tul.zongshu-; tul.shengyu-; for(j;jm;j+) tuj=tuj+1; else printf(输入有误 重新输入n); i-; if(fp=fopen(tushu.txt,w)=null) printf(can not open the tushu.txt.n); exit(0); for(i=0;im-n;i+) fwrite(&tui,sizeof(shu),1,fp);printf(删除成功!);void xiu() /修改图书信息 fil
12、e *fp; int i=0,m,n; char booknum20,numchar20; struct tushu tu1000; if(fp=fopen(tushu.txt,r)=null) printf(can not open the borrow.txt.n); exit(0); while(fread(&tui,sizeof(shu),1,fp) i+; m=i; if(fp=fopen(tushu.txt,w)=null) printf(can not open the borrow.txt.n); exit(0); printf(要修改几本书:); scanf(%d,&n);
13、getchar(); for(i=0;in;i+) printf(输入要修改的图书编号2:); gets(booknum); for(i=0;im;i+) if(strcmp(booknum,tui.bianhao2)=0) break; if(im) printf(输入修改后的nn); printf(输入编号1:); gets(tui.bianhao1);printf(n); printf(编号2:); gets(tui.bianhao2);printf(n); printf(类型:); gets(tui.leixing);printf(n); printf(书名:); gets(tui.s
14、huming);printf(n); printf(出版社:); gets(tui.chubanshe);printf(n); printf(作者:); gets(tui.writer);printf(n); printf(总数:); gets(numchar);printf(n); tui.zongshu=atol(numchar); printf(剩余:); gets(numchar);printf(n); tui.shengyu=atol(numchar); else printf(输入有误n); for(i=0;im;i+) fwrite(&tui,sizeof(shu),1,fp);
15、 fclose(fp);void putin() /录入新图书 char numchar20; file *fp; int i=0,m,n; struct tushu tu1000; if(fp=fopen(tushu.txt,r)=null) printf(can not open the borrow.txt.n); exit(0); while(fread(&tui,sizeof(shu),1,fp) i+; m=i; if(fp=fopen(tushu.txt,w)=null) printf(can not open the borrow.txt.n); exit(0); for(i=
16、0;im;i+) fwrite(&tui,sizeof(shu),1,fp); printf(要录入几本书:); scanf(%d,&n); getchar(); for(i=0;in;i+) printf(n); printf(输入编号1:); gets(shu.bianhao1); printf(n); printf(编号2:); gets(shu.bianhao2); printf(n); printf(类型:); gets(shu.leixing); printf(n); printf(书名:); gets(shu.shuming); printf(n); printf(出版社:);
17、gets(shu.chubanshe); printf(n); printf(作者:); gets(shu.writer); printf(n); printf(总数:); gets(numchar); printf(n); shu.zongshu=atol(numchar); printf(剩余:); gets(numchar); printf(n); shu.shengyu=atol(numchar); fwrite(&shu,sizeof(shu),1,fp); fclose(fp);void print() /打印图书信息表 file *fp; if(fp=fopen(tushu.tx
18、t,r)=null) printf(can not open the tushu.txt.n); exit(0); puts(_); puts(-); puts(| 编号1 | 编号2 | 类型 | 书名 | 作者 | 出版社 | 总数 | 剩余 |); fseek(fp,0l,seek_set); while(fread(&shu,sizeof(shu),1,fp)=1) printf( %-9s%-10s%-10s%-10s%-10s%-10s%-10ld%-10ldn,shu.bianhao1,shu.bianhao2,shu.leixing,shu.shuming,shu.writer
19、,shu.chubanshe,shu.zongshu,shu.shengyu);void returned() /还书 file *fp; int i=0,m,flag=0,j; char booknum20; struct books book11000; if(fp=fopen(borrow.txt,r)=null) printf(can not open the borrow.txt.n); exit(0); while(fread(&book1i,sizeof(book),1,fp) i+; m=i; if(fp=fopen(borrow.txt,w)=null) printf(can
20、 not open the borrow.txt.n); exit(0); printf(输入要还的图书编号2:); gets(booknum); for(j=0;jm;j+) if(strcmp(booknum,book1j.bianhao2)=0)flag=1; break; if(flag) flag=0; printf(输入还书月份:); scanf(%ld,&book1i.returnedmonth); printf(输入还书日期:); scanf(%ld,&book1i.returnedday); getchar(); for(j=0;jm;j+)fwrite(&book1i,si
21、zeof(book),1,fp); elseprintf(输入有误n); fclose(fp);void books() /创建图书文件 file *fp; char numchar50,ch=y; if(fp=fopen(tushu.txt,wt)=null) printf(can not open the tushu.txt.n); exit(0); while(ch=y|ch=y) printf(n); printf(输入编号1:); gets(shu.bianhao1); printf(n); printf(编号2:); gets(shu.bianhao2); printf(n); p
22、rintf(类型:); gets(shu.leixing); printf(n); printf(书名:); gets(shu.shuming); printf(n); printf(出版社:); gets(shu.chubanshe); printf(n); printf(作者:); gets(shu.writer); printf(n); printf(总数:); gets(numchar); printf(n); shu.zongshu=atol(numchar); printf(剩余:); gets(numchar); printf(n); shu.shengyu=atol(numch
23、ar); fwrite(&shu,sizeof(shu),1,fp); do printf(have another book record(y/n)?:); gets(numchar); ch=numchar0; while(!(ch=y|ch=n|ch=y|ch=n); fclose(fp);void borrowed() /借书 struct tushu tu1000; struct books book11000; file *fp,*fq; char numchar50; int i=0,j,m1,m2,n,flag=0,x;printf(借几本书:);scanf(%d,&x);ge
24、tchar(); if(fq=fopen(tushu.txt,r)=null)printf(can not open the tushu.txt.n); exit(0); while(fread(&tui,sizeof(shu),1,fq)i+; m1=i; if(fp=fopen(borrow.txt,r)=null) printf(can not open the borrow.txt.n); exit(0); while(fread(&book1i,sizeof(book),1,fp) i+; m2=i; for(i=0;ix;i+)printf(n);printf(输入编号2:); g
25、ets(numchar); for(j=0;jm1;j+)if(strcmp(numchar,tuj.bianhao2)=0)n=j;flag=1; break; if(flag)printf(n);printf(输入正确nn);flag=0;strcpy(book.bianhao2,numchar);printf(输入编号1); gets(book.bianhao1); printf(n); printf(借书年份:); gets(numchar); printf(n); book.nian=atol(numchar); printf(借书月份:); gets(numchar); print
26、f(n); book.borrowmonth=atol(numchar); printf(借书日期:); gets(numchar); printf(n); book.borrowday=atol(numchar); printf(还书月份:); gets(numchar); printf(n); book.returnedmonth=atol(numchar); printf(还书日期:); gets(numchar); printf(n); book.returnedday=atol(numchar); printf(期限:); gets(numchar); printf(n); book
27、.limittime=atol(numchar); printf(学生学号:); gets(book.student); printf(n); if(fp=fopen(borrow.txt,w)=null)printf(can not open the borrow.txt.n); exit(0);fwrite(&book,sizeof(book),1,fp); for(j=0;jm2;j+)fwrite(&book1j,sizeof(book),1,fp);for(j=0;jm1;j+)if(strcmp(tun.bianhao1,tuj.bianhao1)=0)tuj.shengyu-; if(fq=fopen(tushu.txt,w)=null)printf(can not open the tushu.txt.n); exit(0);for(j=0;jm1;j+)fwr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省长春市六中2025届高一物理第一学期期中检测模拟试题含解析
- GB/T 37719.3-2024粮油储藏储粮害虫检验辅助图谱第3部分:书虱科
- 2024年仓库租赁合同范本照片
- 大班幼儿评语
- 经典话朋友圈说说心语
- 2024年气模鼓风机项目资金筹措计划书代可行性研究报告
- 《QCC对策拟定》课件
- 2024-2025年白酒师:制作、品评、勾调职业技能资格知识考试题库与答案
- 【语文课件】可爱的草塘课件
- 【语文课件】小学语文诗歌欣赏课件
- 高二之路-我们的挑战与成长
- 与医保有关的信息系统相关材料-模板
- 苏教版小学科学五年级下册 1 大脑(市一等奖)
- 大面积高荷载SOG预应力无缝地坪施工工法
- 社会网络分析:大数据揭示社交网络结构与趋势
- 行政诉讼法知识讲座
- 旅游定制师行业分析
- 信息流教学课件
- Unit+8大单元教学整体单元分析 人教版九年级英语全册
- 《宿舍卫生班会》课件
- PE管道定向钻穿越公路工程施工方案
评论
0/150
提交评论