//姓名 学号 成绩
#include <iostream>
#include <string.h>
using namespace std;
struct student
{
char name[10];
int num;
float score;
};
class studentlist
{
public:
studentlist()
{
len = 0;
}
void Insert(char *inputstr)
{
if (len >= 40)
{
cout << "学生已经满了!" << endl;
return;
}
char *p = strtok(inputstr, " ");
if (strlen(p) >= 10)
{
cout << "姓名输入错误!" << endl;
return;
}
else
{
strcpy(v[len].name, p);
}
p = strtok(NULL, " ");
if (strlen(p) > 7)
{
cout << "学号输入有误!" << endl;
return;
}
else
{
v[len].num = atoi(p);
}
p = strtok(NULL, "\n");
if (strlen(p) > 3)
{
cout << "成绩输入有误!" << endl;
return;
}
else
{
v[len].score = atof(p);
}
len++;
cout << "插入新的同学成功!" << endl;
}
void Delete(char *_name)
{
for (int i = 0; i < len; ++i)
{
if (strcmp(_name, v[i].name) == 0)
{
for (int j = i; j < len - 1; ++j)
{
strcpy(v[j].name, v[j + 1].name);
v[j].num = v[j + 1].num;
v[j].score = v[j + 1].score;
}
cout << "删除同学成功!" << endl;
len--;
return;
}
}
cout << "没有找到这个同学哦!"<<endl;
}
void Sort()
{
student stu;
//用的冒泡排序。
for (int i = 0; i < len-1; ++i)
{
for (int j = i+1; j < len; ++j)
{
if (v[i].score < v[j].score)
{
strcpy(stu.name, v[i].name);
stu.num = v[i].num;
stu.score = v[i].score;
strcpy(v[i].name,v[j].name);
v[i].num = v[j].num;
v[i].score = v[j].score;
strcpy(v[j].name, stu.name);
v[j].num = stu.num;
v[j].score = stu.score;
}
}
}
}
void Printf()
{
cout << "姓名\t" << "学号\t" << "成绩"<<endl;
for (int i = 0; i < len; ++i)
{
cout << v[i].name << "\t" << v[i].num << "\t" << v[i].score << endl;
}
}
private:
struct student v[40];
int len;
};
int main()
{
int flags = 1;
studentlist list;
while (flags)
{
cout << "输入数字1插入学生信息" << endl;
cout << "输入数字2打印学生信息" << endl;
cout << "输入数字3删除学生信息" << endl;
cout << "输入数字4排序学生成绩" << endl;
cout << "输入数字0退出学生信息" << endl;
cout << "请输入你的选择:>" << endl;
cin >> flags;
switch (flags)
{
case 1:
cout << "请输入学生信息:>" << endl;
char input[30];
cin.get();
cin.get(input,30);//不要最后的"\n"。
cin.get();
list.Insert(input);
break;
case 2:
list.Printf();
break;
case 3:
char name[10];
cin >> name;
list.Delete(name);
break;
case 4:
list.Sort();
break;
default:
break;
}
}
return 0;
}
c++笔试题:简易学生信息系统
于 2015-10-06 22:43:48 首次发布
本文介绍了一个简单的学生信息管理系统,使用C++实现。系统包括学生信息的插入、删除、排序及显示等功能,采用结构体和类来组织数据,并通过字符串处理进行输入解析。
部署运行你感兴趣的模型镜像
您可能感兴趣的与本文相关的镜像
ACE-Step
音乐合成
ACE-Step
ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

8万+

被折叠的 条评论
为什么被折叠?



