基于visual Studio2013解决C语言竞赛题之0802图书信息查询




题目


解决代码及点评

/*
功能:有一批图书,每本书有:书名(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)拷贝代码与运行


程序运行结果






posted on 2013-12-06 13:12  三少爷的剑123  阅读(196)  评论(0编辑  收藏  举报

导航