#include <stdio.h> #include <string.h> struct Books { char title[50]; char author[50]; char subject[100]; int book_id; }; /* 函数声明 */ void printBook( struct Books *book ); int main( ) { struct Books Book1; /* 声明 Book1,类型为 Books */ struct Books Book2; /* 声明 Book2,类型为 Books */ /* Book1 详述 */ strcpy( Book1.title, "C Programming"); strcpy( Book1.author, "Nuha Ali"); strcpy( Book1.subject, "C Programming Tutorial"); Book1.book_id = 6495407; /* Book2 详述 */ strcpy( Book2.title, "Telecom Billing"); strcpy( Book2.author, "Zara Ali"); strcpy( Book2.subject, "Telecom Billing Tutorial"); Book2.book_id = 6495700; /* 通过传 Book1 的地址来输出 Book1 信息 */ printBook( &Book1 ); /* 通过传 Book2 的地址来输出 Book2 信息 */ printBook( &Book2 ); return 0; } void printBook( struct Books *book ) { printf( "Book title : %s\n", book->title); printf( "Book author : %s\n", book->author); printf( "Book subject : %s\n", book->subject); printf( "Book book_id : %d\n", book->book_id); }
时间: 2024-04-01 07:33:13 浏览: 75
这段代码定义了一个名为 `Books` 的结构体,包含了四个成员:`title`、`author`、`subject` 和 `book_id`。结构体中还定义了一个名为 `printBook` 的函数,用于打印出传入结构体指针所指向的结构体中各个成员的值。
在 `main()` 函数中,首先定义了两个 `Books` 类型的结构体变量 `Book1` 和 `Book2`。然后使用 `strcpy()` 函数分别为两个结构体变量的成员赋值。最后通过调用 `printBook()` 函数,输出了两个结构体变量的成员值。
这段代码的主要作用是演示了如何定义结构体和使用结构体变量及指针,以及如何通过指针访问结构体成员。
相关问题
假设你正在开发一个图书管理系统,你需要设计一个数据结构来表示图书。每本图书包括书名、作者和出版日期。按照出版日期升序排 序,即先出版的图书排在前面。 输入: 从键盘输入一个整数 n(1<=n<=100),表示图书教量。然后输入n行,每行包念一本图书的信息:书名(不超过100 个字符)、作者(不超过 100个字符)和出版日期(格式为YYYY-MM-DD),数据之间用空格隔开。 输出: 按排序后的顺序输出图书的信息,每本图书一行,包括书名、作者和出版日期,数据之间用空格隔开。 1.程序题(100.0分) C
以下是一个使用C语言实现的图书管理系统代码示例:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Book {
char title[101];
char author[101];
char date[11];
};
int cmp(const void *a, const void *b) {
struct Book *p = (struct Book *)a;
struct Book *q = (struct Book *)b;
return strcmp(p->date, q->date);
}
int main() {
int n;
scanf("%d", &n);
struct Book *books = (struct Book *)malloc(n * sizeof(struct Book));
for (int i = 0; i < n; i++) {
scanf("%s %s %s", books[i].title, books[i].author, books[i].date);
}
qsort(books, n, sizeof(struct Book), cmp);
for (int i = 0; i < n; i++) {
printf("%s %s %s\n", books[i].title, books[i].author, books[i].date);
}
free(books);
return 0;
}
```
首先定义了一个结构体 `Book` 来表示图书,包括书名、作者和出版日期。接着定义了一个比较函数 `cmp` 来用于排序,按照出版日期升序排列。主函数中先读入图书信息,然后使用 `qsort` 函数进行排序,再按顺序输出图书信息。最后释放动态分配的内存,程序结束。
1.系统以菜单方式工作2.图书信息录入功能,3图书信息浏览功能4.图书信息查询功能
好的,下面是一个简单的图书信息管理系统的代码,实现了您所需的功能。请注意,这只是一个示例,可能需要根据您的具体需求进行修改和完善。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100 // 最大书籍数量
struct book {
char title[50]; // 书名
char author[20]; // 作者
char publisher[20]; // 出版社
float price; // 价格
int year; // 出版年份
};
struct book books[MAX_BOOKS]; // 存放书籍信息的数组
int book_count = 0; // 当前书籍数量
void show_menu(); // 显示菜单
void add_book(); // 添加书籍
void show_books(); // 浏览书籍
void search_book(); // 查询书籍
int main() {
int choice;
do {
show_menu(); // 显示菜单
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_book(); // 添加书籍
break;
case 2:
show_books(); // 浏览书籍
break;
case 3:
search_book(); // 查询书籍
break;
case 4:
printf("感谢使用图书信息管理系统,再见!\n");
break;
default:
printf("错误的选择,请重新输入!\n");
}
} while (choice != 4);
return 0;
}
void show_menu() {
printf("**********图书信息管理系统**********\n");
printf("1. 添加书籍\n");
printf("2. 浏览书籍\n");
printf("3. 查询书籍\n");
printf("4. 退出系统\n");
printf("************************************\n");
}
void add_book() {
if (book_count >= MAX_BOOKS) {
printf("书籍数量已达到上限,无法添加!\n");
return;
}
struct book new_book;
printf("请输入书名:");
scanf("%s", new_book.title);
printf("请输入作者:");
scanf("%s", new_book.author);
printf("请输入出版社:");
scanf("%s", new_book.publisher);
printf("请输入价格:");
scanf("%f", &new_book.price);
printf("请输入出版年份:");
scanf("%d", &new_book.year);
books[book_count] = new_book;
book_count++;
printf("添加成功!\n");
}
void show_books() {
if (book_count == 0) {
printf("暂无书籍信息!\n");
return;
}
printf("共有 %d 本书:\n", book_count);
for (int i = 0; i < book_count; i++) {
printf("书名:%s,作者:%s,出版社:%s,价格:%.2f,出版年份:%d\n",
books[i].title, books[i].author, books[i].publisher, books[i].price, books[i].year);
}
}
void search_book() {
if (book_count == 0) {
printf("暂无书籍信息!\n");
return;
}
char keyword[50];
printf("请输入要查询的书名或作者:");
scanf("%s", keyword);
int count = 0; // 记录匹配到的书籍数量
for (int i = 0; i < book_count; i++) {
if (strstr(books[i].title, keyword) || strstr(books[i].author, keyword)) {
printf("书名:%s,作者:%s,出版社:%s,价格:%.2f,出版年份:%d\n",
books[i].title, books[i].author, books[i].publisher, books[i].price, books[i].year);
count++;
}
}
if (count == 0) {
printf("没有匹配到任何书籍!\n");
} else {
printf("共匹配到 %d 本书!\n", count);
}
}
```
以上代码实现了一个简单的图书信息管理系统,包含添加书籍、浏览书籍、查询书籍等功能。您可以根据需要进行修改和完善。
阅读全文