qq_15047361 2016-11-29 13:20 采纳率: 0%
浏览 982

请问各路大神,我写的工资管理系统删除功能为什么不能实现,真心求解释

#include
#include
#include
using namespace std;
void kaitou()
{
cout << "******欢迎使用工资管理系统******" << endl;
cout << "================================" << endl;
cout << " 输入1,浏览工资记录" << endl;
cout << " 输入2,查询工资记录" << endl;
cout << " 输入3,添加工资记录" << endl;
cout << " 输入4,删除工资记录" << endl;
cout << " 输入5,修改工资记录" << endl;
cout << " 输入6,保存工资记录" << endl;
cout << " 输入7,退出系统" << endl;
cout << "================================" << endl;
cout << "您的选择是(输入1-7中任意一个数):" << endl;
}
struct zhigong
{
char gonghao[10];//工号
char xingming[10];//姓名
float gwgz;//岗位工资
float jxgz;//绩效工资
float yfgz;//应发工资
float grkk;//个人扣款
float sfgz;//实发工资
struct zhigong next;
}k,z[100],f[100];
struct zhigong head={0};//定义一个有头的链表
void sr()//输入的内容
{
cout << "请输入职工工号" << endl;
cin >> k.gonghao;
cout << "请输入职工姓名" << endl;
cin >> k.xingming;
cout << "请输入岗位工资" << endl;
cin>>k.gwgz;
cout << "请输入绩效工资" << endl;
cin>>k.jxgz;
cout << "请输入个人扣款" << endl;
cin>>k.grkk;
k.yfgz=k.gwgz+k.jxgz;
k.sfgz=k.yfgz-k.grkk;
}
void xieru()//进行文件写入操作
{
FILE*fp;
fp = fopen("D:\工资管理.txt", "ab+");
fwrite(&k, sizeof(k),1,fp);
fclose(fp);
}
void xieru1()//进行文件写入操作1
{
FILE*fp;
if ((fp=fopen("D:\工资管理.txt","wb+"))==NULL) /
创建文件并判断是否能打开*/
{
printf ("cannot open file\n");
exit(0);
}
fwrite(&z,sizeof(struct zhigong),100,fp);
fclose(fp);
}
void duqu()//进行文件的读取操作
{
FILE*fq;
fq=fopen("D:\工资管理.txt","rb+");
fread(&z[0],sizeof(struct zhigong),100,fq);
fclose(fq);
}
void shuchu()//文件的输出操作
{

int a;
FILE*fq;
fq=fopen("D:\\工资管理.txt","rb+");
for(a=0;a<100;a++)
{
    fread(&z,sizeof(z),1,fq);
    fclose(fq);
    if(z[a].jxgz==0)
    break;
    else
    printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[a].gonghao,z[a].xingming,z[a].gwgz,z[a].jxgz,z[a].grkk,z[a].yfgz,z[a].sfgz);
}

}
void chaxun()
{
int a;
int i;
cout<<"请输入查询方式"< cout cout cin>>a;
switch(a)
{
case 1:cout<<"请输入被查询者的姓名:";
char m[10];
cin>>m;
for(i=0;i {
if(strcmp(z[i].xingming,m)==0)
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
}break;
case 2:cout char n[10];
cin>>n;
for(i=0;i {
if(strcmp(z[i].gonghao,n)==0)
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
}break;
}
}
void shanchu()
{
int a;
int i;
int j;
char k[10];
cout cout cout cin>>a;
switch(a)
{
case 1:cout<<"请输入将被删除者的姓名:";
char m[10];
cin>>m;
for(i=0;i<100;i++)
{
if(strcmp(z[i].xingming,m)==0)
j=i;
}
for(i;i<100;i++)
{
strcpy(z[i - 1].gonghao, z[i].gonghao);
strcpy(z[i - 1].xingming, z[i].xingming);
z[i - 1].gwgz = z[i].gwgz;
z[i - 1].jxgz = z[i].jxgz;
z[i - 1].grkk = z[i].grkk;
z[i - 1].sfgz = z[i].sfgz;
z[i - 1].yfgz = z[i].yfgz;
}
printf("\n=======删除成功!========\n");
break;

    case 2:cout<<"请输入将被删除者的工号:";
    char n[10];
    cin>>n;
    for(i=0;i<100;i++)
    {
        if(strcmp(z[i].xingming,m)==0)
        j=i;
    }
        for(i;i<100;i++)
        {
            strcpy(z[i - 1].gonghao, z[i].gonghao);
            strcpy(z[i - 1].xingming, z[i].xingming);
            z[i - 1].gwgz = z[i].gwgz;
            z[i - 1].jxgz = z[i].jxgz;
            z[i - 1].grkk = z[i].grkk;
            z[i - 1].sfgz = z[i].sfgz;
            z[i - 1].yfgz = z[i].yfgz;
        }
        printf("\n=======删除成功!========\n");
        break;
}

}
void xiugai()
{
int j;
int a;
int i;
cout<<"请输入查询方式"< cout cout cin>>a;
switch(a)
{
case 1:cout<<"请输入被查询者的姓名:";
char m[10];
cin>>m;
for(j=0;j {
if(strcmp(z[j].xingming,m)==0)
i=j;
}
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
printf("请输入修改的姓名:\n");
scanf("%s",&z[i].xingming);
printf("请输入修改的岗位工资:\n");
scanf("%f",&z[i].gwgz);
printf("请输入修改的绩效工资:\n");
scanf("%f",&z[i].jxgz);
printf("请输入修改的个人扣款:\n");
scanf("%f",&z[i].grkk);
z[i].yfgz=z[i].gwgz+z[i].jxgz;
z[i].sfgz=z[i].yfgz-z[i].grkk;
break;
case 2:cout char n[10];
cin>>n;
for(j=0;j {
if(strcmp(z[j].gonghao,n)==0)
i=j;
}
printf("工号:%s 姓名:%s 岗位工资:%.2f 绩效工资:%.2f 个人扣款:%.2f 应发工资:%.2f 实发工资:%.2f\n",z[i].gonghao,z[i].xingming,z[i].gwgz,z[i].jxgz,z[i].grkk,z[i].yfgz,z[i].sfgz);
printf("请输入修改的姓名:\n");
scanf("%s",&z[i].xingming);
printf("请输入修改的岗位工资:\n");
scanf("%f",&z[i].gwgz);
printf("请输入修改的绩效工资:\n");
scanf("%f",&z[i].jxgz);
printf("请输入修改的个人扣款:\n");
scanf("%f",&z[i].grkk);
z[i].yfgz=z[i].gwgz+z[i].jxgz;
z[i].sfgz=z[i].yfgz-z[i].grkk;
break;
}
}
int main()//主函数
{
int i;
int l;
printf("请输入密码!");
scanf("%d",&l);
switch(l)
{
case 1234:
system("cls");
kaitou();
cin >> i;
switch(i)
{
case 1:shuchu();break;
case 2:duqu();chaxun();break;
case 3:sr();xieru();break;
case 4:duqu();shanchu();xieru1();break;
case 5:duqu();xiugai();xieru1();break;
case 7:return 0;
default:printf("输入有误,请重新输入!");
}
return 0;
default :printf("密码输入错误!");
}
}

  • 写回答

1条回答 默认 最新

  • YXTS122 2016-11-29 15:01
    关注

    你的代码粘贴的不完整,没法看啊!

    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3