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();
}
相关推荐
长不胖的路人甲2 分钟前
斐波那契查找Java 实现 + 完整思路
java·开发语言
星恒随风8 分钟前
C++ 继承进阶:默认成员函数、多继承、虚继承与组合设计
开发语言·c++·笔记·学习
Yeauty12 分钟前
用 Whisper 转录前,你不用再离开 Rust
开发语言·rust·ffmpeg·音视频·视频
电子云与长程纠缠15 分钟前
UE中使用TGuardValue与TInlineComponentArray数据结构
开发语言·数据结构·学习·ue5·游戏引擎
呜喵王阿尔萨斯1 小时前
C/C++ const -- 多义混乱
c语言·开发语言·c++
__log1 小时前
幂等性设计:从“重复提交“到“稳如磐石“的系统防护
java·开发语言·spring boot
spider_xcxc1 小时前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
海清河晏1111 小时前
Qt实战:从零构建美化登录界面
开发语言·c++·qt
一只小灿灿1 小时前
C++ 各类特殊符号、运算符
开发语言·c++
Fu_Lin_1 小时前
《Qt嵌入式从零基础到精通》前言与阅读指南
开发语言·qt