首页 > 编程语言 >C++程序设计大作业-学生管理系统-计算机自考实践

C++程序设计大作业-学生管理系统-计算机自考实践

时间:2024-11-10 16:47:40浏览次数:5  
标签:struct ifs int C++ studentNo studentArr 程序设计 自考 size

目录

源码

C++程序设计报告

开发环境

系统运行

导入初始数据

显示信息

输入记录

编辑记录

删除记录

批量导出数据


源码

#include<iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <list>
#include <map>

// 定义最大值
#define MAX 100
using namespace std;

// 学生对象
struct Student
{
	int studentNo;
	string name;
	int age;
	string sex;
};

// 学生对象集合
struct StudentArr {
	struct Student studentArr[MAX];
	int size;
};

// 课程对象
struct Course
{
	// 课号
	int courseNo;
	// 课名
	string courseName;
	// 学分
	int score;
};

// 课程对象集合
struct CourseArr {
	struct Course courseArr[MAX];
	int size;
};

// 选课对象
struct SelectCourse
{
	// 学号
	int studentNo;
	// 课程号
	int courseNo;
	// 得分
	int myScore;
};

// 选课对象集合
struct SelectCourseArr {
	struct SelectCourse selectCourseArr[MAX];
	int size;
};




// 成绩单
struct SchoolReport {
	// 学生姓名
	string studentName;
	// 学生学号
	int studentNo;
	// 课程名称
	string courseName;
	// 得分
	int myScore;
};

// 成绩单对象集合
struct SchoolReportArr {
	struct SchoolReport schoolReportArr[MAX];
	int size;
};



// 菜单界面
void showMenu() {
	int m;
	cout << "1- 导入初始数据" << endl;
	cout << "2- 显示信息" << endl;
	cout << "3- 输入记录" << endl;
	cout << "4- 删除记录" << endl;
	cout << "5- 查询信息" << endl;
	cout << "6- 编辑记录" << endl;
	cout << "7- 去重" << endl;
	cout << "8- 批量导出数据" << endl;
	cout << "0- 退出" << endl;
}


// 导入学生信息
void importStudent(StudentArr * stuArr) {

	// 创建流对象
	ifstream ifs;

	// 打开文件并判断是否打开成功
	ifs.open("student.txt", ios::in);

	// 判断是否打开文件成功
	if (!ifs.is_open()) {
		cout << "文件打开失败!!!请检查文件是否存在!!!" << endl;
		return;
	}

	int studentNo;
	string name;
	int age;
	string sex;


	while (ifs >> studentNo && ifs >> name && ifs >> age && ifs >> sex )
	{
		int size = stuArr->size;

		stuArr->studentArr[size].studentNo = studentNo;
		stuArr->studentArr[size].name = name;
		stuArr->studentArr[size].age = age;
		stuArr->studentArr[size].sex = sex;
		stuArr->size++;
	}
	// 关闭文件
	ifs.close();

	cout << "学生信息导入成功!!!" << endl;

}

// 导入课程信息
void importCourse(CourseArr * courArr) {
	// 创建流对象
	ifstream ifs;

	// 打开文件并判断是否打开成功
	ifs.open("course.txt", ios::in);

	// 判断是否打开文件成功
	if (!ifs.is_open()) {
		cout << "文件打开失败!!!请检查文件是否存在!!!" << endl;
		return;
	}

	int courseNo;
	string courseName;
	int score;


	while (ifs >> courseNo && ifs >> courseName && ifs >> score)
	{
		int size = courArr->size;

		courArr->courseArr[size].courseNo = courseNo;
		courArr->courseArr[size].courseName = courseName;
		courArr->courseArr[size].score = score;
		courArr->size++;
	}
	// 关闭文件
	ifs.close();

	cout << "课程信息导入成功!!!" << endl;

}

// 导入选课信息
void importSelectCourse(SelectCourseArr * scArr) {
	// 创建流对象
	ifstream ifs;

	// 打开文件并判断是否打开成功
	ifs.open("selectCourse.txt", ios::in);

	// 判断是否打开文件成功
	if (!ifs.is_open()) {
		cout << "文件打开失败!!!请检查文件是否存在!!!" << endl;
		return;
	}

	int studentNo;
	int couseNo;
	int getScore;

	while (ifs >> studentNo && ifs >> couseNo && ifs >> getScore)
	{
		int size = scArr->size;

		scArr->selectCourseArr[size].studentNo = studentNo;
		scArr->selectCourseArr[size].courseNo = couseNo;
		scArr->selectCourseArr[size].myScore = getScore;
		scArr->size++;
	}
	// 关闭文件
	ifs.close();

	cout << "选课信息导入成功!!!" << endl;

}



