题目
解决代码及点评
/*
功能:有一批图书,每本书有:书名(name),作者(author) , 编号(num),出版日期(date)四个数据,
希望输入后按书名的字母顺序将各书的记录排列好,供以后查询。今输入一本书的书名,
如果查询到库中有此书,打印出此书的书名,作者,编号和出版日期。如果查不到此书,则打印出“无此书”。
时间:17:02 2013/10/26
*/
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 80
struct infoBook
{
char name[N];
char author[N];
int num;
int date;
};
void main()
{
struct infoBook a[5]={{"ebooks","yincheng",5,18880808},{"lbook","haoyun",34,12330205},{"c++","wangwen",1,19870731},
{"C primer","vicky",2,19880310},
{"data struction","ben",3,19550302}};
for(int i=0;i<5;i++) //将初始化信息打印到屏幕上
{
printf("%-15s\t\t%s\t\t%d\t%d\n",a[i].name,a[i].author,a[i].num,a[i].date);
}
printf("\n\n After order!\n");
for(int i=0;i<4;i++) // 对书本进行排序
{
for (int j=i+1;j<5;j++)
{
char t=a[i].name[0];
char s=a[j].name[0];
if(t>s)
{
struct infoBook temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
for(int i=0;i<5;i++) //将排序后信息打印到屏幕上
{
printf("%-15s\t\t%s\t\t%d\t%d\n",a[i].name,a[i].author,a[i].num,a[i].date);
}
puts("please enter the book");
char books[N];
gets_s(books); // 输入书名
for(int i=0;i<5;i++) // 对输入书名进行查询,如果查询到,则打印详细信息
{
if(strcmp(books,a[i].name)==0)
{
printf("%-15s\t\t%s\t\t%d\t%d\n",a[i].name,a[i].author,a[i].num,a[i].date);
system("pause");
return;
}
}
printf("NO");
system("pause");
}
代码编译以及运行
由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:
1)新建工程
2)选择工程
3)创建完工程如下图:
4)增加文件,右键点击项目
5)在弹出菜单里做以下选择
6)添加文件
7)拷贝代码与运行
程序运行结果