当前位置: 首页 > 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.gsyq.cn/news/1554825.html

相关文章:

  • 2026石家庄奢侈品回收全测评:黄金名表名包钻石翡翠首饰,七家正规机构一站横评 - 薛定谔的梨花猫
  • 内部功能自测与缺陷修复
  • 藏在广州的神仙钻石回收店!5家正规门店实测,服务贴心价格绝了! - 奢品小当家
  • 终极解密:5步掌握Hunyuan3D-2高分辨率3D资产生成核心技术
  • 弄懂大盘计价逻辑再变现,在大连中山区出手旧金,避开90%人群踩过的压价陷阱 - 奢侈品回收评测
  • 2026广州欧米茄回收哪家价格高?七大正规机构行情与性价比实测 - 薛定谔的梨花猫
  • mysql8.0 无流量表/索引统计
  • 2026 广州奢侈品黄金回收门店甄选评测:正规优质渠道选耀辉 - 奢侈品回收
  • 2026武汉黄金回收门店实力排名 禹竞名奢汇全域布局优势领跑全城 - 名奢变现站
  • 东莞闲置腕表变现,2026靠谱名表回收实体店汇总 - 名奢变现站
  • 旧金高价出手!宁波全域可上门,连锁老店放心托付 - 奢侈品交易观察员
  • 2026重庆名表回收实力星级榜|5家实体店测评,收的顶荣膺标杆 - 奢侈品回收测评
  • 如何扩展PHP-DDD-Cargo-Sample:添加新领域服务与集成外部系统的完整指南
  • ToolsFx:一站式密码学工具箱的终极使用指南
  • 如何永久保存微信聊天记录:打造属于你的个人AI记忆库
  • 2026 福州黄金回收黑白名单更新!持证备案合规门店共 6 家实地测评 - 奢侈品回收评测
  • 2026搬家寄快递怎么省钱?大件小件省钱技巧+比价神器 - 快递物流资讯
  • 技术深度解析:ComfyUI-WanVideoWrapper AI视频生成架构与实战应用
  • 2026 年 6 月上海手表回收行情,闲置劳力士欧米茄高价出手指南 - 讯息早知道
  • 2026淮南最新发布|淮南初中生医护3+2中高职贯通招生招生热线周老师:19355104487 - 小张zc
  • 宁夏医院洁净工程一站式承建,四川华锐净化专注手术室检验科专项建设 - 洁净室推广助手
  • 沈阳没保卡手表能回收吗?2026 估价标准科普 - 奢品小当家
  • 合肥政务区 管道疏通|维小达|马桶、蹲便器、地漏、洗菜盆、洗手盆、浴缸、主管道一站式疏通清淤服务 - 维小达科技
  • 2026 南充防水补漏靠谱服务商盘点:屋面 / 厨卫 / 外墙 / 地下室渗水维修详解,适配南充嘉陵江沿岸川中丘陵防潮防水甄选指南 - 宅安选房屋修缮
  • 2026西安奢侈品回收避坑!90%的人都被隐形压价了 - 讯息早知道
  • 【NI-RIO实战】从零部署CompactRIO:软件栈安装与兼容性全解析
  • 济南闲置黄金变现渠道测评!五家回收机构综合参考指南 - 奢品小当家
  • 2026年6月梅州瓦楞纸箱厂质量排名权威榜:对口箱/天地盖/裹包式箱/异型箱,高品质纸箱精准适配各行业产品防护需求 - 东社造纸
  • 大连黄金回收怎么选门店?2026 合规商家实测对比,远离缺斤少两 - 奢侈品交易观察员
  • 2026贵阳各区县黄金回收测评 教你看懂实时金价防套路 - 润富黄金回收