图书馆信息管理系统实验报告内容摘要:

天连续编程,我也积累了不少以前没有的经验,遇到错误也不那么惧怕了, 还从 一些同学那里学到了不少编程技巧和好习惯,不得不说我得感谢学校给我们这样一个连续足够的实践来强化 C 语言编程能力。 而且我越来越对编程有兴趣了,当程序正常运行那一刻真恨不得对全世界人说我成功了。 现在我再说说本次课程设计我的心得体会 : 课堂上要讲授许多关于 c 语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。 然而要使用 c 语言这个工具解决实际问题,又必须掌握它。 通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握 c 语言的语法规定。 对于 一些内容自己 认为在课堂上听懂了,但上机实践中 才发现问题很多。 也只有上机操作才能认识到自己课本学的与实践的差距。 开 始 选择修改项 是否修改 输出 修改信息 是否继续 结 束 开 始 输入新信息 是否继续 输出新信息 结 束 开 始 选择删除项 是否删除 输出剩余信息 是否继续 结 束 是 否 是 否 是 是 否 否 是 否 然而 学习 c 语言不能停留在学习它的语法规则,而是利用学到的知识编写 c 语言程序,解决实际问题。 也就是 把 c 语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解 决问 题。 也 只有通过上机才能检验自己是否掌握 c语言、自己编写的程序是否能够正确地解题。 一个 c 语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。 所谓 环境 就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能 进行程序开发工作。 通过上机实验,熟练地掌握 c 语言开发环境,为以后真正编写计算机程序解决实际问题打下基础。 同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。 完成程序的编写,决不意味着万事大吉。 你认为万无一失的程序,实际上机运行时可能不断出现麻烦。 如编译程序检测出一大堆错误。 有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。 开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。 程序的调试是一个技巧性很强的工作,对于初学者来说,尽快 掌握程序调试方法是非常重要的。 有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。 上机是学好程序语言的必经之路,也是最快捷的,即使花费一整天时间来看书可能还不如安安心心在那里编写几个程序更能理解所学的东西。 通过本次课程设计我认识到学习是个积累的过程,只有有了量的积累才可能会有质的飞跃,多实践远胜于空想,没有做不到,只有不想做。 参考文献: C 语言程序设计 (第二版) 王曙燕 /主编 科学出版社 深入体验 C 语言项目开发 薛小龙 /主编 清华大学出版社 C 语言程序 设计习题与实验指导 王曙燕 /主编 科学出版社 附录: 源代码 (略,详见电子版实验报告) include include include include define PRINT1 printf(*****************************************************************************\n) define PRINT2 printf(图书编号 图书名称 图书作者 图书类型 图书出版社 图书出版时间 (年 月 日 )图书数量 \n) define PRINT3 printf( %d %s %s %s %s %d%d%d %d\n,book[i].num, book[i].name,book[i].writer,book[i].type,book[i].publish,book[i].ear,book[i].,book[i].,book[i].amount) define PAGE 3 define MAX 300 int sum。 //用来记录图书数目 (全局变量) struct DATE//定义日期结构体类型 { int year。 int month。 int day。 }。 struct BOOK//定义图书结构体类型 { int num。 //图书编号 char name[10]。 //图书名称 char writer[8]。 //图书作者 char type[10]。 //图书类型 char publish[40]。 //图书出版社 struct DATE publish_time。 //图书出版时间 int amount。 //图书数量 }book[MAX]。 //存放 MAX 个图书信息记录的结构体数组 //录入模块 void input() { int i=0,s=MAX。 char choice。 printf(\n\n **** 录入图书信息 **** (最多 %d 种 )\n,s)。 printf( *******************************\n)。 do { printf(\n 第 %d 种图书 ,i+1)。 printf(\n ★输入图书编号 :)。 scanf(%d,amp。 book[i].num)。 if(book[i].num==0) break。 printf(\n ★输入图书名称 :)。 scanf(%s,book[i].name)。 printf(\n ★输入图书作者 :)。 scanf(%s,book[i].writer)。 printf(\n ★输入图书类型 :)。 scanf(%s,book[i].type)。 printf(\n ★输入出版社 :)。 scanf(%s,book[i].publish)。 printf(\n ★出版时间 (yyyymmdd):)。 scanf(%d%d%d,amp。 book[i].,amp。 book[i].,amp。 book[i].)。 printf(\n ★输入图书总量 :)。 scanf(%d,amp。 book[i].amount)。 i++。 printf(\n ☆ 要继续输入吗 ?(Y/N):)。 choice=getch()。 if(choice==39。 N39。 ||choice==39。 n39。 ) break。 }while(iMAX)。 printf(\n ****%d 种图书信息输入完毕 !****\n,i)。 sum=i。 printf(\n 按任意键返回主菜单 !)。 } //保存模块 void save() { FILE *fp。 int i=0。 char filename[10]。 printf(\n 输入要保存的文件名称 :)。 scanf(%s,filename)。 if ( (fp=fopen(filename, wb)) == NULL) { printf(\n\n****写文件错误 !****\n\n)。 } if(fwrite(amp。 book[i],sizeof(book[MAX]),1,fp)!=1) printf(****写文件错误 !****\n)。 fclose(fp)。 } //读取模块 void read() { FILE *fp。 int i=0。 char filename[10]。 printf(\n 输入要保存的文件名称 :)。 scanf(%s,filename)。 if ( (fp=fopen(filename, r)) == NULL) { printf(\n\n****读文件错误 !****\n\n)。 } while(!feof(fp)) { fread(amp。 book[i],sizeof(book[MAX]),1,fp)。 if(book[i].num==0) break。 else i++。 } fclose(fp)。 sum=i。 } //输出模块 void output() { int i=0,j=0,page=1。 system(cls)。 //清屏 printf(\n\n ****图书信息表 **** 第 %d 页 \n\n,page)。 PRINT2。 PRINT1。 do { if(book[i].num!=0) { j++。 if(j%PAGE!=0) { PRINT3。 PRINT1。 } else { PRINT3。 PRINT1。 if(book[i+1].num!=0) { printf(按任意键继续 !)。 printf(\n\n **** 图书信息表 **** 第 %d 页\n\n,++page)。 PRINT2。 PRINT1。 } } } i++。 } while(book[i].num!=0)。 printf(\n)。 printf(按任意键返回主菜单 !)。 } /***** 更 新 图 书 信 息 模 块*****/ //删除模块 void del() { int i,j,del_num,b=0。 read()。 printf( 输出要删除的图书编号 :)。 scanf(%d,amp。 del_num)。 for(i=0。 isum。 i++) { if(book[i].num==del_numamp。 amp。 book[i].num!=0) {for(j=i。 jsum。 j++) {book[j]=book[j+1]。 } sum。 break。 } else b++。 } PRINT1。 PRINT2。 for(i=0。 isum。 i++) {PRINT3。 printf(\n)。 } if(sum==b) { printf( 该图书不存在 )。 printf( 按任意键返回 )。 } } //添加模块 void append() { int i,flag=0。 char choice。 i=sum。 read()。 printf(\n\n 添加一种新图书 \n)。 do { printf(\n ★新图书编号 :)。 scanf(%d,amp。 boo。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。