图书信息管理系统设计说明书.doc_第1页
图书信息管理系统设计说明书.doc_第2页
图书信息管理系统设计说明书.doc_第3页
图书信息管理系统设计说明书.doc_第4页
图书信息管理系统设计说明书.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

山东交通学院C语言课程设计图书信息管理系统院(系)别 xxxxxxxxxxxxxxxxxxxxxx 班 级 xxxxxxxxx 学 号 xxxxxxxxx 姓 名 xxxxxx 指导教师 xxxxxx 时 间 2012-02-272012-03-02 课 程 设 计 任 务 书题 目 图书信息管理系统 系 (部) xxxxxxxxxxxxxxxxxxxxxx 专 业 信息管理与信息系统 班 级 xxxxxxx 学生姓名 xxxxxx 学 号 xxxxxxxxx 2 月 27 日至 3 月 2 日 共 1 周指导教师(签字) 系 主 任(签字) 2012年 3 月 18日1、 设计内容及要求 图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作v图书信息录入功能(图书信息用文件保存)输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按书名查询l 按作者名查询图书信息的删除与修改(可选项)v二、设计原始资料 C程序设计(第四版)三、设计完成后提交的文件和图表1说明书部分 图书信息管理系统能提供以下功能: 系统以菜单方式工作图书信息显示功能图书信息录入功能图书信息查询功能(按书名查询或按作者名查询)图书信息的删除图书信息的修改按图书单价或登陆号排序2图纸部分: 程序流程图见正文部分。4、 进程安排2月27上午至3月2号上午设计编写程序原文件 3月2号下午进行答辩编写程序设计说明书5、 主要参考资料 C程序设计(第四版)成 绩 评 定 表作品成绩报告成绩口试(答辩)成绩总评成绩目 录1课程设计概述11.1图书信息管理系统软件功能概述11.2开发环境概述12图书信息管理系统软件总体设计12.1图书信息管理系统软件总体设计思想12.2总体设计流程图23图书信息管理系统软件详细设计24程序测试114.2 菜单界面.114.2图书信息录入界面124.3图书信息浏览界面124.4图书信息查询界面134.5图书信息删除界面144.6图书信息修改界面154.7图书信息排序界面164.8退出界面16设计体会及今后的改进意见17参考文献18摘要由于上学期学完了C语言的全部课程,所以这学期我们要进行C语言的课程设计报告,我从老师所给的题目中选了“图书信息管理系统”这道题。这次课程设计是在VC+6.0环境下编写的,主要使用了C语言来完成,一共用了一周的时间。图书信息管理系统设计的图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。图书信息管理系统,能提供以下功能:系统以菜单方式工作、图书信息录入功能(图书信息用文件保存)、图书信息浏览功能、查询和排序功能:按书名查询和按作者名查询、图书信息的删除与修改功能。一下就是此次课程设计的全部内容,包括设计思路、程序设计流程图、程序代码、各种操作以及参考资料等。关键字:课程设计,VC+6.0,图书信息管理系统1 课程设计概述1.1 图书信息管理系统软件功能概述图书信息管理系统设计的图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。图书信息管理系统,能提供以下功能:系统以菜单方式工作、图书信息录入功能(图书信息用文件保存)、图书信息浏览功能、查询和排序功能:按书名查询和按作者名查询、图书信息的删除与修改功能。1.2 开发环境概述Visual C+6.0是微软公司的重要产品之一, 是一种功能强大行之有效的可视化编程工具。它提供了MFC类库,使用户可以方便的开发自己想实现的功能。Visual C+6.0的主要特点:(1)自动化和宏功能。(2)可以灵活地定制工具栏和菜单。(3)可以直接运行和调试程序,还可以使用宏语言来自动操作调试器。(4)支持Internet连接。(5)一个新的便捷的项目系统可以允许一个工作区内包含多个不同的项目类型。(6)在工作区内可以包含多个并列的工程文件。(7)可以在对话框中使用WizardBar将程序同可视化元素联系起来。(8)Find in File命令支持两个独立的输出窗格,可以保存上一次搜索的结果。这些新特性可以更好地利用Visual C+开发工具进行Windows应用程序开发。2 图书信息管理系统软件总体设计2.1 图书信息管理系统软件总体设计思想图书信息管理系统软件的功能为管理各种图书信息的软件。一本图书的信息定义成一个结构体变量stu。图书信息管理系统软件的功能模块有:(1)提供菜单界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。(2)录入图书信息的功能。(3)浏览图书信息的功能。(4)查询图书信息的功能。(5)修改图书信息的功能。(6)删除图书信息的功能。(6)排序功能。程序开始2.2 总体设计流程图保存并退出排序功能修改功能删除功能查询功能录入功能 主菜单浏览功能程序结束图2-1 总体设计流程3 图书信息管理系统软件详细设计源程序代码#include #include int N=0;/定义全局变量struct stu /定义结构体变量 int dlh; /*登录号*/ char sname15; /*书名*/ char zname10; /*作者名*/ int flh; /*分类号*/ int jg; /*价格*/ char cbdw 20; /*出版单位*/ char cbrq10; /*出版时间*/ s800;void shuchu(int i)/输出si的信息 printf(n*); printf(n登录号 书名 作者名 分类号 价格 出版单位 出版日期); printf(n*); printf(n%-9d%-13s%-10s%-11d%-10d%-13s%-11snn,si.dlh,si.sname,si.zname,si.flh, si.jg,si.cbdw,si.cbrq);void liulan() /浏览功能int i; printf(n*); printf(n登录号 书名 作者名 分类号 价格 出版单位 出版日期); printf(n*); for(i=0;iN;i+) printf(n%-9d%-13s%-10s%-11d%-10d%-13s%-11s,si.dlh,si.sname,si.zname,si.flh, si.jg,si.cbdw,si.cbrq);void luru()/录入功能char m; printf(你是否要添加一本书的信息Y:是 N:返回?(Y/N): ); getchar(); scanf(%c,&m);getchar(); if(m=Y|m=y)g2: N+;int i;i=N-1; printf(n请输入登录号: ); scanf(%d,&sN-1.dlh); printf(n请输入书名: ); scanf(%s,sN-1.sname); printf(n请输入作者名: ); scanf(%s,sN-1.zname); printf(n请输入分类号: ); scanf(%d,&sN-1.flh); printf(n请输入价格: ); scanf(%d,&sN-1.jg); printf(n请输入出版单位: ); scanf(%s,sN-1.cbdw); printf(n请输入出版日期: ); scanf(%s,sN-1.cbrq); shuchu(i);getchar(); printf(n是否继续添加?Y:是 N:返回); scanf(%c,&m);getchar(); if(m=Y|m=y) goto g2; else printf(n 录入完毕!n); void xiugai()/修改功能int i,n,a=0; char str20,m; printf(n请输入你所要修改的书名: ); getchar(); gets(str); for(i=0;iN;i+) if(strcmp(str,si.sname)=0) g:shuchu(i);a=1; printf(n *); printf(n * 1:登录号 2:书名 *); printf(n * *); printf(n * 3:作者名 4:分类号 *); printf(n * *);/选择修改的选项 printf(n * 5:价格 6:出版单位 *); printf(n * *); printf(n * 7:出版日期 8:退出 *); printf(n *); printf(n请输入你所选的代号: ); scanf(%d,&n); switch(n) case 1:printf(请输入新的登录号: );scanf(%d,&si.dlh);break; case 2:printf(请输入新的书名: );scanf(%s,si.sname);break; case 3:printf(请输入新的作者名: );scanf(%s,si.zname);break; case 4:printf(请输入新的分类号: );scanf(%d,&si.flh);break; case 5:printf(请输入新的价格: );scanf(%d,&si.jg);break; case 6:printf(请输入新的出版单位: );scanf(%s,si.cbdw);break; case 7:printf(请输入新的出版日期: );scanf(%s,si.cbrq);break; case 8:goto g1; shuchu(i); printf(修改成功!Y:继续,N:退出(Y/N): ); getchar(); scanf(%c,&m); if(m=Y|m=y) goto g; g1:; if(a=0) printf(nn无法找到这本书nn);getchar();void shanchu()/删除功能f1:liulan();char str20,m; int i,b=0; printf(n请输入你想删除的书名: );getchar(); gets(str); for(i=0;iN;i+) if(strcmp(str,si.sname)=0)/strcmy比较str1与si.sname,如果他们相等,返回0。 shuchu(i);b=1; printf(是否删除此书?Y:删除N:不删除(Y/N): ); scanf(%c,&m);getchar(); if(m=Y|m=y) for(;iN;i+)/循环变量无须赋初值 si=si+1; N-;printf( 删除成功!是否继续?Y:继续,N:退出(Y/N):); elseprintf( 是否继续删除其它书籍?Y:继续,N:退出(Y/N):); scanf(%c,&m); if(m=Y|m=y) goto f1; if(b=0) printf(nn 没有这本书!nn);getchar();void chaxun()/查询功能int i,n,a=0; char m,str120,str220;g3: printf(n *); printf(n * *); printf(n * 1:书名 2:作者名 *); printf(n * *); printf(n *); printf(n请输入你的选项: ); scanf(%d,&n);getchar(); if(n=1) printf(n输入书名: ); gets(str1); for(i=0;iN;i+) if(strcmp(str1,si.sname)=0)/strcmy比较str1与si.sname,如果他们相等,返回0。 shuchu(i); a=1; if(n=2) printf(n输入作者姓名: ); gets(str2); for(i=0;iN;i+) if(strcmp(str2,si.zname)=0) /strcmy比较str2与si.zname,如果他们相等,返回0。 shuchu(i); a=1; if(a=0) printf(没有这本书n); printf(是否继续查询?Y:继续,N:返回(Y/N):); scanf(%c,&m);getchar(); if(m=Y|m=y)goto g3;void paixu()/排序功能int i,j,m; struct stu p; printf(n *); printf(n * *); printf(n * 1:登录号 2:价格 *); printf(n * *); printf(n *); printf(nn请输入你的选项: ); getchar(); scanf(%d,&m); switch(m) case 1:for(i=0;iN-1;i+) for(j=i+1;jsj.dlh) p=si;si=sj;sj=p; break; case 2:for(i=0;iN-1;i+) for(j=i+1;jsj.jg) p=si;si=sj;sj=p; break; void tuichu()/退出功能 printf( * 谢谢使用 * n);void readfile()/读文件,打开book.txt,若无此文件,则新建一个名为book.txt的文件。 FILE *fp; if(fp=fopen(book.txt,ab+)=NULL) if(fp=fopen(book.txt,wb+)=NULL)printf( 不能建立文件n);return; while( fscanf(fp,%dn%sn%sn%dn%dn%sn%sn,&sN.dlh,sN.sname,sN.zname,&sN.flh,&sN.jg,sN.cbdw,sN.cbrq)!=EOF) N+; fclose(fp);/从fp指定的文件中按指定格式将数据送到内存中void writerfile()/将信息写入文件。int i; FILE *fp; fp=fopen(book.txt,w); for(i=0;iN;i+) fprintf(fp,%dn%sn%sn%dn%dn%sn%sn,si.dlh,si.sname,si.zname,si.flh,si.jg,si.cbdw,si.cbrq); fclose(fp);/把内存中的数据以指定格式输出到fp所指的文件中void main() int s;readfile();s=1;g6:while(s) printf(nn); printf( 图书信息管理系统nn);printf( (请从主菜单选择7退出,否则无法正常保存信息!)nnn); printf( *n); printf( * 主菜单 *n); printf( * 1:录入 2:浏览 *n); printf( * *n); printf( * 3:查询 4:删除 *n); printf( * *n); printf( * 5:修改 6:排序 *n); printf( * *n); printf( * 7.退出 *n); printf( * *n); printf( *n); printf(nnnn请输入你的选项: ); scanf(%d,&s); switch(s) case 1:luru();break; case 2:liulan();getchar();break; case 3:chaxun();break; case 4:shanchu();break; case 5:liulan();xiugai();break; case 6:paixu();getchar();liulan(); break; case 7:tuichu(); s=0;break; default:printf(输入错误,重新输入!);goto g6; printf(nn输入任意键继续nn); getchar(); writerfile();4 程序测试菜单界面图4-1 菜单界面图4-2 图书信息录入界面如图4-2所示,选择1录入功能,则可以逐条添加一本书的信息。添加完毕后显示出这本书的全部信息,并询问是否继续,选Y则继续添加另一本书,选N则回到主菜单。 图4-3 浏览图书信息界面如上图所示,该功能实现浏览图书信息功能。在主菜单选择2后,将浏览到全部图书的信息。图4-4 查询图书信息界面如上图所示,该功能实现图书的查询功能,可以选择按书名查询和按作者查询,可以查出一本书的全部信息。图4-5 图书信息删除界面如图所示,删除功能可以实现删除一本书的功能。在主菜单选择则4进入删除功能,输入想要删除的书名,则可以删除掉这本书的信息。图4-6 图书信息修改界面如上图所示,该功能将实现图书信息的修改,在主菜单选择5进入后输入想要修改的书名,然后选择想要修改的信息,然后就可以修改图书信息了。图4-7 排序功能界面如图所示,在主菜单选6进入排序功能,可以选择按登录号或价格来按从小到大的顺序来排列图书信息。图4-8 退出界面如图4-8所示,该功能将关闭正在运行的程序。在主菜单选择7按enter键实现该功能,按任意键关闭程序。设计体会及今后的改进意见.在大学以前我从来就没见过C语言,这东西对我来说是十分陌生的。刚开始学C语言,感到每天都在云里雾里飘着,感觉对这个东西真的好难入手。但学了一段时间后逐渐对C语言有了认识,并能进行简单操作。现在我们又要开始进行课程设计,我的天空突然彻底BLACK了!不过我不会放弃,前辈们都说:“坚持到底就是胜利!”,恩!我也是这么认为的。万事开头难,只要我找到方法,我一定可以的!刚开始编程时,那个“error”啊,多得已经无法用“多”来形容了,那是“很多”啊!于是我开始了漫长而繁琐的地毯式搜查,我累的地暗天黑都已无所谓,

温馨提示

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

评论

0/150

提交评论