C语言课程设计-图书信息管理系统.doc_第1页
C语言课程设计-图书信息管理系统.doc_第2页
C语言课程设计-图书信息管理系统.doc_第3页
C语言课程设计-图书信息管理系统.doc_第4页
C语言课程设计-图书信息管理系统.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

院系: 姓名:学号:班号: 指导教师: 日期:2010年9月题目:图书信息管理系统一、需求分析:1、图书管理信息包括:登录号,书名,作者号,分类号,出版单位,出版时间,价格等。设计图书管理系统。2、程序的系统功能:(1)、系统以菜单方式工作;(2)、图书信息录入功能;(3)、图书信息浏览功能;(4)、图书信息查询功能;(5)、图书信息删除与修改。3、测试数据(后附)。二、概要设计:1:本系统包括两个抽象数据:图书库链表和借书者链表。(1)定义图书链表类型为:ADT Abook数据对象 D=bi|bi=Booktype,i=1n n=o数据关系 R=|(bi-1,bi)=D,i=2n基本操作:Insert(n)操作结果:建立一个长度为n的链表或插入n个新结点。Del(n)操作结果:从已建立链表中删除n个结点。Print( )操作结果:输出已建立链表。Search( )操作结果:按要求查找并输出已建立链表中的结点。Borrow( )操作结果:按要求改变已建立链表中某一结点的相关信息 。return( ) 操作结果:按要求改变已建立链表中某一结点的相关信息 。(2)定义图书链表类型为:ADT Aborrow数据对象 D=ri|ri|borrowtype,i=1n n=1数据关系 R=|ri-1,ri=D,i=2n基本操作:creat(n) 操作结果:建立一个长度为n的链表。Insert(n)操作结果:插入n个新结点到已建立链表中。Remove(n)操作结果:从已建立链表中删除n个结点。2:主程序的流程:1选择系统(1)、录入图书信息(2)、浏览图书信息(3)、图书信息查询功能:1按登录号查询2按书名查询3按作者名查询4按分类号查询5按出版单位查询6按价格查询(4)、图书信息删除与修改1删除2修改(0)、返回图书信息管理系统 返回图书信息删除与修改图书信息浏览图书信息查询图书信息录入按书名查找三、详细设计:struct book char dlnum10; /*登录号/* char name50; /*书名/* char writer20; /*作者名/* char flnum10; /*分类号/* char pressname50; /*出版单位/* char presstime20; /*出版时间/* char price10; /*价格/*booksN; 四、调试分析1在最初进行模块划分是未将借书人信息管理作为一个单独摸块,致使调试时无法明确管理结借书者信息,造成书目链表混乱,重新分配后解决了这个问题2 原先想进行中文书名及人命输入输出,但由于未能找到相关信息资料,无法完成该操作,最终放弃该设计3 最初我们曾规定了一些变量以及结构体,但随着设计的进行深化,最初的结构体及变量无法满足需要,致使调试时出现不少混乱,后来我们重新规定了一下,解决了这些问题;4 程序的串联我们采取了循环控制与选择结构相结合的结构很好地解决了系统长时间运行及循环执行命令的问题,使演示系统现实化。五、测试结果:1、 在windows状态下,2、 执行TC文件,3、 进入系统操作界面。4、 选择系统选项,5、 进行图书管理操作。进入后根据提示信息可进行。0退回界面。 六、用户使用说明书:选择操作类型,例选择1录入图书信息 1 输入图书信息2浏览已经录入的图书信息 3为图书信息查询项:(1)按登陆号(2)按书名(3)按作者(4)按分类号(5)出版单位(6)出版时间(7)价格4为删除和修改功能 :1为删除 2为修改5 增加图书信息首先欢迎您使用本图书馆管理系统。本系统主要面向图书馆的管理人员。运行主程序后,您将能够看到一个带有欢迎界面的窗口,上面有您所能进行的操作,您可以在这里选择。(附)源程序:#define N 100#include#include#includestruct book char dlnum10; char name50; char writer20; char flnum10; char pressname50; char presstime20; char price10;booksN;void printf_face() printf(dlnum name writer flnum pressname presstime pricen);void enter() int i,n; void menu(); void input(int k); void save(int k); printf(How many books(0-%d)?:,N-1); scanf(%d,&n); printf(n Enter data nownn); for(i=0;in;i+) printf(n Input %dth book record.n,i+1); input(i); if(i!=0)save(n); printf(Pass any key to backn); getchar(); menu();void input(int i) printf_face(); scanf(%s%s%s%s%s%s%s,booksi.dlnum,,booksi.writer,booksi.flnum,booksi.pressname,booksi.presstime,booksi.price);void save(int n) FILE *fp; int i; if(fp=fopen(book.txt,wb)=NULL) printf(nCannot open filen); for(i=0;in;i+) if(fwrite(&booksi,sizeof(struct book),1,fp)!=1) printf(file write erron); fclose(fp);void browse() int k; void menu(); int load(); void printf_books(int n); k=load(); printf_books(k); printf(Pass any key to backn); getchar(); menu();void printf_one(int i)printf(%5s %5s %5s %5s %5s %5s %5s,booksi.dlnum,,booksi.writer,booksi.flnum,booksi.pressname,booksi.presstime,booksi.price);printf(nn);void printf_books(int n) int j; printf(dlnum name writer flnum press presstime pricen); for(j=0;jn;j+) if(j!=0&j%10=0) printf(nnPass any key to contiune .); getchar(); puts(nn); printf_one(j); int load() FILE *fp; int i; if(fp=fopen(book.txt,rb)=NULL) printf(nCannot open filen); return 0; for(i=0;!feof(fp);i+) fread(&booksi,sizeof(struct book),1,fp); fclose(fp); return(i-1);void search_by_name()struct book s;int n,i,k=0;int load();void printf_one(int i);n=load();printf(enter a book name: );scanf(%s,&); for(i=0;in;i+) if(strcmp(,)=0) printf_one(i); k=1; if(k=0)printf(nNot found the file!n);void search_by_writer() struct book s;int n,i,k=0;int load();void printf_one(int i);n=load();printf(enter a writers name: );scanf(%s,&s.writer); for(i=0;in;i+) if(strcmp(s.writer,booksi.writer)=0) printf_one(i); k=1; if(k=0)printf(nNot found the file!n);void search_by_flnum() struct book s; int n,i,k=0; int load(); void printf_one(int i); n=load(); printf(enter a flnum: ); scanf(%s,&s.flnum); for(i=0;in;i+) if(strcmp(s.flnum,booksi.flnum)=0) printf_one(i); k=1; if(k=0)printf(nNot found the file!n);void search_by_press() struct book s; int n,i,k=0; int load(); void printf_one(int i); n=load(); printf(enter a press: ); scanf(%s,&s.pressname); for(i=0;in;i+) if(strcmp(s.pressname,booksi.pressname)=0) printf_one(i); k=1; if(k=0)printf(nNot found the file!n);void search_by_dlnum() struct book s; int n,i,k=0; int load(); void printf_one(int i); n=load(); printf(enter a dlnum: ); scanf(%s,&s.dlnum); for(i=0;in;i+) if(strcmp(s.dlnum,booksi.dlnum)=0) printf_one(i); k=1;if(k=0)printf(nNot found the file!n);menu_search() int n,w; do puts(tt*MENU OF SEARCH*nn); puts(tttt 1.search_by_name); puts(tttt 2.search_by_writer); puts(tttt 3.search_by_dlnum); puts(tttt 4.search_by_flnum); puts(tttt 5.search_by_press); puts(tttt 6.back); puts(nntt*n); printf(Choice your number(1-6): bb); scanf(%d,&n); if(n6) w=1; getchar(); else w=0; while(w=1); switch(n) case 1:search_by_name();break; case 2:search_by_writer();break; case 3:search_by_dlnum();break; case 4:search_by_flnum();break; case 5:search_by_press();break; case 6:menu(); void printf_back() int w; do printf(What do you want to do?nnt1).BACK TO MENUt2)continue .: bb); scanf(%d,&w); switch(w) case 1: menu();break; case 2: menu_search();break; while(w!=1&w!=2);void search() menu_search(); printf_back();void modify(int m,int n) int c,w1; void menu(); do puts(nmodify by =nn 1).dlnum 2).name 3).writer 4).flnumn5).pressname 6).presstime 7).price 8).modify all); printf(Which you need?: bb); scanf(%d,&c); if(c8|c8|c1); do switch(c) case 1:printf(dlnum: );scanf(%s,booksm.dlnum);break;case 2:printf(name: );scanf(%s,);break;case 3:printf(writer: );scanf(%s,booksm.writer);break;case 4:printf(flnum: );scanf(%s,booksm.flnum);break;case 5:printf(pressname: );scanf(%s,booksm.pressname);break;case 6:printf(presstime: );scanf(%s,booksm.presstime);break;case 7:printf(price: );scanf(%s,booksm.price);break;case 8:printf(Enter a new information:n);input(m); printf_face(); printf_one(m); printf(nAre you sure?nnt1).Sure 2).no and remodify 3).Back without save in this time bb); scanf(%d,&w1); while(w1=2); if(w1=1)save(n);void del(int m,int n) FILE *fp;int k,w; printf(Are you sure delete it?nnt1).Suret2).Give up: bb); scanf(%d,&w);if(w=1) if(fp=fopen(book.txt,wb)=NULL) printf(nCannot open filen); for(k=0;kn;k+) if(k!=m)if(fwrite(&booksk,sizeof(struct book),1,fp)!=1) printf(file write errorn); fclose(fp); void deal() void menu(); int w,i,m,n,k=0; struct book s; n=load(); printf_books(n); printf(enter a book name: );scanf(%s,&); for(i=0;in;i+) if(strcmp(,)=0) printf_one(i); k=1;m=i; if(k=0) printf(Not found the file!); getchar(); menu(); printf(What do you want to do?nnt1).Modifyt2).Delete: bb); scanf(%d,&w); switch(w) case 1: modify(m,n);break; case 2: del(m,n);break; default: menu(); menu();add() int i,n,m,k; FILE*fp; n=load(); printf(How many books are you want to add(0-%d)?:,N-1-n); scanf(%d,&m); k=m+n; for(i=n;ik;i+) printf(nInput %dth books record.n,i-n+1 ); inpu

温馨提示

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

评论

0/150

提交评论