收藏 分销(赏)

图书信息管理系统课程设计报告——好的.doc

上传人:精*** 文档编号:2294980 上传时间:2024-05-26 格式:DOC 页数:19 大小:267.54KB 下载积分:8 金币
下载 相关 举报
图书信息管理系统课程设计报告——好的.doc_第1页
第1页 / 共19页
图书信息管理系统课程设计报告——好的.doc_第2页
第2页 / 共19页


点击查看更多>>
资源描述
图书信息管理系统课程设计报告——好的 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 19 个人收集整理 勿做商业用途 《图书信息管理系统》 课程设计报告 2009-—2010学年第二学期 学院:工商管理学院 专业:信息系统与信息管理专业 班级: 学号: 姓名: 目录 一、准备工作 二、系统功能简介 三、系统运行环境 四、功能划分,模块详细说明 五、运行结果说明 六、简要总结及自我评价 七、参考书目 一、 实验准备 做系统前,首先,自己详细看了《C程序设计教程》(教科书)的第十章《文件》,基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容,图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、数组、文件、函数等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理. 二、 功能简介 图书信息管理系统是对图书信息的基本管理,它包括:图书信息的输入、图书信息的修改及删除、图书信息的查询、图书信息的添加、图书信息的浏览。 使用模块化编程的方法每项功能有一个或多个函数组合来完成,对应如下: 图书信息的输入===èvoid enter() 图书信息的修改及删除==èvoid revise() 图书信息的查询===èvoid search() 图书信息的添加===èvoid add() 图书信息的浏览==èvoid list() 另外本程序运用动态存储、二进制进行存贮。 为了使程序变得更加明了设计另外一些函数加以辅助,如:input()函数、menu()函数、save()函数、load()函数、back()函数和face()函数等,这对于查询、删除、修改中非常重要. 三、系统与性环境 系统可以在Turbo C 2.0,硬件基本无要求,现在的计算机基本都可以运行该系统。 四、功能划分及详细说明 主要算法的设计: (1) 主函数的算法设计 开始 输入选择 退出 图书信息浏览函数 图书信息查询函数 图书信息修改函数 图书信息输入函数 结束 首先,运行程序,进入菜单,然后选择操作(运用swith语句),调用各子函数。在返回操作中运用while语句进行控制返回菜单。 (2) 各子函数的算法设计 1、 图书信息的输入函数 开始 语句 语句和输入函数 保存函数 For函数 返回函数 结束 假 真 Void enter() 首先,用void input()函数,再调用save()函数创建文件夹保存输入图书信息. 2、 图书信息的修改 void revise()首先,选择修改信息,输入要修改的书本号,再输入要要修改的选项及内容;若成功则printf("success!\n”);否则调用报错函数. 开始 读入函数 输入函数 是否相等 输出信息 选择表达式 资料1 资料2料2 资料3 资料4 资料5 资料6 资料7 选择 返回主菜单 结束 4、图书信息的查询 开始 选择方法 按书名查找 按作者查找 删除、修改 删除、修改 void search()选择查询方式 ,1按书名查询,2按作者查询, 然后定位,再调用输出函数; 3、 图书信息的浏览 开始 输出函数 结束 返回主菜单 void browse () 首先,输出所有图书的信息,并输出图书记录数,然后调用辅助函数进行菜单选择,操作完成后返回主菜单。 4、 图书信息的添加 开始 输入要添加的本数 输入函数 保存函数 返回函数 结束 void add() 首先,从文件中调用load()函数读入函数,再输入要添加的书本数,然后添加图书信息,并保存. 上机调试过程: 在调试过程中出现了许多的错误!特别是在查询、修改删除这2个函数的调上花费了很多时间,主要是文件的写入与读出以及菜单调试的问题,还有建立新的链接也出现问题,说明自己对程序的执行过程理解不够深刻。 注:具体调试过程,麻烦在编程时,编程时出现了许多未知的错误,虽然经过调试避免了,但没有记录。 五、测试结果说明 主菜单: 输入及显示浏览和查询页面: 修改页面:添加页面:基本上实现了题目所要求的函数功能,可以对图书的信息进行输入、浏览、查询、修改、添加等功能管理。另:本系统为全英文系统。 六、个人心得 通过本次课程设计,自己C语言编程的能力有了提高,特别是在文件、指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。 循环是C语言的重要方法,也是本程序的灵魂,它在本程序中既有“穿针引线"的作用,也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用循环过程中对循环进行了多方法的应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。 数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本程序中有很大的好处。 函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,但也有了一定的联系性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会,有了很大提高。 结构体的使用,为本程序提供了很大方便,也提高了程序的可读性,结构数组方便了对数据的管理. 文件的读取与存贮使数据可以保存下来,这也是在C语言的学习过程中没有进行教学的内容,在开始时遇到了不小的困难,但前期的准备工作做的还好,最终克服了。 另外、感觉到在做C语言作业时编的程序是 那样的简短(都不足1k)、儿现在自己编写的程序变大了,需要在编程方面进一步提高,同时提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。 七 、参考书目 1、C程序设计教程 谭浩强 清华大学出版社 2007.7 附:在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用. 图书信息管理系统程序设计C语言: 图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等.试设计一图书信息管理系统,使之能提供以下功能: v系统以菜单方式工作 v图书信息录入功能--输入 v图书信息浏览功能--输出 v查询和排序功能:(至少一种查询方式)--算法 l 按书名查询 l 按作者名查询 v图书信息的删除与修改(可选项) #include"stdio。h” #include”stdlib。h” #include"string.h" #include"conio.h” #define N 10 typedef struct system { long num; char name[20]; char writer[10]; char sort[10]; char publisher[20]; long time; double price; }BOOK; void input() /*定义录入函数*/ { int i; BOOK a; FILE *fp; system("cls"); if((fp=fopen(”e:\\filel”,"w”))==NULL) { printf("error!\n”);exit(1);} for(i=1;i〈=N;i++) { printf("\t请输入您所需书籍的登陆号:"); scanf("%ld",&a。num); printf(”\t请输入书名:"); scanf(”%s”,a.name); printf("\t请输入作者名:”); scanf(”%s”,a。writer); printf(”\t请输入分类号:"); scanf(”%s”,a.sort); printf("\t请输入出版单位:"); scanf("%s",a。publisher); printf(”\t请输入出版时间:"); scanf(”%ld”,&a.time); printf(”\t请输入该书的价格:”); scanf("%f",&a.price); fwrite(&a,sizeof(BOOK),1,fp); } fclose(fp); } void list() /*定义浏览函数*/ { BOOK a; FILE *fp; system(”cls"); if((fp=fopen("e:\\filel","r”))==NULL) {printf(”error!\n");exit(1);} printf("\n\n\n\n\n\n\tenter_num\tbook_name\twriter\tsort_num\tpublisher\tpublish_time\tprice\n\n"); while(fread(&a,sizeof(BOOK),1,fp)!=0) printf("\t%ld\t%s\t%s\t%s\t%s\t%ld\t%f”,a。num,a.name,a。writer,a。sort,a.publisher,a。time,a。price); fclose(fp); printf("\n\t press any key to continue。..”); getch(); } void search_by_name() /*定义按书名查询*/ { FILE *fp; int i; BOOK b[N]; char s2[20]; fp=fopen(”file","r"); if(fp==NULL) {printf("file open error!!\n");exit(1);} for(i=0;i<N;I++) fread(&b[i],sizeof(BOOK),1,fp); printf("请输入要查询的书名: "); scanf(”%s",s2); for(i=0;i if(strcmp(s2,b[i]。name)==0) { printf(” 书号 书名 作者 种类 出版商 出版日期 价格 \n"); printf(”%l0d%20s%10s%l0s%20s%l0d%f\n",&b[i].num,b[i]。name,b[i].writer,&b[i].sort,b[i]。publisher,&b[i]。time,&b[i]。price);} else printf(”cannot found!"); fclose(fp); } void search_by_writer() /*定义按作者名查询*/ { int i; FILE *fp; BOOK b[N]; char s3[20]; fp=fopen(”file”,"r"); if(fp==NULL) {printf("file open error!!\n");exit(1);} for(i=0;i<N;I++) fread(&b[i],sizeof(BOOK),1,fp); printf("请输入要查询的书的作者: ”); scanf(”%20s",s3); for(i=0;i if(strcmp(s3,b[i]。writer)==0) { printf(" 书号 书名 作者 种类 出版商 出版日期 价格 \n"); printf("%l0d%20s%10s%l0s%20s%l0d%f\n\n",&b[i].num,b[i].name,b[i]。writer,&b[i]。sort,b[i]。publisher,&b[i].time,&b[i]。price);} else printf(”cannot found!"); fclose(fp); } void search() /*定义查询函数*/ { int a; system("cls”); /*进行清屏*/ printf(”\t\t******************************\n”); printf("开始查询\n”); printf(”\t\t\t1—-—--—-—-——-—--search_by_name\n”); printf("\t\t\t2—————-—---————-search_by_writer\n”); printf(”\t\t\t0-—-—-—-—-—---——exit\n”); printf("\t\t******************************\n”) ; printf("\t\t请选择你想要的查询方式:"); scanf("%d”,&a); switch(a) {case 1:search_by_name();break; case 2:search_by_writer();break; case 0:return;} } void del() /*定义删除函数*/ { FILE *fp; long booknum; /*按登陆号查询*/ int i=0,k; BOOK b[N]; system("cls"); /*清屏*/ if((fp=fopen(”file","r"))==NULL) { printf(”error!\n");exit(1);} for(i=0;i〈N;I++) fread(&b[i],sizeof(BOOK),1,fp); fclose(fp); printf(”\n Please type in the number of the book you want to delete:”); scanf(”%d",booknum); for(i=0;i<N;I++) if(booknum==b[i].num) break; if(i〈N) for(k=i;k〈N;K++) b[k]=b[k+1]; else printf(”\n cannot found!\n"); fp=fopen(”file",”w"); if(fp==NULL) { printf(”\n error!\n”);return; } for(i=0;i<N—1;I++) fwrite(&b[i],sizeof(BOOK),1,fp); fclose(fp); } void revise() /*定义修改函数*/ { int i,k; char s1[20]; BOOK b[N]; FILE *fp; system("cls"); if((fp=fopen(”e:\\filel”,"w+"))==NULL) { printf(”error!”); exit(1);} for(i=0;i〈N;I++) fread(&b[i],sizeof(BOOK),1,fp); printf(”\t\t欢迎进入修改界面\n”); printf("\n\n\n\t\t请输入所要修改的图书名:\n”); gets(s1); for(i=0;i〈N;I++) if(strcmp(s1,b[i]。name)==0) {k=i;break;} if (i>=N) {printf(”未找到!"); exit(0);} printf(”\t\t请输入新登录号 图书名 作者 分类号 出版单位 出版时间 价格 数量\n”); scanf(”\t\t\t\t\t\t\t\t\t%ld\t%20s\t%10s\t%10s\t%20s\t%6.2f\t%d\n",&b[k]。num,b[k]。name,b[k]。writer,&b[k].sort,b[k].publisher,&b[k]。time,&b[k]。price); for(i=0;i<N;I++) fwrite(&b[i],sizeof(BOOK),1,fp); fclose(fp); printf(”修改成功!”); } void append() /*定义追加函数*/ {int i,n; BOOK a; FILE *fp; system(”cls”); if((fp=fopen("e:\\FILE”,”a”))==NULL) {printf(”error!\n");exit(1);} printf(”\n\n\t请输入追加图书的个数:”); scanf(”%d",&n); for(i=0;i〈N;I++) {printf (”\t请输入追加图书的登录号:"); scanf("%ld”,&a.num); printf("\t请输入追加图书的图书名:"); scanf("%20s”,a。name); printf("\t请输入追加图书的作者名:”); scanf("%10s",a。writer); printf("\t请输入追加图书的分类号:”); scanf("%10s”,a.sort); printf(”\t请输入追加图书的出版单位:”); scanf("%20s",a.publisher); printf(”\t请输入追加图书的出版时间:”); scanf(”%d”,&a.time); printf("\t请输入追加图书的单价:"); scanf(”%f",&a.price); fwrite(&a,sizeof(BOOK),1,fp); } fclose(fp); } void main() {int a; do {system("cls"); printf(” ☆☆☆老七的博客☆☆☆\n"); printf("\n”); printf(” ∮∮\n”); printf(”\n”); printf(”\n\n\n\n\n\t\t\t\t图书信息管理系统\t\t\t\t\n”); printf("\t\t*********************************************\n"); printf(”\t\t\t\t1 ——-————-—--——————-图书信息录入\n”); printf("\t\t\t\t2 ---———-——-———-----图书信息浏览\n"); printf(”\t\t\t\t3 --——-—--—-—--—-——-图书信息查询\n"); printf("\t\t\t\t4 -————---——---——--—图书信息删除\n”); printf("\t\t\t\t5 ——---—-----—--—-—-图书信息修改\n"); printf(”\t\t\t\t6 —--—-————--—-—-——-图书信息追加\n”); printf("\t\t\t\t0 ——-—-—-————---—--退出图书信息系统\n"); printf(”\t\t*********************************************\n"); printf("\t\tplease choose: ”); scanf(”%d”,&a); switch(a) {case 1:input();break; case 2:list();break; case 3:search();break; case 4:del();break; case 5:revise();break; case 6:append();break; case 0:exit(0); default:printf(”\n序号不对\n");} }while(a!=0); } 文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服