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();
}
相关推荐
源码潇潇和逸逸3 分钟前
独立部署高校圈子平台:PHP+UniApp打造社交+交易+服务一站式校园解决方案
开发语言·uni-app·php
LINgZone211 分钟前
深入解析:Cglib与JDK动态代理的实现原理、区别及性能对比
java·开发语言
一次旅行11 分钟前
今日心理学知识分享(三)
开发语言·javascript·程序人生·ecmascript
AI科技星31 分钟前
光速螺旋量子几何统一场论——基于 v ≡ c 公理的四大基本力全维度求导证明与精准数值验证
c语言·开发语言·人工智能·算法·机器学习·平面
天天学IT36 分钟前
第三章 Qt 编译及安装
开发语言·qt·qt教程·qt6教程
xyq202437 分钟前
Window Memcached 安装指南
开发语言
牛十二39 分钟前
openclaw安装mcporter搜索小红书
开发语言·javascript·ecmascript
程序猿编码40 分钟前
隐匿注入型ELF加壳器:原理、设计与实现深度解析(C/C++ 代码实现)
c语言·网络·c++·elf·代码注入
老刘说AI40 分钟前
WorkFlow Agent案例:auto_document_agent(文件自动处理)
开发语言·数据库·人工智能·python·神经网络·自然语言处理
时寒的笔记1 小时前
js逆向05_ob混淆花指令,平坦流,某麦网(突破ob混淆寻找拦截器)
开发语言·前端·javascript