#include<cstdio>
#include<iostream>
#include<string>
using namespace std;
typedef struct student
{
int _num;
string _name;
int _chinese;
int _math;
int _english;
int _average;
}stu;
void menu() {
printf("|--------------------------------------------------------------------------------------|\n");
printf("| 学生成绩管理系统 |\n");
printf("|--------------------------------------------------------------------------------------|\n");
printf("| 1——创建成绩单 |\n");
printf("| 2——添加学生 |\n");
printf("| 3——编辑学生 |\n");
printf("| 4——删除学生 |\n");
printf("| 5——统计成绩 |\n");
printf("| 6——排序成绩单 |\n");
printf("| 7——显示成绩 |\n");
printf("| 8——从文件读入 |\n");
printf("| 9——输出到文件 |\n");
printf("| 0——退出 |\n");
printf("|--------------------------------------------------------------------------------------|\n");
}
int main() {
stu arr[1001];
int s = 0;
for (;;) {
menu();
printf("请输入选项编号(0~9):");
int n;
scanf_s("%d", &n);
if (n == 1) {
if (arr[0]._num > 0)
printf("不可创建\n");
else {
printf("您选择了“1——创建成绩单”\n注意:输入的结束标志为学号0!");
for (int i = 0; i < 1000; i++) {
printf(" 请输入学号:");
cin >> arr[i]._num;
if (arr[i]._num == 0)
{
printf("录入结束\n");
break;
}
else {
s++;
printf(" 请输入姓名:");
cin >> arr[i]._name;
printf(" 请输入语文成绩:");
cin >> arr[i]._chinese;
printf(" 请输入数学成绩:");
cin >> arr[i]._math;
printf(" 请输入英语成绩:");
cin >> arr[i]._english;
arr[i]._average = (arr[i]._chinese + arr[i]._math + arr[i]._english) / 3;
}
}
}
}
if (n == 2) {
printf("您选择了“2——添加学生”\n");
if (s >= 1000)
printf("不可添加学生信息\n");
else {
for (int i = s; i < 1000 && s < 1000; i++) {
printf(" 请输入学号:");
cin >> arr[i]._num;
if (arr[i]._num == 0)
{
printf("录入结束\n");
break;
}
else {
s = s + 1;
printf(" 请输入姓名:");
cin >> arr[i]._name;
printf(" 请输入语文成绩:");
cin >> arr[i]._chinese;
printf(" 请输入数学成绩:");
cin >> arr[i]._math;
printf(" 请输入英语成绩:");
cin >> arr[i]._english;
arr[i]._average = (arr[i]._chinese + arr[i]._math + arr[i]._english) / 3;
}
}
}
}
if (n == 3) {
printf("您选择了“3——编辑学生”\n");
printf("请输入要修改学生的学号:\n");
int f;
scanf_s("%d", &f);
int q = 1;
for (int i = 0; i < 1000; i++)
if (arr[i]._num == f) {
q = 0;
printf(" 请输入姓名:");
cin >> arr[i]._name;
printf(" 请输入语文成绩:");
cin >> arr[i]._chinese;
printf(" 请输入数学成绩:");
cin >> arr[i]._math;
printf(" 请输入英语成绩:");
cin >> arr[i]._english;
arr[i]._average = (arr[i]._chinese + arr[i]._math + arr[i]._english) / 3;
break;
}
if (q == 1)
printf("查无此人");
}
if (n == 4) {
printf("您选择了“4——删除学生”\n");
printf("请输入要删除的学生的学号:\n");
int o;
scanf_s("%d", &o);
int ei = 0;
for (int i = 0; i < 1000; i++)
if (arr[i]._num == o) {
ei = 1;
s--;
printf("已删除\n");
for (int b = i; b < 1000; b++) {
arr[i] = arr[i + 1];
}
break;
}
if (ei == 0)
printf("查无此人");
}
if (n == 5) {
printf("您选择了“5——统计成绩”\n");
if (arr[0]._num > 0) {
int e = 0;
for (int i = 0; i < 1000; i++) {
if (arr[i]._average >= 90)
{
e++;
}
}
printf("成绩优秀的学生有%d人\n", e);
}
else
printf("无成绩存在\n");
}
if (n == 6) {
printf("您选择了“6——排序成绩单”\n");
int j, k;
stu tmp;
for (j = 1; j < s; j++) {
for (k = 0; k < s - j; k++) {
if (arr[k]._average < arr[k + 1]._average)
{
tmp = arr[k];
arr[k] = arr[k + 1];
arr[k + 1] = tmp;
}
}
}
}
if (n == 7) {
printf("您选择了“7——显示成绩”\n");
printf("count=%d\n", s);
printf("number name math chinese english average\n");
if (s == 0)
printf("用户无成绩存在\n");
else{
for (int i =0; i < s; i++) {
printf("%d %s %d %d %d %d\n", arr[i]._num, arr[i]._name.c_str(), arr[i]._math, arr[i]._chinese, arr[i]._english, arr[i]._average);
}
}
}
if (n == 8) {
printf("您选择了“8——从文件读入”\n从文件读入结束!\n");
}
if (n == 9) {
printf("您选择了“9——输出到文件”\n已输出到文件!\n");
}
if (n == 0) {
printf("您选择了“0——退出”\n 按任意键结束");
break;
}
if (n > 9 || n < 0)
printf("非法输入\n press any key to continue\n");
}
}