基于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)拷贝代码与运行
程序运行结果