数据结构C语言版课程设计.doc_第1页
数据结构C语言版课程设计.doc_第2页
数据结构C语言版课程设计.doc_第3页
数据结构C语言版课程设计.doc_第4页
数据结构C语言版课程设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构C语言版课程设计题目:图书管理系统 日期:2011-6-24年级: 班级: 组名:组长:组员:) 一实习目的通过实习,了解并初步掌握设计、实现较大系统的完整过程,包括系统分析、编码设计、系统集成、以及调试分析,熟练掌握数据结构的选择、设计、实现以及操作方法,为进一步的应用开发打好基础。2 问题描述 本图书管理系统可以实现采编入库,登记读者,借阅登记,还书管理,查询图书信息,查询读者信息等信息。三需求分析 本图书管理系统有七个主要功能。即退出系统,采编入库,登记读者,借阅登记,还书管理,查询图书信息,查询读者信息。所有的功能采用模块化的方式开发。 四概要设计 系统用到的抽象数据类型定义: -书本信息结构体:typedef struct char number100;/图书编号char name20;/书名char author20;/作者int count;/书的现有本数int boo;/库存int jinc;/变动本数char backd10;/还书日期mybook; -读者信息结构体:typedef struct char names20;/读者姓名char numb10;/读者书证号char borrd10;/借书日期char backd10;/还书日期int number;/ 所借书的数量char numbeers100;/图书编号mybook mu10;student; mybook book100;/mybook *my; int booknum;/书的种类 int stunum;/读者人数 student stu100; void save();/保存图书信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu(); 系统中子程序及功能要求的说明: 新书入库模块:包括输入并保存图书编号,图书名称,图书作者,图书数量等信息。 查询图书信息模块:输出图书的编号、名称、作者、现有、库存等图书信息。 登记读者模块:要求包括输入并保存读者书证号及姓名。 借书登记模块:输入结束的读者书证号,所借书的编号以及要归还的日期,并保存。 查阅读者信息模块:显示读者书证号和姓名,以及所借图书的编号的还书日期。还书模块:输入要还书的读者编号,和要还的书的编号,并且在库存中加载此书。退出系统模块:保存所有操作! 各程序模块之间的调用关系 1、主函数: main(),进入图书管理系统,调用menu()菜单方法。 2、菜单方法:menu(),首先会执行清屏的功能;然后再选择菜单:选择0,退出图书管理系统;选择1,调用enter1()方法进入采编入库;选择2,调用signr1();方法进入登记读者;选择3,调用signb1()方法进入借阅登记;选择4,调用backb()方法进入还书管理 ;选择5,调用checkb()方法进入查询图书信息;选择6,调用checkr()方法进入查询读者信息;如果输入错误,安任意键可以回到菜单。 3、 enter1():对图书进行采编入库。书名相同分为一类; 4、 signr1():对读者进行登记。并用读者证号判断读者是否已经注册。 5、 signb1():借阅登记。根据编号借书。如果读者没有注册,不能借书。借了一次书,书库中图书的现存量会减1。 6、 backb():还书管理。还了一次书,书库现存量增加1 7、 checkb():查询图书信息。可以显示每一种书的图书编号、图书名称、图书作者、现有量、库存量。 8、 checkr():查询读者信息。根据读者证号,查询,已借书的信息,和个人信息。 9、 save():保存图书信息。 10、 saved():保存读者信息; 五详细设计图书管理系统的伪码描述如下:1、 for(j=0;j=booknum) /条件成立,则该图书库存和现存就是入库数量 bookbooknum.boo=bookbooknum.jinc; bookbooknum.count=bookbooknum.jinc; booknum+;2、 for(j=0;j=stunum) stunum+;/如果条件成立,则证号还没有注册,将注册过的读者数加1。3、 还书时,从借书信息中找到该书的信息的数组,然后改变信息 if(!strcmp(booki.number,stuj.muk.number)stuj.muk=stuj.muk+1;4、 for(i=0;i 系统主界面按回车键进入主界面采编入库:查阅图书信息登记读者借书登记查阅阅读者信息图书编号aa50减少1本,相应的在查询图书信息功能中体现出如下:还书管理:退出系统7 使用说明进入主界面然后再选择菜单中的数字:选择1,进入采编入库;选择2,进入登记读者;选择3,进入借阅登记;选择4,进入还书管理 ;选择5,进入查询图书信息;选择6,进入查询读者信息;选择0,退出图书管理系统; 如果输入错误,按回车键可以回到菜单。八附录:测试数据 读者姓名:mm 读者书证号:123 图书名称:aa 图书数量:50 图书作者:aaaa 图书编号:aa50 图书名称:bb 图书数量:50 图书作者:bbbb 图书编号:bb50 图书名称:cc 图书数量:50 图书作者:cccc 图书编号:cc509 C语言代码实现#include #include#include#define MAXSIZE 100 /最大值定义为100#define yong_SIZE 100/图书证使用者最大值定义为100/*-书本信息结构体-*/typedef struct char number100;/图书编号char name20;/书名char author20;/作者int count;/书的现有本数int boo;/库存int jinc;/变动本数char backd10;/还书日期mybook;/*-读者信息结构体-*/typedef struct char names20;/读者姓名char numb10;/读者书证号char borrd10;/借书日期char backd10;/还书日期int number;/ 所借书的数量char numbeers100;/图书编号mybook mu10;student; mybook book100;/mybook *my; int booknum;/书的种类 int stunum;/读者人数 student stu100; void save();/保存图书信息 void saved(); void enter1();void signr1();void signb1();void backb();void checkb();void checkr();void menu();/*-保存方法-*/void save()/保存图书信息。FILE *fp;if(fp=fopen(library.txt,wb)=NULL)printf(n不能保存图书信息n);fwrite(book,sizeof(mybook),8,fp);fclose(fp);/*-保存读者信息方法-*/void saved()FILE *fp;if(fp=fopen(reader.txt,wb)=NULL)printf(n不能读取图书信息n);fwrite(stu,sizeof(student),8,fp);fclose(fp);/*-采编入库方法-*/void enter1()char a;int j;printf(n图书名称:);scanf(%s,);printf(图书数量:);scanf(%d,&bookbooknum.jinc);printf(图书作者:);scanf(%s,bookbooknum.author);printf(图书编号:);scanf(%s,bookbooknum.number);for(j=0;j=booknum) bookbooknum.boo=bookbooknum.jinc;bookbooknum.count=bookbooknum.jinc;booknum+;fflush(stdin);save();fflush(stdin);printf(n新书入库完毕!n按任意键继续下一步操作n);scanf(%c,&a);menu();/*-登记读者方法-*/void signr1()char a;int j;printf(n读者书证号:);scanf(%s,stustunum.numb);printf(n读者姓名:);scanf(%s,s);for(j=0;j=stunum) stunum+;saved();fflush(stdin);printf(n读者信息初始化完毕!按任意键继续下一步操作n);scanf(%c,&a);menu();/*-借阅登记方法-*/void signb1()char a;int i,j;student *my=(student*)malloc(sizeof(student);printf(n借书模块n);printf(n请输入借书的读者书证号:);scanf(%s,my-numb);for(j=0;jnumb,stuj.numb) printf(n请输入你要借的书的编号:);scanf(%s,stuj.mustuj.number.number);for(i=0;i=booknum)printf(n没有编号为%s的书!n,booki.number);break;break;if(j=stunum) printf(n对不起!n您还没有注册,不能借书!n);printf(按任意键继续下步操作);scanf(%c,&a);menu();/*-还书管理方法-*/void backb() char a;int i,j,k;student *my=(student*)malloc(sizeof(student);printf(tt你已进入还书模块.n); printf(n请输入还书的读者证号:);scanf(%s,my-numb); for(j=0;jnumb,stuj.numb) printf(n请输入读者还书的编号:);scanf(%s,stuj.numbeers);for(i=0;ibooknum;i+) if(!strcmp(booki.number,stuj.numbeers) booki.count+; for(k=0;kbooknum)printf(n输入错误!n);break;if(j=stunum) printf(n对不起!n您还没有注册!n);printf(n按任意键继续下步操作n); scanf(%c,&a);menu();/*-查询图书信息方法-*/void checkb()int i;char a;printf(n图书编号t图书名称t图书作者t现有t库存n);for(i=0;inumb);for(i=0;inumb,stui.numb) )printf(n读者姓名:%s,s);for(j=0;jstui.number;j+ )printf(n图书编号:%stt还书日期:%sn, stui.muj.number,stui.muj.backd); break;elseprintf(n很抱歉,没有该读者的信息!n);break;fflush(stdin);printf(n读者信息打印完毕!按任意键继续下一步操作n);scanf(%c,&a);menu();/*-菜单方法-*/void menu() char c;int a;system(cls); printf(ntt*); printf(ntt* 0-退出系统 *); printf(ntt* 1-采编入库 *); printf(ntt* 2-登记读者 *); printf(ntt* 3-借阅登记 *); printf(ntt* 4-还书管理 *); printf(ntt* 5-查询图书信息 *); printf(ntt* 6-查询读者信息 *); printf(ntt* *);printf(ntt请选择相应的代码:); scanf(%d,&a); getchar(); printf(n);/system(cls);清屏switch(a) case 0:/退出系统system(cls);/清屏printf(n文件保存成功!n);printf(n欢迎下次使用本系统!n);break;case 1:/采编入库system(cls);/清屏printf(n新书入库模块:nnn);printf(n请输入新书信息:n);printf(包括书号,书名,数量n);enter1();break;case 2:/登记读者system(cls);/清屏printf(n读者初始化开始,请输入读者信息n);printf(包括书证号,姓名n);printf(n请输入读者信息n);signr1();break;case 3:/借阅登记system(cls);/清屏printf(n借书模块n);signb1();break;case 4:/还书管理 system(cls);/清屏printf(n还书模块n);backb();break;cas

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论