就是定义一个学生类,记录学生的学号,姓名,考试成绩等等。
实现的功能:考试成绩的录入,及考生信息录入,考试的成绩查询
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <iostream>
#include <vector>
#include <string.h>
using namespace std;
struct Student
{
int ID;
char name[20];
float chinese=0.0;
float math=0.0;
};
int main()
{
vector<Student> Students;
while(true)
{
int n=0;
printf("考试系统\n");
printf("1.学生信息录入\n");
printf("2.查询学生成绩\n"); //以学号进行查询
printf("3.语文考试\n");
printf("4.数学考试\n");
scanf("%d",&n);
if(n==1)
{
printf("请依次输入学生的学号和姓名,用空格分开\n");
Student stu;
scanf("%d%s",&stu.ID,&stu.name);
Students.push_back(stu);
printf("学生信息录入成功\n");
}else if(n==2)
{
printf("请输入需要查询的学生学号\n");
int id;
scanf("%d",&id);
bool isFind=false;
for(int i=0;i<Students.size();++i)
{
if(id==Students[i].ID)
{
printf("学号:%d,姓名:%s,语文成绩:%.1f,数学成绩:%.1f\n",Students[i].ID,
Students[i].name,Students[i].chinese,Students[i].math);
isFind=true;
}
}
if(!isFind)
{
printf("学生不存在\n");
}
}else if(n==3)
{
int id;
printf("请输入需要考试的学号\n");
scanf("%d",&id);
bool isFind=false;
for(int i=0;i<Students.size();++i)
{
if(id==Students[i].ID)
{
isFind=true;
printf("语文考试,一共又2题,每题50分\n");
printf("第一题\n");
printf("李白被称为什么?\n");
char ti1[20];
char ti1key[20]="诗仙";
scanf("%s",&ti1);
int Source=0;
if(strcmp(ti1,ti1key)==0)
{
Source+=50;
printf("回答正确\n");
}else
{
printf("回答错误\n");
}
printf("第二题\n");
printf("相思这首诗是谁写的\n");
char ti2[20];
char ti2key[20]="王维";
scanf("%s",&ti2);
if(strcmp(ti2,ti2key)==0)
{
Source+=50;
printf("回答正确\n");
}else
{
printf("回答错误\n");
}
printf("考试结束\n");
printf("你的语文分数是%d分",Source);
Students[i].chinese=Source;
}
}
if(!isFind)
{
printf("学生不存在,请录入信息后再进行考试\n");
}
}else if(n==4)
{
int id;
printf("请输入需要考试的学号\n");
scanf("%d",&id);
bool isFind=false;
for(int i=0;i<Students.size();++i)
{
if(id==Students[i].ID)
{
isFind=true;
printf("数学考试,一共又2题,每题50分\n");
printf("第一题\n");
printf("长方形的长为10,宽为5,则长方形的面积为\n");
printf("A 50 B 30\n");
char ti1[20];
char ti1key[20]="A";
char tikey1[20]="a";
scanf("%s",&ti1);
int Source=0;
if(strcmp(ti1,ti1key)==0||strcmp(ti1,tikey1)==0)
{
Source+=50;
printf("回答正确\n");
}else
{
printf("回答错误\n");
}
printf("第二题\n");
printf("三角形的三条边分别是3,4,5,改三角形是什么三角形\n");
printf("A 等腰三角形 B 等边三角形 C 直角三角形\n");
char ti2[20];
char ti2key[20]="C";
char ti2key2[20]="c";
scanf("%s",&ti2);
if(strcmp(ti2,ti2key)==0||strcmp(ti2,ti2key2)==0)
{
Source+=50;
printf("回答正确\n");
}else
{
printf("回答错误\n");
}
printf("考试结束\n");
printf("你的数学分数是%d分",Source);
Students[i].math=Source;
}
}
if(!isFind)
{
printf("学生不存在,请录入信息后再进行考试\n");
}
}
else
{
printf("操作有误,请重新操作\n");
}
}
}