结构体练手-项目
效果图
第一步 搭建基本的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;
}