




免费预览已结束,剩余23页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中南民族大学管理学院学生课程设计报告课程名称: C程序设计语言 选题名称: 图书信息管理系统 年 级:2011专 业:信息管理与信息系统学号: 姓名: 指导教师: 完成地点:管理学院综合实验室完成日期: 2012年12月 20 12 学年至20 13 学年度第 1 学期26新浪微博 song-style是坏学长一、题目(问题)描述1、系统以菜单方式工作。2、图书信息录入功能(图书信息用文件保存)输入。3、图书信息浏览功能输出,查询。4、查询和排序功能:(至少一种查询方式)算法。 按书名查找 按作者查询等。5、图书信息的删除与修改。创新要求:在基本要求达到后,可进行创新设计,如实现会员资料的查询、会员注销,为借书人办理注册。办理借书手续(非注册会员不能借书)。办理还书手续等等。信息描述:图书信息包括:登录号、书名、图书编号、单价、作者名、分类号、出版单位、出版时间、价格等。借阅人信息包括:借书人姓名、性别、学号二、问题分析1、系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。2、程序将综合if语句及switch语句的运用方法及嵌套应用方法,循环结构的三种语句while、do-while.、for,以及函数的定义方法和调用方法等来进行编写。三、系统设计 图书信息管理系统1、程序总体结构 录入浏览修改删除查询按分类号按作者名按书名浏览书籍信息添加书籍信息按作者查询按书名查询按书名按作者名2重要数据的数据结构设计struct BOOK :把所要的数据char shuming999,zuozheming999,fenleihao999,danwei999,shijian999,jiage999;全放在一维数组中,以结构体的形式表现出来。这是文件录入和读取的关键,相当于做成一个文件,需要的时候将里面的数据读取或者修改。(1).录入模块: 录入图书信息并保存于文件中。(2).浏览模块:添加一个或多个图书信息,并将所添加图书信息保存,方便查找。(3).删除模块: 对图书信息做删除处理。(4).修改模块:void xiugai根据需要对图书信息进行修改。(5).查询模块:对已建立的图书信息进行查询,并且可根据需要选择按书名、作者或按分类号查询。(6).菜单 : 帮助借阅者根据所需进行选择。3函数设计函 数 名:菜单函数 void select()函数功能:运行后显示主界面,通过输入来选择下一步操作。参数说明:int n 用于判断使用者所要进入的界面的序号。算法描述:根据使用者输入的数字进行判断,并调用相对应的函数。函 数 名:登陆函数 void dl()函数功能:该函数功能为辨识管理权限,只有正确输入登录号才能进入主界面。参数说明:int n ,k=0,其中n用于识别登录号正确与否,k用于做一个循环。算法描述:用户输入登录号存在n里,判断n值是否等于11056026,是,则调用菜单函数。否,则让用户重新输入,两次输错以后关闭程序。函 数 名:录入函数 void input()函数功能:进入该函数,开始根据提示录入图书信息参数说明: int i=0; 用于自加,以便更换储存输入的信息的位置。 Char a;接收用户输入的字符。算法描述: printf提示信息,用户输入需要录入的数据,输入Y则调用lr()。输入N则调用clect(),输入其他则调用shifou()。函 数 名:浏览函数 void output()函数功能:进入该函数,按照输入顺序依次显示信息 参数说明:int i=0; 用于自加,以更换数据的位置信息以输出。char a, b用于接受用户输入的字符。 算法描述:输出第一本书籍的信息,i+。输入Y,则输出第二本书籍的信息。输入N ,则调用slect().函 数 名:查询函数 void search ()函数功能:进入函数,选择不同方式进行查询参数说明:int i ;cha j,m100,a; i用于做循环以搜索图书,j用于判断用户需要的查询方式,m100用于存放用户输入的搜索数据。算法描述:根据用户输入的字符进行判断,调用相应函数。 函 数 名:修改函数 void xiugai()函数功能:进入该函数,开始根据提示修改图书信息参数说明:int i 用于做循环的条件限制,以寻找要修改的图书。 char j 用于用于判断用户需要的修改方式并调用相应函数。char m100, 用于录入用户 新存入的数据信息并保存。char a; 根据用户输入的字符,判断其是否需要继续修改信息,并调用相应函数。算法描述:输入j值,判断修改方式:A按书名,则调用xiugai1,B按作者名调用xiugai2, C返回,调用slect()。然后用户输入需要修改的书本的信息,用循环寻找相同的数据,printf需要修改的图书信息,并且提示用户输入相应信息。 最后,输入Y,则goto mulu,N 则goto xiugai2。 函 数 名:删除函数 void shanchu()函数功能:进入该函数,开始根据提示删除图书信息参数说明:int i,p; 用于做循环。 char j, 用于用于判断用户需要的删除方式并调用相应函数。m100 用于给用户输入需要删除的书籍信息。a, 用于存放用户输入的字符。dd 用于存放用户输入的字符。算法描述:输入i值,判断删除方式:A按书名,则调用shanchu1,B按作者名调用shanchu2, C返回,调用slect()。然后用户输入需要删除的书本的信息,用循环寻找相同的数据,printf需要删除的图书信息,并且提示用户输入相应信息。 最后,输入Y,则从i的位置开始往后,所有book.的数据往前移动一位,然后输入Y,则xiugai,输入N则调用slect()。4程序运行视图(见下页)开 始输入n的值判断n的值删除模块修改模块录入模块浏览模块查询模块输入i值输入i值判断n的值判断n的值输入i值按书名按作者名按书名按作者名判断n的值输入新信息按作者名按书名按分类号删除信息添加信息 四、难点及关键技术分析:程序设计的难点及解决方法说明 难点:算法设计,只有设计出来了算法以后才能步步展开,才能有目的的编写程序。所以必须要有一个好的算法。解决办法:算法设计用流程图会很非常直观,可以清楚的显示各个框之间的逻辑关系。流程图包括表示相应操作的框,带箭头的流程线,必要的文字说明。关键技术:删除书籍时,结构体中的数据往前移动一位。解决办法:使用strcpy()来把后面的数据与前一位数据进行调换。还需要做一个循环。并且要注意的是,因为数组是100位的,所以如果删除的书籍是最后两位的话,是没有必要使用strcpy()的,因为存有数据的内存的相对位置没有发生变化。五、测试情况:系统运行、数据输入及输出结果截图 六、源程序清单: #include#include#includestruct BOOK char shuming999,zuozheming999,fenleihao999,danwei999,shijian999,jiage999;books999;void main()void select();void dl();dl(); printf(n); select();void select()system(cls);void jm();void input();void output();void search();void xiugai();void shanchu();int n;printf( 图书管理功能界面 n);menu:jm();scanf(%d,&n);getchar();if(n=1|n=2|n=3|n=4|n=5|n=6)switch(n)case 1: input();break;case 2: output();break;case 3: search();break;case 4: xiugai();break; case 5: shanchu();break;case 6: exit(0);break;elseprintf(输入错误,请重新输入!n);printf(输入你再次的选择:n);printf(n);printf(n);printf(n);goto menu; void dl() int n;int k=0;zl:system(cls);printf(n);printf(n);printf(n);printf( *欢迎光临图书管理系统*n);printf(n);printf(n);printf(请输入你的学号:);scanf(%d,&n); if(n=11056026)select(); else if(k2) printf(输入错误,请重新输入!n); printf(输入你再次的选择:); k+;goto zl;else printf(登录失败n);exit(0); void jm()printf( *n);printf( * *n);printf( * *n);printf( * *n);printf( * *n);printf( * *n);printf( * 1.图书信息录入 * *n);printf( * 2.图书信息浏览 * *n);printf( * 3.图书查询 * *n);printf( * 4.图书信息修改 * *n);printf( * 5.图书信息删除 * *n);printf( * 6.退出 * *n);printf( * *n); printf(请输入序号:n);printf(n);void input()system(cls);int i=0;char a;lr:printf(%s,图书书名:);scanf (%s,booksi.shuming);printf(%s,作者名:);scanf (%s,booksi.zuozheming);printf(%s,分类号:);scanf (%s,booksi.fenleihao);printf(%s,出版单位:);scanf (%s,booksi.danwei);printf(%s,出版时间:);scanf (%s,booksi.shijian);printf(%s,价格:);scanf (%s,booksi.jiage);i+;printf(n);printf(是否继续,输入Y/N:);shifou:scanf(%s,&a);getchar();system(cls);if(a=n|a=N)select();else if(a=y|a=Y) goto lr;elseprintf(输入错误,请重新输入);goto shifou;system(cls);void output()system(cls);int i=0;char a,b;shuchu:printf(图书书名:%sn,booksi.shuming);printf(作者名:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);i+;printf(是否继续浏览下一本:Y/N? n);shifou:scanf(%s,&a);getchar();system(cls);if(a=n|a=N)select();else if(a=Y|a=y)if(booksi+1.shuming!=0)goto shuchu;elseprintf(查询完毕,输入Y返回界面 n);scanf(%s,&b);getchar();system(cls);if(b=y|b=Y)select();elseprintf(输入错误,请重新输入);goto shifou;system(cls);void search()system(cls);int i;char j,m100,a;mulu:printf(请选择查询方式:n);printf(A、按书名查询n);printf(B、按作者名查询n);printf(C、按分类号查询n);printf(D、返回n);printf(请选择:);scanf(%s,&j);getchar(); system(cls);if(A=j|a=j)chaxun1:printf(请输入图书书名:);scanf(%s,&m);for(i=0;i=999;i+)if(strcmp(booksi.shuming,m)=0)printf(书名:%sn,booksi.shuming);printf(作者:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);printf(是否继续,输入Y/N:);scanf(%s,&a);getchar();system(cls);if(a=n|a=N)goto mulu; elsegoto chaxun1;else if(B=j|b=j)chaxun2:printf(请输入作者名:);scanf(%s,&m);for(i=0;i=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf(图书书名:%sn,booksi.shuming);printf(作者名:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);printf(是否继续,输入Y/N:);scanf(%s,&a);getchar();system(cls);if(a=n|a=N)goto mulu; elsegoto chaxun2;else if(C=j|c=j)chaxun3:printf(请输入分类号:);scanf(%s,&m);for(i=0;i=999;i+)if(strcmp(booksi.fenleihao,m)=0)printf(图书书名:%sn,booksi.shuming);printf(作者名:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);printf(是否继续,输入Y/N:);scanf(%s,&a);getchar();system(cls);if(a=n|a=N)goto mulu; elsegoto chaxun3;else if(D=j|d=j)select();elseprintf(输入错误,请重新输入);goto mulu;system(cls);void xiugai()system(cls);int i;char j,m100,a;mulu:printf(请选择修改方式:n);printf(A、按书名修改n);printf(B、按作者名修改n);printf(C、返回n);printf(请选择:);scanf(%s,&j);getchar();if(A=j|a=j)system(cls);xiugai1:printf(请输入要修改的图书书名:);scanf(%s,&m);for(i=0;i=999;i+)if(strcmp(booksi.shuming,m)=0)printf(图书书名:%sn,booksi.shuming);printf(作者名:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);printf(请修改:);printf(%s,图书书名:);scanf(%s,booksi.shuming);printf(%s,作者名:);scanf(%s,booksi.zuozheming);printf(%s,分类号:);scanf(%s,booksi.fenleihao);printf(%s,出版单位:);scanf(%s,booksi.danwei);printf(%s,出版时间:);scanf(%s,booksi.shijian);printf(%s,价格:);scanf(%s,booksi.jiage);printf(是否继续,输入Y/N:);scanf(%s,&a);getchar();system(cls);if(a=n|a=N)goto mulu; elsegoto xiugai1;system(cls);else if(B=j|b=j)xiugai2:printf(请输入要修改的作者名:);scanf(%s,&m);for(i=0;i=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf(图书书名:%sn,booksi.shuming);printf(作者名:%sn,booksi.zuozheming);printf(分类号:%sn,booksi.fenleihao);printf(出版单位:%sn,booksi.danwei);printf(出版时间:%sn,booksi.shijian);printf(价格:%sn,booksi.jiage);printf(请修改:);printf(%s,图书书名:);scanf(%s,booksi.shuming);printf(%s,作者名:);scanf(%s,booksi.zuozheming);printf(%s,分类号:);scanf(%s,booksi.fenleihao);printf(%s,出版单位:);scanf(%s,booksi.danwei);printf(%s,出版时间:);scanf(%s,booksi.shijian);printf(%s,价格:);scanf(%s,booksi.jiage);printf(是否继续,输入Y/N:);scanf(%s,&a);getchar();system(cls);if(a=n|a=N)goto mulu; elsegoto xiugai2;system(cls);else if(c=j|C=j)select();elseprintf(输入错误,请重新输入);goto mulu;void shanchu()system(cls);int i,p;char j,m100,a,dd;printf(请选择删除方式:n);printf(A、按书名删除n);printf(B、按作者名删除n);printf(C、返回n);printf(请选择:);scanf(%c,&j);getchar();system(cls);if(A=j|a=j)shanchu1:printf(请输入要删除的图书书名:);scanf(%s,m);getchar();for(i=0;i=999;i+)if(strcmp(booksi.shuming,m)=0)printf(%s,作者名:);printf(%sn,booksi.zuozheming);printf(%s,分类号:);printf(%sn,booksi.fenleihao);printf(%s,出版单位:);printf(%ns,booksi.danwei);printf(%s,出版时间:);printf(%sn,booksi.shijian);printf(%s,价格:);printf(%sn,booksi.jiage);printf(确定删除,输入Y/N:);scanf(%c,&dd);getchar();if(dd=y|dd=Y)for(p=i;p=997;p+)strcpy(booksp.shuming,booksp+1.shuming);strcpy(booksp.zuozheming,booksp+1.zuozheming);strcpy(booksp.fenleihao,booksp+1.fenleihao);strcpy(booksp.danwei,booksp+1.danwei);strcpy(booksp.shijian,booksp+1.shijian);strcpy(booksp.jiage,booksp+1.jiage);elseprintf(是否继续,输入Y/N:);scanf(%c,&a);getchar();system(cls);if(a=n|a=N)shanchu(); elsegoto shanchu1;system(cls);else if(B=j|b=j)shanchu2:printf(请输入要删除的作者名:);scanf(%s,m);getchar();for(i=0;i=999;i+)if(strcmp(booksi.zuozheming,m)=0)printf(%s,图书书名:);printf(%sn,booksi.shuming);printf(%s,分类号:);printf(%sn,booksi.fenleihao);printf(%s,出版单位:);printf(%sn,booksi.danwei);printf(%s,出版时间:);printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年护理文献检索题库及答案
- 2025年护理教育学研究生题库及答案
- (正式版)DB65∕T 4304.11-2020 《核桃机械化加工设备 第11部分:核桃壳仁分离机 操作规程》
- 2025年综合素质评价题库及答案
- 2025年系统分析师真题分析及试题与答案
- 可穿戴心电监测-洞察及研究
- 全国青岛版信息技术九年级上册第2单元第1课《控制技术概述》说课稿
- 物联网地图容器性能提升策略-洞察及研究
- 信息技术《图文混排》网络教学说课稿
- 移动学习中的多媒体教学内容开发-洞察及研究
- 新版机动车交通事故责任强制保险合同
- T-CTSS 3-2024 茶艺职业技能竞赛技术规程
- 品管圈PDCA案例-普外科提高甲状腺手术患者功能锻炼合格率
- 2022-2024年营养指导员考试真题及答案合集
- 《电工基础(第2版)》中职全套教学课件
- 2024-2025学年江苏省南通市海安市高二(上)月考物理试卷(10月份)(含答案)
- ISO9001-2015质量管理体系内审培训课件
- 初中物理晋升高级(一级)职称水平考试模拟试卷有答案解析共三套
- CJT 340-2016 绿化种植土壤
- 《无线电失效程序》课件
- 泸州市专业技术人员年度考核登记表
评论
0/150
提交评论