欢迎光临
我们一直在努力

简单实战项目合集

简单实战项目合集

目录

  • 项目 1:猜数字游戏(简单)
  • 项目 2:简易计算器(中等)
  • 项目 3:数组版通讯录(中等)
  • 项目 4:ATM 简易模拟系统(综合,偏难)

1…项目 1:猜数字游戏(简单)

知识点:变量、函数、if‑else、while 循环、随机数

#define _CRT_SECURE_NO_WARNINGS
项目 1:猜数字游戏(简单)
知识点:变量、函数、ifelsewhile 循环、随机数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//函数声明
void game();
void menu();

int main()
{
int input;
srand((unsigned int)time(NULL)); //设置随机数种子

while (1)
{
menu();
printf("请选择:");
scanf("%d", &input);
switch (input)
{
case 1:
game();
break;
case 0:
printf("游戏结束\\n");
return 0;
default:
printf("输入错误,请重新选择!\\n");
}
}
return 0;
}

void menu()
{
printf("\\n====猜数字游戏====\\n");
printf("1.开始游戏\\n");
printf("0.退出\\n");
}

void game()
{
int num = rand() % 100 + 1; //1~100随机数字
int guess;
int count = 0;
printf("已经生成1‑100数字,请猜:\\n");
while (1)
{
printf("输入你猜的数字:");
scanf("%d", &guess);
count++;
if (guess > num)
{
printf("猜大了!\\n");
}
else if (guess < num)
{
printf("猜小了!\\n");
}
else
{
printf("恭喜猜对!一共猜了%d次\\n", count);
break;
}
}
}

在这里插入图片描述

2.项目 2:简易计算器(中等)

知识点:数组、函数、switch 分支、循环、变量 实现加减乘除,可循环多次计算

#define _CRT_SECURE_NO_WARNINGS
项目 2:简易计算器(中等)
知识点:数组、函数、switch 分支、循环、变量
实现加减乘除,可循环多次计算
#include <stdio.h>

函数声明
double calc(double a, double b, int op);
void menu();

int main()
{
int op;
double a, b, res;
while (1)
{
menu();
printf("请输入运算符(1+ 2‑ 3* 4/ 0退出):");
scanf("%d", &op);
if (op == 0)
{
printf("计算器退出\\n");
break;
}
printf("输入两个数字:");
scanf("%lf%lf", &a, &b);
res = calc(a, b, op);
printf("计算结果 = %.2lf\\n\\n", res);
}
return 0;
}

void menu()
{
printf("====简易计算器====\\n");
printf("1:加法 2:减法\\n");
printf("3:乘法 4:除法\\n");
printf("0:退出\\n");
}

double calc(double a, double b, int op)
{
switch (op)
{
case 1: return a + b;
case 2: return a b;
case 3: return a * b;
case 4:
if (b == 0)
{
printf("错误:除数不能为0!");
return 0;
}
return a / b;
default:
printf("非法运算符!");
return 0;
}
}

在这里插入图片描述

3.项目 3:数组版通讯录(中等)

完整覆盖:数组、函数、if、switch、for 循环。存储姓名电话,增删查改。

#define _CRT_SECURE_NO_WARNINGS
项目 3:数组版通讯录(中等)
完整覆盖:数组、函数、ifswitchfor 循环。存储姓名电话,增删查改。
#include <stdio.h>
#include <string.h>

#define MAX 10

联系人结构体
struct Contact
{
char name[20];
char phone[15];
};

全局通讯录数组
struct Contact book[MAX];
int size = 0; //当前联系人数量

函数声明
void menu();
void add();
void show();
void del();
void search();

int main()
{
int select;
while (1)
{
menu();
printf("请输入操作:");
scanf("%d", &select);
switch (select)
{
case 1: add(); break;
case 2: show(); break;
case 3: del(); break;
case 4: search(); break;
case 0: printf("通讯录退出\\n"); return 0;
default: printf("输入错误!\\n");
}
}
return 0;
}

void menu()
{
printf("\\n====简易通讯录====\\n");
printf("1.添加联系人\\n");
printf("2.显示全部\\n");
printf("3.删除联系人\\n");
printf("4.按姓名查找\\n");
printf("0.退出\\n");
}

void add()
{
if (size >= MAX)
{
printf("通讯录已满!\\n");
return;
}
printf("输入姓名:");
scanf("%s", book[size].name);
printf("输入手机号:");
scanf("%s", book[size].phone);
size++;
printf("添加成功!\\n");
}

void show()
{
if (size == 0)
{
printf("通讯录为空\\n");
return;
}
printf("姓名\\t手机号\\n");
for (int i = 0; i < size; i++)
{
printf("%s\\t%s\\n", book[i].name, book[i].phone);
}
}

void del()
{
char name[20];
printf("输入要删除的姓名:");
scanf("%s", name);
int i;
for (i = 0; i < size; i++)
{
if (strcmp(book[i].name, name) == 0)
{
数组前移覆盖
for (int j = i; j < size 1; j++)
{
book[j] = book[j + 1];
}
size;
printf("删除成功\\n");
return;
}
}
printf("查无此人\\n");
}

void search()
{
char name[20];
printf("输入要查找姓名:");
scanf("%s", name);
for (int i = 0; i < size; i++)
{
if (strcmp(book[i].name, name) == 0)
{
printf("找到:%s %s\\n", book[i].name, book[i].phone);
return;
}
}
printf("没有找到\\n");
}

在这里插入图片描述

4.项目 4:ATM 简易模拟系统(综合,偏难)

功能:查询余额、存款、取款、退出。变量、数组、函数、循环、分支全部用上。

#define _CRT_SECURE_NO_WARNINGS
项目 4:ATM 简易模拟系统(综合,偏难)
功能:查询余额、存款、取款、退出。变量、数组、函数、循环、分支全部用上。
#include <stdio.h>

函数声明
void menu();
void query(double money);
void save(double* money);
void take(double* money);

int main()
{
double balance = 1000.0; //初始余额
int op;
while (1)
{
menu();
printf("请选择业务:");
scanf("%d", &op);
switch (op)
{
case 1:
query(balance);
break;
case 2:
save(&balance);
break;
case 3:
take(&balance);
break;
case 0:
printf("感谢使用ATM,再见!\\n");
return 0;
default:
printf("输入无效,请重新选择!\\n");
}
}
return 0;
}

void menu()
{
printf("\\n====ATM模拟系统====\\n");
printf("1.查询余额\\n");
printf("2.存款\\n");
printf("3.取款\\n");
printf("0.退出\\n");
}

void query(double money)
{
printf("当前账户余额:%.2lf 元\\n", money);
}

void save(double* money)
{
double num;
printf("请输入存款金额:");
scanf("%lf", &num);
if (num <= 0)
{
printf("存款金额必须大于0!\\n");
return;
}
*money += num;
printf("存款成功,当前余额:%.2lf\\n", *money);
}

void take(double* money)
{
double num;
printf("请输入取款金额:");
scanf("%lf", &num);
if (num <= 0)
{
printf("取款金额错误!\\n");
}
else if (num > *money)
{
printf("余额不足,取款失败!\\n");
}
else
{
*money -= num;
printf("取款成功,剩余余额:%.2lf\\n", *money);
}
}

在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » 简单实战项目合集
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址