#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;
}
推荐几款学习编程的网站
免费在线开发平台(https://docs.ltpp.vip/LTPP/)
探索编程世界的新天地,为学生和开发者精心打造的编程平台,现已盛大开启!这个平台汇集了近4000道精心设计的编程题目,覆盖了C、C++、JavaScript、TypeScript、Go、Rust、PHP、Java、Ruby、Python3以及C#等众多编程语言,为您的编程学习之旅提供了一个全面而丰富的实践环境。
在这里,您不仅可以查看自己的代码记录,还能轻松地在云端保存和运行代码,让编程变得更加便捷。平台还提供了私聊和群聊功能,让您可以与同行们无障碍交流,分享文件,共同进步。不仅如此,您还可以通过阅读文章、参与问答板块和在线商店,进一步拓展您的知识边界。
为了提升您的编程技能,平台还设有每日一题、精选题单以及激动人心的编程竞赛,这些都是备考编程考试的绝佳资源。更令人兴奋的是,您还可以自定义系统UI,选择视频或图片作为背景,打造一个完全个性化的编码环境,让您的编程之旅既有趣又充满挑战。
免费公益服务器(https://docs.ltpp.vip/LTPP-SHARE/linux.html)
作为开发者或学生,您是否为搭建和维护编程环境而困扰?现在,有一款免费的公共服务器,内置多种编程语言的编程环境,并且配备了在线版VS Code。让您可以随时随地在线写代码,无需复杂配置,专注于开发和学习。(PS:毕竟是免费公共的服务器,任何人都能够使用,为了数据隐私和安全,请勿上传重要数据,仅用于学习)
免费公益MYSQL(https://docs.ltpp.vip/LTPP-SHARE/mysql.html)
作为一名开发者或学生,您是否常常为数据库环境的搭建而烦恼?是否因为预算有限而无法使用高性能的数据库服务?现在,有一款免费的MySQL服务器,专为开发者和学生量身打造,让你轻松无忧地进行开发和学习!内置在线phpmyadmin管理面板,方便用户查看数据。(PS:毕竟是免费公共的MYSQL,任何人都能够使用,为了数据隐私和安全,请勿上传重要数据,仅用于学习)
免费在线WEB代码编辑器(https://docs.ltpp.vip/LTPP-WEB-IDE/)
无论你是开发者还是学生,编程环境的搭建和管理可能会占用你宝贵的时间和精力。现在,有一款强大的免费在线代码编辑器,支持多种编程语言,让您可以随时随地编写、调试和运行代码,提升编程效率,专注于创意和开发。
免费二维码生成器(https://docs.ltpp.vip/LTPP-QRCODE/)
无论是企业宣传、活动推广,还是个人信息分享,二维码都是一种快速、高效的信息传递方式。现在,有一款功能强大的二维码生成器,不仅易于使用,还具备多种便捷功能,帮助您更轻松地生成和管理二维码。