C语言数据结构实验:网上书店管理信息系统
实验描述
1.1 实验目的
通过本实验,学生能够掌握数据结构的基本概念和使用方法,了解C语言编程的基本技能和流程,以及实现简单程序的能力。
1.2 实验内容和要求
本实验要求学生使用C语言实现一个网上书店管理信息系统,包括以下功能:
- 输入书籍信息:包括图书编号、图书种类、图书名称、单价、内容简介等;
- 输入购书者信息:包括购买编号、姓名、性别、年龄、联系方式购买书的名称等;
- 输入购买方式:包括付款方式、发货手段等;
- 根据读者信息查询购书情况:统计购书者的购书数量、购书总金额、付款方式等信息,并以报表形式打印输出。
2 程序结构
本程序主要包括以下模块:
- 书籍信息模块:定义图书编号、图书种类、图书名称、单价、内容简介等数据结构,并实现输入和输出功能;
- 购书者信息模块:定义购买编号、姓名、性别、年龄、联系方式购买书的名称等数据结构,并实现输入和输出功能;
- 购买方式模块:定义付款方式、发货手段等数据结构,并实现输入和输出功能;
- 查询统计模块:根据读者信息查询购书情况,统计购书者的购书数量、购书总金额、付款方式等信息,并以报表形式打印输出。
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 请输入书籍编号: 001 请输入书籍种类: 小说 请输入书籍名称: 红楼梦 请输入书籍单价: 49.9 请输入书籍简介: 一部中国古典长篇小说。 选择操作:
- 输入书籍信息
- 输入购书者信息
- 输入购买方式
- 根据读者信息查询购书情况
- 退出 2 请输入购买编号: 001 请输入姓名: 张三 请输入性别: 男 请输入年龄: 30 请输入联系方式: 13812345678 请输入购买书的名称: 红楼梦 选择操作:
- 输入书籍信息
- 输入购书者信息
- 输入购买方式
- 根据读者信息查询购书情况
- 退出 3 请输入付款方式: 微信支付 请输入发货手段: 快递 选择操作:
- 输入书籍信息
- 输入购书者信息
- 输入购买方式
- 根据读者信息查询购书情况
- 退出 4 请输入读者姓名: 张三 购书数量:1 购书总金额:49.90 付款方式:微信支付
本程序可以根据用户的选择执行不同的操作,包括输入书籍信息、购书者信息和购买方式,以及根据读者姓名查询购书情况并以报表形式输出。程序结构清晰,代码简洁易懂,可以作为数据结构和C语言编程的练习和参考。
原文地址: https://www.cveoy.top/t/topic/ocit 著作权归作者所有。请勿转载和采集!