学生信息管理系统(c++描述)

本文介绍了作者利用C语言编写的简单学生信息管理系统,包括添加、查询、修改、删除功能,以及按学号和成绩排序,并提供了默认数据导入选项。密码验证和用户界面清晰易用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

假期闲着没事,想着复习复习c语言,于是今天就敲了这个学生信息管理系统,记录一下子😜
(悄悄地说一下:系统默认密码为:123456,如果不想一个一个敲入数据,选项7按一下直接导入默认的就可以啦!)


功能展示

在这里插入图片描述

在这里插入图片描述

完整代码如下:

#include<bits/stdc++.h>
using namespace std;
int i=1;
struct information{
	long sno;
	string name;
	string sex;
	string classroom;
	int score;
}p[10001],p2[10001]; 

bool sort1(information a,information b){
	return a.sno<b.sno;
} 
bool sort2(information a,information b){
	return a.score>b.score;
} 

void pwdVerify();
void showInterface();
void add();
void modify();
void select();
void delete1(); 
void sortByscore();
void sortBysno();
void defaultData();

int main(){
	pwdVerify();
	int a2;
	while(1){
	fflush(stdin);
	showInterface();
	cin>>a2;
	switch(a2){
		case 0:cout<<"                退出成功,谢谢您的使用!";return 0;
		case 1:add(); break;
		case 2:select();  break;
		case 3:modify();  break;
		case 4:delete1();  break;
		case 5:sortByscore();  break;
		case 6:sortBysno();  break;
		case 7:defaultData();break;
		default:cout<<"无效输入!请重新输入序号:\n";
	}
  }
	 
	return 0;
}

//登入系统前验证密码
void pwdVerify(){
	cout<<"进入系统请输入密码:(默认:123456)"<<endl;
	string s1="123456",s2;
	L:
		s2="";
	getline(cin,s2);
	if(s1==s2){
		cout<<"密码正确!"<<endl<<endl;
	} 
	else{
		cout<<"密码错误!"<<endl;
		L1:
		cout<<"按1:重新输入  按0:退出系统" <<endl; 
		int a1;
		cin>>a1;
		fflush(stdin);
		if(a1==1){
			cout<<"请重新输入密码:"<<endl;
			goto L; 
		}
		else if(a1==0)
		exit(0);
		else{
			cout<<"无效输入!"<<endl;
			goto L1; 
		}
	}
} 

//初始展示界面 
void showInterface(){
	cout<<"                ......................................................"<<endl;
	cout<<"                .............   欢迎使用学生信息管理系统  ............"<<endl; 
	cout<<"                ......................................................"<<endl;
	cout<<"                ..             输入首行序号执行下列相关操作         ..\n"<<endl;
	cout<<"                .. 1、添加学生信息             2、查询某位学生信息  .."<<endl;
	cout<<"                .. 3、修改某位学生信息         4、删除学生信息      .."<<endl;
	cout<<"                .. 5、按成绩从高到低排序       6、按学号由小到大排序.."<<endl;
	cout<<"                .. 7、使用默认学生数据         0、退出系统          .."<<endl;
	cout<<"                ......................................................"<<endl;
}

//添加学生信息
void add(){
	cout<<endl<<"请输入学生的学号(1~10000):";
	long a3;
	cin>>a3;
	fflush(stdin);//清除缓冲区内容 
	if(a3>0&&a3<=10000&&!p[a3].sno){
	p[a3].sno=a3; 
	cout<<endl<<"请输入学生的姓名:";
	cin>>p[a3].name; 
	cout<<endl<<"请输入学生的性别:"; 
	cin>>p[a3].sex;
	cout<<endl<<"请输入学生的班级:"; 
	cin>>p[a3].classroom;
	cout<<endl<<"请输入学生的成绩:"; 
	cin>>p[a3].score;
	fflush(stdin);
	cout<<endl<<"添加成功!\n";
	return; 
	}
	else{
		cout<<"学号输入无效!\n";
	}
} 

