
望采纳~
#include<iostream>
#include<fstream>
#include<string>
#include<conioh>
#include<windowsh>
using namespace std;
#define PATH "d:\\StudentFiletxt"
void Confirm();
void readin();
void savefile();
void newstudent();
void shengxu();
void jiangxu();
void FindExactAccordingName(char name[]);
void FindExactAccordingNumber(char number[]);
void find(char s1[],char s2[],int a,int b);
void FindAccordingName(char firstname[]);
void FindAccordingNumber(char number[]);
void InsertUp();
void InsertDown();
void Delete(char num[]);
void Revise(char num[]);
void MathAverage();
void EnglishAverage();
void ChineseAverage();
void Math();
void English();
void Chinese();
void Confirm();
void screen(int x);
void cometrue(char x);
class student
{
private:
char Number[20]; char Name[40];
int Math; int English; int Chinese; int Sum;
double Average;
public:
void GetInformation()
{
cout<<cout<<"学号\t\t姓名\t数学\t英语\t语文"<<endl;
cout<<"\t";
cin>>Number>>Name>>Math>>English>>Chinese;
}
void ShowInformation()
{
cout<<Number<<"\t"<<Name<<"\t"<<Math<<"\t"<<English<<"\t"<<Chinese<<endl;
}
void ShowInformation_Sum_Average()
{
GetSum(); GetAverage();
cout<<Number<<"\t"<<Name<<"\t"<<Math<<"\t"<<English<<"\t"<<Chinese<<"\t"<<Sum<<"\t"<<Average<<endl;
}
void GetAverage()
{
Average=0;
Average=(Math+English+Chinese)/3;
}
int SetSum() { return Sum; }
char SetName(){ return Name; }
char SetNumber(){ return Number; }
int SetMath(){ return Math; }
int SetEnglish(){ return English; }
int SetChinese(){ return Chinese; }
char GetName(char name[])
{
if(strcmp(Name,name))
return 1;
return 0;
}
void GetSum()
{
Sum=0;
Sum=Math+English+Chinese;
}
char GetNumber(char number[])
{
if(strcmp(Number,number)==0)
return 1;
return 0;
}
};
student Math_max,Math_min;
student English_max,English_min;
student Chinese_max,Chinese_min;
int math_max,math_min,english_max,english_min,chinese_max,chinese_min;
struct linklist
{
student data;
linklist next;
};
int N=0; //定义当前程序中共有多少学生
linklist HEAD=NULL,REAR=NULL;
void readin() //从文件中读取已经存储的学生数据;
{
ifstream in(PATH); /PATH为存档文件路径/
inread((char)(&N),sizeof(int)); //文件开始的前4个字节记录这当前文件中共有多少个学生信息,所以先将它读入程序
for(int i=0;i<N;i++)
if(i==0) //如果当前是第一个学生信息
{
HEAD=REAR=new linklist;
HEAD->next=NULL;
HEAD->data=new student;
inread((char )(HEAD->data),sizeof(student)); //读入学生信息
}
else
{ //头插法建立学生信息链表
linklist p=new linklist;
REAR->next=p;
REAR=p;
p->next=NULL;
REAR->data=new student;
inread((char )(REAR->data),sizeof(student)); //读入学生信息
}
inclose();
}
void savefile() //存档
{
ofstream out(PATH);
outwrite((char )&N,sizeof(int)); //首先把多少个学生写进文件
for(int i=0;i<N;i++)
{
outwrite((char )(HEAD->data),sizeof(student)); //将学生信息入档
delete HEAD->data; //删除HEAD->data指向的学生
linklist p=HEAD->next; //删除linklinklist节点
delete HEAD;
HEAD=p;
}
outclose();
}
void newstudent() //新建学生
{
linklist p;
if(HEAD==NULL)
{
HEAD=REAR=new linklist;
HEAD->data=new student;
HEAD->data->GetInformation();
HEAD->next=NULL;
}
else
{
REAR->next=p=new linklist;
p->data=new student;
p->data->GetInformation();
p->next=NULL;
REAR=p;
}
}
void shengxu() //对学生总分升序排序
{
if(N<2) //如果学生数小于2,不用排了,直接返回
return ;
linklist p,k; /k是前一个节点,P是后一个/
for(int i=1,j;i<N;i++)
{
for(p=HEAD->next,k=HEAD,j=0;j<N-i;p=p->next,k=k->next,j++)
if(strcmp(p->data->SetNumber(),k->data->SetNumber())<0)
{
student s=p->data;
p->data=k->data;
k->data=s;
}
}
}
void jiangxu()
{
if(N<2) //如果学生数小于2,不用排了,直接返回
return ;
linklist p,k; /k是前一个节点,P是后一个/
for(int i=1,j;i<N;i++)
{
for(p=HEAD->next,k=HEAD,j=0;j<N-i;p=p->next,k=k->next,j++)
if(strcmp(p->data->SetNumber(),k->data->SetNumber())>0)
{
student s=p->data;
p->data=k->data;
k->data=s;
}
}
}
void FindExactAccordingName(char name[])
{
linklist p;
p=HEAD;
for(int i=0;i<N;i++,p=p->next)
if(p->data->GetName(name)==1)
{
p->data->ShowInformation();
break;
}
}
void FindExactAccordingNumber(char number[])
{
linklist p;
p=HEAD;
for(int i=0;i<N;i++,p=p->next)
if(p->data->GetNumber(number)==1)
{
p->data->ShowInformation();
break;
}
}
int MAXPIPEI;
void find(char s1[],char s2[],int a,int b)
{
if(b>MAXPIPEI)
MAXPIPEI=b;
if(b>=strlen(s2))
return;
for(;a<strlen(s1);a++)
if(s1[a]==s2[b])
find(s1,s2,a+1,b+1);
}
void FindAccordingName(char firstname[])//姓名模糊查询
{
linklist p;
p=HEAD;
while(p)
{
MAXPIPEI=0;
find(p->data->SetName(),firstname,0,0);
if(MAXPIPEI2>=strlen(firstname))
p->data->ShowInformation();
p=p->next;
}
}
void FindAccordingNumber(char number[])//学号模糊查询
{
linklist p;
p=HEAD;
while(p)
{
MAXPIPEI=0;
find(p->data->SetNumber(),number,0,0);
if(MAXPIPEI2>=strlen(number))
p->data->ShowInformation();
p=p->next;
}
}
void InsertUp()//插入(保持升序排列)
{
linklist s;
s=new linklist;
s->data=new student;
s->data->GetInformation();
s->next=NULL;
s->next=HEAD;
HEAD=s;
shengxu();
N++;
}
void InsertDown()//插入(保持降序排列)
{
linklist s;
s=new linklist;
s->data=new student;
s->data->GetInformation();
s->next=NULL;
s->next=HEAD;
HEAD=s;
jiangxu();
N++;
}
void Delete(char num[])//删除
{
linklist p,k;
k=p=HEAD;
while(p)
{
if(strcmp(p->data->SetNumber(),num)==0)
break;
k=p;
p=p->next;
}
if(p==HEAD)
{
HEAD=HEAD->next;
delete p->data;
delete p;
N--;
}
else if(p==NULL)
{
cout<<"输入有误。请重新输入。";
}
else
{
k->next=p->next;
delete p->data;
delete p;
N--;
}
}
void Revise(char num[])//修改(修改完成后需要再进行一下升序或降序排列)
{
linklist p;
p=HEAD;
while(p)
{
if(strcmp(p->data->SetNumber(),num)==0)
break;
p=p->next;
}
p->data->GetInformation();
p->data->ShowInformation();
}
void MathAverage()
{
linklist p;
p=HEAD;
double math=0;
while(p)
{
math+=p->data->SetMath();
p=p->next;
}
math=math/N;
cout<<"数学平均分:"<<math<<endl;
}
void EnglishAverage()
{
linklist p;
p=HEAD;
double english=0;
while(p)
{
english+=p->data->SetMath();
p=p->next;
}
english=english/N;
cout<<"英语平均分:"<<english<<endl;
}
void ChineseAverage()
{
linklist p;
p=HEAD;
double chinese=0;
while(p)
{
chinese+=p->data->SetMath();
p=p->next;
}
chinese=chinese/N;
cout<<"语文平均分:"<<chinese<<endl;
}
void Math()
{
linklist p;
p=HEAD;
math_max=-1000000;
math_min=10000000;
while(p)
{
if(p->data->SetMath()>math_max)
{
math_max=p->data->SetMath();
Math_max=p->data;
}
if(p->data->SetMath()<math_min)
{
math_min=p->data->SetMath();
Math_min=p->data;
}
p=p->next;
}
cout<<"数学学科最高分:"<<math_max<<endl;
cout<<"数学学科最低分:"<<math_min<<endl;
}
void English()
{
linklist p;
p=HEAD;
english_max=-1000000;
english_min=10000000;
while(p!=NULL)
{
if(p->data->SetEnglish()>english_max)
{
english_max=p->data->SetEnglish();
English_max=p->data;
}
if(p->data->SetEnglish()<english_min)
{
english_min=p->data->SetEnglish();
English_min=p->data;
}
p=p->next;
}
cout<<"英语学科最高分:"<<english_max<<endl;
cout<<"英语学科最低分:"<<english_min<<endl;
}
void Chinese()
{
linklist p;
p=HEAD;
chinese_max=-1000000;
chinese_min=10000000;
while(p)
{
if(p->data->SetChinese()>chinese_max)
chinese_max=p->data->SetChinese();
if(p->data->SetChinese()<chinese_min)
chinese_min=p->data->SetChinese();
p=p->next;
}
cout<<"语文学科最高分:"<<chinese_max<<endl;
cout<<"语文学科最低分:"<<chinese_min<<endl;
}
void screen(int x)
{
if(x==0)
{
cout<<endl<<endl<<endl<<endl;
cout<<" 欢迎进入小型学生信息管理系统"<<endl;
}
else if(x==1)
{
system("cls");
cout<<"\t 学生信息管理系统 "<<endl<<endl;;
cout<<"\t"<<endl<<endl;
cout<<"\t 1 、新建学生信息\t\t8 、按学号模糊查询 "<<endl;
cout<<"\t 2 、显示已存学生信息\t\t9 、按姓名模糊查询 "<<endl;
cout<<"\t 3 、删除学生信息\t\t10、统计学生的平均分和总分 "<<endl;
cout<<"\t 4 、添加学生信息\t\t11、统计每个学科的平均分 "<<endl;
cout<<"\t 5 、修改学生信息\t\t12、统计每个学科的最高分和最低分 "<<endl;
cout<<"\t 6 、按学号精确查询\t\t13、对学生信息按学号升序排列 "<<endl;
cout<<"\t 7 、按姓名精确查询\t\t14、对学生信息按学号降序排列 "<<endl;
cout<<"\t "<<endl;
cout<<"\t 15、退出 "<<endl<<endl;
cout<<"\t"<<endl;
cout<<endl<<"\t"<<"请输入:";
}
}
void cometrue(int x)
{
switch(x)
{
case 1:
{
int people;
cout<<"请输入需要新建的学生人数:";
cin>>people;
for(int i=0;i<people;i++,N++)
{
newstudent();
}
Confirm();
break;
}
case 2:
{
readin();
linklist p;
p=HEAD;
cout<<"学号\t\t姓名\t数学\t英语\t语文"<<endl;
while(p!=NULL)
{
p->data->ShowInformation();
p=p->next;
}
//savefile();
Confirm();
break;
}
case 3:
{
// readin();
char num[20];
cout<<"请输入需要删除的学生的学号:";
cin>>num;
Delete(num);
Confirm();
break;
}
case 4:
{
int m;
cout<<"请输入插入后保持学生信息升序排列还是降序排列"<<endl;
cout<<"\t\t\t\t1、保持升序排列"<<endl<<"\t\t\t\t2、保持降序排列"<<endl;
cin>>m;
if(m==1)
InsertUp();
else if(m==2)
InsertDown();
Confirm();
break;
}
case 5:
{
char num[20];
cout<<"请输入需要修改的学生的学号:";
cin>>num;
Revise(num);
Confirm();
break;
}
case 6:
{
char num[10];
cout<<"请输入需要查询的学生的学号:";
cin>>num;
FindExactAccordingNumber(num);
Confirm();
break;
}
case 7:
{
char name[40];
cout<<"请输入需要查询的学生的姓名:";
cin>>name;
FindExactAccordingName(name);
Confirm();
break;
}
case 8:
{
char num[10];
cout<<"请输入需要查询的学生的学号:";
cin>>num;
FindAccordingNumber(num);
Confirm();
break;
}
case 9:
{
char name[40];
cout<<"请输入需要查询的学生的姓名:";
cin>>name;
FindAccordingName(name);
Confirm();
break;
}
case 10:
{
linklist p;
p=HEAD;
cout<<"学号\t\t姓名\t数学\t英语\t语文\t总分\t平均分"<<endl;
while(p!=NULL)
{
p->data->ShowInformation_Sum_Average();
p=p->next;
}
Confirm();
break;
}
case 11:
{
MathAverage();
EnglishAverage();
ChineseAverage();
Confirm();
break;
}
case 12:
{
Math();
English();
Chinese();
Confirm();
break;
}
case 13:
{
shengxu();
Confirm();
break;
}
case 14:
{
jiangxu();
Confirm();
break;
}
case 15:
{
char answer;
cout<<"是否存档(Y/N)"; cin>>answer;
if(answer=='Y' || answer=='y')
{
savefile();
exit(0);
}
else if(answer=='N' || answer=='n')
exit(0);
break;
}
}
}
void Confirm()
{
char x;
cout<<"是否继续(Y/N):";
cin>>x;
if(x=='Y' || x=='y')
return ;
else if(x=='N' || x=='n')
{
savefile();
exit(0);
}
}
int main()
{
int choose;
screen(0);
Sleep(1200);
while(1)
{
screen(1);
cin>>choose;
cometrue(choose);
}
return 0;
}
#include<iostream>
#include<cstring>
#include<fstream>
#include<stdlibh>//system("cls")//清屏
#include<conioh>//getche()
using namespace std;
//全局变量
int i=0;//已录入商品总个数
char ch;//cin>>ch
int n;//case(n)
char code[10];
char name[10];
char unit[10];
int amount;
float unitprice;
float total=0;//总价
ofstream f1("/testtxt");
ofstream f2("/selltxt");//构建输出流,没有文件就建立
class Goods
{
private:
char code[10];//代码
char name[10];//名称
char unit[10];//单位
int amount;//总数
float unitprice;//单价
public:
Goods();
Goods(char co[10],char na[10],char un[10],int am,float unpr);//构造函数
void f_write();// 录入
void f_change();//改变
void f_delete();//删除
void display();//显示全部商品信息
void s_buy();//买入
};
//构造函数
Goods::Goods(){}
Goods::Goods(char co[10],char na[10],char un[10],int am,float unpr)
{
strcpy(code,co);
strcpy(name,na);
strcpy(unit,un);
amount=am;
unitprice=unpr;
}
Goods g[50];
//商品信息录入
void Goods::f_write()
{
cout<<"请输入第"<<i+1<<"件商品代码:"<<endl;
cin>>code;
cout<<"请输入第"<<i+1<<"件商品名称:"<<endl;
cin>>name;
cout<<"请输入第"<<i+1<<"件商品计量单位:"<<endl;
cin>>unit;
cout<<"请输入第"<<i+1<<"件商品总数:"<<endl;
cin>>amount;
cout<<"请输入第"<<i+1<<"件商品单价:"<<endl;
cin>>unitprice;
g[i]=new Goods(code,name,unit,amount,unitprice);
i++;
cout<<"信息录入成功!(继续录入按y,返回上一层按n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_write();
}
}
//改变商品信息
void Goods::f_change()
{
cout<<"请输入要改变的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"商品信息如下:"<<endl;
cout<<"代码 名称 单价 总数 单位"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<"\t"<<g[h]->unit<<endl;
char newco,newna,newun;
int newam;
float newunpr;
cout<<"你想要修改:1、代码;2、名称;3、单价;4、总数;5、单位。"<<endl;
cin>>n;
switch(n)
{
case 1:
cout<<"请输入修改后的商品代码:";
cin>>newco;
g[h]->code[10]=newco;
cout<<"修改成功!"<<endl;
break;
case 2:
cout<<"请输入修改后的商品名称:";
cin>>newna;
g[h]->name[10]=newna;
cout<<"修改成功!"<<endl;
break;
case 3:
cout<<"请输入商品单价:";
cin>>newunpr;
g[h]->unitprice=newunpr;
cout<<"修改成功!"<<endl;
break;
case 4:
cout<<"请输入修改后的商品总数:";
cin>>newam;
g[h]->amount=newam;
cout<<"修改成功!"<<endl;
break;
case 5:
cout<<"请输入修改后的商品单位:";
cin>>newun;
g[h]->unit[10]=newun;
cout<<"修改成功!"<<endl;
break;
}
break;
}//if
}//for循环
cout<<"是否继续修改?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_change();
}
}
//删除信息
void Goods::f_delete()
{
cout<<"请输入要删除的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
for(int k=h;k<i;k++)
{
g[k]=g[k+1];
i--;
}
}
}
cout<<"删除成功!"<<endl;
cout<<"是否继续删除?(y/n)"<<endl;
cin>>ch;
if(ch=='y')
{
f_delete();
}
}
//打印信息
void Goods::display()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------全部商品信息如下-------------------"<<endl;
cout<<" "<<endl;
cout<<"代码 名称 单价 总数 单位"<<endl;
f1<<" "<<endl;
f1<<"---------------全部商品信息如下--------------"<<endl;
f1<<" "<<endl;
f1<<"代码 名称 单价 总数 单位"<<endl;
if(i==0)
{
cout<<"系统未曾录入任何商品信息,或记录被删除!";
}
for(int k=0;k<i;k++)
{
cout<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
f1<<g[k]->code<<"\t"<<g[k]->name<<"\t"<<g[k]->unitprice
<<"\t"<<g[k]->amount<<"\t"<<g[k]->unit<<endl;
}
cout<<endl;
}
//买入
void Goods::s_buy()
{
float price=0;//单个商品价格
cout<<"请输入想要买的商品代码:";
cin>>code;
for(int h=0;h<i;h++)
{
if(0 == strcmp(g[h]->code,code))
{
cout<<"请输入想要购买的商品数量:";
cin>>amount;//当前要购买的数量
price=amountg[h]->unitprice;
g[h]->amount=g[h]->amount-amount;
cout<<endl;
cout<<"代码 名称 单价 数量 小计"<<endl;
cout<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
f2<<"代码 名称 单价 数量 小计"<<endl;
f2<<g[h]->code<<"\t"<<g[h]->name<<"\t"<<g[h]->unitprice
<<"\t"<<g[h]->amount<<g[h]->unit<<"\t"<<price<<endl;
total=total+price;
break;
}
}
cout<<"按1继续购买,按2结束。"<<endl;
cin>>n;
if(n==2)
{
cout<<endl;
cout<<"购买结束,总计:"<<total<<"元!"<<endl;
}
else
{
s_buy();
}
}
//类外函数
//第一部分 *** 作显示
void f_screen()
{
system("cls");
Goods g;
cout<<"按相应键 *** 作:"<<endl;
cout<<"0录入信息 1更改信息 2删除信息 3返回上一层"<<endl;
cin>>n;
switch(n)
{
case 0:
gf_write();
if(ch=='n'||ch=='N')
f_screen();
break;
case 1:
gf_change();
if(ch=='n'||ch=='N')
f_screen();
break;
case 2:
gf_delete();
if(ch=='n'||ch=='N')
f_screen();
break;
}
}
//第二部分 *** 作显示
void s_screen()
{
Goods g;
gdisplay();
cout<<endl;
gs_buy();
}
//初始屏幕显示
void screen()
{
system("cls");
cout<<" "<<endl;
cout<<"-----------------商品销售统计系统---------------"<<endl;
cout<<" "<<endl;
f2<<" "<<endl;
f2<<"----------------商品销售统计系统--------------"<<endl;
f2<<" "<<endl;
cout<<"更改商品信息请按1,进行销售统计请按-1。"<<endl;
cin>>ch;
if(ch=='1')
{
f_screen();
if(n==3)
screen();
}
else if(ch=='-1')
{
s_screen();
}
else
{
cout<<"输入错误,系统重新启动!";
screen();
}
}
int main()
{
screen();
return 0;
}
r does fail
r does fail
r does fail
r does fail
r does fail
r does fail
r does fail
#include<iostreamh>
#include<stringh>
#include<fstreamh>
class stu
{
char name[20];
double much,sum;
public:
stu()
{
}
stu(char n[20],double muc)
{
strcpy(name,n);
much=muc;
}
double getsum()
{
sum=much;
return sum;
}
friend void main();
};
void main()
{
cout<<"请选择您需要的 *** 作!"<<endl;
cout<<" *** 作:"<<endl;
cout<<"(0)职工数据录入"<<endl;
cout<<"(1)增加职工人员"<<endl;
cout<<"(2)删除职工人员"<<endl;
cout<<"(3)新完成的需要添加的产品数量数据"<<endl;
cout<<"查询:"<<endl;
cout<<"(4)按总产品数量查询"<<endl;
cout<<"(5)按职工姓名查询"<<endl;
cout<<"(6)输出所有职工的数据"<<endl;
cout<<"生产量排名名次"<<endl;
cout<<"(7)按职工生产的总产品数量查询排名"<<endl;
cout<<"选择相关 *** 作请输入相对的括号里的阿拉伯数字!"<<endl;
char p;char w;
stu s[50];
ofstream file[50];
int i=0;
int j=0;
bool flag2=0;
do
{
cin>>p;
if((p>='0'&&p<='10'))
flag2=1;
else
cout<<"指令错误!请重新输入:"<<endl;
}while(flag2==0);
do{
switch(p)
{
case '0':
{
char c;
char name[20];double much;
do{
cout<<"请输入职工姓名"<<endl;
cin>>name;
cout<<"请输入产品数量:"<<endl;
cin>>much;
file[j]=new ofstream("d:\\document",ios::ate);
file[j]<<"姓名"<<name<<"产品数量"<<much<<endl;
j++;
s[i]=new stu(name, much);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
flag2=0;
do
{
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
else
flag2=1;
}while(flag2==0);
}while(c=='y');
break;
}
case '1':
{
char name[20];double much;
char c;
do
{
cout<<"请输入您要增加的职工的姓名:"<<endl;
cin>>name;
cout<<"请输入产品数量"<<endl;
cin>>much;
file[j]=new ofstream("d:\\document",ios::ate);
file[j]<<"姓名"<<name<<"产品数量"<<much<<endl;
j++;
s[i]=new stu(name, much);
i++;
cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '2':
{
char name[20];bool flag3=0;char c;
do{
cout<<"请输入您要删除的职工姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag3=1;
i--;
do{
s[h]=s[h+1];
h++;
}while(h<=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
cout<<"要继续删除吗?(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '3':
{
char name[20];double mat;flag2=0;
char c;
do
{
cout<<"请输入您要修改的职工的姓名:"<<endl;
cin>>name;
for(int h=0;h<i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新完成的产品数量:"<<endl;
cin>>mat;
s[h]->much+=mat;
cout<<"数据添加成功!";
}
}
if(flag2==0)
{
cout<<"您要修改的职工本来就不存在!请检查重新输入!"<<endl;
}
cout<<"想继续修改吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}while(c=='y');
break;
}
case '4':
{
double t;char c;
do
{
int flag1=0;
cout<<"请输入你要查询职工的总产品数量"<<endl;
cin>>t;
for(int q=0;q<i;q++)
{
if(s[q]->getsum()==t)
{
flag1=1;
cout<<"您要查询的职工是:"<<(s[q])name<<endl;
}
}
if(flag1==0)
cout<<"对不起!您要查询的职工不存在!"<<endl;
cout<<"您想继续查询吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '5':
{
char n[20];int j=0;char c;
do{
int flag=0;
cout<<"请输入你要查询的职工姓名"<<endl;
cin>>n;
for(int j=0;j<i;j++)
{
if(strcmp(n,(s[j])name)==0)
{
flag=1;
cout<<"您要查询的职工是:"<<(s[j])name<<endl;
cout<<(s[j])name<<"的总产品数量是"<<(s[j])getsum()<<endl;
}
}
if(flag==0)
cout<<"对不起!您要查询的职工不存在!"<<endl;
cout<<"您想继续查询吗(y/n)"<<endl;
cin>>c;
if(c!='y'&&c!='n')
{
cout<<"指令错误!请重新输入!"<<endl;
cin>>c;
}
}
while(c=='y');
break;
}
case '6':
{
cout<<"本系统所有职工数据如下:"<<endl;
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<"总产品数量:"<<" "<<(s[k])getsum() <<endl;
}
break;
}
case '7':
{
int t;stu b;
cout<<"本系统所有职工排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->getsum())<(s[y]->getsum()))
t=y;
if(t!=x)
{
b=s[x];
s[x]=s[t];
s[t]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name
<<"总产品数量:"<<" "<<s[k]->getsum() <<endl;
}
break;
}
case '9':
{
int t;stu b;
cout<<"本系统所以职工总产品数量排名如下:"<<endl;
for(int x=0;x<i-1;x++)
{
t=x;
for(int y=x+1;y<i;y++)
{
if((s[t]->much)<(s[y]->much))
t=y;
if(t!=x)
{
b=s[t];
s[t]=s[x];
s[x]=b;
}
}
}
if(i==0)
cout<<"管理系统中没有录入数据或者数据已经被删除!";
for(int k=0;k<i;k++)
{
cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name
<<"产品数量:"<<" "<<s[k]->getsum() <<endl;
}
break;
}
}
cout<<"您想继续进行其他 *** 作吗(y/n)"<<endl;
bool flag4=0;
do
{
cin>>w;
if(w!='y'&&w!='n')
cout<<"指令错误!请重新输入!"<<endl;
else
flag4=1;
}while(flag4==0);
if(w=='y')
cout<<"请输入 *** 作代码:(0)职工数据录入;(1)增加职工人员; (2)删除职工人员; (3)新完成需要添加的产品数量数据; (4)按总产品数量查询; (5)按职工姓名查询; (6)输出所有职工的数据; (7)按职工生产的总产品数量查询排名"<<endl;
cin>>p;
}while(w=='y');
for(int x=0;x<i;x++)
{
delete s[x];
cout<<"删除所有数据成员"<<endl;
}
}
以上就是关于数据结构课程设计要做学生成绩统计系统怎么做 急急急!全部的内容,包括:数据结构课程设计要做学生成绩统计系统怎么做 急急急!、用C语言来编写:商品销售统计程序、c语言程序设计篮球比赛比分及技术统计记录系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)