1、图书信息管理系统课程设计报告好的 作者: 日期:19 个人收集整理 勿做商业用途图书信息管理系统课程设计报告2009-2010学年第二学期学院:工商管理学院专业:信息系统与信息管理专业班级:学号:姓名:目录一、准备工作二、系统功能简介三、系统运行环境四、功能划分,模块详细说明五、运行结果说明六、简要总结及自我评价七、参考书目一、 实验准备做系统前,首先,自己详细看了C程序设计教程(教科书)的第十章文件,基本自学会了文件的相关内容,理解了相关函数的用法和作用;另,上网查询了很多相关资料,还有找了很多相关的系统,都详细的看了一遍,加深了对C的理解以及对文件的相关内容进一步理解。学习了C语言的内容,
2、图书信息管理系统有助于C语言学习的进一步巩固,在本系统可以增强对指针、数组、文件、函数等基本知识的进一步理解。另外图书信息管理系统也是学校常用的基本系统之一,它有助于学校对图书馆书籍的基本管理.二、 功能简介 图书信息管理系统是对图书信息的基本管理,它包括:图书信息的输入、图书信息的修改及删除、图书信息的查询、图书信息的添加、图书信息的浏览。使用模块化编程的方法每项功能有一个或多个函数组合来完成,对应如下:图书信息的输入=void enter() 图书信息的修改及删除=void revise()图书信息的查询=void search() 图书信息的添加=void add() 图书信息的浏览=v
3、oid list()另外本程序运用动态存储、二进制进行存贮。为了使程序变得更加明了设计另外一些函数加以辅助,如:input()函数、menu()函数、save()函数、load()函数、back()函数和face()函数等,这对于查询、删除、修改中非常重要.三、系统与性环境系统可以在Turbo C 2.0,硬件基本无要求,现在的计算机基本都可以运行该系统。四、功能划分及详细说明主要算法的设计:(1) 主函数的算法设计开始输入选择退出图书信息浏览函数图书信息查询函数图书信息修改函数图书信息输入函数结束首先,运行程序,进入菜单,然后选择操作(运用swith语句),调用各子函数。在返回操作中运用wh
4、ile语句进行控制返回菜单。(2) 各子函数的算法设计1、 图书信息的输入函数开始语句语句和输入函数保存函数For函数返回函数结束假真Void enter() 首先,用void input()函数,再调用save()函数创建文件夹保存输入图书信息. 2、 图书信息的修改 void revise()首先,选择修改信息,输入要修改的书本号,再输入要要修改的选项及内容;若成功则printf(success!n”);否则调用报错函数.开始读入函数输入函数是否相等输出信息选择表达式资料1资料2料2资料3资料4资料5资料6资料7选择返回主菜单结束4、图书信息的查询 开始选择方法按书名查找按作者查找删除、修
5、改删除、修改void search()选择查询方式 ,1按书名查询,2按作者查询, 然后定位,再调用输出函数;3、 图书信息的浏览开始输出函数结束返回主菜单 void browse () 首先,输出所有图书的信息,并输出图书记录数,然后调用辅助函数进行菜单选择,操作完成后返回主菜单。4、 图书信息的添加开始输入要添加的本数输入函数保存函数返回函数结束void add() 首先,从文件中调用load()函数读入函数,再输入要添加的书本数,然后添加图书信息,并保存.上机调试过程:在调试过程中出现了许多的错误!特别是在查询、修改删除这2个函数的调上花费了很多时间,主要是文件的写入与读出以及菜单调试的
6、问题,还有建立新的链接也出现问题,说明自己对程序的执行过程理解不够深刻。注:具体调试过程,麻烦在编程时,编程时出现了许多未知的错误,虽然经过调试避免了,但没有记录。五、测试结果说明主菜单: 输入及显示浏览和查询页面:修改页面:添加页面:基本上实现了题目所要求的函数功能,可以对图书的信息进行输入、浏览、查询、修改、添加等功能管理。另:本系统为全英文系统。六、个人心得通过本次课程设计,自己C语言编程的能力有了提高,特别是在文件、指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。循环是C语言的重要方法
7、,也是本程序的灵魂,它在本程序中既有“穿针引线的作用,也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用循环过程中对循环进行了多方法的应用也是一个“亮点”,它使程序变得结构合理,通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本程序中有很大的好处。函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,但也有了一定的联系性,一个
8、函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会,有了很大提高。结构体的使用,为本程序提供了很大方便,也提高了程序的可读性,结构数组方便了对数据的管理.文件的读取与存贮使数据可以保存下来,这也是在C语言的学习过程中没有进行教学的内容,在开始时遇到了不小的困难,但前期的准备工作做的还好,最终克服了。另外、感觉到在做C语言作业时编的程序是 那样的简短(都不足1k)、儿现在自己编写的程序变大了,需要在编程方面进一步提高,同时提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。七 、参考书目1、C程序设计教程 谭浩强 清华大学出版社 200
9、7.7附:在编写本程序时,在网上寻找的参考程序起到了很大的启发与参考作用.图书信息管理系统程序设计C语言:图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等.试设计一图书信息管理系统,使之能提供以下功能:v系统以菜单方式工作v图书信息录入功能输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法l 按书名查询l 按作者名查询v图书信息的删除与修改(可选项)includestdio。h”include”stdlib。h”includestring.hincludeconio.h”#define N 10typedef struct system long num
10、;char name20;char writer10;char sort10;char publisher20;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请
11、输入作者名:”);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”)=
12、NULL)printf(”error!n);exit(1);printf(nnnnnntenter_numtbook_nametwritertsort_numtpublishertpublish_timetpricenn);while(fread(&a,sizeof(BOOK),1,fp)!=0)printf(tldt%st%st%ststldt%f”,a。num,a.name,a。writer,a。sort,a.publisher,a。time,a。price);fclose(fp);printf(nt press any key to continue。.”);getch();void s
13、earch_by_name() /定义按书名查询/ FILE fp;int i;BOOK bN;char s220;fp=fopen(”file,r);if(fp=NULL)printf(file open error!n);exit(1);for(i=0;iN;I+)fread(bi,sizeof(BOOK),1,fp);printf(请输入要查询的书名: );scanf(”s,s2);for(i=0;iif(strcmp(s2,bi。name)=0) printf(” 书号 书名 作者 种类 出版商 出版日期 价格 n);printf(”l0d20s10s%l0s%20s%l0dfn,bi
14、.num,bi。name,bi.writer,&bi.sort,bi。publisher,&bi。time,bi。price);else printf(”cannot found!);fclose(fp);void search_by_writer() /定义按作者名查询*/ int i;FILE *fp;BOOK bN;char s320;fp=fopen(”file”,r);if(fp=NULL)printf(file open error!!n);exit(1);for(i=0;iN;I+)fread(&bi,sizeof(BOOK),1,fp);printf(请输入要查询的书的作者:
15、”);scanf(”%20s,s3);for(i=0;iif(strcmp(s3,bi。writer)=0) printf( 书号 书名 作者 种类 出版商 出版日期 价格 n);printf(l0d%20s%10s%l0s20sl0dfnn,bi.num,bi.name,bi。writer,&bi。sort,bi。publisher,&bi.time,&bi。price);else printf(”cannot found!);fclose(fp);void search() /定义查询函数*/ int a;system(cls”); /进行清屏*/printf(”tt*n”);printf
16、(开始查询n”);printf(”ttt1-search_by_namen”);printf(ttt2-search_by_writern”);printf(”ttt0-exitn”);printf(tt*n”) ;printf(tt请选择你想要的查询方式:);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 bN;
17、system(cls); /*清屏/if(fp=fopen(”file,r))=NULL) printf(”error!n);exit(1); for(i=0;iN;I+)fread(bi,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;iN;I+)if(booknum=bi.num) break;if(iN)for(k=i;kN;K+)bk=bk+1;else printf(”n canno
18、t found!n);fp=fopen(”file,”w);if(fp=NULL) printf(”n error!n”);return; for(i=0;i=N)printf(”未找到!); exit(0);printf(”tt请输入新登录号 图书名 作者 分类号 出版单位 出版时间 价格 数量n”);scanf(”ttttttttt%ldt%20st10st%10st20st%6.2ft%dn,&bk。num,bk。name,bk。writer,&bk.sort,bk.publisher,&bk。time,&bk。price);for(i=0;iN;I+)fwrite(&bi,sizeof
19、(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(”nnt请输入追加图书的个数:”);scanf(”%d,n);for(i=0;iN;I+)printf (”t请输入追加图书的登录号:);scanf(ld”,&a.num);printf(t请输入追加图书的图书名:);scanf(%20s”,a。name);printf(t
20、请输入追加图书的作者名:”);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;dosystem(cls);printf(” 老七的博客n);pri
21、ntf(n”);printf(” n”);printf(”n”);printf(”nnnnntttt图书信息管理系统ttttn”);printf(tt*n);printf(”tttt1 -图书信息录入n”);printf(tttt2 -图书信息浏览n);printf(”tttt3 -图书信息查询n);printf(tttt4 -图书信息删除n”);printf(tttt5 -图书信息修改n);printf(”tttt6 -图书信息追加n”);printf(tttt0 -退出图书信息系统n);printf(”tt*n);printf(ttplease 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);文档为个人收集整理,来源于网络文档为个人收集整理,来源于网络