操作系统
1月19日 周五
/* Note:Your choice is C IDE */
#include "stdio.h"
#define M 10//全局宏
struct list //全局结构体
{
int num;//书籍编号
char name[30];//书籍名称
char writer[20];//书籍作者
float price;//书籍单价
char pub[50];//书籍出版社
};
struct good//结构体
{
struct list a[M];
int len;//长度
};
struct good s;//结构体变量
void five();
one(int p)
{
int n,i;//定义变量
float sum=0;//定义变量
printf("请输入书籍的数量(本数):");//提示
scanf("%d",&n);//输入
printf("\n");//换行
for(i=0;i<n;i++)//循环
{
printf("请输入第%d本书的信息:\n",i+1);//输出
printf("请输入书籍编号:");//输出
scanf("%d",&s.a[i].num);//输入
printf("请输入书籍名称:");//输出
scanf("%s",s.a[i].name);//输入
printf("请输入书籍作者:");//输出
scanf("%s",s.a[i].writer);//输入
printf("请输入书籍单价:");//输出
scanf("%f",&s.a[i].price);//输入
printf("请输入书籍出版社:");//输出
scanf("%s",s.a[i].pub);//输入
printf("\n");
sum+=s.a[i].price;//求和
s.len++;//表长
}
for(i=0;i<s.len;i++)//循环
{
printf("书籍编号是:%d\t书籍名称是:%s\t书籍作者是:%s\t书籍单价是:%.2f \t书籍出版社是:%s\n",s.a[i].num,s.a[i].name,s.a[i].writer,s.a[i].price,s.a[i].pub);
}
printf("%d本书籍的总价格是:%.2f元,平均价格是:%.2f元\n",s.len,sum,sum/n);//输出
}
two(int z)
{
int i,j,flag=0;//定义变量
float sum=0;//定义变量
char ming[30];//定义变量
printf("请输入删除的书籍名称:");//输出
scanf("%s",ming);
for(i=0;i<s.len;i++)//循环
{
if(strcmp(ming,s.a[i].name)==0)//判断
{
flag=1;
printf("您要删除的书籍名称是:%s,出版社是:%s\n",s.a[i].name,s.a[i].pub);//输出
printf("删除%s书籍后的信息如下:\n",s.a[i].name);//输出
for(j=i;j<s.len;j++)//循环
{
s.a[j]=s.a[j+1];
}
s.len--;
for(j=0;j<s.len;j++)//循环
{
printf("书籍编号是:%d\t书籍名称是:%s\t书籍作者是:%s\t书籍单价是:%.2f \t书籍出版社是:%s\n",s.a[j].num,s.a[j].name,s.a[j].writer,s.a[j].price,s.a[j].pub);
sum+=s.a[j].price;
}
printf("%d本书籍的总价格是:%.2f元,平均价格是:%.2f元\n",s.len,sum,sum/s.len);//输出
}
}
if(flag==0)//判断
{
printf("没有要删除的书籍\n");//输出
}
}
three(int q)
{
int i,j;//定义变量
struct list t;//定义变量
printf("按照书籍价格从高到底排序后的结果是:\n");//输出
for(i=1;i<s.len;i++)//循环
{
for(j=0;j<s.len-i;j++)//循环
{
if(s.a[j].price<s.a[j+1].price)//判断
{
t=s.a[j];
s.a[j]=s.a[j+1];
s.a[j+1]=t;
}
}
}
for(i=0;i<s.len;i++)//循环
{
printf("书籍编号是:%d\t书籍名称是:%s\t书籍作者是:%s\t书籍单价是:%.2f \t书籍出版社是:%s\n",s.a[i].num,s.a[i].name,s.a[i].writer,s.a[i].price,s.a[i].pub);
}
}
four(int u)
{
char chu[50];//定义变量
int i,flag=0;//定义变量
printf("请输入你要查找的出版社:");//输出
scanf("%s",chu);
for(i=0;i<s.len;i++)//循环
{
if(strcmp(chu,s.a[i].pub)==0)//判断
{
flag=1;
printf("出版社为%s的书籍有:%s\n",s.a[i].name,s.a[i].name);//输出
}
}
if(flag==0)//判断
{
printf("出版社为%s的书籍有:没有名称为%s的书籍\n",chu,chu);//输出
}
}
void main()
{
char x,p,z,q,u;//定义变量
s.len=0;
while(1)
{
printf("\n\t\t==============书籍采集信息==============\n");//输出
printf("\t\ta.书籍信息的录入\n");//输出
printf("\t\ts.删除书籍的信息\n");//输出
printf("\t\tb.按照书籍的价格从大到小排序\n");//输出
printf("\t\tc.查找书籍的信息\n");//输出
printf("\t\td.退出\n");//输出
printf("\t\t=========================================\n");//输出
printf("请进行选择:");//输出
scanf(" %c",&x);
switch(x)
{
case 'a':one(p);//函数调用
break;
case 's':two(z);//函数调用
break;
case 'b':three(q);//函数调用
break;
case 'c':four(u);//函数调用
break;
case 'd':five();//函数调用
break;
default:printf("选择错误\n");//输出
}
}
}
void five()
{
char ok[20];//定义变量
show:
printf("是否确定退出:");//输出
scanf("%s",ok);
if(strcmp(ok,"确定")==0)//判断
{
printf("您选择了退出程序\n");//输出
exit(0);
}
else if(strcmp(ok,"否")==0)//判断
{
printf("返回主程序\n");//输出
main();
}
else
{
goto show;
}
}
我不是天生的王者 但我骨子里流动着不让我低头的血液
1月19日 操作系统 周五
最新推荐文章于 2024-01-18 21:18:43 发布