任务描述:
写一个命令行交互式 C 语言程序。该程序需要实现下述菜单功能:
1、数据存储。
你需要将
⼀
系列的学生期末考试信息进行存储(学生人数不会超过 100)。每个学生的信
息包括:
姓名
;
学号;C 语言成绩
(一个大于等于零的整数);
GPA 等级
(A+, A, B+, B, C+, C, D, F );
班级排 名
(成绩相同需并列)。其中,
姓名,学号,成绩为输入数据,其余数据需要你计算。
同时,你需要添加
⼀
些维护数据库的功能:
Add(name, id, score): 新增
⼀
个学生的信息;
Delete(id): 根据学号删除某个学生的信息;
Search(id):根据学号查找某个学生的信息。
实现代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int len = 0; //学生的存储人数
struct student //存储学生信息
{
char name[10];//姓名
int number;//学号 注意不要超过存储范围
int score;//分数
char GPA[2];//GPA等级(A+, A, B+, B, C+, C, D, F )
};
void menu() //打印菜单
{
printf("Do you still need my service? You can enter a number to tell me.\n");
printf("1 add\n2 delet\n3 search\n4 sort by id\n5 sort by score\n6 best score\n7 worst score\n8 prime judge\n9 coprime judge\n0 exit\n");
printf("请输入:");
}
void add(struct student* num, int len)//添加学生信息
{
printf("请输入学生信息");
scanf("%s %d %d %s", &num[len].name, &num[len].number, &num[len].score, &num[len].GPA);
len++;
}
int delete(struct student* num) //删除学生
{
int number = 0;
printf("请输入要删除学生的学号:");
scanf("%d", &number);
int i = 0;
for (i = 0; i < len; i++)
{
if (number == num[i].number)
{
if (i != len - 1)
{
num[i] = num[len-1];
len--; //减少总人数
return 0;//跳出函数
}
else
{
num[i] = num[len];
len--;//减少总人数
return 0;
}
}
}
printf("没有找到该学生\n");
return 0;
}
int search(struct student* num)//查找学生
{
int number = 0;
printf("请输入要查找学生的学号:");
scanf("%d", &number);
int i = 0;
for (i = 0; i < len; i++)
{
if (number == num[i].number)
{
printf("找到了,姓名:%s 学号:%d 成绩:%d GPA:%s\n", num[i].name, num[i].number, num[i].score, num[i].GPA);
return 0;//跳出函数
}
}
printf("没有此学号的学生\n");
return 0;
}
int main()
{
printf("请输入想录入学生的人数:");
scanf("%d", &len);
struct student member[100];
int i = 0;
while (1)
{
for (i = 0; i < len; i++)
{
printf("请输入第%d个学生信息:", i + 1);
scanf("%s %d %d %s", &member[i].name, &member[i].number, &member[i].score, &member[i].GPA);
}
break;
}
int input = 0;
do
{
menu();
scanf("%d", &input);
switch (input)
{
case 1: add(&member,len) ; break;//添加学生信息
case 2: delete(&member); break;//根据学号删除某个学生的信息
case 3: search(&member); break;// 根据学号查找某个学生的信息
}
} while (input);
return 0;
}
还有一些数据处理和数据分析的内容未完成。