实现一个学生的成绩的录入与查询成绩(不算原创,也不算转载,是根据他人代码改动而来)
2016-12-17 12:43
459 查看
需求:实现一个学生的成绩的录入与查询成绩,每个学士的信息有:学号(ID),名字,成绩(语数外),要求功能;
1,可以在控制太录入学生信息;
2,可以查询已经录入的学生的个数;
3,可以通过名字查询某个学生信息;
4,可以列表显示所有学生的成绩;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
int id; //学号
char name[16];//姓名
int score[3];//成绩
};
typedef struct Student Student;
Student data[100]; //储存所有数据
int count = 0; //计算总数
int input(Student *s); //声明一个用于信息输入函数
int add(Student *s); //声明用于储存
void list_all(); //将数据源里的所有记录打印出来
Student *cfind(const char*name);
int main()
{
char cmdline[128];
while (1)
{
puts("请输入你想要的命令:(add 添加,list 打印所有,find 查找,count 显示总数 exit 推出)");
printf("->");
scanf("%s", cmdline);
printf("cmd:%s\n", cmdline);
if (strcmp(cmdline, "exit") == 0)
{
printf("now cxit...\n");
break;
}
if (strcmp(cmdline, "add") == 0)//add 添加
{
Student s;
input(&s);
add(&s);
continue;
}
if (strcmp(cmdline, "list") == 0)//list 打印所有
{
list_all();
continue;
}
if (strcmp(cmdline, "count") == 0)//显示总数
{
printf("total:%d\n", count);
}
if (strcmp(cmdline, "find") == 0)//查找
{
printf("Inputs find:\n");
char name[16];
scanf("%s", name);
Student *s = cfind(name);
if (s)
{
list_all();
}
else
printf("Not found\n");
continue;
}
}
}
int input(Student *s)
{
puts("Input ID:");
scanf("%d", &(s->id));
puts("Input Name:");
scanf("%s", &s->name);
puts("Input Score:");
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
s->score[0] = a;
s->score[1] = b;
s->score[2] = c;
return 0;
}
int add(const Student *s)
{
data[count]=*s;
count++;
return 0;
}
void list_all()
{
puts("-----------------------------------");
for (int i = 0; i < count; i++)
{
Student *s = &data[i];
printf("ID:%d\tName:%s\tScore:%d %d %d",
s->id,
s->name,
s->score[0],
s->score[1],
s->score[2]
);
}
printf("\n");
puts("-----------------------------------");
return 0;
}
Student *cfind(const char*name)
{
for (int i = 0; i < count; i++)
{
Student *s = &data[i];
if (strcmp(name, s->name) == 0)
return s;
}
return NULL;
}
1,可以在控制太录入学生信息;
2,可以查询已经录入的学生的个数;
3,可以通过名字查询某个学生信息;
4,可以列表显示所有学生的成绩;
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct Student
{
int id; //学号
char name[16];//姓名
int score[3];//成绩
};
typedef struct Student Student;
Student data[100]; //储存所有数据
int count = 0; //计算总数
int input(Student *s); //声明一个用于信息输入函数
int add(Student *s); //声明用于储存
void list_all(); //将数据源里的所有记录打印出来
Student *cfind(const char*name);
int main()
{
char cmdline[128];
while (1)
{
puts("请输入你想要的命令:(add 添加,list 打印所有,find 查找,count 显示总数 exit 推出)");
printf("->");
scanf("%s", cmdline);
printf("cmd:%s\n", cmdline);
if (strcmp(cmdline, "exit") == 0)
{
printf("now cxit...\n");
break;
}
if (strcmp(cmdline, "add") == 0)//add 添加
{
Student s;
input(&s);
add(&s);
continue;
}
if (strcmp(cmdline, "list") == 0)//list 打印所有
{
list_all();
continue;
}
if (strcmp(cmdline, "count") == 0)//显示总数
{
printf("total:%d\n", count);
}
if (strcmp(cmdline, "find") == 0)//查找
{
printf("Inputs find:\n");
char name[16];
scanf("%s", name);
Student *s = cfind(name);
if (s)
{
list_all();
}
else
printf("Not found\n");
continue;
}
}
}
int input(Student *s)
{
puts("Input ID:");
scanf("%d", &(s->id));
puts("Input Name:");
scanf("%s", &s->name);
puts("Input Score:");
int a, b, c;
scanf("%d %d %d", &a, &b, &c);
s->score[0] = a;
s->score[1] = b;
s->score[2] = c;
return 0;
}
int add(const Student *s)
{
data[count]=*s;
count++;
return 0;
}
void list_all()
{
puts("-----------------------------------");
for (int i = 0; i < count; i++)
{
Student *s = &data[i];
printf("ID:%d\tName:%s\tScore:%d %d %d",
s->id,
s->name,
s->score[0],
s->score[1],
s->score[2]
);
}
printf("\n");
puts("-----------------------------------");
return 0;
}
Student *cfind(const char*name)
{
for (int i = 0; i < count; i++)
{
Student *s = &data[i];
if (strcmp(name, s->name) == 0)
return s;
}
return NULL;
}
相关文章推荐
- 用链表写的学生管理系统 成绩的录入与查询都已经是实现了
- 用链表写的学生管理系统 成绩的录入与查询都已经是实现了
- (C语言) 怎么用代码实现一个学生成绩管理系统
- RMI实现一个学生成绩或教师信息查询的程序
- arcengine 经典代码(转) 空间查询 在一个图层上画一个polygon,根据该polygon查询出图层上与之相交的polygon并高亮显示出来
- (原创)shell 编程:根据从键盘输入的学生成绩,显示相应的成绩标准,也可以同时输入多个成绩,最多为5 个,以空格分隔。
- (原创)shell 编程:根据从键盘输入的学生成绩,显示相应的成绩标准,也可以同时输入多个成绩,最多为5 个,以空格分隔。
- 一个简单的学生成绩管理程序(二叉树实现)
- 数组实现学生成绩录入、求最高分、最低分、平均分和排序
- c语言实现学生成绩录入,主要是对指针的运用
- 设计一个学生类,其中包含学号、姓名、成绩等数据成员,创建学生对象并且倒入到文件file.txt,然后由文件读取到另一个学生对象并输出,试编程实现。
- 用JOptionPane类是实现一个简单的学生成绩管理
- 一个学生成绩管理系统的代码
- 基于innerHTML中的script广告实现代码[广告全部放在一个js里面] 原创
- 笔试题:创建一个单链表,结点包含学生的学号,姓名,性别,年龄信息.写几个程序,实现按学生学号插入,查询,删除等操作.
- 原创学生成绩计算器代码
- 有一个班4个学生5门课成绩,要求编程实现把这四个学生的成绩按照第一门课由小到大排序(冒泡法)。
- C实现的一个简单的学生成绩管理系统
- arcgis javascript api 中实现 根据一个点画出一个指定半径的圆,并且查询图层,绘制出落入这个圆中的空间对象
- 学生成绩管理系统C语言代码实现