




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
图书记录查询系统1.课程设计的目的实现图书记录查询系统的基本功能,即能增减图书信息,并能为用户提供方便的查询。在通过该系统的设计后,更好的掌握c语言课程,对这一编程语言有更进一步的认识,同时提高自身的c语言编程能力及形成良好的编程习惯。2设计方案论证2.1.总体设计方法本系统采用的是自顶向下、层次化的模块结构。对高层模块,采用以事务为中心的设计策略,把一个大的模块逐步分解成较小的相对简单的模块。对低层模块,采用以变换为中心的设计策略。为了提高每个模块的内聚性、降低模块间的耦合性,将每个模块设计成具有单一功能的模块(即功能内聚),使模块间的联系完全是通过主模块的控制和调用来实现(即非直接耦合)。2.2系统结构(1)系统结构图图书记录查询系统的系统结构图如下所示,总共由3个模块组成,其中一个是总控模块,另外2个是分别实现不同功能的子模块:图书馆借阅管理系统总控模块添加图 书 子模块查找图 书子模块其他子模块(2)模块说明书A图书馆借阅管理系统总控模块的模块说明书模块名称:图书馆借阅管理系统总控模块输入:主菜单选择项输出:相对应的信息处理:1按以下格式显示主菜单和提示使用者选择: 欢迎来到图书馆借阅管理系统 (1)添加图书 (2)查找图书 (0)结束操作,退出本系统 请选择(1,2,0):2接收主菜单选择项 如果选择项的值为1,调用添加图书子模块。 如果选择项的值为2,调用查找图书子模块。 如果选择项的值为0,调用结束操作,退出本系统子模块。B添加图书子模块的模块说明书模块名称:添加图书子模块输入:根据给定图书的编号、书名、作者进行添加输出:整个所有图书的信息处理:1按以下格式显示子菜单和提示使用者选择:添加图书子系统 (1)请输入要添加的图书的信息C查找图书子模块的模块说明书模块名称:查找图书子模块输入:图书的编号输出:相对应图书的信息处理:1按以下格式显示子菜单和提示使用者选择:查找图书子系统 (1)请输入图书的编号2.3详细设计1“图书馆借阅管理系统总控模块”的详细设计(1)概述本模块的详细设计的依据是:总体设计中的“A图书馆借阅管理系统总控模块”的模块说明书。(1) 程序流程图如下开始定义整型变量c1显示主菜单,让使用者选择操作内容,给变量c1赋值(13)C1=3switch(1)其他子模块查找图 书子模块c1=2添 加图 书子模块c1=1 结束2“添加图书子模块”的详细设计(1)概述本模块的详细设计的依据是:总体设计中的“B添加图书子模块”的模块说明书。开始(2) 程序流程图如下:定义整型变量 i示操作项目,显让使用者选择请输入所要添加的图书的信息继续添加书本请输入所要添加的图书的信息返回3“查找图书子模块”的详细设计(1)概述本模块的详细设计的依据是:总体设计中的“C查找图书子模块”的模块说明书。开始(2)程序流程图如下:定义整型变量 i, n显示示操作项目,显让使用者选择请输入图书的编号相对应图书的信息显示出来返回2.4编码1说明“图书记录查询系统总控模块”的功能由main函数实现,根据“图书记录查询系统总控模块”的程序流程图编写main函数。“添加图书子模块”的功能由BookAdd函数实现,根据“添加图书子模块”的程序流程图编写addbook函数。“查找图书子模块”的功能由BookConsult函数实现,根据“查找图书子块”的程序流程图编写findbook函数。2选择编写程序语言-C语言2.5图书记录查询系统程序代码:#include #include #include #include #include #include #include #define LEFT 0x4b00 /*左*/#define RIGHT 0x4d00 /*右*/#define DOWN 0x5000 /*下*/#define UP 0x4800 /*上*/#define SPACE 0x3920 /*空格*/#define ESC 0x011b /* ESC键*/#define ENTER 0x1c0d /*回车键*/#define Backspace 0xe08 /*擦除键*/#define ALT_B 12288 /*组合键ALT_B */#define ALT_A 8960/*组合键ALT_A */int key;/*按键变量*/int textx,texty;/*光标坐标,x行,y列*/struct menustruct/*菜单用的结构体*/ char name10;/*主菜单名*/ char str1020;/*选项*/ int n;/*选项数*/ml3;/*使用了3个,可根据需要增删*/typedef struct BookList/*书的结构体*/ char num20;/*图书编号*/ char name20;/*书名*/ int price;/*书的价格*/ struct BookList *next;Book;char save4096;/*保存文本区域空间*/*char sav14096;*/char c4096;/*清屏专用空间*/int i,j;/*常用变量*/void Menu();/*初始化界面*/void Selectitem();/*定义菜单*/void DrawSelectitem();/*显示主菜单*/void BlackText(int x,int y,char *z);/*选中菜单*/void RedText(int x,int y,char *z);/*正常菜单*/void Run();/*具体操作过程*/void DrawMl(int n);/*显示下拉菜单*/void MoveMl(int n,int x);/*菜单选项的控制*/void Enter(int m,int n);/*菜单选项的具体功能*/void BookAdd();/*添加图书*/void BookConsult();/*图书查询*/void BookDel();/*删除图书资料*/voidHelp();/*帮助*/voidVer();/*版本信息*/void ClrScr();/*自定义清屏函数*/void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*画边框*/*主函数*/void main(void) Menu();/*初始化界面*/ Run();/*具体操作过程*/*初始化界面*/void Menu() system(cls); /*调用系统的清屏命令*/ textbackground(BLUE);/*将背景设置为蓝色*/ window(1,1,25,80); clrscr(); textx=3;/*光标初始化位置*/ texty=2; gotoxy(1,2); textcolor(7); /*设置灰色*/ for(i=0;i80;i+) cprintf(%c,219);/*用符号实现画主菜单的灰色背景区*/ Selectitem(); /*调用选项函数*/ DrawSelectitem(); /*画选项*/ gettext(2,3,78,23,c); /*保存当前文本区域*/*定义菜单*/void Selectitem() strcpy(,Book);/*下面的具体选项补空格是为了各菜单黑色背景相同*/ strcpy(ml0.str0,Add );/*添加图书*/ strcpy(ml0.str1,Consult );/*查询图书*/ strcpy(ml0.str2,Del );/*删除图书资料*/ strcpy(ml0.str3,Exit );/*退出系统*/ ml0.n=4; /*保存菜单的项数*/strcpy(,About);/*系统帮助*/strcpy(ml2.str0,Ver);ml2.n=1;/*显示主单名*/void DrawSelectitem() for(i=0;i3;i+) RedText(i,1,); /*显示主菜单名,且首字母为红色*/*正常显示菜单*/void RedText(int x,int y,char *z) textbackground(7); /*设置背景颜色为浅灰色*/ gotoxy(3+x*20,y); for(j=0;zj;j+) if(j=0) textcolor(RED);/*第一个字母显示红色*/ else textcolor(BLACK); /*设置黑色*/ cprintf(%c,zj); /*输出菜单名*/ /*显示选中菜单*/void BlackText(int x,int y,char *z) textbackground(0); /*设置背景颜色为黑色*/ textcolor(15); /*设置文本颜色为白色*/ gotoxy(3+20*x,y);/*定位坐标*/ cputs(z); /*输出菜单名字符串*/*按键操作过程*/void Run() while(1) gotoxy(texty,textx); key=bioskey(0);/*接收按键*/ switch(key) case ALT_B: case ESC: DrawMl(0);break; /*显示下拉菜单1*/ case UP: /*上光标键的操作控制*/ if(textx=3) textx=23; textx-; gotoxy(texty,textx); break; case DOWN: /*下光标键的操作控制*/ if(textx=23) textx=3; textx+; gotoxy(texty,textx); break; case LEFT: /*左光标键的操作控制*/ if(texty=2) texty=79; texty-; gotoxy(texty,textx); break; case Backspace: /*擦除键的设置*/ if(texty=2&textx=3) continue; else if(texty!=2) texty-; /*擦除键的细节问题,先擦去东西,然后光标还要往后退一格*/ else if(texty=2) texty=78; textx-; gotoxy(texty,textx); printf( ); gotoxy(texty,textx); break;/*end case 0xe08*/ case RIGHT: /*右光标键的操作控制*/ if(texty=79) texty=2; texty+; gotoxy(texty,textx); break; case SPACE: /*空格键的操作*/ if(texty=79) continue; else gotoxy(texty,textx); /*空格的细节操作*/ printf( ); texty+; gotoxy(texty,textx); break; case ENTER: /*回车的控制操作*/ if(textx=23) continue; textx+; texty=2; gotoxy(texty,textx); break; default : /*非控制键的结果*/ if(texty=79&textx=23)/*到达最后就不再输出*/ continue; else if(texty=79&textx!=23) /*到行的最后*/ textx+; texty=2; gotoxy(texty,textx);/*输出结果*/ printf(%c,key); if(texty=79) /*如果texty=79就不执行*/ continue; else /*如果没到行尾就继续执行,使光标向前移动一位*/ texty+; /*大循环的大括号*/*显示具体下拉选择项目*/void DrawMl(int n) gettext(1,1,80,25,save);/*保存被掩盖的地方*/ BlackText(n,1,);/*反选显示主菜单*/ for(i=3;inext=p;/*新记录插入到链表的尾*/ p-next=NULL;/*最后一个结点的后继为空*/ fclose(fp); ClrScr(); printf(Input the book name: ); gets(bookname); /*输入图书名*/ p=head; while(p!=NULL)/*按名字查找要删除的图书*/ if(strcmp(p-name,bookname)=0)/*找到要删除的图书*/ if(p=head) /*如果是第一个结点*/ head=head-next; else q-next=p-next;/*不是第一个结点*/ break; q=p; /*指针后移*/ p=p-next; fp=fopen(book.txt,wb);/*删除后从链表的头开始重新保存*/ while(head!=NULL) fwrite(head,sizeof(Book),1,fp);/*块写*/ head=head-next; fclose(fp); ClrScr();/*清除屏幕*/void ClrScr() int i,j; puttext(2,3,78,23,c);/*刚开始已经用gettext把蓝色的一块地方保存下来,现在再还原*/ gotoxy(2,3);/*版本信息*/voidVer()ClrScr();cprintf(Ver1.0 由 李银燕(电商07一班) 于2008.7.6 修改整理);/*输出字符串*/getch();ClrScr();3.设计结果与
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度厨师职业发展规划聘用合同
- 2025年度教育机构场地使用权转让合同
- 2025版藕塘农业观光旅游承包合同示范文本
- 2025年度咖啡厅店铺门面租赁及加盟合同
- 工业自动化系统升级与改造合同
- 2025至2030防雷设备行业市场深度研究及发展前景投资可行性分析报告
- 2025至2030锡中间体行业市场深度研究及发展前景投资可行性分析报告
- 农民专业合作社社员入股合同书
- 数字媒介艺术哲学-洞察及研究
- 法律回收合同范本
- 《劳动法常识(第3版)》中职全套教学课件
- 2025年山东水发集团有限公司招聘笔试参考题库含答案解析
- 环境卫生学监测及采样方法介绍(院感培训)
- 餐饮行业油脂废物处理应急预案
- 鞋厂品质管理
- 船舶安全经验分享
- 内部控制基础性评价工作方案(3篇)
- 《制造业成本核算》课件
- 刘润年度演讲课件20241026
- 《植物种植要领》课件
- 分子生物学课件第一章医学分子生物学绪论
评论
0/150
提交评论