当前位置: 首页 > news >正文

6.18作业

实验任务4

代码

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     FILE *fp;
 6     char line[1024];
 7     int lines = 0;
 8     int chars = 0;
 9     int i;
10 
11     fp = fopen("C:\\Users\\lenovo\\Downloads\\实验7数据文件及部分代码_gbk\\data4.txt", "r");
12 
13     while (fgets(line, sizeof(line), fp) != NULL) {
14         lines++;
15         for (i = 0; line[i] != '\0'; i++) {
16             char c = line[i];
17             if (c != ' ' && c != '\t' && c != '\n' && c != '\r') {
18                 chars++;
19             }
20         }
21     }
22 
23     fclose(fp);
24 
25     printf("data4.txt统计结果:\n");
26     printf("行数: %d\n", lines);
27     printf("字符数(不统计空白符): %d\n", chars);
28 
29     getchar();
30     return 0;
31 }

运行结果

image

 

实验任务5

代码

  1 #include <stdio.h>
  2 #include <string.h>
  3 #include<stdlib.h>
  4 
  5 #define N 10
  6 
  7 typedef struct {
  8     long id;            // 准考证号
  9     char name[20];      // 姓名
 10     float objective;    // 客观题得分
 11     float subjective;   // 操作题得分
 12     float sum;          // 总分
 13     char result[10];    // 考试结果
 14 } STU;
 15 
 16 // 函数声明
 17 void read(STU st[], int n);
 18 void write(STU st[], int n);
 19 void output(STU st[], int n);
 20 int process(STU st[], int n, STU st_pass[]);
 21 
 22 int main() {
 23     STU stu[N], stu_pass[N];
 24     int cnt;
 25     double pass_rate;
 26 
 27     printf("从文件读入%d个考生信息: 已完成\n", N);
 28     read(stu, N);
 29 
 30     printf("\n对考生成绩进行统计: 已完成\n");
 31     cnt = process(stu, N, stu_pass);
 32 
 33     printf("\n所有考生完整信息:\n");
 34     output(stu, N);   
 35 
 36     printf("\n通过考试的名单写入文件: 已完成!\n");
 37     write(stu_pass, cnt);
 38 
 39     pass_rate = 1.0 * cnt / N;
 40     printf("\n本次等级考试通过率: %.2f%%\n", pass_rate*100);
 41 
 42     system("pause");
 43     return 0;
 44 }
 45 
 46 // 把所有考生完整信息输出到屏幕上
 47 // 准考证号,姓名,客观题得分,操作题得分,总分,结果
 48 void output(STU st[], int n) {
 49     int i;
 50     
 51     printf("准考证号\t姓名\t客观题得分\t操作题得分\t总分\t\t结果\n");
 52     for (i = 0; i < n; i++)
 53         printf("%ld\t\t%s\t%.2f\t\t%.2f\t\t%.2f\t\t%s\n", st[i].id, st[i].name, st[i].objective, st[i].subjective, st[i].sum, st[i].result);
 54 }
 55 
 56 // 从文本文件examinee.txt读入考生信息:准考证号,姓名,客观题得分,操作题得分
 57 void read(STU st[], int n) {
 58     int i;
 59     FILE *fin;
 60 
 61     fin = fopen("examinee.txt", "r");
 62     if (!fin) {
 63         printf("fail to open file\n");
 64         return;
 65     }
 66 
 67     for (i = 0; i < n; i++)
 68         fscanf(fin, "%ld %s %f %f", &st[i].id, st[i].name, &st[i].objective, &st[i].subjective);
 69 
 70     fclose(fin);
 71 }
 72 
 73 // 对考生信息进行处理:计算每位考生考试总分、结果;统计并返回通过考试的人数
 74 int process(STU st[], int n, STU st_pass[]) {
 75       int i, j;
 76     j = 0;
 77     for (i = 0; i < n; i++) {
 78         st[i].sum = st[i].objective + st[i].subjective;
 79         if (st[i].sum >= 60) {
 80             strcpy(st[i].result, "通过");
 81             st_pass[j++] = st[i];
 82         } else {
 83             strcpy(st[i].result, "不通过");
 84         }
 85     }
 86     return j;
 87 }
 88 
 89 // 把通过考试的考生完整信息写入文件list_pass.txt
 90 // 准考证号,姓名,客观题得分,操作题得分,总分,结果
 91 void write(STU st[], int n) {
 92   int i;
 93     FILE *fout;
 94 
 95     fout = fopen("list_pass.txt", "w");
 96     if (!fout) {
 97         printf("无法创建文件 list_pass.txt\n");
 98         return;
 99     }
100     fprintf(fout, "准考证号\t姓名\t客观题得分\t操作题得分\t总分\t\t结果\n");
101     for (i = 0; i < n; i++) {
102         fprintf(fout, "%ld\t\t%s\t%.2f\t\t%.2f\t\t%.2f\t\t%s\n",
103                 st[i].id, st[i].name,
104                 st[i].objective, st[i].subjective,
105                 st[i].sum, st[i].result);
106     }
107     fclose(fout);
108 }

运行结果

image

 

image

实验任务6

