




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、c语言程序设计题目名称: 图书管理系统 算法分析:1用结构体标出信息系统的成员:图书书号,书名,作者姓名,出版社,价格2 利用c语言的文件知识将系统的信息存放在c盘下的“project choose.txt”的文件夹下3 定义各个子函数(1)定义输入信息函数,将图书信息按一定格式用scanf函数输入(统计m本的信息);(2)定义输出函数,每3个表一页直到最后一个;(3)定义信息查询函数。a,定义按书号查询函数,如果输入的数字等于图书编号则输出要查询的信息;b,定义按姓名查询函数,如果输入的姓名字符串等于其中一个作者姓名字符串则输出信息;c,定义按出版社名称查找函数,如果输入的字符串等于其中出版
2、社名称,则输出该信息; e,定义查找总函数,输入一个数选择查找方式,1-4分别对应调用abc四个函数。(4)定义删除信息函数。输入的数字作为要删除的图书编号,输出要删除的图书信息后选择是否删除,删除后将第g+1个的信息赋给第g个,输出删除后的信息表。(5)定义信息修改函数。输入的数字等于要修改的图书编号,输出要修改的图书信息后选择是否修改,用switch,case语句选择要修改的项目,输入n,y决定是否继续直到不继续修改,输出图书信息。(6)定义信息统计函数。输入一个字符串作为出版社,比较m本书的出版社字符串是否等于输入的字符串,统计相等的个数n输出。(7)定义图书编号排序函数。用冒泡排序法将
3、m本的书的图书编号按从大到小的顺序排列后输出。4 定义主函数。调用读取文件函数,输入数字1-5分别对应调用修改图书信息函数,删除图书信息函数,查找图书信息函数,统计图书信息函数,图书排行信息函数,0表示退出系统。最后调用保存文件函数。结束程序。流程设计:图书管理系统利用结构体说明成员定义文件保存,读取函数定义各子函数统计图书信息函数图书排行信息函数查找图书信息函数删除图书信息函数定义修改图书信息函数定义主函数用switch case 选择要调用的子函数,后退出系统,结束程序。代码设计:#include#include#include#define m 2#define page 3 /*图书结
4、构体类型*/ typedef struct int num; /*图书号*/ char name20; /*书名*/ char zuozhe20; /*作者姓名*/ char chubanshe20; /*出版社*/ int price; /*价格*/ books;int read_file(books books) file *fp; int i=0; if(fp=fopen(project choose.txt,rt)=null) printf(nn*库存文件不存在!请创建); return 0; while(feof(fp)!=1) fread(&booksi,sizeof(books)
5、,1,fp); if(booksi.num=0) break; else i+; fclose(fp); return i; void save_file(books books,int sum) file *fp; int i; if(fp=fopen(project choose.txt,wb)=null) printf(读文件错误!n); return; for(i=0;isum;i+) if(fwrite(&booksi,sizeof(books),1,fp)!=1) printf(写文件错误!n); fclose(fp); /*输入模块*/ int input(books books
6、) int i=0; printf(nn 录入图书信息 (最多%d种)n,m); printf(-n); do printf(n 第%d本图书,i+1); printf(n 图书编号:); scanf(%d,&booksi.num); if(booksi.num=0) break; printf(n 图书名称:); scanf(%s,); printf(n 作者:); scanf(%s,booksi.zuozhe); printf(n 出版社:); scanf(%s,&booksi.chubanshe); printf(n 图书价格:); scanf(%d,&booksi
7、.price); i+; while(im); printf(n -%d种图书信息输入完毕!-n,i); printf(n 按任意键返回主菜单!); getchar(); return i; /*输出模块*/ void output(books books) int i=0,j=0,page=1; printf(nn -图书信息表- 第%d页nn,page); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); do if(booksi.num!=0) j+; if(j%page!=0) printf(%4d %10s %10s %10s %8d n,bo
8、oksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(按任意键继续!); getchar(); printf(nn -图书信息表- 第%d页nn,+page); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%4d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); print
9、f(-n); i+; while(booksi.num!=0); printf(按任意键返回主菜单!); getchar( ); /*给定编号,作者,出版社查找信息模块*/ void find_by_num(books books,int sum) int i,find_num; printf(n 请输入要查找的图书编号:); scanf(%d,&find_num); for(i=0;isum;i+) if(booksi.num=find_num) printf(这是您所查找到的图书:n); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf
10、(%4d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 未找到要查找的图书信息,按任意键返回!); getchar(); void find_by_zuozhe(books books,int sum) int i; char find_zuozhe20; printf(n 请输入要查找的作者姓名:); scanf(%s,find_zuozhe); for(i=0;isum-1;i+) if(
11、strcmp(booksi.zuozhe,find_zuozhe)=0) printf(这是您所查找到属于该作者的图书:); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); else printf(n 未找到要查找的图书信息,按任意键返回!); void find_by_chubanshe(books books,int su
12、m) int i; char find_chubanshe20; printf(n 请输入要查找的出版社名称:); scanf(%s,find_chubanshe); for(i=0;isum;i+) if(strcmp(booksi.chubanshe,find_chubanshe)=0) printf(这是您所查找到属于该出版社的图书:); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chu
13、banshe,booksi.price); printf(-n); else printf(n 未找到要查找的图书信息,按任意键返回!); getchar(); void find(books books,int sum) int choice; printf(n 您要按照哪种方式查找? n); printf(n 1.按图书编号查找 n); printf(n 2.按图书作者查找 n); printf(n 3.按出版社查找 n); printf(n 0. 退出n); printf(n 请选择(0-3): n); scanf(%d,&choice); switch(choice) case 1:
14、find_by_num(books,sum); break; case 2: find_by_zuozhe(books,sum); break; case 3: find_by_chubanshe(books,sum); break; case 0: break; /*删除信息模块*/ void del(books books) int i,sum; int del_num; printf(n 请输入要删除的图书编号:); scanf(%d,&del_num); for(i=0;isum;i+) if(booksi.num=del_num) printf(这是您所要删除图书信息:n); pri
15、ntf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); printf(您确认要删除吗?); printf(按任意键继续!); getchar(); printf(已成功删除图书信息!); /*信息修改模块*/ void modify(books books,int sum) int i=0,choice,modify_num,flag; d
16、o printf(请输入要修改的图书编号:); scanf(%d,&modify_num); for(i=0;isum;i+) if(booksi.num=modify_num) printf(nn -图书信息- nn); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); printf(n 您要修改哪一项?n); printf(
17、n 1.图书名称n); printf(n 2.作者n); printf(n 3.出版社n); printf(n 4.图书价格n); printf(n 请选择(1-4):n); scanf(%d,&choice); switch(choice) case 1: printf(n 请输入修改后的图书名称:); scanf(%s,); break; case 2: printf(n 请输入修改后的作者姓名:); scanf(%s,booksi.zuozhe); break; case 3: printf(n 请输入修改后的出版社名称:); scanf(%s,booksi.chu
18、banshe); break; case 4: printf(n 请输入修改后的图书价格:); scanf(%d,&booksi.price); break; printf(nn -图书信息- nn); printf(图书编号-图书名称-作者- 出版社-图书价格n); printf(-n); printf(%8d %10s %10s %10s %8d n,booksi.num,, booksi.zuozhe, booksi.chubanshe,booksi.price); printf(-n); break; else printf(n 该书不存在!); getchar(
19、); printf(n 修改成功!n); printf(您要继续修改吗?(y/n); if (choice=y|choice=y) flag=1; printf(n 继续!n); else flag=0; while( flag=1); printf(n 按任意键返回主菜单!); getchar(); /*图书信息统计模块*/void count(books books,int sum) /*统计某个出版社的图书数*/ int i; char count_chubanshe20; int n=0; printf(请输入一个出版社名称:n); scanf(%s,count_chubanshe);
20、 for(i=0;isum;i+) if( strcmp(booksi.chubanshe,count_chubanshe)=0) n+; break; printf(统计出属于该出版社一共有%d本书n,n); /*排序模块*/ void sort(books books,int sum) /*按图书编号排序模块*/ books t; int i,j; printf(n -图书信息- n); printf(n 排名 图书编号 图书名称 作者 出版社 图书价格n); for(i=1;isum-1;i+) for(j=i+1;jbooksi.num) t=booksj; booksj=booksi; booksi=t; for(i=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《张华食品营养学》课件
- 带质量物体在重力场中的运动课件
- 图书馆服务调查报告
- 2025年浙江b类申论真题及答案解析
- 水进出细胞的原理课件-高三生物一轮复习
- 《农作物病虫害识别与防治》课件
- 双十二全攻略
- 数学之旅模板
- 昨日、今日、明日
- 外贸单证操作章安平课件
- 《课程理论-课程的基础、原理与问题》施良方
- 晕血晕针的应急预案
- 导航信号抗干扰
- 桌面推演应急演练方案脚本
- 外墙合同范本(2篇)
- 总体取值规律的估计教学设计 高一下学期数学人教A版(2019)必修第二册
- 城市轨道交通车辆制动系统(高职)教学课件
- ISO9001-ISO14001-ISO45001三体系内部审核检查表
- 《中药种植技术》课件-第八章 药用植物病虫害及其防治
- JT∕T 1477-2023 系列2集装箱 角件
- 2024年湖南省岳阳市初中学业水平考试适应性测试化学试卷(二)
评论
0/150
提交评论