C++构建MVC学生信息管理系统

一、头文件创建数据结构

student.h

#pragma once
#include<vector>struct student //定义student结构体 说明学生的基本信息
{	int id;char name[8];int age;int score;
};class View {  //定义窗口类 涵盖基本功能和学生数据
private:int id = 1001; //初始学生idvector<student> students; //定义含有student结构体的向量studentsvoid add(); //定义add方法void show();void remove();
public:void list(); //定义控制端展示
};
二、构建方法

student.cpp

#include<iostream>
#include<locale>using namespace std;
#include"student.h"void View::list(){while (true){int num;cout << "学生信息管理系统!" << endl;cout << "1.添加信息" << endl;cout << "2.查看信息" << endl;cout << "3.删除信息" << endl;cout << "0.退出" << endl;cout << "请输入:";	cin >> num;if (num == 0) break;else if (num == 1) this->add();else if (num == 2) this->show();else if (num == 3) this->remove();else {cout << "输入有误,请重新输入!";continue;};}
}void View::add() {while (true){student stu;char name[9]; int age, score;cout << "请输入姓名,年龄,分数:"; cin >> name >> age >> score;stu.age = age; stu.score = score; stu.id = this->id;strcpy_s(stu.name, sizeof(stu.name), name);this->students.push_back(stu); // 使用 push_back 向 students vector 中添加元素student结构体this->id++;cout << "添加成功!" << endl;break;}}
void View::show() {int length = this->students.size();for (int i = 0; i < length; i++){cout << this->students[i].id << "\t";cout << this->students[i].name << "\t";cout << this->students[i].age << "\t";cout << this->students[i].score << endl;}
}void View::remove() {int num;int flag;cout << "请输入需要删除的编号:"; cin >> num;int length = this->students.size();for (int i = 0; i < length; i++){if (this->students[i].id == num){this->students.erase(this->students.begin() + i);flag = 0;break;}else { flag = 1; };};if (flag == 1) {cout << "没有该学生" << endl;}else{cout << "删除成功!" << endl;}
}
三、主函数初始化窗口

main.cpp

#include<locale>
#include <iostream>
using namespace std;
#include "student.h"int main()
{View view;view.list();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

四川菊乐食品IPO终止:收入增速放缓,内控缺陷遭关注,产能过剩

近日&#xff0c;深圳证券交易所披露的信息显示&#xff0c;四川菊乐食品股份有限公司&#xff08;下称“菊乐股份”或“菊乐食品”&#xff09;及其保荐人中信建投证券撤回上市申请文件。因此&#xff0c;深圳证券交易所决定终止对该公司首次公开发行股票并在主板上市的审核。…

一文看懂llama2(原理模型训练)

自从Transformer架构问世以来&#xff0c;大型语言模型&#xff08;Large Language Models, LLMs&#xff09;以及AIGC技术的发展速度惊人&#xff0c;它们不仅在技术层面取得了重大突破&#xff0c;还在商业应用、社会影响等多个层面展现出巨大潜力。随着ChatGPT的推出&#x…

vscode 好用的插件

转中文插件 Chinese 官网&#xff1a;Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code - Visual Studio Marketplace vue文件模板快速生成 Vue VSCode Snippets 官网&#xff1a;Vue VSCode 代码段 - Visual Studio Marketplace

提示词工程基础:定义与重要性

目录 一、引言二、提示词工程的定义1. 概念明晰2. 技术框架3. 功能作用 三、提示词工程的重要性1. 核心作用强调2. 提升效率与降低成本3. 推动技术发展与创新 四、提示词工程的组成部分1. 提示词设计2. 模型训练与调整3. 效果评估与优化 五、实际应用示例1. 虚拟助手2. 自动新闻…

宝塔部署vue+springboot过程(图文)

宝塔是傻瓜式操作部署&#xff0c;xshell是用linux命令部署 &#xffe5;过程&#xffe5; 整个流程具体服务器开端口在阿里云服务器打开3306端口&#xff08;有用到的端口都要打开&#xff09;宝塔&#xff1a;添加数据库获取数据库名、用户名、密码&#xff1b;点击“工具”…

Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析

目录 Kafka 消息保留时长由 24 小时变更为 72 小时的影响分析Kafka 消息存储机制保留时长对生产速度的影响保留时长对消费速度的影响底层分析与优化建议附加&#xff1a;将 Kafka 消息保留时长从 24 小时更改为 72 小时后&#xff0c;CPU 使用率从 40% 上升到 70% 的现象1. 增加…

【TensorFlow深度学习】LSTM/GRU在情感分类任务中的对比应用

LSTM/GRU在情感分类任务中的对比应用 LSTM与GRU在情感分类任务中的对比应用&#xff1a;深度情感分析的门控力量LSTM与GRU机制对比应用场景&#xff1a;情感分类代码实例结论 LSTM与GRU在情感分类任务中的对比应用&#xff1a;深度情感分析的门控力量 在自然语言处理的广阔领域…

深入解析Java中的Stream API:简化数据处理与提升开发效率

摘要&#xff1a; Java 8引入的Stream API是Java编程语言的一个重要里程碑&#xff0c;它为数据处理提供了声明式的方法。本文将深入探讨Java Stream API的原理、特点以及实现方式&#xff0c;并通过丰富的代码案例展示如何在Java应用程序中使用Stream API进行数据处理。 引言…

Go基础、面试、底层

这是我整理的思维导图&#xff1a;Zpf的go基础知识思维导图 - 幕布 Zpf泛型、逃逸、GC - 幕布 记录一下 go 基础阶段的重要知识以及面试里面的问题 这里我要记录几个重点题型&#xff1a; go的内存分配 切片和数组的区别 atomic、map、channel、interface{}、select、reflect的…

JavaSE——【逻辑控制】(知识)

目录 前言 一、顺序结构 二、分支结构 三、循环结构 总结 前言 公元 3050 年&#xff0c;地球的科技已经发展到令人难以想象的地步。这天&#xff0c;艾米莉在自己的房间里启动了最新的虚拟旅行装置&#xff0c;下一秒&#xff0c;她发现小奥奇的博客更新了。立即放弃了虚…

我们设计制造MW级水冷负载电阻器-数据中心船舶岸电发电机组测试大功率负载RLC阻感容集装箱负载

UEPR系列电阻采用先进材料制造&#xff0c;采用专利设计&#xff0c;将电阻与冷却液完全隔离&#xff0c;为水冷应用提供重量轻、体积小、超大功率的解决方案。其革命性的模块化设计意味着它们可以串联在一起&#xff0c;以满足您的电力需求。应用于发电、电力传输、电气传动等…

【python】OpenCV—Cartoonify and Portray

参考来自 使用PythonOpenCV将照片变成卡通照片 文章目录 1 卡通化codecv2.medianBlurcv2.adaptiveThresholdcv2.kmeanscv2.bilateralFilter 2 肖像画cv2.divide 1 卡通化 code import cv2 import numpy as npdef edge_mask(img, line_size, blur_value):gray cv2.cvtColor(…

mingw-w64安装

下载链接 下载好解压配置环境变量即可。

ChatGPT 宕机部分用户访问报错 api key开发应用不影响

就在今日4号下午&#xff0c;有部分用户反映ChatGPT访问报错&#xff0c;不幸的是&#xff0c;ChatGPT 目前对某些用户不可用 - 该问题已被发现&#xff0c;OpenAI 团队正在努力解决它 似乎就api 开发使用key的应用不受影响 以下是对接ChatGPT api key开发的应用正常对话

springboot项目中如何运行python相关代码

运行python脚本并输出 要让Python脚本返回数据给调用它的Java代码&#xff0c;你可以在Python脚本中使用打印或输出函数将结果输出到标准输出&#xff08;stdout&#xff09;中。 以下是一个示例&#xff0c;在Python脚本中返回数据给Java代码&#xff1a; Python代码&#…

Numba 的 CUDA 示例(3/4):流和事件

本教程为 Numba CUDA 示例 第 3 部分。 按照本系列的第 3 部分&#xff0c;了解 Python CUDA 编程中的流和事件 介绍 在本系列的前两部分&#xff08;第 1 部分&#xff0c;第 2 部分&#xff09;中&#xff0c;我们学习了如何使用 GPU 编程执行简单的任务&#xff0c;例如高度…

代码随想录——二叉搜索树的最近公共祖先(Leetcode235)

题目链接 普通递归法 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val x; }* }*/class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode…

创建 MFC DLL-使用关键字_declspec(dllexport)

本文仅供学习交流&#xff0c;严禁用于商业用途&#xff0c;如本文涉及侵权请及时联系本人将于及时删除 从MFC DLL中导出函数的另一种方法是在定义函数时使用关键字_declspec(dllexport)。这种情况下&#xff0c;不需要DEF文件。 导出函数的形式为&#xff1a; declspec(dll…

对称二叉树[简单]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个二叉树的根节点root&#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true 示例 2&#xff1a; 输入&#xff1a;root [1,2,2,null,3,null,3] 输出&#xf…

pytorch-深度残差网络resnet

目录 1. ResNet的由来2. ResNet pytorch实现 1. ResNet的由来 2014年网络层次达到了22层以后&#xff0c;随着层数的增多&#xff0c;反而性能会越来越差&#xff0c;其原因是ΔE对ΔWij的导数依赖于上一层的δ&#xff0c;由于δ误差不断积累&#xff0c;导致出现梯度弥散的问…