//删除某位学生信息
void delete1(){
	cout<<"请输入要删除的学生学号:\n";
	long a3;
	cin>>a3;
	fflush(stdin);
	if(a3>0&&a3<=10000&&p[a3].sno){
	p[a3].sno=0;
	p[a3].classroom=""; 
	p[a3].name="";
	p[a3].sex="";
	p[a3].score=0;
	cout<<"删除成功!\n";
	}
	else{
		cout<<"学号不存在,检查学号是否输入错误!\n"; 
	} 	
} 

//查询某位学生信息
void select(){
	cout<<"请输入要查询学生的学号:";
	long a3;
	cin>>a3;
	fflush(stdin);
	if(a3>0&&a3<=10000&&p[a3].sno){
	cout<<endl<<"查询结果如下:\n";
	cout<<"  学号     姓名     性别     班级     分数\n";
	cout<<"  "<<p[a3].sno<<"     "<<p[a3].name<<"      "<<p[a3].sex<<"       "<<p[a3].classroom<<"       "<<p[a3].score<<endl;
	}
	else{
		cout<<"学号不存在,请检查学号是否输入错误!\n";
	}
}

//修改某位学生信息
void modify(){
	cout<<"请输入要修改学生的学号:\n";
	long a3;
	cin>>a3; 
	(long)a3;
	
	fflush(stdin);
	if(a3>0&&a3<=10000&&p[a3].sno){
	p[a3].classroom=""; 
	p[a3].name="";
	p[a3].sex="";
	p[a3].score=0;
	cout<<endl<<"请输入学生的姓名:";
	cin>>p[a3].name; 
	cout<<endl<<"请输入学生的性别:"; 
	cin>>p[a3].sex;
	cout<<endl<<"请输入学生的班级:"; 
	cin>>p[a3].classroom;
	cout<<endl<<"请输入学生的成绩:"; 
	cin>>p[a3].score;
	fflush(stdin);
	cout<<endl<<"修改信息成功!\n";
	}
	else{
		cout<<"学号不存在!\n"; 
	} 
} 

//按学生学号由小到大排序
void sortBysno(){
	memcpy(p2,p,sizeof(p));
	sort(p2,p2+10001,sort1);
	cout<<"  学号     姓名     性别     班级     分数\n";
	for(int i=0;i<10001 ;i++){
		if(p2[i].sno!=0){
	cout<<"  "<<p2[i].sno<<"     "<<p2[i].name<<"     "<<p2[i].sex<<"         "<<p2[i].classroom<<"     "<<p2[i].score<<endl;
		}
	} 
}

//按成绩从高到低排序
void sortByscore(){
	memcpy(p2,p,sizeof(p));
	sort(p2,p2+10001,sort2);
	cout<<"  排名     学号     姓名     性别     班级     分数\n";
	int j=1;
	for(int i=0;i<10001 ;i++){
		if(p2[i].sno!=0){
			cout<<"   "<<j++<<"        "<<p2[i].sno<<"    "<<p2[i].name<<"     "<<p2[i].sex<<"         "<<p2[i].classroom<<"     "<<p2[i].score<<endl;
		}
	} 
} 


//默认学生数据
void defaultData(){
	p[1000].sno=1000;
	p[1000].name="小A";
	p[1000].sex="男";
	p[1000].classroom="A1" ;
	p[1000].score=95;
	p[1001].sno=1001;
	p[1001].name="小B";
	p[1001].sex="女";
	p[1001].classroom="A1" ;
	p[1001].score=97;
	p[1002].sno=1002;
	p[1002].name="小C";
	p[1002].sex="男";
	p[1002].classroom="A2" ;
	p[1002].score=99;
	p[1003].sno=1003;
	p[1003].name="小D";
	p[1003].sex="女";
	p[1003].classroom="A3" ;
	p[1003].score=100;
	p[1004].sno=1004;
	p[1004].name="小E";
	p[1004].sex="男";
	p[1004].classroom="A2" ;
	p[1004].score=92;
	p[1005].sno=1005;
	p[1005].name="小F";
	p[1005].sex="女";
	p[1005].classroom="A2" ;
	p[1005].score=96;
	cout<<"默认学生信息导入完成!\n"; 
} 



注:本文原创,转载请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Andy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值