#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 10:33:13 浏览: 13
这段代码定义了一个名为 `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` 函数进行排序,再按顺序输出图书信息。最后释放动态分配的内存,程序结束。
用c语言写一个图书馆管理系统
好的,下面是一个简单的图书馆管理系统,包括添加图书、借出图书、归还图书和查询图书等功能,代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BOOKS 100
// 图书结构体
struct book {
char title[50];
char author[20];
int id;
int borrowed; // 是否借出:1表示借出,0表示未借出
};
// 图书馆结构体
struct library {
struct book books[MAX_BOOKS];
int count; // 当前图书数量
};
// 初始化图书馆
void init_library(struct library *lib) {
lib->count = 0;
}
// 添加图书
void add_book(struct library *lib, char *title, char *author, int id) {
// 判断图书是否已经存在
for (int i = 0; i < lib->count; ++i) {
if (lib->books[i].id == id) {
printf("该图书已存在!\n");
return;
}
}
// 添加新图书
struct book new_book;