代码

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <time.h>
 5 
 6 #define TOTAL 80
 7 #define LUCKY 5
 8 
 9 typedef struct {
10     char id[20];
11     char name[20];
12     char class[50];
13 } STUDENT;
14 
15 int main()
16 {
17     STUDENT stu[TOTAL], lucky[LUCKY];
18     int i, j, index;
19     int chosen[TOTAL];
20     FILE *fp;
21     char filename[100];
22 
23     fp = fopen("list.txt", "r");
24     if (fp == NULL) {
25         printf("无法打开文件 list.txt!\n");
26         return 1;
27     }
28     for (i = 0; i < TOTAL; i++) {
29         fscanf(fp, "%s %s %s", stu[i].id, stu[i].name, stu[i].class);
30     }
31     fclose(fp);
32 
33     srand((unsigned int)time(NULL));
34     for (i = 0; i < TOTAL; i++) {
35         chosen[i] = 0;
36     }
37 
38     for (i = 0; i < LUCKY; i++) {
39         do {
40             index = rand() % TOTAL;
41         } while (chosen[index] == 1);
42         lucky[i] = stu[index];
43         chosen[index] = 1;
44     }
45 
46     printf("\n中奖名单\n");
47     printf("学号\t\t姓名\t班级\n");
48     for (i = 0; i < LUCKY; i++) {
49         printf("%s\t%s\t%s\n", lucky[i].id, lucky[i].name, lucky[i].class);
50     }
51 
52     printf("\n输入文件名:");
53     scanf("%s", filename);
54 
55     fp = fopen(filename, "w");
56     if (fp == NULL) {
57         printf("无法创建文件 %s!\n", filename);
58         return 1;
59     }
60     fprintf(fp, "中奖名单\n");
61     fprintf(fp, "学号\t\t姓名\t班级\n");
62     for (i = 0; i < LUCKY; i++) {
63         fprintf(fp, "%s\t%s\t%s\n", lucky[i].id, lucky[i].name, lucky[i].class);
64     }
65     fclose(fp);
66 
67     printf("保存成功!\n");
68 
69     system("pause");
70     return 0;
71 }

运行结果

image

 

image

 

http://www.jsqmd.com/news/1042918/

相关文章:

  • Linux通用系统高危漏洞修复案例
  • 福州本地黄金回收优质店铺合集,实时大盘金价结算不克扣损耗 - 奢侈品回收评测
  • 内部功能自测与缺陷修复
  • 藏在广州的神仙钻石回收店!5家正规门店实测,服务贴心价格绝了! - 奢品小当家
  • LevelDB数据透视镜:dumpfile工具深度解析与诊断实战
  • 2026石家庄奢侈品回收全测评:黄金名表名包钻石翡翠首饰,七家正规机构一站横评 - 薛定谔的梨花猫
  • 算法思维重塑:从数据科学家视角看doocs/leetcode的实战价值
  • 2026 年 6 月上海名表回收避坑指南|行情解析 + 正规机构测评 - 奢侈品交易观察员
  • AlienFX Tools:如何用500KB工具完全掌控你的Alienware设备?
  • Zephyr RTOS日志系统终极指南:从新手到专家的完整调试方案
  • 《通信信号处理原理、方法与应用》全套PPT课件
  • 3分钟解锁跨平台翻译神器:让外文阅读像母语一样流畅
  • 终极解密:5步掌握Hunyuan3D-2高分辨率3D资产生成核心技术
  • 2026 广州奢侈品黄金回收门店核心评测:综合实力榜首选耀辉 - 奢侈品回收
  • 弄懂大盘计价逻辑再变现,在大连中山区出手旧金,避开90%人群踩过的压价陷阱 - 奢侈品回收评测
  • 2026 大连全域黄金回收避坑大全,资质门店盘点,安全变现不踩雷 - 奢侈品交易观察员
  • 2026西安闲置奢品别乱卖!保姆级回收攻略收好 - 讯息早知道
  • 2026深圳黄金变现最全避坑手册!正规店铺汇总整理 - 奢侈品回收测评
  • 2026 威海防水补漏靠谱服务商盘点:屋面 / 厨卫 / 外墙 / 地下室渗水维修详解,适配威海沿海滨海大风盐雾防潮防水甄选指南 - 宅安选房屋修缮
  • 2026广州欧米茄回收哪家价格高?七大正规机构行情与性价比实测 - 薛定谔的梨花猫
  • 从零入门激光SLAM(十八)——ESKF:如何让卡尔曼滤波器在流形上“站稳脚跟”
  • mysql8.0 无流量表/索引统计
  • 北京名表高价出手,合扬实力商家,报价真实贴合行情 - 奢侈品交易观察员
  • 宁波名表回收口碑门店,5 家真实用户评价 - 讯息早知道
  • 深入解析MPC555/556 RCPU架构:五大执行单元与实时控制优化
  • GO——wire依赖注入:从编译时生成到工程化实践
  • 2026 广州奢侈品黄金回收门店甄选评测:正规优质渠道选耀辉 - 奢侈品回收
  • 2026无锡名表回收权威实测|对标全国二手腕表大盘 合规门店筛选指南 - 开心测评
  • 深入解析ColdFire V2微控制器核心架构与编程模型
  • 2026 宁德防水补漏靠谱服务商盘点:屋面 / 厨卫 / 外墙 / 地下室渗水维修详解,适配宁德赛江沿岸闽东沿海丘陵防潮防水甄选指南 - 宅安选房屋修缮