谁会c语言啊?
答案:6 悬赏:0 手机版
解决时间 2021-03-17 05:17
- 提问者网友:却不属于对方
- 2021-03-16 10:44
谁会c语言啊?
最佳答案
- 五星知识达人网友:梦中风几里
- 2021-03-16 11:58
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"
struct time
{
int year;
int month;
int day;
};
struct data
{
int num;
char bname[20];
char wname[15];
char clanum[15];
char pubcom[10];
struct time pubtime;
float price;
}books[20],book;
void face()
{
system("cls");
printf("\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" ┃ ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 图 书 信 息 管 理 系 统 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 1.图书数据输入 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 2.图书数据浏览 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 3.图书数据查找 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 4.图书数据排序 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 5.图书数据修改 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 6.图书数据删除 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 7.退出系统 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ (Alpha Ver 0.1)┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf(" 请选择操作:");
}
int days(int year,int month)
{
int day2,loop=0;
if(year%4==0&&year%100!=0||year%400==0)
loop=1;
switch(month)
{
case 4:
case 6:
case 9:
case 11:
{
day2=30;
return(day2);
}
break;
case 2:
{
if(loop==1)
{
day2=29;
return(day2);
}
else
{
day2=28;
return(day2);
}
break;
}
break;
default :
{
day2=31;
return(day2);
}
break;
}
}
void input()
{
FILE *fp,*fp1;
struct data t;
char ch;
int day1,count,loop,i;
float temp;
do
{
system("cls");
fp=fopen("book.dat","ab");
if(fp==NULL)
{
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法创建!");
getchar();
return;
}
do
{
fp1=fopen("book.dat","rb");
loop=0;
fseek(fp1,0,2);
count=ftell(fp1)/sizeof(struct data);
fclose(fp1);
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:");
scanf("%d",&book.num);
getchar();
for(i=0;i {
fp1=fopen("book.dat","rb");
fseek(fp1,i*(sizeof(struct data)),0);
fread(&t,sizeof(struct data),1,fp1);
fclose(fp1);
if(book.num<=0)
{
loop=1;
break;
}
if(book.num==t.num)
{
loop=1;
break;
}
}
}while(loop!=0);
printf("\n\t\t\t2.图 书 名:");
scanf("%s",book.bname);
printf("\n\t\t\t3.作 者 名:");
scanf("%s",book.wname);
printf("\n\t\t\t4.分 类 号:");
scanf("%s",book.clanum);
printf("\n\t\t\t5.出版单位:");
scanf("%s",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:");
scanf("%d",&book.pubtime.year);
getchar();
while(book.pubtime.year>2006||book.pubtime.year<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:");
scanf("%d",&book.pubtime.year);
getchar();
}
printf("\t\t\t 月:");
scanf("%d",&book.pubtime.month);
getchar();
while(book.pubtime.month>12||book.pubtime.month<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:");
scanf("%d",&book.pubtime.month);
getchar();
}
printf("\t\t\t 日:");
scanf("%d",&book.pubtime.day);
getchar();
day1=days(book.pubtime.year,book.pubtime.month);
while(book.pubtime.day>day1||book.pubtime.day<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:%d",book.pubtime.month);
printf("\n\t\t\t 日:");
scanf("%d",&book.pubtime.day);
getchar();
}
do
{
loop=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:%d",book.pubtime.month);
printf("\n\t\t\t 日:%d",book.pubtime.day);
printf("\n\n\t\t\t7.价 格:");
scanf("%f",&temp);
book.price=temp;
if(book.price<=0)
{
loop=1;
}
}while(loop!=0);
fwrite(&book,sizeof(struct data),1,fp);
fclose(fp);
printf("\n\t\t\t\t\t\t是否继续输入数据(Y or N)?:");
ch=getch();
}while(ch=='y'||ch=='Y');
system("cls");
getchar();
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息输入结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void output()
{
FILE *fp;
int count,i;
char ch;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
count=ftell(fp)/sizeof(struct data);
rewind(fp);
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
for(i=0;i fread(&books[i],sizeof(struct data),1,fp);
fclose(fp);
for(i=0;i {
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",books[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",books[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",books[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",books[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",books[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",books[i].pubtime.year,books[i].pubtime.month,books[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",books[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息浏览结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void find()
{
FILE *fp;
struct data temp[20];
int count,i,n;
char ch,ch1,ch2,cha[20];
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i fread(&books[i],sizeof(struct data),1,fp);
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
do
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t1.按图书名查询");
printf("\n\n\n\t\t\t2.按作者名查询");
printf("\n\n\n\t\t\t3.退出查询");
printf("\n\n\n\t\t\t\t请选择相应的操作:");
ch1=getchar();
getchar();
if(ch1=='1')
{
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入查询的图书名:");
scanf("%s",cha);
getchar();
for(i=0;i {
if(strstr(books[i].bname,cha))
{
temp[count]=books[i];
count++;
}
}
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t\t未查找到相关数据!!!");
printf("\n\n\n\n\n\t\t\t\t\t\t是否继续查询?(Y or N):");
ch2=getchar();
getchar();
}
}while(count==0&&ch2=='y'||ch2=='Y');
for(i=0;i {
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",temp[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",temp[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",temp[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",temp[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",temp[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",temp[i].pubtime.year,temp[i].pubtime.month,temp[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",temp[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
}
if(ch1=='2')
{
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入查询的作者名:");
scanf("%s",cha);
getchar();
for(i=0;i {
if(strstr(books[i].wname,cha))
{
temp[count]=books[i];
count++;
}
}
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t\t未查找到相关数据!!!");
printf("\n\n\n\n\n\t\t\t\t\t\t是否继续查询?(Y or N):");
ch2=getchar();
getchar();
}
}while(count==0&&ch2=='y'||ch2=='Y');
for(i=0;i {
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",temp[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",temp[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",temp[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",temp[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",temp[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",temp[i].pubtime.year,temp[i].pubtime.month,temp[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",temp[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
}
}while(ch1!='3');
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息查询结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void sort()
{
FILE *fp;
int n,i,j;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i fread(&books[i],sizeof(struct data),1,fp);
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
for(i=0;i { for(j=0;j<(n-1)-i;j++)
{
if(books[j].num>books[j+1].num)
{
book=books[j];
books[j]=books[j+1];
books[j+1]=book;
}
}
}
fp=fopen("book.dat","wb");
for(i=0;i fwrite(&books[i],sizeof(struct data),1,fp);
fclose(fp);
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\n\t\t\t\t已按图书登录号排序完毕!!!");
getchar();
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息排序结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void edit()
{
FILE *fp,*fp1;
struct data temp[20];
int i,n,count,k[20],day1,loop,count1,j;
float t1;
char cha[20],ch,ch1,ch2;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i fread(&books[i],sizeof(struct data),1,fp);
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入要修改的图书名:");
scanf("%s",cha);
getchar();
for(i=0;i {
if(strstr(books[i].bname,cha))
{
temp[count]=books[i];
k[count]=i;
count++;
}
}
#include "stdlib.h"
#include "string.h"
#include "conio.h"
struct time
{
int year;
int month;
int day;
};
struct data
{
int num;
char bname[20];
char wname[15];
char clanum[15];
char pubcom[10];
struct time pubtime;
float price;
}books[20],book;
void face()
{
system("cls");
printf("\n ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
printf(" ┃ ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 图 书 信 息 管 理 系 统 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 1.图书数据输入 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 2.图书数据浏览 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 3.图书数据查找 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 4.图书数据排序 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 5.图书数据修改 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 6.图书数据删除 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ 7.退出系统 ┃\n");
printf(" ┃ ┃\n");
printf(" ┃ (Alpha Ver 0.1)┃\n");
printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
printf(" 请选择操作:");
}
int days(int year,int month)
{
int day2,loop=0;
if(year%4==0&&year%100!=0||year%400==0)
loop=1;
switch(month)
{
case 4:
case 6:
case 9:
case 11:
{
day2=30;
return(day2);
}
break;
case 2:
{
if(loop==1)
{
day2=29;
return(day2);
}
else
{
day2=28;
return(day2);
}
break;
}
break;
default :
{
day2=31;
return(day2);
}
break;
}
}
void input()
{
FILE *fp,*fp1;
struct data t;
char ch;
int day1,count,loop,i;
float temp;
do
{
system("cls");
fp=fopen("book.dat","ab");
if(fp==NULL)
{
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法创建!");
getchar();
return;
}
do
{
fp1=fopen("book.dat","rb");
loop=0;
fseek(fp1,0,2);
count=ftell(fp1)/sizeof(struct data);
fclose(fp1);
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:");
scanf("%d",&book.num);
getchar();
for(i=0;i
fp1=fopen("book.dat","rb");
fseek(fp1,i*(sizeof(struct data)),0);
fread(&t,sizeof(struct data),1,fp1);
fclose(fp1);
if(book.num<=0)
{
loop=1;
break;
}
if(book.num==t.num)
{
loop=1;
break;
}
}
}while(loop!=0);
printf("\n\t\t\t2.图 书 名:");
scanf("%s",book.bname);
printf("\n\t\t\t3.作 者 名:");
scanf("%s",book.wname);
printf("\n\t\t\t4.分 类 号:");
scanf("%s",book.clanum);
printf("\n\t\t\t5.出版单位:");
scanf("%s",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:");
scanf("%d",&book.pubtime.year);
getchar();
while(book.pubtime.year>2006||book.pubtime.year<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:");
scanf("%d",&book.pubtime.year);
getchar();
}
printf("\t\t\t 月:");
scanf("%d",&book.pubtime.month);
getchar();
while(book.pubtime.month>12||book.pubtime.month<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:");
scanf("%d",&book.pubtime.month);
getchar();
}
printf("\t\t\t 日:");
scanf("%d",&book.pubtime.day);
getchar();
day1=days(book.pubtime.year,book.pubtime.month);
while(book.pubtime.day>day1||book.pubtime.day<=0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:%d",book.pubtime.month);
printf("\n\t\t\t 日:");
scanf("%d",&book.pubtime.day);
getchar();
}
do
{
loop=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\t请输入图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",book.num);
printf("\n\t\t\t2.图 书 名:%s\n",book.bname);
printf("\n\t\t\t3.作 者 名:%s\n",book.wname);
printf("\n\t\t\t4.分 类 号:%s\n",book.clanum);
printf("\n\t\t\t5.出版单位:%s\n",book.pubcom);
printf("\n\t\t\t6.出版时间:");
printf("\n\t\t\t 年:%d",book.pubtime.year);
printf("\n\t\t\t 月:%d",book.pubtime.month);
printf("\n\t\t\t 日:%d",book.pubtime.day);
printf("\n\n\t\t\t7.价 格:");
scanf("%f",&temp);
book.price=temp;
if(book.price<=0)
{
loop=1;
}
}while(loop!=0);
fwrite(&book,sizeof(struct data),1,fp);
fclose(fp);
printf("\n\t\t\t\t\t\t是否继续输入数据(Y or N)?:");
ch=getch();
}while(ch=='y'||ch=='Y');
system("cls");
getchar();
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 输 入 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息输入结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void output()
{
FILE *fp;
int count,i;
char ch;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
count=ftell(fp)/sizeof(struct data);
rewind(fp);
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
for(i=0;i
fclose(fp);
for(i=0;i
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",books[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",books[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",books[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",books[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",books[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",books[i].pubtime.year,books[i].pubtime.month,books[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",books[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 浏 览 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息浏览结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void find()
{
FILE *fp;
struct data temp[20];
int count,i,n;
char ch,ch1,ch2,cha[20];
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
do
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t1.按图书名查询");
printf("\n\n\n\t\t\t2.按作者名查询");
printf("\n\n\n\t\t\t3.退出查询");
printf("\n\n\n\t\t\t\t请选择相应的操作:");
ch1=getchar();
getchar();
if(ch1=='1')
{
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入查询的图书名:");
scanf("%s",cha);
getchar();
for(i=0;i
if(strstr(books[i].bname,cha))
{
temp[count]=books[i];
count++;
}
}
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t\t未查找到相关数据!!!");
printf("\n\n\n\n\n\t\t\t\t\t\t是否继续查询?(Y or N):");
ch2=getchar();
getchar();
}
}while(count==0&&ch2=='y'||ch2=='Y');
for(i=0;i
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",temp[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",temp[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",temp[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",temp[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",temp[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",temp[i].pubtime.year,temp[i].pubtime.month,temp[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",temp[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
}
if(ch1=='2')
{
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入查询的作者名:");
scanf("%s",cha);
getchar();
for(i=0;i
if(strstr(books[i].wname,cha))
{
temp[count]=books[i];
count++;
}
}
if(count==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t\t\t未查找到相关数据!!!");
printf("\n\n\n\n\n\t\t\t\t\t\t是否继续查询?(Y or N):");
ch2=getchar();
getchar();
}
}while(count==0&&ch2=='y'||ch2=='Y');
for(i=0;i
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\t浏览图书信息:");
printf("\n\t\t\t1.登 录 号:%d\n",temp[i].num);
printf("\n\t\t\t2.图 书 名:%s\n",temp[i].bname);
printf("\n\t\t\t3.作 者 名:%s\n",temp[i].wname);
printf("\n\t\t\t4.分 类 号:%s\n",temp[i].clanum);
printf("\n\t\t\t5.出版单位:%s\n",temp[i].pubcom);
printf("\n\t\t\t6.出版时间:%d年%d月%d日\n",temp[i].pubtime.year,temp[i].pubtime.month,temp[i].pubtime.day);
printf("\n\t\t\t7.价 格:%.2f\n",temp[i].price);
if(i==0&&count==1)
{
printf("\n\n\t1.返回主菜单");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(count>1)
{
if(i==0)
{
printf("\n\n\t1.返回主菜单\t2.下一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else if(i==count-1)
{
printf("\n\n\t1.返回主菜单\t\t\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
else
{
printf("\n\n\t1.返回主菜单\t2.下一页\t3.上一页");
printf("\n\n\t\t\t\t第 %d 页/共 %d 页",i+1,count);
printf("\n\n\t\t\t\t\t\t请选择相应的操作:");
}
}
ch=getchar();
getchar();
if(ch=='1')
break;
if(ch=='2')
{
if(i!=count-1)
i++;
else
{
getchar();
getchar();
}
}
if(ch=='3')
{
if(i!=0)
i--;
else
{
getchar();
getchar();
}
}
}
}
}while(ch1!='3');
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 查 询 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息查询结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void sort()
{
FILE *fp;
int n,i,j;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
for(i=0;i
{
if(books[j].num>books[j+1].num)
{
book=books[j];
books[j]=books[j+1];
books[j+1]=book;
}
}
}
fp=fopen("book.dat","wb");
for(i=0;i
fclose(fp);
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\n\t\t\t\t已按图书登录号排序完毕!!!");
getchar();
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 排 序 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n 图书信息排序结束!");
printf("\n\n\n\n Press ENTER to continue!");
getchar();
}
void edit()
{
FILE *fp,*fp1;
struct data temp[20];
int i,n,count,k[20],day1,loop,count1,j;
float t1;
char cha[20],ch,ch1,ch2;
fp=fopen("book.dat","rb");
if(fp==NULL)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t文件无法读取!");
getchar();
return;
}
fseek(fp,0,2);
n=ftell(fp)/sizeof(struct data);
rewind(fp);
for(i=0;i
fclose(fp);
if(n==0)
{
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\n\n\t\t\t\t图书库内无信息!");
getchar();
return;
}
do
{
count=0;
system("cls");
printf("\n ※ ※ ※ ※ ※ ※ 图 书 信 息 修 改 ※ ※ ※ ※ ※ ※\n");
printf("\n\n\n\t\t请输入要修改的图书名:");
scanf("%s",cha);
getchar();
for(i=0;i
if(strstr(books[i].bname,cha))
{
temp[count]=books[i];
k[count]=i;
count++;
}
}
全部回答
- 1楼网友:患得患失的劫
- 2021-03-16 15:37
这也问,也会因为100分为你没昼夜的编程啊,这无聊很```自己都不想想~
- 2楼网友:轻熟杀无赦
- 2021-03-16 14:04
现在老师怎么都愿意出这道题啊-_-b
我也做过,也是VC,也是替别人做的。。。-_-b
我也做过,也是VC,也是替别人做的。。。-_-b
- 3楼网友:千杯敬自由
- 2021-03-16 13:44
这类问题一般都用比较专门的数据库程序来实现。用一般的语言来实现,就不如用visual basic。你们老师大脑发炎,才会要你们编写这类dos界面下的c语言数据库程序。
- 4楼网友:山河有幸埋战骨
- 2021-03-16 12:14
其实,这些要求并不难。
自己稍微用点心,基本上都可以弄出来的。
自己稍微用点心,基本上都可以弄出来的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