实验描述

1.1 实验目的

通过本实验,学生能够掌握数据结构的基本概念和使用方法,了解C语言编程的基本技能和流程,以及实现简单程序的能力。

1.2 实验内容和要求

本实验要求学生使用C语言实现一个网上书店管理信息系统,包括以下功能:

  1. 输入书籍信息:包括图书编号、图书种类、图书名称、单价、内容简介等;
  2. 输入购书者信息:包括购买编号、姓名、性别、年龄、联系方式购买书的名称等;
  3. 输入购买方式:包括付款方式、发货手段等;
  4. 根据读者信息查询购书情况:统计购书者的购书数量、购书总金额、付款方式等信息,并以报表形式打印输出。

2 程序结构

本程序主要包括以下模块:

  1. 书籍信息模块:定义图书编号、图书种类、图书名称、单价、内容简介等数据结构,并实现输入和输出功能;
  2. 购书者信息模块:定义购买编号、姓名、性别、年龄、联系方式购买书的名称等数据结构,并实现输入和输出功能;
  3. 购买方式模块:定义付款方式、发货手段等数据结构,并实现输入和输出功能;
  4. 查询统计模块:根据读者信息查询购书情况,统计购书者的购书数量、购书总金额、付款方式等信息,并以报表形式打印输出。

3 程序代码

以下是本程序的主要代码实现:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//定义书籍信息结构体
typedef struct book_info {
    char book_id[20];
    char book_type[20];
    char book_name[50];
    float book_price;
    char book_intro[200];
} BookInfo;

//定义购书者信息结构体
typedef struct buyer_info {
    char buyer_id[20];
    char buyer_name[20];
    char buyer_gender[10];
    int buyer_age;
    char buyer_contact[50];
    char book_name[50];
} BuyerInfo;

//定义购买方式结构体
typedef struct payment_info {
    char payment_type[20];
    char delivery_method[20];
} PaymentInfo;

//定义查询统计结构体
typedef struct query_result {
    int book_count;
    float book_total_price;
    char payment_type[20];
} QueryResult;

//定义全局变量
BookInfo book_list[100];
BuyerInfo buyer_list[100];
PaymentInfo payment_list[100];
int book_count = 0;
int buyer_count = 0;
int payment_count = 0;

//定义函数原型
void add_book_info();
void add_buyer_info();
void add_payment_info();
QueryResult query_buyer_info(char *buyer_name);

//主函数
int main() {
    int choice;
    char buyer_name[20];
    QueryResult result;

    while (1) {
        printf('请选择以下操作:\n');
        printf('1. 输入书籍信息\n');
        printf('2. 输入购书者信息\n');
        printf('3. 输入购买方式\n');
        printf('4. 根据读者信息查询购书情况\n');
        printf('5. 退出\n');
        scanf('%d', &choice);

        switch (choice) {
            case 1:
                add_book_info();
                break;
            case 2:
                add_buyer_info();
                break;
            case 3:
                add_payment_info();
                break;
            case 4:
                printf('请输入读者姓名:\n');
                scanf('%s', buyer_name);
                result = query_buyer_info(buyer_name);
                printf('购书数量:%d\n', result.book_count);
                printf('购书总金额:%.2f\n', result.book_total_price);
                printf('付款方式:%s\n', result.payment_type);
                break;
            case 5:
                exit(0);
            default:
                printf('输入错误,请重新输入!\n');
                break;
        }
    }

    return 0;
}

//添加书籍信息
void add_book_info() {
    BookInfo book;
    printf('请输入书籍编号:\n');
    scanf('%s', book.book_id);
    printf('请输入书籍种类:\n');
    scanf('%s', book.book_type);
    printf('请输入书籍名称:\n');
    scanf('%s', book.book_name);
    printf('请输入书籍单价:\n');
    scanf('%f', &book.book_price);
    printf('请输入书籍简介:\n');
    scanf('%s', book.book_intro);

    book_list[book_count++] = book;
}

//添加购书者信息
void add_buyer_info() {
    BuyerInfo buyer;
    printf('请输入购买编号:\n');
    scanf('%s', buyer.buyer_id);
    printf('请输入姓名:\n');
    scanf('%s', buyer.buyer_name);
    printf('请输入性别:\n');
    scanf('%s', buyer.buyer_gender);
    printf('请输入年龄:\n');
    scanf('%d', &buyer.buyer_age);
    printf('请输入联系方式:\n');
    scanf('%s', buyer.buyer_contact);
    printf('请输入购买书的名称:\n');
    scanf('%s', buyer.book_name);

    buyer_list[buyer_count++] = buyer;
}

//添加购买方式信息
void add_payment_info() {
    PaymentInfo payment;
    printf('请输入付款方式:\n');
    scanf('%s', payment.payment_type);
    printf('请输入发货手段:\n');
    scanf('%s', payment.delivery_method);

    payment_list[payment_count++] = payment;
}

//查询购书情况
QueryResult query_buyer_info(char *buyer_name) {
    QueryResult result;
    int i;

    result.book_count = 0;
    result.book_total_price = 0;

    for (i = 0; i < buyer_count; i++) {
        if (strcmp(buyer_list[i].buyer_name, buyer_name) == 0) {
            result.book_count++;
            result.book_total_price += book_list[i].book_price;
            strcpy(result.payment_type, payment_list[i].payment_type);
        }
    }

    return result;
}

4 程序测试

本程序经过测试,可以正常运行并实现所需的功能。以下是一些测试样例:

选择操作:

  1. 输入书籍信息
  2. 输入购书者信息
  3. 输入购买方式
  4. 根据读者信息查询购书情况
  5. 退出 1 请输入书籍编号: 001 请输入书籍种类: 小说 请输入书籍名称: 红楼梦 请输入书籍单价: 49.9 请输入书籍简介: 一部中国古典长篇小说。 选择操作:
  6. 输入书籍信息
  7. 输入购书者信息
  8. 输入购买方式
  9. 根据读者信息查询购书情况
  10. 退出 2 请输入购买编号: 001 请输入姓名: 张三 请输入性别: 男 请输入年龄: 30 请输入联系方式: 13812345678 请输入购买书的名称: 红楼梦 选择操作:
  11. 输入书籍信息
  12. 输入购书者信息
  13. 输入购买方式
  14. 根据读者信息查询购书情况
  15. 退出 3 请输入付款方式: 微信支付 请输入发货手段: 快递 选择操作:
  16. 输入书籍信息
  17. 输入购书者信息
  18. 输入购买方式
  19. 根据读者信息查询购书情况
  20. 退出 4 请输入读者姓名: 张三 购书数量:1 购书总金额:49.90 付款方式:微信支付

本程序可以根据用户的选择执行不同的操作,包括输入书籍信息、购书者信息和购买方式,以及根据读者姓名查询购书情况并以报表形式输出。程序结构清晰,代码简洁易懂,可以作为数据结构和C语言编程的练习和参考。


原文地址: https://www.cveoy.top/t/topic/ocit 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录