// 展示学生信息
void showStudent(StudentArr * stuArr) {

	if (stuArr->size == 0) {
		cout << "学生信息为空!!" << endl;
	}
	else {

		cout << "***********************学生信息列表**********************"  << endl;

		cout << "学号" << "\t"<<"姓名"<<"\t"<<"年龄"<<"\t"<<"性别"<<endl;

		for (int i = 0; i < stuArr->size; i++)
		{
			cout << stuArr->studentArr[i].studentNo << "\t";
			cout << stuArr->studentArr[i].name << "\t";
			cout << stuArr->studentArr[i].age << "\t";
			cout << stuArr->studentArr[i].sex << endl;
			//cout << "地址:" << abs->persionArr[i].addr << endl;
		}

	}

	system("pause"); // 请按任意键继续
	system("cls"); // 清屏

}

// 展示课程信息
void showCourse(CourseArr * courArr) {

	if (courArr->size == 0) {
		cout << "课程信息为空!&#

标签:struct,ifs,int,C++,studentNo,studentArr,程序设计,自考,size
From: https://blog.csdn.net/qq_38593865/article/details/143661903

相关文章

  • 2024-2025-1(20241321)《计算机基础与程序设计》第七周学习总结
    这个作业属于哪个课程<班级的链接>(2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<了解并学习AI功能,回顾一周课程心得>作业正文...本博客链接https://www.cnblogs.com/guchua......
  • c++中的顺序表结构
     顺序表是简单的一种线性结构,逻辑上相邻的数据在计算机内的存储位置也是相邻的(就类似于数组),可以快速定位第几个元素,中间不允许有空值,插入、删除时需要移动大量元素顺序表有三个要素1.用elems记录存储位置的基地址2.分配一段连续的存储空间size3.用length记录实际的元素......
  • 2024-2025-1 20241415 《计算机基础与程序设计》第七周学习总结
    2024-2025-120241415《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第七周作业这个作业的目标数组与链表、基于数组和基于链表实现数据结构、无序表......
  • 2024-2025-1 20241314 《计算机基础与程序设计》第七周学习总结
    2024-2025-120241314《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>2024-2025-1-计算机基础与程序设计这个作业要求在哪里2024-2025-1计算机基础与程序设计第七周作业这个作业的目标数组与链表基于数组和基于链表实现数据......
  • C++类中的静态成员
    目录1.静态成员变量:2.静态成员函数在C++中类中的静态成员分为两类,一类是静态成员变量,一类是静态成员函数。什么是静态成员变量和静态成员函数呢?就是在前面加static关键字。1.静态成员变量:它具有以下几个特点:    1.所有的对象共享同一份数据    2.在编......
  • C++的基础学习5
    //四、变量的作用域与生命周期////1.作用域:那里起作用那里就是变量的作用域//局部变量的作用域:就是变量所在的局部范围。//全局变量的作用域:整个工程。////#define_CRT_SECURE_NO_WARNINGS1//#include<stdio.h>//intg=2021;//全局变量////intmain()//{// print......
  • 学期2024-2025-1 学号20241317 《计算机基础与程序设计》第七周学习总结
    学期2024-2025-学号20241317《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个作业的目标<写上具体......
  • C++ namespace介绍
    我们来看一下这一段代码:intrand=0;intmain(){ printf("%d",rand); return0;}运行结果如下:当我们添加一个头文件stdlib.h时,运行结果如下:我们可以发现,报错了。这里的问题出现在我们在全局定义了一个变量rand.并且导入了一个头文件stdlib.h在stdlib.h这个......
  • 尽管语言都是 C++,由于平台和编译器的不同,API 的实现和使用方式也有所不同,导致出现了很
    确实,尽管语言都是C++,由于平台和编译器的不同,API的实现和使用方式也有所不同,导致出现了很多“变种”。以下是一些常见的原因和应对方法:1.平台差异Windows使用WinAPI,它是Windows系统特有的一组API,许多Windows特定的操作(如窗口管理、文件操作、进程管理)都依赖于Wi......
  • 如何使用gtest编写C++单元测试代码
    目录一.为什么要编写单元测试代码二.gtest是什么三.下载四.使用方法4.1场景一4.2场景二4.3场景三五.其他一.为什么要编写单元测试代码相信很多人都不喜欢编写单元测试代码,但是单元测试对我们来说真的很重要,单元测试可以暴露出我们自己的代码的内部问题,从而保证我......