📄 职工工资可运行.cpp
字号:
#include"windows.h"
#include"iostream.h"
#include"conio.h"
#include"iomanip.h"
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"fstream.h"
class student //学生类
{
char name[20];
char sex[5];
int number;
int score[3];
int total;
int average;
public:
student();
void add();
void output();
void find();
void modify();
void deleted();
void sort();
void grade();
void save();
void load ();
student & operator=(student & T);
friend istream & operator >> (istream & scin, student &s1);
friend ostream & operator << (ostream & scout, student &s2);
};
student stu[100];
int n=0;
void student::add() //添加函数
{
system("cls");
char flag='Y';
while(toupper(flag)=='Y')
{
system("cls");
cin>>stu[n];
n++;
cout<<" 要继续添加吗(y/n)";
cin>>flag;
if(toupper(flag)!='Y')
{
if(toupper(flag)=='N')
{
break;
}
else
{
cout<<"错误,请重输:";
cin>>flag;
}
}
}
}
void student::output() //输出函数
{
system("cls");
if(n!=0)
{
cout<<" ---------------------------------------------------------------------------\n";
cout<<" number name sex math C++ English total average\n";
cout<<" --------------------------------------------------------------------------- \n";
for(int t=0;t<n;t++)
{
cout<<stu[t];
}
}
getch();
}
void student::find() //查找函数
{
system("cls");
int f3=0;
char n1[20];
student temp;
cout<<" 输入你要查找的人的姓名: ";
cin>>n1;
for(int j=0;j<n;j++)
{
if(strcmp(stu[j].name,n1)==0)
{
temp=stu[j];
f3=1;
}
}
if(f3==0)
cout<<"对不起,没有你要查找的学生成绩"<<endl;
else
{
cout<<" ---------------------------------------------------------------------------\n";
cout<<" number name sex math C++ English total average\n";
cout<<" --------------------------------------------------------------------------- \n";
cout<<" "<<temp.number<<" "<<temp.name<<" "<<temp.sex<<" "<<temp.score[0]
<<" "<<temp.score[1]<<" "<<temp.score[2]<<" "<<temp.total<<" "<<temp.average<<endl;
}
getch();
}
void student::modify() //修改函数
{
int f4=0;
system("cls");
int t;
char n2[50];
cout<<" 输入你要修改的人的姓名:";
cin>>n2;
for(int j=0;j<n;j++)
{
if(strcmp(stu[j].name,n2)==0)
{
t=j;
f4=1;
}
}
if(f4==0)
cout<<"对不起,没有你要修改的学生成绩"<<endl;
else
{
cout<< "请输入学号: ";
cin>>stu[t].number;
cout<< " 姓名: ";
cin>>stu[t].name;
cout<< " 性别 : ";
cin>>stu[t].sex;
cout<< " 数学成绩: ";
cin>>stu[t].score[0];
cout<< " C++成绩: ";
cin>>stu[t].score[1];
cout<< " 英语成绩: ";
cin>>stu[t].score[2];
stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2];
stu[t].average=stu[t].total/3;
cout<<" 修改成功 !"<<endl;
}
getch();
}
void student::deleted() //删除函数
{
system("cls");
char n3[20];
bool f5=0;
char c;
do{
cout<<"请输入您要删除的学生姓名:";
cin>>n3;
for(int i=0;i<n;i++)
{
if(strcmp(n3,stu[i].name)==0)
{
f5=1;
n--;
do{
stu[i]=stu[i+1];
i++;
}while(i<=n);
}
}
if(f5==0)
cout<<"您要求删除的对象本来就不存在!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(toupper(c)!='Y'&&toupper(c)!='N')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(toupper(c)=='Y');
getch();
}
void student::sort() //排序函数
{
system("cls");
int i,j,k;
student s3;
for( i=0;i<(n-1);i++)
{
k=i;
for(j=i+1;j<n;j++)
if(stu[j].average>stu[i].average)k=j;
if(k!=i)
{
s3=stu[i];
stu[i]=stu[k];
stu[k]=s3;
}
}
cout<<"\n\n排序成功!\n\n";
}
void student::grade() //合格及优秀学生名单
{
system("cls");
int i,j;
int f1=0,f2=0;
cout<<"挂科学生名单:"<<endl;
cout<<" ---------------------------------------------------------------------------\n";
cout<<" number name sex math C++ English total average\n";
cout<<" --------------------------------------------------------------------------- \n";
for(i=0;i<n;i++)
{
if(stu[i].score[0]<60||stu[i].score[1]<60||stu[i].score[2]<60)
{
f1=1;
cout<<stu[i];
}
}
if(f1==0) cout<<"没有挂科的学生"<<"\n"<<endl;
cout<<"\n\n\n"<<endl;
cout<<"000000000000000000000000000000000000000\n\n\n\n"<<endl;
cout<<"优秀学生名单:"<<endl;
cout<<" ---------------------------------------------------------------------------\n";
cout<<" number name sex math C++ English total average\n";
cout<<" --------------------------------------------------------------------------- \n";
for(j=0;j<n;j++)
{
if(stu[j].score[0]>=85&&stu[j].score[1]>=85&&stu[j].score[2]>=85)
{
f2=1;
cout<<stu[j];
}
}
if(f2==0) cout<<"没有优秀的学生"<<endl;
getch();
}
void student::save() //保存函数
{
system("cls");
char filename1[20];
cout<<"请输入文件名: ";
cin>>filename1;
ofstream fout(filename1,ios::app);
if(!fout)cout<<"文件不能打开!"<<endl;
else
{
for(int i=0;i<n;i++)
fout<<' '<<stu[i].name<<' '<<stu[i].sex<<' '<<stu[i].number<<' '
<<stu[i].score[0]<<' '<<stu[i].score[1]<<' '<<stu[i].score[2]<<' '<<stu[i].total<<' '<<stu[i].average<<' ';
cout<<"保存成功!"<<endl;
}
fout.close();
getch();
}
void student::load() //读取函数
{
system("cls");
char filename2[20];
cout<<"请输入你要读出的文件名: ";
cin>>filename2;
ifstream fin(filename2,ios::in);
if(!fin)cout<<"文件打不开 !"<<endl;
else
{
for(int i=0;;i++,n=i-1)
{
if(fin.eof())break;
fin>>stu[i].name>>stu[i].sex>>stu[i].number
>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2]>>stu[i].total>>stu[i].average;
}
cout<<"文件已读取成功!"<<endl;
}
fin.close();
getch();
}
student & student::operator=(student & T) //重载=
{
strcpy(name,T.name);
strcpy(sex,T.sex);
number=T.number;
for(int i=0;i<3;i++)score[i]=T.score[i];
total=T.total;
average=T.average;
return ( * this );
}
ostream & operator << (ostream & scout, student &s2) //重载<<
{
cout<<setw(6)<<s2.number<<setw(10)<<s2.name<<setw(8)<<s2.sex<<setw(8)<<s2.score[0]
<<setw(8)<<s2.score[1]<<setw(10)<<s2.score[2]<<setw(10)<<s2.total<<setw(8)<<s2.average<<endl;
return scout;
}
istream & operator >> (istream & scin,student &s1) //重载>>
{
cout<< " \t学号:";
scin>>s1.number;
cout<< " \t姓名:";
scin>>s1.name;
cout<< " \t性别 :";
scin>>s1.sex;
cout<< " \t数学成绩:";
scin>>s1.score[0];
cout<< " \tC++成绩:";
scin>>s1.score[1];
cout<< " \t英语成绩:";
scin>>s1.score[2];
s1.total=s1.score[0]+s1.score[1]+s1.score[2];
s1.average=s1.total/3;
return scin;
}
student::student() //构造函数
{
strcpy(name," ");
strcpy(sex," ");
number=0;
for(int i=0;i<3;i++)score[i]=0;
total=0;
average=0;
}
void menu() //菜单函数
{
system("cls");
cout<<"\n\n\n&&&&&&&&&&&&&&&&&&&&&&&&&& 欢迎进入学生成绩管理系统 &&&&&&&&&&&&&&&&&&&&&&&&&&&"<<endl;
cout<<"\n\n\n\t\t★ 〖1〗 添加数据 ★"<<endl;
cout<<"\t\t★ 〖2〗 输出数据 ★"<<endl;
cout<<"\t\t★ 〖3〗 查找数据 ★"<<endl;
cout<<"\t\t★ 〖4〗 修改数据 ★"<<endl;
cout<<"\t\t★ 〖5〗 删除数据 ★"<<endl;
cout<<"\t\t★ 〖6〗 数据排序 ★"<<endl;
cout<<"\t\t★ 〖7〗 挂科情况 ★"<<endl;
cout<<"\t\t★ 〖8〗 保存数据 ★"<<endl;
cout<<"\t\t★ 〖9〗 读出数据 ★"<<endl;
cout<<"\t\t★ 〖0〗 退出系统 ★"<<endl;
cout<<"\n\n\t\t请选择(0~~9):";
}
Ks_Word(char *s) //密码
{
char ch;
char s1[80];
int j,len,i=-1;
memset(s1,'\0',80); //将s1中的前80个字节设置为\0
len=strlen(s);
do
{
ch=getch();
if(ch!='\r')
{
printf("*");
i++;
s1[i]=ch;
}
}while(ch!='\r');
j=strlen(s1);
if((j!=len)||(memicmp(s1,s,j))) return (0); //比较s1和s的前j个字节,忽略大小写差异
else return (1);
}
void Ks_Pass() /*****PASSWORD*****/
{
int k1,g;
for(g=0;g<=3;g++)
{
printf("\n You have %d chances! \n",3-g);
printf("Please input password:");
k1=Ks_Word("kangzunqiang");
if(k1==0)
{
printf("\n\t\tError!!!\n");
}
if(k1==1)
{
printf("\n\n\t\tIt's right!\n"); break;
}
while(g==2&&k1==0)
{
printf("\n\t Sorry! You can't run this program!\n");
exit(0);
}
}
getch();
}
void main()
{
int choose;
student s;
Ks_Pass();
do{
menu();
cin>>choose;
switch(choose)
{
case 1: s.add(); break;
case 2: s.output(); break;
case 3: s.find(); break;
case 4: s.modify(); break;
case 5: s.deleted(); break;
case 6: s.sort(); break;
case 7: s.grade(); break;
case 8: s.save(); break;
case 9: s.load(); break;
default : break;
}
}while(choose!=0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -