鱼C论坛

 找回密码
 立即注册
查看: 1722|回复: 4

[已解决]已用C++语言做出了职工工作量统计系统,有没有大哥能用c语言把这个整出来,我头秃了

[复制链接]
发表于 2019-9-6 00:25:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<iostream.h>

#include<string.h>

#include<fstream.h>

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':                                //程序中的操作(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':                                //程序中的操作(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':                                //程序中的操作(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':                                //程序中的操作(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':                                //程序中的操作(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':                                //程序中的操作(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':                                //程序中的操作(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;

}

}


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;

}
}
最佳答案
2019-9-6 18:58:37
本帖最后由 superbe 于 2019-9-6 19:03 编辑

我只是改成C能运行了,花了好长时间
我觉得你可以把各个功能做成函数,文件内容和修改操作同步等等很多要完善
vs2012下运行正常

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <malloc.h>

  4. typedef struct{
  5.         char name[20];
  6.         double much;
  7.         double sum;
  8. }stu;

  9. void main()
  10. {
  11.         char p,w,c,name[20];
  12.         double much;
  13.         stu *s[50],b;
  14.         FILE *file[50];
  15.         int i=0,j=0,k=0,t,y;
  16.         int flag=0;

  17.         printf("请选择您需要的操作!\n"
  18.                         "操作:\n"
  19.                         "(0)职工数据录入\n"
  20.                         "(1)增加职工人员\n"
  21.                         "(2)删除职工人员\n"
  22.                         "(3)新完成的需要添加的产品数量数据\n"
  23.                         "查询:\n"
  24.                         "(4)按总产品数量查询\n"
  25.                         "(5)按职工姓名查询\n"
  26.                         "(6)输出所有职工的数据\n"
  27.                         "生产量排名名次:\n"
  28.                         "(7)按职工生产的总产品数量查询排名\n"
  29.                         "选择相关操作请输入相对的括号里的阿拉伯数字!\n");

  30.        
  31.         do
  32.         {
  33.                 scanf("%c",&p);getchar();
  34.                 if((p>='0' && p<='10'))
  35.                         flag=1;
  36.                 else
  37.                         printf("指令错误!请重新输入:\n");
  38.         }while(flag==0);

  39.         do{
  40.                 switch(p)
  41.                 {
  42.                 case '0':
  43.                         {
  44.                                 do{
  45.                                         printf("请输入职工姓名\n");
  46.                                         scanf("%s",name);
  47.                                         printf("请输入产品数量:\n");
  48.                                         scanf("%lf",&much);getchar();
  49.                                         file[j]=fopen("d:\\document","a+");
  50.                                         fprintf(file[j],"姓名%s产品数量%f\n",name,much);
  51.                                         fflush(file[j]);
  52.                                         j++;
  53.                                         s[i]=(stu *)malloc(sizeof(stu));
  54.                                         strcpy(s[i]->name,name);
  55.                                         s[i]->much=much;
  56.                                         s[i]->sum=s[i]->much;        ////
  57.                                         i++;
  58.                                         printf("数据录入成功,想继续录入吗(y/n)\n");
  59.                                         scanf("%c",&c);getchar();
  60.                                         flag=0;

  61.                                         do
  62.                                         {
  63.                                                 if(c!='y' && c!='n')
  64.                                                 {
  65.                                                         printf("指令错误!请重新输入!\n");
  66.                                                         scanf("%c",&c);getchar();
  67.                                                 }
  68.                                                 else
  69.                                                         flag=1;
  70.                                         }while(flag==0);
  71.                                 }while(c=='y');
  72.                                 break;
  73.                         }
  74.                 case '1':                                //程序中的操作(1)
  75.                         {
  76.                                 do
  77.                                 {
  78.                                         printf("请输入您要增加的职工的姓名:\n");
  79.                                         scanf("%s",name);
  80.                                         printf("请输入产品数量\n");
  81.                                         scanf("%lf",&much);getchar();
  82.                                         file[j]=fopen("d:\\document","a+");
  83.                                         fprintf(file[j],"姓名%s产品数量%f\n",name,much);
  84.                                         fflush(file[j]);
  85.                                         j++;
  86.                                         s[i]=(stu *)malloc(sizeof(stu));
  87.                                         strcpy(s[i]->name,name);
  88.                                         s[i]->much=much;
  89.                                         s[i]->sum=s[i]->much;        ////
  90.                                         i++;

  91.                                         printf("数据录入成功,想继续录入吗(y/n)\n");
  92.                                         scanf("%c",&c);getchar();
  93.                                         if(c!='y' && c!='n')
  94.                                         {
  95.                                                 printf("指令错误!请重新输入!\n");
  96.                                                 scanf("%c",&c);getchar();
  97.                                         }
  98.                                 }while(c=='y');
  99.                                 break;
  100.                         }
  101.                 case '2':                                //程序中的操作(2)
  102.                         {
  103.                                 flag=0;
  104.                                 do{
  105.                                         printf("请输入您要删除的职工姓名:\n");
  106.                                         scanf("%s",name);getchar();
  107.                                         for(k=0;k<i;k++)
  108.                                         {
  109.                                                 if(strcmp(name,s[k]->name)==0)
  110.                                                 {
  111.                                                         flag=1;
  112.                                                         i--;

  113.                                                         do{
  114.                                                                 s[k]=s[k+1];
  115.                                                                 k++;
  116.                                                         }while(k<=i);
  117.                                                 }
  118.                                         }
  119.                                         if(flag==0)
  120.                                         printf("您要求删除的对象本来就不存在!请检查输入的正确性!\n");
  121.                                         printf("要继续删除吗?(y/n)\n");
  122.                                         scanf("%c",&c);getchar();
  123.                                         if(c!='y' && c!='n')
  124.                                         {
  125.                                                 printf("指令错误!请重新输入!\n");
  126.                                                 scanf("%c",&c);getchar();
  127.                                         }
  128.                                 }while(c=='y');
  129.                                 break;
  130.                         }
  131.                 case '3':                                //程序中的操作(3)
  132.                         {
  133.                                 flag=0;
  134.                                 do
  135.                                 {
  136.                                         printf("请输入您要修改的职工的姓名:\n");
  137.                                         scanf("%s",name);

  138.                                         for(k=0;k<i;k++)
  139.                                         {
  140.                                                 if(strcmp(name,s[k]->name)==0)
  141.                                                 {
  142.                                                         flag=1;
  143.                                                         printf("请输入新完成的产品数量:\n");
  144.                                                         scanf("%lf",&much); getchar();
  145.                                                         s[k]->much+=much;
  146.                                                         s[k]->sum=s[k]->much;        ////
  147.                                                         printf("数据添加成功!\n");
  148.                                                 }
  149.                                         }
  150.                                         if(flag==0)
  151.                                         {
  152.                                                 printf("您要修改的职工本来就不存在!请检查重新输入!\n");
  153.                                         }
  154.                                         printf("想继续修改吗(y/n)\n");
  155.                                         scanf("%c",&c);getchar();
  156.                                         if(c!='y' && c!='n')
  157.                                         {
  158.                                                 printf("指令错误!请重新输入!\n");
  159.                                                 scanf("%c",&c);getchar();
  160.                                         }
  161.                                 }while(c=='y');
  162.                                 break;
  163.                         }
  164.                 case '4':                                //程序中的操作(4)
  165.                         {
  166.                                 do
  167.                                 {
  168.                                         flag=0;
  169.                                         printf("请输入你要查询职工的总产品数量\n");
  170.                                         scanf("%lf",&much);getchar();
  171.                                         for(k=0;k<i;k++)
  172.                                         {
  173.                                                 if(s[k]->sum==much)
  174.                                                 {
  175.                                                         flag=1;
  176.                                                         printf("您要查询的职工是:%s\n",(*s[k]).name);
  177.                                                 }
  178.                                         }
  179.                                         if(flag==0)
  180.                                                 printf("对不起!您要查询的职工不存在!\n");
  181.                                         printf("您想继续查询吗?(y/n)\n");
  182.                                         scanf("%c",&c);getchar();
  183.                                         if(c!='y' && c!='n')
  184.                                         {
  185.                                                 printf("指令错误!请重新输入!\n");
  186.                                                 scanf("%c",&c);getchar();
  187.                                         }
  188.                                 }while(c=='y');
  189.                                 break;
  190.                         }
  191.                 case '5':                                //程序中的操作(5)
  192.                         {
  193.                                 do{
  194.                                         flag=0;
  195.                                         printf("请输入你要查询的职工姓名\n");
  196.                                         scanf("%s",name);getchar();
  197.                                         for(k=0;k<i;k++)
  198.                                         {
  199.                                                 if(strcmp(name,(*s[k]).name)==0)
  200.                                                 {
  201.                                                         flag=1;
  202.                                                         printf("您要查询的职工是:%s\n",(*s[k]).name);
  203.                                                         printf("%s的总产品数量是%f\n",(*s[k]).name,(*s[k]).sum);
  204.                                                 }
  205.                                         }
  206.                                         if(flag==0)
  207.                                                 printf("对不起!您要查询的职工不存在!\n");
  208.                                         printf("您想继续查询吗?(y/n)\n");
  209.                                         scanf("%c",&c);getchar();
  210.                                         if(c!='y' && c!='n')
  211.                                         {
  212.                                                 printf("指令错误!请重新输入!\n");
  213.                                                 scanf("%c",&c);getchar();
  214.                                         }
  215.                                 }while(c=='y');
  216.                                 break;
  217.                         }
  218.                 case '6':                                //程序中的操作(6)
  219.                         {
  220.                                 printf("本系统所有职工数据如下:\n");
  221.                                 if(i==0)
  222.                                         printf("管理系统中没有录入数据或者数据已经被删除!\n");
  223.                                 for(k=0;k<i;k++)
  224.                                 {
  225.                                         printf("%d 姓名:%s 总产品数量:%f\n",k+1,s[k]->name,(*s[k]).sum);
  226.                                 }
  227.                                 break;
  228.                         }
  229.                 case '7':                                //程序中的操作(7)
  230.                         {
  231.                                 printf("本系统所有职工排名如下:\n");
  232.                                 for(k=0;k<i-1;k++)
  233.                                 {
  234.                                         t=k;
  235.                                         for(y=k+1;y<i;y++)
  236.                                         {
  237.                                                 if((s[t]->sum)<(s[y]->sum))
  238.                                                         t=y;
  239.                                                 if(t!=k)
  240.                                                 {
  241.                                                         b=*s[k];
  242.                                                         *s[k]=*s[t];
  243.                                                         *s[t]=b;
  244.                                                 }
  245.                                         }
  246.                                 }
  247.                                 if(i==0)
  248.                                         printf("管理系统中没有录入数据或者数据已经被删除!\n");
  249.                                 for(k=0;k<i;k++)
  250.                                 {
  251.                                         printf("%d 姓名:%s总产品数量:%f\n",k+1,s[k]->name,s[k]->sum);
  252.                                 }
  253.                                 break;
  254.                         }
  255.                 }

  256.                 printf("您想继续进行其他操作吗?(y/n)\n");
  257.                 flag=0;

  258.                 do
  259.                 {
  260.                         scanf("%c",&w);getchar();
  261.                         if(w!='y' && w!='n')
  262.                                 printf("指令错误!请重新输入!\n");
  263.                         else
  264.                                 flag=1;
  265.                 }while(flag==0);
  266.                 if(w=='y')
  267.                 {                //添加的行
  268.                         printf("请输入操作代码:(0)职工数据录入;(1)增加职工人员; (2)删除职工人员; (3)新完成需要添加的产品数量数据; (4)按总产品数量查询; (5)按职工姓名查询; (6)输出所有职工的数据; (7)按职工生产的总产品数量查询排名\n");
  269.                         scanf("%c",&p);        getchar();
  270.                 }                //添加的行
  271.         }while(w=='y');
  272.         for(k=0;k<i;k++)
  273.         {
  274.                 free(s[k]);
  275.                 printf("删除所有数据成员\n");
  276.         }
  277. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-9-6 18:58:37 | 显示全部楼层    本楼为最佳答案   
本帖最后由 superbe 于 2019-9-6 19:03 编辑

我只是改成C能运行了,花了好长时间
我觉得你可以把各个功能做成函数,文件内容和修改操作同步等等很多要完善
vs2012下运行正常

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <malloc.h>

  4. typedef struct{
  5.         char name[20];
  6.         double much;
  7.         double sum;
  8. }stu;

  9. void main()
  10. {
  11.         char p,w,c,name[20];
  12.         double much;
  13.         stu *s[50],b;
  14.         FILE *file[50];
  15.         int i=0,j=0,k=0,t,y;
  16.         int flag=0;

  17.         printf("请选择您需要的操作!\n"
  18.                         "操作:\n"
  19.                         "(0)职工数据录入\n"
  20.                         "(1)增加职工人员\n"
  21.                         "(2)删除职工人员\n"
  22.                         "(3)新完成的需要添加的产品数量数据\n"
  23.                         "查询:\n"
  24.                         "(4)按总产品数量查询\n"
  25.                         "(5)按职工姓名查询\n"
  26.                         "(6)输出所有职工的数据\n"
  27.                         "生产量排名名次:\n"
  28.                         "(7)按职工生产的总产品数量查询排名\n"
  29.                         "选择相关操作请输入相对的括号里的阿拉伯数字!\n");

  30.        
  31.         do
  32.         {
  33.                 scanf("%c",&p);getchar();
  34.                 if((p>='0' && p<='10'))
  35.                         flag=1;
  36.                 else
  37.                         printf("指令错误!请重新输入:\n");
  38.         }while(flag==0);

  39.         do{
  40.                 switch(p)
  41.                 {
  42.                 case '0':
  43.                         {
  44.                                 do{
  45.                                         printf("请输入职工姓名\n");
  46.                                         scanf("%s",name);
  47.                                         printf("请输入产品数量:\n");
  48.                                         scanf("%lf",&much);getchar();
  49.                                         file[j]=fopen("d:\\document","a+");
  50.                                         fprintf(file[j],"姓名%s产品数量%f\n",name,much);
  51.                                         fflush(file[j]);
  52.                                         j++;
  53.                                         s[i]=(stu *)malloc(sizeof(stu));
  54.                                         strcpy(s[i]->name,name);
  55.                                         s[i]->much=much;
  56.                                         s[i]->sum=s[i]->much;        ////
  57.                                         i++;
  58.                                         printf("数据录入成功,想继续录入吗(y/n)\n");
  59.                                         scanf("%c",&c);getchar();
  60.                                         flag=0;

  61.                                         do
  62.                                         {
  63.                                                 if(c!='y' && c!='n')
  64.                                                 {
  65.                                                         printf("指令错误!请重新输入!\n");
  66.                                                         scanf("%c",&c);getchar();
  67.                                                 }
  68.                                                 else
  69.                                                         flag=1;
  70.                                         }while(flag==0);
  71.                                 }while(c=='y');
  72.                                 break;
  73.                         }
  74.                 case '1':                                //程序中的操作(1)
  75.                         {
  76.                                 do
  77.                                 {
  78.                                         printf("请输入您要增加的职工的姓名:\n");
  79.                                         scanf("%s",name);
  80.                                         printf("请输入产品数量\n");
  81.                                         scanf("%lf",&much);getchar();
  82.                                         file[j]=fopen("d:\\document","a+");
  83.                                         fprintf(file[j],"姓名%s产品数量%f\n",name,much);
  84.                                         fflush(file[j]);
  85.                                         j++;
  86.                                         s[i]=(stu *)malloc(sizeof(stu));
  87.                                         strcpy(s[i]->name,name);
  88.                                         s[i]->much=much;
  89.                                         s[i]->sum=s[i]->much;        ////
  90.                                         i++;

  91.                                         printf("数据录入成功,想继续录入吗(y/n)\n");
  92.                                         scanf("%c",&c);getchar();
  93.                                         if(c!='y' && c!='n')
  94.                                         {
  95.                                                 printf("指令错误!请重新输入!\n");
  96.                                                 scanf("%c",&c);getchar();
  97.                                         }
  98.                                 }while(c=='y');
  99.                                 break;
  100.                         }
  101.                 case '2':                                //程序中的操作(2)
  102.                         {
  103.                                 flag=0;
  104.                                 do{
  105.                                         printf("请输入您要删除的职工姓名:\n");
  106.                                         scanf("%s",name);getchar();
  107.                                         for(k=0;k<i;k++)
  108.                                         {
  109.                                                 if(strcmp(name,s[k]->name)==0)
  110.                                                 {
  111.                                                         flag=1;
  112.                                                         i--;

  113.                                                         do{
  114.                                                                 s[k]=s[k+1];
  115.                                                                 k++;
  116.                                                         }while(k<=i);
  117.                                                 }
  118.                                         }
  119.                                         if(flag==0)
  120.                                         printf("您要求删除的对象本来就不存在!请检查输入的正确性!\n");
  121.                                         printf("要继续删除吗?(y/n)\n");
  122.                                         scanf("%c",&c);getchar();
  123.                                         if(c!='y' && c!='n')
  124.                                         {
  125.                                                 printf("指令错误!请重新输入!\n");
  126.                                                 scanf("%c",&c);getchar();
  127.                                         }
  128.                                 }while(c=='y');
  129.                                 break;
  130.                         }
  131.                 case '3':                                //程序中的操作(3)
  132.                         {
  133.                                 flag=0;
  134.                                 do
  135.                                 {
  136.                                         printf("请输入您要修改的职工的姓名:\n");
  137.                                         scanf("%s",name);

  138.                                         for(k=0;k<i;k++)
  139.                                         {
  140.                                                 if(strcmp(name,s[k]->name)==0)
  141.                                                 {
  142.                                                         flag=1;
  143.                                                         printf("请输入新完成的产品数量:\n");
  144.                                                         scanf("%lf",&much); getchar();
  145.                                                         s[k]->much+=much;
  146.                                                         s[k]->sum=s[k]->much;        ////
  147.                                                         printf("数据添加成功!\n");
  148.                                                 }
  149.                                         }
  150.                                         if(flag==0)
  151.                                         {
  152.                                                 printf("您要修改的职工本来就不存在!请检查重新输入!\n");
  153.                                         }
  154.                                         printf("想继续修改吗(y/n)\n");
  155.                                         scanf("%c",&c);getchar();
  156.                                         if(c!='y' && c!='n')
  157.                                         {
  158.                                                 printf("指令错误!请重新输入!\n");
  159.                                                 scanf("%c",&c);getchar();
  160.                                         }
  161.                                 }while(c=='y');
  162.                                 break;
  163.                         }
  164.                 case '4':                                //程序中的操作(4)
  165.                         {
  166.                                 do
  167.                                 {
  168.                                         flag=0;
  169.                                         printf("请输入你要查询职工的总产品数量\n");
  170.                                         scanf("%lf",&much);getchar();
  171.                                         for(k=0;k<i;k++)
  172.                                         {
  173.                                                 if(s[k]->sum==much)
  174.                                                 {
  175.                                                         flag=1;
  176.                                                         printf("您要查询的职工是:%s\n",(*s[k]).name);
  177.                                                 }
  178.                                         }
  179.                                         if(flag==0)
  180.                                                 printf("对不起!您要查询的职工不存在!\n");
  181.                                         printf("您想继续查询吗?(y/n)\n");
  182.                                         scanf("%c",&c);getchar();
  183.                                         if(c!='y' && c!='n')
  184.                                         {
  185.                                                 printf("指令错误!请重新输入!\n");
  186.                                                 scanf("%c",&c);getchar();
  187.                                         }
  188.                                 }while(c=='y');
  189.                                 break;
  190.                         }
  191.                 case '5':                                //程序中的操作(5)
  192.                         {
  193.                                 do{
  194.                                         flag=0;
  195.                                         printf("请输入你要查询的职工姓名\n");
  196.                                         scanf("%s",name);getchar();
  197.                                         for(k=0;k<i;k++)
  198.                                         {
  199.                                                 if(strcmp(name,(*s[k]).name)==0)
  200.                                                 {
  201.                                                         flag=1;
  202.                                                         printf("您要查询的职工是:%s\n",(*s[k]).name);
  203.                                                         printf("%s的总产品数量是%f\n",(*s[k]).name,(*s[k]).sum);
  204.                                                 }
  205.                                         }
  206.                                         if(flag==0)
  207.                                                 printf("对不起!您要查询的职工不存在!\n");
  208.                                         printf("您想继续查询吗?(y/n)\n");
  209.                                         scanf("%c",&c);getchar();
  210.                                         if(c!='y' && c!='n')
  211.                                         {
  212.                                                 printf("指令错误!请重新输入!\n");
  213.                                                 scanf("%c",&c);getchar();
  214.                                         }
  215.                                 }while(c=='y');
  216.                                 break;
  217.                         }
  218.                 case '6':                                //程序中的操作(6)
  219.                         {
  220.                                 printf("本系统所有职工数据如下:\n");
  221.                                 if(i==0)
  222.                                         printf("管理系统中没有录入数据或者数据已经被删除!\n");
  223.                                 for(k=0;k<i;k++)
  224.                                 {
  225.                                         printf("%d 姓名:%s 总产品数量:%f\n",k+1,s[k]->name,(*s[k]).sum);
  226.                                 }
  227.                                 break;
  228.                         }
  229.                 case '7':                                //程序中的操作(7)
  230.                         {
  231.                                 printf("本系统所有职工排名如下:\n");
  232.                                 for(k=0;k<i-1;k++)
  233.                                 {
  234.                                         t=k;
  235.                                         for(y=k+1;y<i;y++)
  236.                                         {
  237.                                                 if((s[t]->sum)<(s[y]->sum))
  238.                                                         t=y;
  239.                                                 if(t!=k)
  240.                                                 {
  241.                                                         b=*s[k];
  242.                                                         *s[k]=*s[t];
  243.                                                         *s[t]=b;
  244.                                                 }
  245.                                         }
  246.                                 }
  247.                                 if(i==0)
  248.                                         printf("管理系统中没有录入数据或者数据已经被删除!\n");
  249.                                 for(k=0;k<i;k++)
  250.                                 {
  251.                                         printf("%d 姓名:%s总产品数量:%f\n",k+1,s[k]->name,s[k]->sum);
  252.                                 }
  253.                                 break;
  254.                         }
  255.                 }

  256.                 printf("您想继续进行其他操作吗?(y/n)\n");
  257.                 flag=0;

  258.                 do
  259.                 {
  260.                         scanf("%c",&w);getchar();
  261.                         if(w!='y' && w!='n')
  262.                                 printf("指令错误!请重新输入!\n");
  263.                         else
  264.                                 flag=1;
  265.                 }while(flag==0);
  266.                 if(w=='y')
  267.                 {                //添加的行
  268.                         printf("请输入操作代码:(0)职工数据录入;(1)增加职工人员; (2)删除职工人员; (3)新完成需要添加的产品数量数据; (4)按总产品数量查询; (5)按职工姓名查询; (6)输出所有职工的数据; (7)按职工生产的总产品数量查询排名\n");
  269.                         scanf("%c",&p);        getchar();
  270.                 }                //添加的行
  271.         }while(w=='y');
  272.         for(k=0;k<i;k++)
  273.         {
  274.                 free(s[k]);
  275.                 printf("删除所有数据成员\n");
  276.         }
  277. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-6 22:33:32 | 显示全部楼层
头文件改一下
输入输出改一下
函数分离
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-9-15 21:54:37 | 显示全部楼层
superbe 发表于 2019-9-6 18:58
我只是改成C能运行了,花了好长时间
我觉得你可以把各个功能做成函数,文件内容和修改操作同步 ...

辛苦了大哥,我自己花了几天时间也做了个用c语言运行的程序,哈哈
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-15 23:10:56 | 显示全部楼层
看到了程序,写得不错,学习了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 16:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表