版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计(1)课程设计专业 班级 学号 姓名 完成日期 指导教师(签名)1、程序设计说明书【设计题目】 图书管理系统 【问题描述】 图书馆有未知数本书,每个书的情况用该软件通过键盘敲入并以文本文件方式存放在磁盘,内容为六列:书本名称、图书编号、作者、所属类别、出版社、价格。编写程序,可以进行录入、浏览、查询、修改、删除等操作。【基本要求】 (1)通过此软件可以将图书的各种情况录入,并且会将各个情况自动保存到磁盘上。 (2)通过此软件可以一一浏览图书信息。 (3)通过此软件可以对图书进行查询,有两种查询方式,分别为按书名查询和按作者名查询。 (4)通过此软件可以对已录入的每本书情况进行修
2、改、删除,并且修改完成后会将更改后的图书情况自动保存到原磁盘文件中。【算法思想】(1)构造一个结构体类型,成员包括六项。五个字符型数组:书本名称、图书编号、作者、所属类别、出版社,一个浮点型变量:价格。(2)录入每本书的情况时,通过循环语句将每本书情况输入到结构体中,并将其写入文本文件中,并存入磁盘。(3)查询某书本情况时,先将文件读出到结构体中,可以通过输入函数,用书名或作者名进行查询。若没有其相关信息,则输出警告语句;若有,通过条件语句输出结果,并将结果显示在屏幕上。(4)修改每本图书情况时,先将文件读出到结构体中,通过字符的比较查找所修改的图书所在处,如果没有找到则输出警告语句,找到后则
3、通过输入输出函数进行修改,并将修改过后的图书情况写入文本文件中,并存入磁盘。【模块化分及调用关系】main函数 input函数list函数exit函数append函数revise函数search函数 main函数分别调用: input( ); /图书信息录入list( ); /图书浏览信息 search( ); /图书查询信息 revise( ); /图书修改信息 append( ); /图书增添信息 【模块流程图】 main函数 输入a1=>a 2=>a 3=>a 4=>a 5=>a 0=>aelseinput list search revise app
4、end exit input函数 创建文件“图书信息”文件创建成功文件创建失败输入 书本名称(name)图书编号(number)作者(writer) 所属类别(category)出版社(publisher)价格(price) 直到输入完N个物品的信息 通过循环,将所输入的内容写入文件中,保存在磁盘里 list函数 读取文件 读取文件成功 读取文件失败通过循环语句,将各个物品的信息情况进行输出 关闭文件 search函数 读取文件读取文件成功 读取文件失败 通过switch语句选择查询方式 在文件中找到 在文件中未找到 输出查询到的图书信息:书本名称(name)图书编号(number)作者(wr
5、iter)所属类别(category)出版社(publisher)价格(price) 关闭文件 revise函数读取文件读取文件成功 读取文件失败 输入要修改的图书名称 在文件中找到 在文件中未找到 输入要修改的图书信息:书本名称(name)图书编号(number)作者(writer)所属类别(category)出版社(publisher)价格(price) 再将修改后的内容写入文件 关闭文件 append函数读取文件读取文件成功 读取文件失败 输入追加图书的数目 在文件中找到 在文件中未找到输入要追加的图书信息:书本名称(name)图书编号(number)作者(writer)所属类别(cat
6、egory)出版社(publisher)价格(price) 再将增添的内容写入文件 关闭文件 【程序使用方法】 (1)执行程序,按照界面提示进行选择。输入 “1”,进入图书录入。(2)按照程序提示,分别输入书本名称、图书编号、作者、所属类别、出版社、价格。(注:这里默认为有两本图书,可以通过宏定义进行修改。)(3)输入成功后,按任意键返回主界面。输入“2”,进入图书信息浏览,程序自动将各书本信息情况输出到屏幕上。(4)浏览成功后,按任意键返回主界面。输入“3”,进入图书信息查询,按照提示选择一种查询方式,将所查询的本书信息输出到屏幕上。(5)查询成功后,按任意键返回主界面。输入“4”,进入图书
7、信息修改,程序将要修改的物品信息情况输出到屏幕上。(6)修改成功后,按任意键返回主界面。输入“5”,进入图书信息追加,程序将要追加的图书信息情况输出到屏幕上。(7)追击成功后,按任意键返回主界面。输入“0”,退出程序。2、程序上机调试报告【语法错误及其排除】 (1)宏定义时在末尾处加上了分号,应该不加分号。 (2)scanf中输入地址符号时忘了输入,应该输入地址符号。【算法错误及其排除】 (1)定义图书全程变量时直接赋值为0,导致在第二次读取文件时图书数值多出一倍,应该在取消对全程变量的赋值。(2)在查询图书信息时,if语句的子语句缺少了括号,程序没有提示错误,但实际上程序按if紧接的语句执行
8、,应该加上括号。 3、程序测试错误【测试数据】 挪威的森林 村上春树 文学 上海译文出版社围城 钱学森 文学 上海晨光出版公司【输出结果】【收获与体会】 4、源程序代码 #include"stdio.h"#include"stdlib.h"#include"string.h"#include"conio.h"#define N 2typedef struct system char name20; /书本名称 char number20; /书本编号 char writer10; /书本作者 char catego
9、ry10; /所属类别 char publisher20; /出版社 double price; /书本价格BOOK;BOOK a;/定义一个全局变量 void input() /*定义录入函数*/ int i; FILE *fp; system("cls"); if(fp=fopen("e:file","w")=NULL) printf("error!n");exit(1); for(i=1;i<=N;i+) printf("t请输入书名:"); scanf("%s"
10、,&); printf("t请输入图书编号:"); scanf("%s",&a.number); printf("t请输入作者名:"); scanf("%s",&a.writer); printf("t请输入图书的所属类别:"); scanf("%s",&a.category); printf("t请输入出版社:"); scanf("%s",&a.publisher); printf(
11、"t请输入该书的价格:"); scanf("%lf",&a.price); fwrite(&a,sizeof(BOOK),1,fp); fclose(fp);void list() /*定义浏览函数*/ FILE *fp; system("cls"); if(fp=fopen("e:file","r")=NULL) printf("error!n");exit(1); printf("nnnnnntbooknametnumbertwritertcat
12、egorytpublishertpricenn"); while(fread(&a,sizeof(BOOK),1,fp)!=0) printf("t%st%st%st%st%st%fn",,a.number,a.writer,a.category,a.publisher,a.price); fclose(fp); printf("nt press any key to continue."); getch();void search_by_name() /*定义按书名查询*/ FILE *fp; int i; int fla
13、g=0; BOOK bN; char s220; fp=fopen("e:file","r"); if(fp=NULL) printf("file open error!n");exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("请输入要查询的书名: "); scanf("%s",s2); for(i=0;i<N;i+ ) if(strcmp(s2,)=0) flag=1; printf(
14、"书名 编号 作者 类别 出版社 价格 n"); printf("%st%st%st%st%st%lftnn",,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag=0) printf("cannot found!"); getch(); fclose(fp);void search_by_writer() /*定义按作者名查询*/ int i; int flag1=0; FILE *fp; BOOK bN; ch
15、ar s320; fp=fopen("e:file","r"); if(fp=NULL) printf("file open error!n");exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("请输入要查询的书的作者: "); scanf("%s",&s3); for(i=0;i<N;i+ ) if(strcmp(s3,bi.writer)=0) flag1=1; printf("
16、书名 编号 作者 类别 出版社 价格 n"); printf("%st%st%st%st%st%lftnn",,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag1=0) printf("cannot found!"); getch(); fclose(fp); void search() /*定义查询函数*/ int chax; system("cls"); /*进行清屏*/ printf("
17、tt*n"); printf("开始查询n"); printf("ttt1-search_by_namen"); printf("ttt2-search_by_writern"); printf("ttt0-exitn"); printf("tt*n") ; printf("tt请选择你想要的查询方式:"); scanf("%d",&chax); switch(chax) case 1:search_by_name();break; ca
18、se 2:search_by_writer();break; case 0:return; void revise() /*定义修改函数*/ int i,k; char s120; BOOK bN; FILE *fp; system("cls"); if(fp=fopen("e:file","w+")=NULL) printf("error!"); exit(1); for(i=0;i<N;i+) fread(&bi,sizeof(BOOK),1,fp); printf("tt欢迎进入修改界
19、面n"); printf("nnntt请输入所要修改的图书名:n"); getchar(); gets(s1); for(i=0;i<N;i+) if(strcmp(s1,)=0) k=i; break; if (i>N) printf("未找到!"); exit(0); else printf("tt请输入 书名 编号 作者 类别 出版社 价格 n"); scanf("ttttttt%20st%20st%10st%10st%20st%lfn",,bi.number
20、,bi.writer,bi.category,bi.publisher,bi.price); for(i=0;i<N;i+) fwrite(&bi,sizeof(BOOK),1,fp); fclose(fp); printf("修改成功!"); void append() /*定义追加函数*/ int i,n; BOOK a; FILE *fp; system("cls"); if(fp=fopen("e:file","a")=NULL) printf("error!n");exi
21、t(1); printf("nnt请输入追加图书的个数:"); scanf("%d",&n); for(i=0;i<n;i+) printf("t请输入追加图书书名:"); scanf("%s",&); printf("t请输入追加图书的编号:"); scanf("%s",&a.number); printf("t请输入追加图书的作者名:"); scanf("%s",&a.writer); printf("t请输入追加图书的所属类别:"); scanf("%s",&a.category); printf("t请输入追加图书出版社:"); scanf("%s",&a.publisher); printf
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度绿色环保厂房装饰装修工程承包合同4篇
- 2024水库鱼塘承包养殖与市场拓展合作协议2篇
- 2025年度产权房屋买卖定金合同产权过户范本3篇
- 2025年度厂房买卖合同范本(新能源产业适用)4篇
- 二零二五年度网络安全服务提供商保密及数据处理协议3篇
- 二零二五年度船舶气象预报船员聘用合同范本3篇
- 个人IT岗位保密条款合同(2024版)版B版
- 2025年度XX地区水资源综合利用项目合作协议3篇
- 2025年度智能自动化厂房车间租赁合同4篇
- 2025年度婴幼儿用品配送与安全监管合同4篇
- 100个超高难度绕口令大全
- 《郑伯克段于鄢》-完整版课件
- (日文文书模板范例)请求书-请求书
- 土壤肥料全套课件
- 毕业生延期毕业申请表
- 学校6S管理制度
- 肽的健康作用及应用课件
- T.C--M-ONE效果器使用手册
- 8小时等效A声级计算工具
- 人教版七年级下册数学计算题300道
- 社会实践登记表
评论
0/150
提交评论