已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#include#define PRINT1 printf(*n)#define PRINT2 printf(图书编号-图书名称-图书作者-图书类型-图书出版社-图书出版时间(年-月-日)-图书数量n)#define PRINT3 printf( %d %s %s %s %s %d-%d-%d %dn,booki.num, ,booki.writer,booki.type,booki.publish,booki.publish_time.year,booki.publish_time.month,booki.publish_time.day,booki.amount)#define PAGE 3#define MAX 300int sum; /*用来记录图书数目(全局变量)*/struct DATE/*定义日期结构体类型*/ int year; int month; int day;struct BOOK/*定义图书结构体类型*/ int num; /*图书编号*/ char name10; /*图书名称*/ char writer8; /*图书作者*/ char type10; /*图书类型*/ char publish40; /*图书出版社*/ struct DATE publish_time; /*图书出版时间*/ int amount; /*图书数量*/bookMAX;/*存放MAX个图书信息记录的结构体数组*/*录入模块*/void input() int i=0,s=MAX; char choice; printf(nn * 录入图书信息* (最多%d种)n,s); printf( *n); do printf(n 第%d种图书,i+1); printf(n 输入图书编号:); scanf(%d,&booki.num); if(booki.num=0) break; printf(n 输入图书名称:); scanf(%s,); printf(n 输入图书作者:); scanf(%s,booki.writer);printf(n 输入图书类型:);scanf(%s,booki.type); printf(n 输入出版社:); scanf(%s,booki.publish); printf(n 出版时间(yyyy-mm-dd):); scanf(%d-%d-%d,&booki.publish_time.year,&booki.publish_time.month,&booki.publish_time.day); printf(n 输入图书总量:); scanf(%d,&booki.amount);i+;printf(n 要继续输入吗?(Y/N):); choice=getch(); if(choice=N|choice=n) break; while(iMAX); printf(n *%d种图书信息输入完毕!*n,i); sum=i; printf(n 按任意键返回主菜单!);/*保存模块*/void save() FILE *fp; int i=0; char filename10; printf(n 输入要保存的文件名称:); scanf(%s,filename); /*交互式文件方法*/ if ( (fp=fopen(filename, wb) = NULL) printf(nn*写文件错误!*nn); if(fwrite(&booki,sizeof(bookMAX),1,fp)!=1) printf(*写文件错误!*n); fclose(fp);/*读取模块*/void read() FILE *fp; int i=0;char filename10; printf(n 输入要保存的文件名称:); scanf(%s,filename); /*交互式文件方法*/ if ( (fp=fopen(filename, r) = NULL) printf(nn*读文件错误!*nn); while(!feof(fp) fread(&booki,sizeof(bookMAX),1,fp); if(booki.num=0) break; else i+; fclose(fp); sum=i;/*输出模块*/void output() int i=0,j=0,page=1; system(cls); /*清屏*/ printf(nn *图书信息表* 第%d页nn,page); PRINT2; PRINT1; do if(booki.num!=0) j+; if(j%PAGE!=0) PRINT3; PRINT1; else PRINT3; PRINT1; if(booki+1.num!=0) printf(按任意键继续!); printf(nn *图书信息表* 第%d页nn,+page); PRINT2; PRINT1; i+; while(booki.num!=0);printf(n); printf(按任意键返回主菜单!);/*更新图书信息模块*/*删除模块*/void del() int i,j,del_num,b=0; read(); printf( 输出要删除的图书编号:); scanf(%d,&del_num); for(i=0;isum;i+) if(booki.num=del_num&booki.num!=0) for(j=i;jsum;j+) bookj=bookj+1; sum-; break; else b+; PRINT1; PRINT2; for(i=0;isum;i+) PRINT3; printf(n); if(sum=b) printf( 该图书不存在); printf( 按任意键返回); /*添加模块*/void append() int i,flag=0; char choice; i=sum; read(); printf(nn 添加一种新图书n); do printf(n 新图书编号:);scanf(%d,&booki.num); printf(n 图书名称:); scanf(%s,); printf(n 作者名称:); scanf(%s,booki.writer);printf(n 图书类型:);scanf(%s,booki.type); printf(n 出版社名称:); scanf(%s,booki.publish); printf(n 出版时间(yyyy-mm-dd):); scanf(%d-%d-%d,&booki.publish_time.year,&booki.publish_time.month,&booki.publish_time.day); printf(n 图书数量:); scanf(%d,&booki.amount);i+; printf(n 要继续添加吗?(Y/N); choice=getch(); if(choice=Y|choice=y) printf(n 继续!n); flag=1; /*继续添加的标志*/ else flag=0; while(flag=1); sum=i;printf(n 按任意键返回主菜单!);/*修改模块*/void modify() int i=0,choice,modify_num,flag; read(); do printf(n 输出要修改的图书编号:); scanf(%d,&modify_num); for(i=0;isum;i+) if(booki.num=modify_num) printf(n *图书信息* nn); PRINT1; PRINT2; PRINT3; printf(n 您要修改哪一项?n); printf(n 1.图书名称n); printf(n 2.图书作者n);printf(n 3.图书类型n); printf(n 4.图书出版社n); printf(n 5.图书出版时间n); printf(n 6.图书数量n); printf(n 请选择(1-6):); scanf(%d,&choice); switch(choice) case 1: printf(n 输入修改后的书名:); scanf(%s,);break; case 2: printf(n 输入修改后的作者名:); scanf(%s,booki.writer);break; case 3: printf(n 输入修改后的图书类型:); scanf(%s,booki.type);break; case 4: printf(n 输入修改后的出版社:); scanf(%s,booki.publish);break; case 5: printf(n 输入修改后的出版时间:); scanf(%d-%d-%d,&booki.publish_time.year,&booki.publish_time.month,&booki.publish_time.day);break; case 6: printf(n 输入修改后的图书数量:); scanf(%d,&booki.amount);break; PRINT1; PRINT2; PRINT3; break; if(i=sum) printf(n 该图书不存在!); printf(nn 要继续修改吗?(Y/N); choice=getch(); if(choice=Y|choice=y) flag=1; /*继续添加的标志*/ printf(n 继续!n); else flag=0; while(flag=1); printf(n 按任意键返回主菜单!);/*更新模块*/void renew() int choice; do printf(nnn *更新图书信息*nn); printf( 1.删除图书信息nn); printf( 2.添加图书信息nn); printf( 3.修改图书信息nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1: del();break; case 2: append();break; case 3: modify();break; case 0: break; while(choice!=0);/*查询模块*/*按图书编号查询*/void inquire_num() int inquire_num,i,j=0; read(); printf(n *输入要查询的书的编号:); scanf(%d,&inquire_num); for(i=0;isum;i+) if(booki.num=inquire_num) printf(n *图书信息* nn); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 该图书不存在!);/*按图书名称查询*/void inquire_name() int i,j=0; read(); char inquire_name20; printf(n *输入要查询的图书名称:); scanf(%s,inquire_name); for(i=0;isum;i+) if(strcmp(,inquire_name)=0&booki.num!=0) printf(n *图书信息* n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 该图书不存在!);/*按图书类型查询*/void inquire_type() read(); int i,j=0; char inquire_type15; printf(n *输入要查询的图书类型:); scanf(%s,inquire_type); printf(n *图书信息*n); PRINT1; PRINT2; printf(n); for(i=0;isum;i+) if(strcmp(booki.type,inquire_type)=0&booki.num!=0) printf(n *图书信息* n); PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 该图书不存在!);/*查询模块*/void inquire() int choice;do printf(nnn *查询图书信息*nn); printf( 1. 按图书编号查询nn);printf( 2. 按图书名称查询nn);printf( 3. 按图书类型查询nn);printf( 0. 返回主菜单nn); printf( 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1: inquire_num();break; case 2: inquire_name();break;case 3: inquire_type();break; case 0: break; while(choice!=0);/*排序模块*/*按图书编号排序*/void sort_num() int i,j; struct BOOK t; read(); for(i=0;isum-1;i+) /*选择排序法*/ for(j=i+1;jbookj.num) t=booki; booki=bookj; bookj=t; printf( *排序结果为*); output();/*按图书名称排序*/void sort_name() int i,j; struct BOOK t; read(); for(i=0;isum-1;i+) /*选择排序法*/ for(j=i+1;j0) t=booki; booki=bookj; bookj=t; printf( *排序结果为*n); output();/*按图书类型排序*/void sort_type() int i,j; struct BOOK t; read(); for(i=0;isum-1;i+) /*选择排序法*/ for(j=i+1;j0) t=booki; booki=bookj; bookj=t; printf( *排序结果为*); output();/*排序模块*/void sort() int choice; do printf(nn *排序信息*nn); printf( 1.按图书编号排序nn); printf( 2.按图书名称排序nn); printf( 3.按图书类型排序nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1: sort_num();break; case 2: sort_name();break; case 3: sort_type();break; case 0: break; while(choice!=0);/*统计模块*/*按图书名称统计数量*/void count_name() int i,count=0,j=0; read(); char count_name20; printf( 输入图书名称:); scanf(%s,count_name); for(i=0;isum;i+) if(strcmp(,count_name)=0) count+=booki.amount; PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n *错误无此名称的图书!); printf(n 按任意键退出!); if(j!=sum) printf(nn * 图书总量为%4dn,count);/*按图书类型统计数量*/void count_type() int i,count=0,j=0; read(); char count_type20; printf( 输入图书类型:); scanf(%s,count_type); for(i=0;isum;i+) if(strcmp(booki.type,count_type)=0) count+=booki.amount; PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n *错误!无此类型的图书!); printf(n 按任意键退出!); if(j!=sum) printf(nn 图书总量为%4dn,count);/*按图书出版社统计数量*/void count_publish() int i,count=0,j=0; read(); char count_publish20; printf( 请输入出版社名称: ); scanf(%s,count_publish); for(i=0;isum;i+) if(strcmp(booki.publish,count_publish)=0) count+=booki.amount; PRINT1; PRINT2; PRINT3; else j+; if(j=sum) printf(n 错误!无此出版社信息); printf(n 按任意键退出!); if(j!=sum) printf(nn *图书总量为%4d,count);/*统计模块*/void count() int choice; do printf(nnn *统计信息*nn); printf( 1.按图书名称统计nn); printf( 2.按图书类型统计nn); printf( 3.按图书出版社统计nn); printf( 0.返回主菜单nn); printf( 请选择(0-3):); scanf(%d,&choice); switch(choice) case 1: count_name();break; case 2: count_type(); break; case 3:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(研优卷)
- 镇江市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(培优b卷)
- 2026年莆田市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合卷)
- 泰安市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(黄金题型)
- 池州市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(突破训练)
- 平顶山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有答案详解
- 汕尾市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(考试直接用)
- 武隆县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(夺分金卷)
- 衡水市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(典优)
- 保定市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(综合题)
- 2025年山东省招聘社区工作者考前冲刺卷(附答案)
- 消毒和隔离技术知识培训课件
- 2025采编实务考试真题及答案
- 摄影师基础知识培训课程
- 安全阀动作相关题库及答案解析
- 彩票店转让协议书5篇
- 小学数学应用题教学方法探究
- 2025年高三语文月考作文讲评:于“攀登”中探寻人生真谛
- 酒店安全生产隐患排查治理方案
- 2024北森图形推理题
- (正式版)HGT 6313-2024 化工园区智慧化评价导则
评论
0/150
提交评论