操作系统
1月4日 周四
问题:
今天实现的功能: C语言 书籍信息 录入 删除 排序 查找 使用指针地址传参 顺序表 书法家投票 十进制转换二进制
/* Note:Your choice is C IDE */
include “stdio.h”
//书籍信息 录入 删除 排序 查找
struct data
{
int num;
char name[30];
char man[30];
float price;
char pub[100];
};
struct list
{
struct data a[5];
int len;
};
struct list q;
void one();
void in();
void del();
void price();
void find();
void main()
{
one();
}
void one()
{
char x;
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':in();
break;
case 's':del();
break;
case 'b':price();
break;
case 'c':find();
break;
case 'd':exit(0);
break;
default:printf("编号有误\n");
}
}
}
void in()
{
int i,n,p;
float sum=0;
q.len=0;
printf("请输入书籍的数量(本数):");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("请输入第%d本书的信息:\n",i+1);
printf("请输入书籍编号:");
scanf("%d",&q.a[i].num);
printf("请输入书籍名称:");
scanf("%s",q.a[i].name);
printf("请输入书籍作者:");
scanf("%s",q.a[i].man);
printf("请输入书籍单价:");
scanf("%f",&q.a[i].price);
printf("请输入书籍出版社:");
scanf("%s",q.a[i].pub);
q.len++;
sum+=q.a[i].price;
}
for(i=0;i<q.len;i++)
{
printf("书籍编号是:%d 书籍名称是:%s 书籍作者是:%s 书籍单价是:%.2f 书籍出版社是:%s\n",q.a[i].num,q.a[i].name,q.a[i].man,q.a[i].price,q.a[i].pub);
}
printf("%d本书籍的总价格是:%.2f元,平均价格是:%.2f\n",n,sum,sum/n);
}
void del()
{
char key[50];
int i,k,flag=0;
float sum=0;
struct data temp;
printf("请输入删除的书籍名称:");
scanf("%s",key);
for(i=0;i<q.len;i++)
{
if(strcmp(key,q.a[i].name)==0)
{
printf("您要删除的书籍名称是:%s,出版社是%s\n",key,q.a[i].pub);
k=i;
flag=1;
}
}
if(flag==0)
{
printf("没有要删除的书籍\n");
}
for(i=k;i<q.len;i++)
{
temp=q.a[i];
q.a[i]=q.a[i+1];
q.a[i+1]=temp;
}
q.len--;
printf("删除%s书籍后的信息如下:\n",key);
for(i=0;i<q.len;i++)
{
printf("书籍编号是:%d 书籍名称是:%s 书籍作者是:%s 书籍单价是:%.2f 书籍出版社是:%s\n",q.a[i].num,q.a[i].name,q.a[i].man,q.a[i].price,q.a[i].pub);
sum+=q.a[i].price;
}
printf("%d本书籍的总价格是%.2f元,平均价格是:%.2f元\n",q.len,sum,sum/q.len);
}
void price()
{
int i;
struct data temp;
float sum=0;
for(i=0;i<q.len-1;i++)
{
if(q.a[i].price<q.a[i+1].price)
{
temp=q.a[i];
q.a[i]=q.a[i+1];
q.a[i+1]=temp;
}
}
for(i=0;i<q.len;i++)
{
printf("书籍编号是:%d 书籍名称是:%s 书籍作者是:%s 书籍单价是:%.2f 书籍出版社是:%s\n",q.a[i].num,q.a[i].name,q.a[i].man,q.a[i].price,q.a[i].pub);
sum+=q.a[i].price;
}
printf("%d本书籍的总价格是%.2f元,平均价格是:%.2f元\n",q.len,sum,sum/q.len);
}
void find()
{
char publi[100];
int i,flag=0,k;
printf(“请输入你要查找的出版社:”);
scanf(“%s”,publi);
for(i=0;i
include “stdio.h”
//使用指针地址传参 顺序表
struct sqlist
{
char a[20];
int len;
};
hanshu(struct sqlist *p)
{
int i;
for(i=0;i<5;i++)
{
scanf(“%c”,&p->a[i]);
p->len++;
}
chuancan(p);
}
chuancan(struct sqlist *p)
{
int i;
for(i=0;ilen;i++)
{
printf(“%c”,p->a[i]);
}
}
void main()
{
struct sqlist s[5];
hanshu(s);
}
/* Note:Your choice is C IDE */
include “stdio.h”
//书法家投票
void main()
{
int i=0,x;
int a=0,b=0,c=0;
while(i<2)
{
printf("1.王献之 2.欧阳荀 3.李斯\n");
printf("请选择要投票的书法家编号:");
scanf("%d",&x);
i++;
if(x==1)
{
a++;
}
else if(x==2)
{
b++;
}
else if(x==3)
{
c++;
}
else
{
printf("编号错误\n");
i--;
}
}
printf("王献之%d票 欧阳荀%d票 李斯%d票",a,b,c);
}
/* Note:Your choice is C IDE */
include “stdio.h”
//十进制转换二进制
void main()
{
int x,i=0;
int a[100];
printf("请输入一个十进制数:");
scanf("%d",&x);
do
{
//printf("%d",x%2);
a[i]=x%2;
i++;
x=x/2;
}
while(x>0);
printf("\n");
while(i>0)
{
i--;
printf("%d",a[i]);
}
}
与亚里士多德为友,与柏拉图为友,更与真理为友。