利用结构体完成图书新增交互

效果图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

第一步 搭建基本的c 结构

搭建基本的c 结构

#include<stdio.h>
int main() {

	return 0;
}

第二步 搭建菜单

和用户进行交互显示

printf("欢迎使用图书系统-书籍的建立\n");
printf("1.添加数据\n");
printf("2.查看数据\n");
printf("3.退出\n");
printf("请输入你的选择:\n");
int inp;
scanf("%d", &inp);

第三步 根据选择 执行对应操作

if (inp==1)
{
	//添加数据
}
else if (inp == 2) {
	//输出数据

}
else
{
	break;//结束
}


第四步 创建结构体数组 存储数据

//定义书籍的结构体数组
	struct {
		char name[20];//书籍名字
		int fontNum;//书籍字数
		float price;//书籍价格
		char type[20];//书籍类型
		char auther[20];//书籍作者
	} book[100];
//分析
struct {
		char name[20];//书籍名字
		int fontNum;//书籍字数
		float price;//书籍价格
		char type[20];//书籍类型
		char auther[20];//书籍作者
	}int的作用类似
	比如声明 int a[];  
	struct {} 就和int 等价 都是数据类型

第五步 创建本数 记录书籍的数量

int number = 0;//每次创建一本书 就加一

第六步 完善新增操作的具体

if (inp==1)
{
	//添加书籍的信息
	printf("请输入 书名 字数 价格 类别 作者\n");
	scanf("%s %d %f %s %s", &book[number].name, &book[number].fontNum, &book[number].price, &book[number].type, &book[number].auther);
	number++;
}

完善查看的操作

else if (inp == 2) {
	//输出
	printf("输出结果: 书名 字数 价格 类别 作者\n");
	for (int i = 0; i < number; i++)
	{
		printf("输出结果: 书名:%s 字数:%d 价格:%f 类别:%s 作者:%s\n", book[i].name, book[i].fontNum, book[i].price, book[i].type, book[i].auther);
	}
}

终止操作

else
{
	break;//结束
}

第七步 实现循环功能 就是让用户选择退出 不然继续执行

while (1)//无限循环
	{
		
		printf("欢迎使用图书系统-书籍的建立\n");
		printf("1.添加数据\n");
		printf("2.查看数据\n");
		printf("3.退出\n");
		printf("请输入你的选择:\n");
		int inp;
		scanf("%d", &inp);
		
		if (inp==1)
		{
			//添加
		}
		else if (inp == 2) {
			//输出
			
		}
		else
		{
			break;//结束 用户选择结束循环
		}

	}

第八步 添加 清屏的功能 等优化交互的功能

system("pause");  //程序暂停 按任意键继续
system("cls"); //清空控制的输出内容

想要使用 需要引入
//引入system的
#include<stdlib.h>

在交互的前面和后面输入后进行清屏

比如
用户第一次打开 清屏 显示菜单 选择后 清屏
这样就只有功能的输出 菜单就隐藏的起来
让用户感觉进入了某一个功能

system("cls");
printf("欢迎使用图书系统-书籍的建立\n");
printf("1.添加数据\n");
printf("2.查看数据\n");
printf("3.退出\n");
printf("请输入你的选择:\n");
int inp;
scanf("%d", &inp);
system("cls");

在查看信息之后 进行system(“pause”)
让系统停一下 给用户看的时间
看完了 任意键返回

//输出
printf("输出结果: 书名 字数 价格 类别 作者\n");
for (int i = 0; i < number; i++)
{
	printf("输出结果: 书名:%s 字数:%d 价格:%f 类别:%s 作者:%s\n", book[i].name, book[i].fontNum, book[i].price, book[i].type, book[i].auther);
}
system("pause");
//暂停  需输入任意键  输入后循环重新执行 回到菜单页面

当输入 非1或2就会直接break 终止循环 跳出程序

else
{
	break;//结束
}

第九步 完整代码分享

知道很多小伙伴想直接看效果
但又担心搞不出来
所以我直接源码 你可以自己分析

#include<stdio.h>
//引入system的文件
#include<stdlib.h>
int main() {
	//定义书籍的结构体数组
	struct {
		char name[20];
		int fontNum;
		float price;
		char type[20];
		char auther[20];
	} book[100];
	int number = 0;
	while (1)
	{
		system("cls");
		printf("欢迎使用图书系统-书籍的建立\n");
		printf("1.添加数据\n");
		printf("2.查看数据\n");
		printf("3.退出\n");
		printf("请输入你的选择:\n");
		int inp;
		scanf("%d", &inp);
		system("cls");
		if (inp==1)
		{
			//添加书籍的信息
			printf("请输入 书名 字数 价格 类别 作者\n");
			scanf("%s %d %f %s %s", &book[number].name, &book[number].fontNum, &book[number].price, &book[number].type, &book[number].auther);
			number++;
		}
		else if (inp == 2) {
			//输出
			printf("输出结果: 书名 字数 价格 类别 作者\n");
			for (int i = 0; i < number; i++)
			{
				printf("输出结果: 书名:%s 字数:%d 价格:%f 类别:%s 作者:%s\n", book[i].name, book[i].fontNum, book[i].price, book[i].type, book[i].auther);
			}
			system("pause");
		}
		else
		{
			break;//结束
		}

	}

	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值