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

一、头文件创建数据结构

student.h

cpp 复制代码
#pragma once
#include<vector>

struct student //定义student结构体 说明学生的基本信息
{	
	int id;
	char name[8];
	int age;
	int score;
};

class View {  //定义窗口类 涵盖基本功能和学生数据
private:
	int id = 1001; //初始学生id
	vector<student> students; //定义含有student结构体的向量students
	void add(); //定义add方法
	void show();
	void remove();
public:
	void list(); //定义控制端展示
};
二、构建方法

student.cpp

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

cpp 复制代码
#include<locale>
#include <iostream>
using namespace std;
#include "student.h"



int main()
{
	View view;
	view.list();
}
相关推荐
小字节,大梦想17 分钟前
【C++】二叉搜索树
数据结构·c++
吾名招财18 分钟前
yolov5-7.0模型DNN加载函数及参数详解(重要)
c++·人工智能·yolo·dnn
XKSYA(小巢校长)33 分钟前
NatGo我的世界联机篇
开发语言·php
Cons.W36 分钟前
Codeforces Round 975 (Div. 1) C. Tree Pruning
c语言·开发语言·剪枝
我是哈哈hh38 分钟前
专题十_穷举vs暴搜vs深搜vs回溯vs剪枝_二叉树的深度优先搜索_算法专题详细总结
服务器·数据结构·c++·算法·机器学习·深度优先·剪枝
憧憬成为原神糕手39 分钟前
c++_ 多态
开发语言·c++
VBA633739 分钟前
VBA信息获取与处理第三个专题第三节:工作薄在空闲后自动关闭
开发语言
郭二哈42 分钟前
C++——模板进阶、继承
java·服务器·c++
挥剑决浮云 -1 小时前
Linux 之 安装软件、GCC编译器、Linux 操作系统基础
linux·服务器·c语言·c++·经验分享·笔记
丶Darling.1 小时前
LeetCode Hot100 | Day1 | 二叉树:二叉树的直径
数据结构·c++·学习·算法·leetcode·二叉树