数据结构课程设计要做学生成绩统计系统怎么做 急急急!

数据结构课程设计要做学生成绩统计系统怎么做 急急急!,第1张

望采纳~

#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语言程序设计篮球比赛比分及技术统计记录系统等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9307922.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存