C语言:人物查询系统(结构体数组的基本使用)

题目概述:
C语言人物查询系统编程。
编程:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct people
{
char name[10];
int age;
char addr[20];
float score;
};
struct people array[100]; //记录信息
int count = 0; //计数
void mulu()
{
printf("-------人物管理系统-------\n");
printf("\t0.退出系统!\n");
printf("\t1.录入人物信息!\n");
printf("\t2.浏览人物信息!\n");
printf("\t3.查询人物信息!\n");
printf("\t4.修改人物信息!\n");
printf("\t5.删除人物信息!\n");
printf("---------------------------\n");
printf(“请输入(0~5):”);
}
//负责输入
void input()
{
printf(“请输入人物信息(name age addr score):”);
scanf("%s%d%s%f", array[count].name, &array[count].age, array[count].addr, &array[count].score);
count++;
}
//负责打印
void print(struct people array[], int count)
{
printf(“name\tage\taddr\tscore\n”);
for (int i=0; i < count; i++)
{
printf("%s\t%d\t%s\t%.1f\n", array[i].name, array[i].age, array[i].addr, array[i].score);
}
}
//负责查询(例:名称查询)
int searchResult(char* name)
{
for (int i = 0; i < count; i++)
{
if (strcmp(array[i].name, name) == 0)
{
return i;
}
}
return -1;
}
//负责删除
void deleteByName(char* name)
{
if (searchResult(name) == -1)
{
printf(“未找到相关信息!\n”);
return;
}
else
{
for (int i = searchResult(name); i < count; i++)
{
array[i] = array[i + 1];
}
count- -;
printf(“删除成功!”);
}
}
void keyDown()
{
int choice = 0;
int i = 0;
char name[20];
scanf("%d", &choice);
switch (choice)
{
case 0:
printf(“正常退出!\n”);
system(“pause”);
exit(0);//退出
break;
case 1://录入人物信息
input();
break;
case 2://浏览人物信息
print(array, count);
break;
case 3://查询人物信息
printf(“请输入查询人物name:”);
scanf("%s", name);
if (searchResult(name) == -1)
{
printf(“未找到相关信息!\n”);
}
else
{
i = searchResult(name);
printf("%s\t%d\t%s\t%.1f\n", array[i].name, array[i].age, array[i].addr, array[i].score);
}
break;
case 4://修改人物信息
printf(“查询人物name:”);
scanf("%s", name);
if (searchResult(name) == -1)
{
printf(“未找到相关信息!\n”);
}
else
{
printf(“请输入新的人物信息:(name age addr score):”);
i = searchResult(name);
scanf("%s%d%s%f", array[i].name, &array[i].age, array[i].addr, &array[i].score);
printf(“修改成功!\n”);
}
break;
case 5://删除人物信息
//数组删除是伪删除(将后面数值向前移)
printf(“请输入删除人物name:”);
scanf("%s", name);
deleteByName(name);
break;
default:
break;
}
}
int main()
{
while (1)
{
mulu();
keyDown();
system(“pause”);//锁屏
system(“cls”);//清屏
}
}
上机实践:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

おすすめ

転載: blog.csdn.net/qq_50426849/article/details/120234744