




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
仲恺农业工程学院课 程 设 计课 程 程序设计基础姓 名 金峰院(系) 计算机科学与工程学院专业班级 计算机093学 号 200910214308指导教师 黄明志职 称 副教授日 期 2010年06 月26日仲恺农业工程学院教务处制21n 题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能: 1 系统以菜单方式工作2 图书信息录入功能(图书信息用文件保存)输入3 图书信息浏览功能输出4 图书信息查询功能算法查询方式:l 按书名查询l 按作者名查询5 图书信息的删除与修改(可选项)n 总体设计: 程序分为六个模块u 主菜单u 图书信息录入u 图书信息浏览u 图书信息查询u 图书信息修改u 系统说明 程序框图如下:n 详细设计:u 主菜单void title(void)/*标题函数*/void menu(void)/*菜单显示函数*/char input_menu(void) /*菜单选择函数*/程序框图:u 图书信息录入void input_bookdata(void)/*图书录入函数*/程序框图:u 图书信息浏览void output(void)/*信息输出函数*/程序框图:u 图书信息查询void search(void)/*查询函数*/void search_output(char x)/*查找函数内嵌的输出函数。 有一缺陷,此算法放书名和作者名一样时,或出错。*/程序框图:u 图书信息修改void change(void)/*修改函数修单*/void amend(char x)/*修改函数修单内嵌修改函数*/void delect(char x)/*修改函数修单内嵌删除函数*程序框图:u 系统说明void about(void)程序框图:n 软件测试:主界面:信息录入: 信息浏览: 信息查询: 信息修改: n 综合设计总结:1. 制作菜单时,使用getchar()函数,结果导致功能选择多了回车输入,导致下次选择出错。解决方法是更换为getch()函数,此函数不需要回车确认,故避免此问题。2. 写输出函数时,遇到选择输出时,屏幕没有反应,检查函数没有错误。发现为程序执行过快,闪一下就过去。引入了system()函数中的”pause”参数,在浏览输出后暂停。3. 搜索资料时,算法有点问题,导致不够准确。所以在后面修改功能里,忽略其它查询方法,只采用isbn搜索。4. 在定义指针数组时,有时会忘记是指针或者是指针变量。5. 生成储存文件时,有时的fopen或者fclose会用错参数或者放错位置。n 附录:(源程序)/* 题目36:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、图书信息录入功能(图书信息用文件保存)输入3、图书信息浏览功能输出4、图书信息查询功能算法查询方式:按书名查询按作者名查询5、图书信息的删除与修改(可选项) */#include#include /*system函数用*/#include /*调用getch函数,避开gechar函数的回车问题*/#define n 2struct libarychar isbn20,book_name20,writer20,publishing20,id10,date10;float price;int order;/*序号*/bookn;/*定义结构体,存放书籍数据*/void title(void);void menu(void);char input_menu(void);void input_bookdata(void);void output(void);void search(void);void search_output(char x);void change(void);void about(void);void amend(char x);void delect(char x);/*以上n行为函数声明*/void main()char i;int flag=0;dosystem(cls);title();menu();i=input_menu();/*选择*/switch(i)case1:input_bookdata();/*输入*/flag=1;break;case2:output();/*输出*/break;case3:search();/*查找*/break;case4:change();/*修改*/break;case5:about();/*系统说明*/break;case6:exit(0);/*退出*/break;default:printf(输入错误。n);printf(n);while(flag=1);void title(void)/*标题函数*/printf(n);printf(t*n);printf(t* *n);printf(t* 欢迎使用图书信息管理系统 *n);printf(t* *n);printf(t* welcome to library information management system *n);printf(t* *n);printf(t* 计机093 金峰 200910214309 *n);printf(t*n);printf(n);void menu(void)/*菜单显示函数*/printf(t请按序号选择功能:n);printf(n);printf(tttt1.图书信息录入n);printf(n);printf(tttt2.图书信息浏览n);printf(n);printf(tttt3.图书信息查询n);printf(n);printf(tttt4.图书信息修改n);printf(n);printf(tttt5.系统说明n);printf(n);printf(tttt6.退出系统n);printf(n);char input_menu(void) /*菜单选择函数*/char i;printf(t请输入:);i=getch();system(cls);title();return(i);void about(void)system(cls);title();printf(n);printf(tt系统说明:n);printf(n);printf(ttt1.本系统在visual c+ 2010 编译通过。n);printf(n);printf(ttt2.本系统只作为课程设计作品。n);printf(n);printf(ttt3.由于编写时间较短,不排除bug的存在。n);printf(n);printf(n);system(pause);main();void input_bookdata(void)/*图书录入函数*/file *fp;int i=0;char j;system(cls);title();printf(n);printf(n);printf(请输入图书信息:n);printf(n);doprintf(n);printf(序号:);scanf(%d,&booki.order);printf(n);printf(isbn:);scanf(%s,booki.isbn);printf(n);printf(书名:);scanf(%s,booki.book_name);printf(n);printf(作者:);scanf(%s,booki.writer);printf(n);printf(分类号:);scanf(%s,booki.id);printf(n);printf(出版单位:);scanf(%s,booki.publishing);printf(n);printf(出版时间:);scanf(%s,booki.date);printf(n);printf(书本价格:);scanf(%f,&booki.price);printf(n);printf(是否继续输入? y or n ?: );j=getch();i+;printf(n);printf(n);while(j=y|j=y)&in);if(fp=fopen(books_data,wb)=null)printf(不能打开存储文件。n);return;for(i=0;in;i+)if(fwrite(&booki,sizeof(struct libary),1,fp)!=1)printf(无法写入文件!n);return;fclose(fp);/*以上几行为向文件输出数据*/main();/*返回菜单*/void output(void)/*信息输出函数*/file *fp;int i;fp=fopen(books_data,rb);printf(图书信息:n);printf(n);printf(序号tisbnt书名t作者t分类号t出版单位t出版时间t书本价格tn);printf(-n);for(i=0;in;i+)fread(&booki,sizeof(struct libary),1,fp);printf( %dt,booki.order);printf(%st,booki.isbn);printf(%st,booki.book_name);printf(%st,booki.writer);printf(%st,booki.id);printf(%stt,booki.publishing);printf(%st,booki.date);printf(%4.1ftnn,booki.price);fclose(fp);system(pause);main();void search(void)/*查询函数*/file *fp;char i,book_name,writer,isbn;int flag=1;dosystem(cls);title();if(fp=fopen(books_data,wb)=null)printf(不能打开存储文件。n);return;/*打开文件,为了搜索。*/printf(n);printf(t欢迎使用查找功能,请选择:n);printf(n);printf(t1.按isbn查询n);printf(n);printf(t2.按书名查询n);printf(n);printf(t3.按作者查询n);printf(n);printf(t4.返回主菜单n);printf(n);printf(请输入:);i=getch();system(cls);title();switch(i)case1:printf(n);printf(请输入要查找的isbn号:);scanf(%s,&isbn);printf(n);printf(n);search_output(isbn);break;case2:printf(n);printf(请输入要查找的书名:);scanf(%s,&book_name);printf(n);printf(n);search_output(book_name);break;case3:printf(n);printf(请输入要查找的作者:);scanf(%s,&writer);printf(n);printf(n);search_output(writer);break;case4:main();break;default:printf(n);printf(输入错误!);flag=0;fclose(fp);/*关闭用于搜索用的文件*/while(flag=0);void search_output(char x)/*查找函数内嵌的输出函数。 有一缺陷,此算法放书名和作者名一样时,或出错。*/int i;printf(序号tisbnt书名t作者t分类号t出版单位t出版时间t书本价格tn);printf(-n);for(i=0;in;i+)if(x=*booki.book_name|x=*booki.writer|x=*booki.isbn)/*由于使用了不准确的判断标准,输入查找信息,或出现混乱的结果*/printf(n);printf( %dt,booki.order);printf(%st,booki.isbn);printf(%st,booki.book_name);printf(%st,booki.writer);printf(%st,booki.id);printf(%stt,booki.publishing);printf(%st,booki.date);printf(%4.1ftnn,booki.price);/*此处不加else来说明查询不到信息,是因为不知道n的数值,循环后,假如n之前输入的数值,则多输出几次esle的内容,影响过莫!*/system(pause);void change(void)/*修改函数修单*/char i,isbn,book_name,writer;int flag=1;dosystem(cls);title();printf(n);printf(t欢迎使用修改功能(暂提供一种修改方式),请选择:n);printf(n);printf(t1.按isbn修改n);printf(n);printf(t2.返回主菜单n);printf(n);printf(请输入:);i=getch();system(cls);title();switch(i)case1:printf(请输入isbn:);scanf(%s,&isbn);printf(n);search_output(isbn);/*显示要修改的项目*/amend(isbn);/*修改项目*/break;case2:main();break;default:printf(n);printf(输入错误!);flag=0;while(flag=0);void amend(char x)/*修改函数修单内嵌修改函数*/file *fp;int i;char j=n,k;/*如果不初始化j的值,在后面重新输入数据那选了n,则j没有值,会出错*/printf(n);printf(是否删除数据? y or n?:);k=getch();if(k=y|j=y)delect(x);elseprintf(n);printf(n);printf(是否重新输入数据? y or n?:);j=getch();printf(n);if(j=y|j=y)system(cls);for(i=0;in;i+)if(x=*booki.isbn)printf(n);printf(序号:);scanf(%d,&booki.order);printf(n);printf(isbn:);scanf(%s,booki.isbn);printf(n);printf(书名:);scanf(%s,booki.book_name);printf(n);printf(作者:);scanf(%s,booki.writer);printf(n);printf(分类号:);scanf(%s,booki.id);printf(n);printf(出版单位:);s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年数字合成师考试数字合成师职业素养与能力培养试卷
- 廊坊一模高考数学试卷
- 江苏宿迁市数学试卷
- 绵阳二文科数学试卷
- 2026届河北省衡水市安平中学化学高一上期中教学质量检测模拟试题含解析
- 电气电路相关知识综合测试试卷
- 化工生产安全与设备知识常见考点试卷
- 2025青海省招聘考试题及答案
- 辽宁省八省联考数学试卷
- 2025年物流专员招聘题目及答案
- 初中现代文精品阅读10篇
- 有创血压测量操作评分标准
- 左乙拉西坦行业现状及市场竞争格局分析-
- 架桥机事故案例警示-课件
- 茶文化与茶疗课件
- 护理查房(宫外孕)课件
- 血源性病原体职业接触与标准防护
- 家谱图和家庭治疗课件
- 2022年北京市中考地理试题及参考答案
- 水泥混凝土(水稳)拌和站(重大)风险源告知牌
- rt-PA静脉溶栓手册
评论
0/150
提交评论