1月19日 操作系统 周五

操作系统
119日     周五
/* 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;
    }

}
我不是天生的王者 但我骨子里流动着不让我低头的血液
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值