A simple entry system, enter the student’s name, student number, and three test scores, mainly inspect the structure, pointer array, function structure and application of if
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//定义数据
struct Student
{
int id;
char name[16];
int score[3];
};
Student data[100];//存储所有数据
int count = 0;//总个数
int input(Student*s)//输入各项值
{
printf("ID:");
scanf("%d", &s->id);
printf("name:");
scanf("%s",&s->name);
printf("score:");
scanf("%d,%d,%d", &s->score[0],&s->score [1],&s->score[2]);
return 0;
}
int add(const Student*s)
{
data[count] = *s;
count++;
return 0;
}
void list_all()
{
for (int i = 0; i < count; i++)
{
Student*s = &data[i];
printf("ID:%d\t,Name:%s\t,Score:%d,%d,%d\n", s->id, s->name, s->score[0], s->score[1], s->score[2]);
}
}
Student* find(const char *name)
{
for (int i = 0; i < count; i++)
{
Student*s = &data[i];
if (strcmp(name, s->name) == 0)
{
return s;
}
else
{
return NULL;
}
}
}
int main(void)
{
char cmdline[128];
while (1)
{
printf(">");
scanf("%s", &cmdline);
if (strcmp(cmdline, "exit") == 0)
{
printf("now exit...\n");
break;
}
if (strcmp(cmdline, "add") == 0)
{
Student s;
input(&s);
add(&s);
continue;
}
if (strcmp(cmdline, "list") == 0)
{
list_all();
continue;
}
if (strcmp(cmdline, "count") == 0)
{
printf("total:\n", count);
continue;
}
if (strcmp(cmdline, "find") == 0)
{
printf("enter name:");
char name[16];
scanf("%f", name);
Student *s = find(cmdline);
if (s!=NULL)
{
printf("FOUND:ID:%d\t,Name:%s\t,Score:%d,%d,%d\n", s->id, s->name, s->score[0], s->score[1], s->score[2]);
}
else
{
printf("NOT FOUND");
}
continue;
}
}
return 0;
system("pause");
}