m0_71178972 2022-05-20 16:43 采纳率: 100%
浏览 32
已结题

这道c语言该怎样进行解答呢

现在正处疫情时期,为实施相应的管制措施,我校严格执行入校申请审批制度。该制度要求教师和学生入校前一天必须填报入校申请,院长审核批准后,上报学校保卫处备案。请你设计一个程序协助院长进行审阅和批示,并将审核结果为同意入校的教师或学生信息写入文本文件,以送交一个磁盘文件形式提交保卫处备案。程序说明如下:入校申请书要填写的内容如表图所示:

img

表中已经模拟填写了两位教师信息。假设你也要填报入校申请,请将你的个人信息作为表中的第三项记录。要求填写你个人的实际信息,你可以在“Sbj_mat(入校事由)”项中自己设置一个申请入校的理由,例如 “做实验”等理由。
(1)要求表格中两位教师信息以及你的个人信息,都以初始化结构体数组的方式来实现。
(2)辅助院长审批的过程是逐项查看并审批,在程序中要求实现当屏幕上显示一位申请人信息后,提示输入审批意见,如果院长同意入校,则从键盘输入1,AuditMind项中填整数1,否则就输入0,AuditMind项中填写0,表示院长不同意入校。
(3)审批结束后,要求只将同意入校的人员记录项写入到一个文本文件中。该文本文件要求以你的学号作为主文件名,存放到磁盘上的具体位置自定。

  • 写回答

1条回答 默认 最新

  • 李林罡 2022-05-20 19:48
    关注

    单身狗,只能来解题了

    img

    代码如下

    
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    //#include<windows.h>
    //按表格内容设置各结构体成员,成员长度稍稍富余一些  
    struct entryRequest{
        int No_num;         //序号   
        char Vocation[12];  //工号/学号 
        char C_name[20];    //个人姓名 
        char College[20];   //所在部门 
        char Date[10];      //入校日期 
        char Sbj_mat[30];   //入校事由 
        char AuditMind;     //审批意见  0-不同意入校,1-同意入校
    };
    
    int main()
    {
        //初始化结构体数组 
        struct entryRequest reqTable[3]={
            {.No_num=1,.Vocation="19810327",.C_name="田丽",.College="工学院",.Date="20200701",.Sbj_mat="值班",.AuditMind=' '},
            {.No_num=2,.Vocation="19731109",.C_name="于海",.College="理学院",.Date="20200701",.Sbj_mat="值班",.AuditMind=' '},
            {.No_num=3,.Vocation="19891109",.C_name="文飞",.College="门头沟学院",.Date="20220520",.Sbj_mat="做实验",.AuditMind=' '}
        };
        int len=(int)sizeof(reqTable) /sizeof(struct entryRequest);
        int i=0;
        char audit;
        
        printf("开始审核入校申请\n");
        while(i<len)
        {
            printf("当前入校申请信息如下: (%d/%d) \n\n",i+1,len);
            printf("==========================================\n");
            printf("序号     : %d\n",reqTable[i].No_num);
            printf("工号/学号: %s\n",reqTable[i].Vocation);
            printf("个人姓名 : %s\n",reqTable[i].C_name);
            printf("所在部门 : %s\n",reqTable[i].College);
            printf("入校日期 : %s\n",reqTable[i].Date);
            printf("入校事由 : %s\n",reqTable[i].Sbj_mat);
            printf("审批意见 : %c\n",reqTable[i].AuditMind);
            printf("\n==========================================\n");
            printf("请输入: 0-不同意入校,1-同意入校 2-跳过并查看下一个 3-退出程序: ");
            
            audit=(char)getchar();
            while( audit!='0' && audit!='1' && audit!='2'&& audit!='3'){
                if(audit!='\n'){
                    printf("\n请输入: 0-不同意入校,1-同意入校 2-跳过并查看下一个 3-退出程序: ");
                }
                audit=getchar();
            }
            if(audit=='3'){
                exit(0);
            }
            if(audit=='2'){
                printf("\n********************************\n");
                printf("你【跳过】了【%s】的入校申请",reqTable[i].C_name);
                printf("\n********************************\n");
                i++;
                continue;
            }
            if(audit=='0'){
                reqTable[i].AuditMind='0';
                printf("\n********************************\n");
                printf("你【拒绝】了【%s】的入校申请",reqTable[i].C_name);
                printf("\n********************************\n");
                //Sleep(500);
            }
            if(audit=='1'){
                reqTable[i].AuditMind='1';
                printf("\n********************************\n");
                printf("你【同意】了【%s】的入校申请",reqTable[i].C_name);
                printf("\n********************************\n");
                //Sleep(500);
            }
            printf("\n\n");
            //system("cls"); 
            i++;
        }
        i=0;
        char dir[50]="C:\\shared\\c\\520\\";
        char path[256];
        FILE *fp;
        printf("\n++++++++++++++++++++++++++++++++++++++++\n");
        printf("开始保存到磁盘文件");
        printf("\n++++++++++++++++++++++++++++++++++++++++\n");
        while(i<len)
        {
            printf("i=%d AuditMind=%c\n",i,reqTable[i].AuditMind);
            if(reqTable[i].AuditMind=='1'){
                strcpy(path,dir);
                strcat(path,reqTable[i].Vocation);
                printf("%s\n",path);
                fp=fopen(path,"w+");
                if(fp==NULL){
                    printf("\n打开文件失败\n");
                    //exit(1);
                }
                fprintf(fp,"序号     : %d\n工号/学号: %s\n个人姓名 : %s\n所在部门 : %s\n入校日期 : %s\n入校事由 : %s\n审批意见 : %c\n",reqTable[i].No_num,reqTable[i].Vocation,reqTable[i].C_name,reqTable[i].College,reqTable[i].Date,reqTable[i].Sbj_mat,reqTable[i].AuditMind);
                fclose(fp);
            }
            i++;
        } 
        printf("\n++++++++++++++++++++++++++++++++++++++++\n");
        printf("已将通过审核的入校申请保存到磁盘文件,请提交保卫处备案");
        printf("\n++++++++++++++++++++++++++++++++++++++++\n");
        
        return 0;    
    }
    
    

    运行截图

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 创建了问题 5月20日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看