数组的基本操作,录入、修改和统计
运行结果:
代码:
#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
#include <iomanip>
#include <time.h>
using namespace std;
int N; //登录次数
const char* g_name = "admin";
const char* g_pwd = "12345";
const char* g_rand = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
int g_stuScore[100]; //保存所有学生的C语言成绩
int g_stuNmb; //学生数量
int Login()
{
int i;
char rd[5] = { 0 },rd2[5]={0};
char name[20], pwd[20];
cout << "请输入最大登录次数:";
cin >> N;
srand(time(0));
//输入用户名
for (i = 0; i < N; i++)
{
cout << "请输入用户名:";
cin >> name ;
cout << "请输入密码:";
cin >> pwd;
//生成随机验证码
for (int j = 0; j < 4; j++)
{
int index = rand() % 62;//生成0-61的随机数
rd[j] = g_rand[index];
}
cout << "验证码:" << rd << endl;
cout << "请输入验证码:";
cin >> rd2;
if (strcmp(name, g_name) == 0 && strcmp(pwd, g_pwd) == 0)
{
if (strcmp(rd, rd2) == 0)
{
cout << "登录成功!";
system("pause");
return 1;
}
else
{
cout << "验证码错误,请重新输入:\n";
}
}
else
{
if (i < N - 1)
cout << "用户名或密码错误,请重新输入:"<<endl;
}
}
if (i == N)
{
cout << "输入次数超过" << N << "次,登录失败!" << endl;
system("pause");
return 0;
}
return 0;
}
//系统功能
//1.录入
void input()
{
system("cls");
cout << "请输入学生数量:";
cin >> g_stuNmb;
for (int i = 0; i < g_stuNmb; i++)
{
cout << "请输入学生" << i + 1 << "的C语言成绩:";
cin >> g_stuScore[i];
}
cout << "录入完成!" << endl;
system("pause");
}
//2.显示
void show()
{
system("cls");
cout << "学生成绩信息如下:" << endl;
for (int i = 0; i < g_stuNmb; i++)
cout << g_stuScore[i] << endl;
system("pause");
}
//3.插入
void add()
{
system("cls");
int sc;
cout << "请输入要插入的分数:" ;
cin >> sc;
for (int i = g_stuNmb; i >= 2; i--)
g_stuScore[i] = g_stuScore[i - 1];
g_stuScore[1] = sc;
g_stuNmb += 1;
cout << "插入成功,插入后";
show();
}
//4.删除
void del()
{
system("cls");
for (int i = 1; i <g_stuNmb-1; i++)
g_stuScore[i] = g_stuScore[i + 1];
g_stuNmb -= 1;
cout << "删除成功,删除后";
show();
}
//5.修改
void change()
{
system("cls");
int sc;
cout << "请输入修改后的分数:";
cin >> sc;
g_stuScore[g_stuNmb-1] = sc;
cout << "修改成功,修改后";
show();
}
//6.统计
void tongji()
{
system("cls");
int total = 0;
int maxscore = g_stuScore[0];
float ave;
for (int i = 0; i < g_stuNmb; i++)
{
if (g_stuScore[i] > maxscore)
maxscore = g_stuScore[i];
total += g_stuScore[i];
}
ave = 1.0* total / g_stuNmb;
cout << "总分:" << total << endl;
cout << "平均分:" << fixed << setprecision(2) << ave << endl;//保留2位小数
cout << "最高分:" << maxscore << endl;
system("pause");
}
void func()
{
int op;
while (1)
{
system("cls");
cout << "==============================" << endl;
cout << " 欢迎来到学生成绩管理系统" << endl;
cout << "******************************" << endl;
cout << " 请选择要操作的命令" << endl;
cout << "******************************" << endl << endl;
cout << " 1.录入学生信息" << endl;
cout << " 2.显示学生信息" << endl;
cout << " 3.增加学生信息" << endl;
cout << " 4.删除学生信息" << endl;
cout << " 5.修改学生信息" << endl;
cout << " 6.输出总分、平均分、最高分" << endl;
cout << " 7.退出系统" << endl;
cout << "==============================" << endl;
cin >> op;
switch (op)
{
case 1:input(); break;
case 2:show(); break;
case 3:add(); break;
case 4:del(); break;
case 5:change(); break;
case 6:tongji(); break;
case 7:return;
}
}
}
int main()
{
if (Login())
{
func();
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!