学生信息初级管理系统

8 篇文章 1 订阅
#include<iostream>
#include<string>
#include<iomanip>

using namespace std;
class student{
private:
    string sno;
	string name;
	string age;
	string sex;
	string math;
	string english;
	string computer;
	string score;
public:
	student()
	{
		//cout<<"构造一个学生类"<<endl;
	}
	student(int sn,string na,int ag,string se,double ma,double co,double en)
	{
		cout<<"构造一个学生类"<<endl;
		sno=sn;name=na;age=ag;sex=se;math=ma;computer=co;english=en;score=math+english+computer;
	}
	~student()
	{
		//cout<<"析构一个学生类"<<endl;
	}
	string GetSno()
	{
		return sno;
	}
	string GetName()
	{
		return name;
	}
    string GetAge()
	{
		return age;
	}
	string GetSex()
	{
		return sex;
	}
	string GetMath()
	{
		return math;
	}
	string GetEnglish()
	{
		return english;
	}
	string GetComputer()
	{
		return computer;
	}
	string GetScore()
	{
		return score;
	}
	void SetSno(string s)
	{
		sno=s;
		
	}
	void SetName(string n)
	{
		name=n;
	}
	void SetAge(string a)
	{
		age=a;
	}
	void SetSex(string x)
	{
		sex=x;
	}
	void SetMath(string m)
	{
		math=m;
	}
	void SetEnglish(string e)
	{
		english=e;
	}
	void SetComputer(string c)
	{
		computer=c;
	}
	void SetScore()
	{
		score=math+english+computer;
	}
	void display()
	{
		cout<<setw(10)<<sno<<setw(10)<<name<<setw(10)<<age<<setw(10)<<sex<<setw(10)<<math<<setw(10)<<english<<setw(10)<<computer<<setw(10)<<score<<endl;
	}
};
class db
{
	student stu[120];
	static int n;
		
public:
	void input();
	void display_db();
	void sort_db();
	int search(string s);
	int deleat(string d);
};
int db::n=0;
int db::deleat(string d)
{
	int i=0;
	int t=0;
	int r,l,m;
	sort_db();
	l=0;
	r=n;
	m=(r+l)/2;
	while(l<=r)
	{
		m=(r+l)/2;
		if(stu[m].GetSno()>d)
		{
			r=m;
			if(stu[m].GetSno()==d)
			{
				t=1;
				i=m;
				break;
			}
			r=r-1;
		}
		else
		{
			l=m;
			if(stu[m].GetSno()==d)
			{
				t=1;
				i=m;
				break;
			}
			l=l+1;
		}
	}
	if(t==1)
	{
		--n;
		for(i=m;i<n;++i)
		{
			stu[i]=stu[i+1];
		}
	
	}
	else
	{
		cout<<"没有这个学号!"<<endl;
	} 
}
int db::search(string s)
{
	int r,l,m;
	sort_db();
	l=0;
	r=n;
	m=(r+l)/2;
	while(l<=r)
	{
		m=(r+l)/2;
		if(stu[m].GetSno()>s)
		{
			r=m;
			if(stu[m].GetSno()==s)
			{
				cout<<"查找到"<<s<<endl;
				stu[m].display();
				break;
			}
			r=r-1;
		}
		else
		{
			l=m;
			if(stu[m].GetSno()==s)
			{
				cout<<"查找到"<<s<<endl;
				stu[m].display();
				break;
			}	
			l=l+1;
		}
	
	}
    if(l>r)cout<<"没查找到"<<s<<endl;
}
void db::input()
{
	char tname[20];
	string stu_age;
	string stu_num;
	string stu_sex;
	string stu_math,stu_english,stu_computer;
	do
	{
		cout<<"请输入学生的学号:(键入0表示输入结束!)";
		cin>>stu_num;
		stu[n].SetSno(stu_num);
		if(stu[n].GetSno()=="0")
			break;
		cout<<"请输入学生的姓名:";
		getchar();
		gets(tname);
		stu[n].SetName(tname);
		cout<<"请输入学生的年龄:";
		cin>>stu_age;
		stu[n].SetAge(stu_age);
		cout<<"请输入学生的性别:";
		cin>>stu_sex;
		stu[n].SetSex(stu_sex);
		cout<<"请输入学生的数学成绩:";
		cin>>stu_math;
		stu[n].SetMath(stu_math);
		cout<<"请输入学生的英语成绩:";
		cin>>stu_english;
		stu[n].SetEnglish(stu_english);
		cout<<"请输入学生的计算机成绩:";
		cin>>stu_computer;
		stu[n].SetComputer(stu_computer);
		stu[n].SetScore();
		n++;
		
	}while(1);
}

void db::display_db()
{
	cout<<setiosflags(ios::left)<<endl;
	cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"年龄"<<setw(10)<<"性别"<<setw(10)<<"数学"<<setw(10)<<"英语"<<setw(10)<<"计算机"<<setw(10)<<"总成绩"<<endl;
	int i;
	for(i=0;i<n;i++)
		stu[i].display();
}
void db::sort_db()
{
	int i,j;
	student t;
	for(i=0;i<n-1;i++)
		for(j=0;j<n-1-i;j++)
			if(stu[j].GetSno ()>stu[j+1].GetSno ())
			{
				t=stu[j];
				stu[j]=stu[j+1];
				stu[j+1]=t;
			}
}


void menu()
{
	system("cls");
	cout<<"欢迎使用学生信息管理系统"<<endl;
	cout<<"1.创建模块"<<endl;
	cout<<"2.显示模块"<<endl;
	cout<<"3.排序模块"<<endl;
	cout<<"4.查找模块"<<endl;
	cout<<"5.删除模块"<<endl; 
	cout<<"0.退出"<<endl;
	cout<<"请输入你的选择:";
	
}

int main()
{
	db jike;
	string s;
	int x;
	string d;
	while (1)
	{
		menu();
		cin>>x;
		switch(x)
		{
		case 1:jike.input();break;
		case 2:jike.display_db();system("pause");break;
		case 3:jike.sort_db();system("pause");break;
		case 4:cout<<"输入查找的学号:";cin>>s;jike.search(s);system("pause");break;
		case 5:cout<<"输入要删除的学号:";cin>>d;jike.deleat(d);system("pause");break;
		case 0:cout<<"谢谢使用!"<<endl;return 0;
		}
	
	}
	return 0;
}

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无名之逆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值