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

【GESP 四级】一个程序掌握大部分知识点

文章目录

  • 程序简介
  • 程序信息
    • 项目目录
    • 源代码
      • functions.h
      • headfile.h
      • main.cpp

程序简介

这是一个类似学生信息管理的程序,用 C++ 编写。涵盖了 GESP 四级的大部分知识点:

  • 指针的基础用法
  • 结构体的基础用法
  • try-catch的基础用法
  • <fstream>的基础用法

程序信息

项目目录

~ $ ls -a
.
..
./data.txt
./functions.h
./headfile.h
./main.cpp

源代码

functions.h

#pragma ones
#include "headfile.h"void write_file(Student data)
{ofstream OutFile(PATH, ios::app);if (!OutFile){throw "无法打开文件";}OutFile << data.name << data.age << data.score;OutFile.close();
}void read_file(void)
{string name;int age;float score;ifstream InFile(PATH, ios::in);if (!InFile){throw "无法打开文件";}cout << "姓名\t年龄\t分数" << endl;cout << "--------------" << endl;while(InFile >> name >> age >> score){cout << name << "\t" << age << "\t" << score;}InFile.close();
}

headfile.h

#pragma ones
#include <iostream>
#include <fstream>
#include <cstdlib>
#define PATH ".\\data.txt"using namespace std;
struct Student
{string name;int age;float score;
};
void write_file(Student data);
void read_file(void);

main.cpp

#include "functions.h"int main(void)
{int flag;int n;string error;error = "输入错误"string *p;p = &error;cout << "请输入您需要的操作:\n1.载入数据\t2.读取数据" << endl;cin >> flag;if (flag == 1){cout << "请输入需要载入的数据组数:";cin >> n;for (int i = 1; i <= n; i++){Student student;cout << "姓名:";cin >> student.name;cout << "年龄:";cin >> student.age;cout << "成绩:";cin >> student.score;cout << endl;try{write_file(student);}catch (const char* msg){cerr << "Error: " << msg << endl;return EXIT_FAILURE;}catch (...){cerr << "Error: 未知错误。" << endl;return EXIT_FAILURE}}}else if (flag == 2){try{read_file();}catch (const char* msg){cerr << "Error: " << msg << endl;return EXIT_FAILURE;}catch (...){cerr << "Error: 未知错误。" << endl;return EXIT_FAILURE;}}else{cout << *p << endl;return EXIT_FAILURE;}return EXIT_SUCCESS;
}

感谢您的耐心观看!!!

http://www.lqws.cn/news/565093.html

相关文章:

  • 学习使用dotnet-dump工具分析.net内存转储文件(3)
  • 深入理解Mysql索引底层数据结构和算法
  • NeRF-Lidar实景重建:大疆Mavic 4 Pro低成本建模方案(2025实战指南)
  • 当SAM遇到声纳图像时之论文阅读
  • 【blender】使用bpy对一个obj的不同mesh进行不同的材质贴图(涉及对bmesh的操作)
  • 一键高效率图片MD5修改工具PHP版
  • 量子算法入门——5.Qiskit库介绍与简单应用(1)
  • 《伴时匣》app开发技术分享--用户登录(3)
  • MYSQL与PostgreSQL的差异
  • 解锁云原生微服务架构:搭建与部署实战全攻略
  • mac触摸板设置右键
  • 四大WordPress模板资源网站
  • docker启动xxl-job 网络问题
  • 【Linux手册】进程等待:必要性剖析与wait、waitpid等多种方式实操指南
  • IDE/IoT/实践小熊派LiteOS工程配置、编译、烧录、调试(基于 bearpi-iot_std_liteos 源码)
  • 软件测试 selenium
  • 【innovus基础】- 如何手动画线?
  • 【技术追踪】CLAIM:临床导向的 LGE 增强技术用于实现真实且多样化的心肌瘢痕合成与分割
  • 基于云的平板挠度模拟:动画与建模-AI云计算数值分析和代码验证
  • 青少年编程与数学 02-022 专业应用软件简介 01 设计与创意类软件:Adobe Creative Cloud
  • Wpf布局之UniformGrid面板!
  • MCP 中间件机制正式发布:FastMCP 的「责任链」进化
  • rollupOptions 详细讲解,如何优化性能
  • ali PaddleNLP docker
  • MATLAB GUI界面设计 第七章——高级应用
  • 机器学习8——神经网络下
  • 手机流量监控App(GlassWire)使用指南
  • WPF两种绑定方式的分析
  • ACE之ACE_Dev_Poll_Reactor
  • 高性能 List 转 Map 解决方案(10,000 元素)