猿问

系统计算功能

 这段函数是用来计算总费用的,通过入院登记文件中的住院号匹配费用表中相同的住院号,然后读取记录,将同一住院号的不同缴费金额相加,得到的结果再写入入院登记表中相应的位置。但实际操作时,好像是循环控制出现了问题,是不是代码有问题?

577cb07b0001ad3c05000336.jpg

577cb07c0001ee3b05000194.jpg


/* @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ */
void AutoComp(void) {    // 自动计算每一个病人住一次院所缴费用
 long pos;  float totalcost;
    FILE *fp1, *fp2;
    InTab it;      // 定义住院登记表的结构体变量it
    BillTab bt;      // 定义费用表的结构体变量bt
    if ((fp1=fopen(".\\4810IN.dat", "r+b"))==0) {   
        printf("\n\n无法打开住院登记信息文件!\n");
        return;
    }
    if ((fp2=fopen(".\\4810BILL.dat", "rb"))==0) {
        printf("\n\n无法打开费用信息文件!\n");
        fclose(fp1);    return;
    }
   
    system("cls");
    printf("\n\n\t\tAuto computing, Please waiting......");
    pos=ftell(fp1);  // 保留要读取的住院记录在住院登记文件中的位移量,以便重新定位该记录进行更新
    fread(&it, sizeof(InTab), 1, fp1);    // 从住院登记文件中读取一个住院记录
    while (!feof(fp1)) {  // 计算每一个住院记录对应的费用总额
        totalcost=0;
        rewind(fp2);    // 复位到费用文件头
        fread(&bt, sizeof(BillTab), 1, fp2);    // 从费用文件中读取一个费用记录
        while (!feof(fp2)) {  // 在费用文件中查找住院号微it.num病人的所有缴费记录
            if (strcmp(bt.num, it.num)==0) {
                // 如果在费用文件中找到了住院号为it.num病人的缴费记录,则进行汇总计算
                totalcost+=bt.amount;  // 缴费记录相加求和
                break; //结束在费用文件中的查找       
            }
            fread(&bt, sizeof(BillTab), 1, fp2);    // 从费用文件中读取一个费用记录
        }
        it.cost=totalcost;    // 用计算得到的汇总值更新住院登记结构体变量it的对应成员值
        fseek(fp1, pos, SEEK_SET);    // 在住院登记文件中定位正在进行汇总计算的住院记录
        fwrite(&it, sizeof(InTab), 1, fp1);     // 用住院登记结构体变量it更新住院登记文件中已定位的住院记录内容
        pos=pos+sizeof(InTab);  // 计算下一个待处理住院记录的位移量(即当前记录的下一个记录的位移量)
        fseek(fp1, pos, SEEK_SET);    // 在住院登记文件中定位下一个待处理的住院记录
        fread(&bt, sizeof(InTab), 1, fp1);    // 从住院登记文件中读取一个住院记录
    }
    fclose(fp1);    fclose(fp2);  
    system("cls");
    printf("\n\n\t\t完成自动计算. ");
    system("pause");
}

 

 

慕仰5061498
浏览 1093回答 1
1回答

惊回头

1>c:\users\administrator\desktop\bia\空\空\空.cpp(42): error C3861: “system”: 找不到标识符
随时随地看视频慕课网APP
我要回答