大一期末项目:学生管理系统
1.介绍
大一下学期摸的C++,期末要求做的学生管理系统。基本上是自己一个人完成(摸鱼写了几天),没有项目的经验,也没有参考其他人的项目。感觉还有很多可以改进的地方。
功能方面基本的增改删查,加上排序、数据导出、筛选(筛选比较简陋)。就是没有批量导入的功能。
有什么问题或者意见,欢迎友好交流,提高能力。
2.源代码
主函数:
#include "Datam.h"
#include "Show.h"
#include "Logic.h"
#include "Menu.h"
#include "GlobalValue.h"
#include <iostream>using namespace std;
int main()
{int cmd=1; //变量数字命令序号Datam d1; //Datam的对象Show s1; //Show的对象Menu m1; //Menu的对象Logic l1; //Lodic的对象cout << " 欢迎使用学生管理系统! \n";d1.FileRaC(); //读取数组大小至变量,要先于数组读取d1.Fileinput(); //读取数据至数组while (cmd != 0){s1.Mshowm(); //显示主菜单cin >> cmd;system("cls");switch (cmd){case 1:m1.Menuone(); //显示一号子菜单break;case 2:m1.Menutwo();break;case 3:m1.Menuthree();break;case 4:m1.Menufour();break;case 5:m1.Menufive();break;case 6:d1.Outfile();system("pause");system("cls");break;case 7:d1.Initial();system("pause");system("cls");break;case 0:break;default:s1.Erroec();break;}};cout << "您已经退出了学生管理系统,欢迎再次使用\n";return 0;
}
全局变量:
#pragma once //全局变量
#include <string>
#include<vector>using namespace std;extern int row; //学生数(行数)
extern int col; //(整数)属性数(列数)
extern int abtc; //属性数(整数属性+字符串属性)
extern vector<vector<long long>> dint; //变长数组,行数不固定,存放整数数据
extern vector<vector<string>> str; //变长数组,行数不固定,存放字符串数据
extern vector<string> abt; //变长数组,存放所有的属性名称
extern int dte; //给显示数据时保留的距离dte
/*全局变量的初始化*/
#include "GlobalValue.h"
#include<vector>int row = 200;
int col = 10;
int abtc = 10;
/*
row和col的值必须大于文件“RaC.txt”中存放的值,否则会出现不明原因错误,以我目前的知识水平
还没有解决方案,所以这里学生信息数量上限设为200,学生(整数)属性上限设为10
新添加的abtc同理,应该是向量的问题
*/vector<vector<long long>> dint(row, vector<long long>(col));
vector<vector<string>> str(row, vector<string>(2));
vector<string> abt(abtc);
int dte = 15;
数据管理:
/*数据管理类*/
#include <iostream>using namespace std;class Datam
{
public:Datam();~Datam();static void FileRaC(); //读取存放行数和列数的文件到变量row和colstatic void Fileinput(); //读取数据传入到数组static void Fileout(); //数据顺序输出到屏幕static void Outfile(); //导出数据至文件static void Initial(); //数据初始化void Addabt(); //添加更多成绩void Adds(int); //添加n个学生的信息static void Storefile(); //储存数据至文件void Changeid(long long , string ); //查找学号修改某个学生的单个数据void Changena(string, string); //查找姓名修改某个学生的单个数据void Removeid(long long); //使用学号查询某学生信息后删除该条void Removen(string); //使用姓名查询某学生信息后删除该条
};
#include "Datam.h"
#include "Show.h"
#include "GlobalValue.h"
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>using namespace std;Datam::Datam() {}
Datam::~Datam() {}void Datam::FileRaC()
{Show s1;ifstream racfile("DATA\\RaC.txt"); //RaC文件存放行数和列数的数值,其中前一个数是行数,后一个数是列数racfile >> row; //前一个是行数racfile >> col; //后一个是列数(属性数)重要的事多说几遍ifstream abtfile("DATA\\abt.txt"); //读取属性文件if (!racfile && !abtfile)s1.Errorf();abtc = col + 2;for (int i = 0; i < abtc; i++){abtfile >> abt[i];}racfile.close(); //关闭文件abtfile.close();
}void Datam::Fileinput()
{Show s1; //Show的对象ifstream infile("DATA\\data1.txt"); //data1文件存放整数类型的数据ifstream cinfile("DATA\\data2.txt"); //data2文件存放字符串类型的数据if (!infile&&!cinfile)s1.Errorf ();else{for (int i = 0; i < row; i++) //将data1中的数据存放到数组dint{for (int j = 0; j < col; j++)infile >> dint[i][j];}for (int i = 0; i < row; i++) //将data2中的数据存放到数组str{for (int j = 0; j < 2; j++)cinfile >> str[i][j];}}infile.close(); //关闭文件cinfile.close();
}void Datam::Fileout() //显示全部学生数据
{for (int i = 0; i < row; i++){for (int j = 0; j < col; j++){if (j == 0)cout << setw(dte) << dint[i][j] << setw(dte) << str[i][0] << setw(dte) << str[i][1];else if (j == col-1) cout << setw(dte) << dint[i][j] << endl;else cout << setw(dte) << dint[i][j];}}
}void Datam::Outfile()
{ofstream outfile("out.txt", ios::trunc);for (int i = 0; i < abtc; i++) {if (i == abtc - 1) {outfile << setw(dte) << abt[i] << endl;}else {outfile << setw(dte) << abt[i];}}for (int i = 0; i < row; i++) {for (int j = 0; j < abtc; j++){if (j == 0) {outfile << setw(dte) << dint[i][j];}else if (j == 1 || j == 2) {outfile << setw(dte) << str[i][j - 1];}else if (j == abtc - 1) {outfile << setw(dte) << dint[i][j - 2] << endl;}else{outfile << setw(dte) << dint[i][j-2];}}}cout << "数据文件已导出至exe文件同一目录下的out.txt" << endl;outfile.close();
}void Datam::Initial()
{Datam d1;ofstream racfile("DATA\\RaC.txt", ios::trunc);ofstream abtfile("DATA\\abt.txt", ios::trunc);ofstream infile("DATA\\data1.txt", ios::trunc);ofstream cinfile("DATA\\data2.txt", ios::trunc);racfile << "6 5 ";abtfile << "学号 姓名 性别 年龄 成绩1 成绩2 成绩3 ";infile << "8 18 100 94 91 15 18 95 95 90 27 18 96 83 90 30 18 98 86 "<< "92 67 19 57 87 98 49 18 78 98 76 "; cinfile << "孙杭 男 王天志 男 吴潇 男 瞿思宇 男 周韦 男 叶淑 女 ";racfile.close();abtfile.close();abtfile.close();abtfile.close();d1.FileRaC();d1.Fileinput();cout << "初始化成功( 重启后完成 )" << endl;
}void Datam::Addabt()
{int n = 0, cmd = 1;int a = 0, c = 0;Show s1;Datam d1;cout << "输入要添加的成绩的个数:";cin >> n;a = abtc;c = col;abtc += n;col += n;for (int i = a; i < abtc; i++) {cout << "为第" << i - 3 << "个成绩命名:";cin >> abt[i];}cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.将添加后的成绩初始化为0 \n";cout << " 2.将添加后的成绩顺序录入 \n";cout << "请输入数字序号:";while (cmd != 0){cin >> cmd;switch (cmd){case 1:for (int i = 0; i < row; i++) {for (int j = c; j < col; j++) {dint[i][j] = 0;}}cout << "初始化成功" << endl;system("pause");system("cls");break;case 2:for (int j = 5; j < col; j++) {cout << "当前输入" << abt[j + 2] << endl;for (int i = 0; i < row; i++){cout << "正在输入学号:" << dint[i][0] << " 姓名:" << str[i][0] << " 的成绩:";cin >> dint[i][j];}}cout << "输入完成!" << endl;system("pause");system("cls");break;case 0:system("cls");break;default:s1.Erroec();break;}if (cmd == 1 || cmd == 2) break;}d1.Storefile();d1.FileRaC();d1.Fileinput();
}void Datam::Adds(int n)
{int mid;Datam d1;mid = row; //中间变量储存旧的row值row += n; //增加row值的大小for (int i = mid; i < row; i++) //依次录入每个学生的信息{cout << "请输入第" << i+1 << "个学生的信息" << endl;for (int j = 0; j < abtc; j++){if (j == 1||j == 2){cout << abt[j] << ":";cin >> str[i][j-1];}else if (j == 0){cout << abt[j] << ":";cin >> dint[i][j];}else{cout << abt[j] << ":";cin >> dint[i][j-2];}}}d1.Storefile();cout << "录入完成" << endl;}void Datam::Storefile()
{ofstream infile("DATA\\data1.txt", ios::trunc); //分别打开所有数据文件,并且清空文件ofstream cinfile("DATA\\data2.txt", ios::trunc);ofstream racfile("DATA\\RaC.txt", ios::trunc);ofstream abtfile("DATA\\abt.txt", ios::trunc);for (int i = 0; i < row ; i++) //分别保存数据至文件{for (int j = 0; j < col ; j++){infile << dint[i][j] << " ";}}for (int i = 0; i < row; i++){for (int j = 0; j < 2; j++){cinfile << str[i][j] << " ";}}racfile << row << " ";racfile << col << " ";for (int i = 0; i < abtc; i++){abtfile << abt[i] << " ";}infile.close(); //关闭文件cinfile.close();racfile.close();abtfile.close();
}void Datam::Changeid(long long id, string fabt)
{int frow = 201;Show s1;Datam d1;for (int i = 0; i < row; i++){if (id == dint[i][0]){frow = i;}}if (frow == 201) {s1.Nofound();}else {for (int i = 0; i < abtc; i++){if (abt[i] == fabt){if (i == 1 || i == 2){cout << "原数据为:" << str[frow][i - 1] << endl;cout << "修改" << abt[i] << "为:";cin >> str[frow][i - 1];}else if (i != 0){cout << "原数据为:" << dint[frow][i - 2] << endl;cout << "修改" << abt[i] << "为:";cin >> dint[frow][i - 2];}else{cout << "原数据为:" << dint[frow][i] << endl;cout << "修改" << abt[i] << "为:";cin >> dint[frow][i];}}}d1.Storefile(); //数据保存cout << "修改成功" << endl;}
}void Datam::Changena(string name, string fabt)
{int frow = 201;Show s1;Datam d1;for (int i = 0; i < row; i++){if (name == str[i][0]){frow = i;}}if (frow == 201){s1.Nofound();}else {for (int i = 0; i < abtc; i++){if (abt[i] == fabt){if (i == 1 || i == 2){cout << "原数据为:" << str[frow][i - 1] << endl;cout << "修改" << abt[i] << "为:";cin >> str[frow][i - 1];}else if (i != 0){cout << "原数据为:" << dint[frow][i - 2] << endl;cout << "修改" << abt[i] << "为:";cin >> dint[frow][i - 2];}else{cout << "原数据为:" << dint[frow][i] << endl;cout << "修改" << abt[i] << "为:";cin >> dint[frow][i];}}}d1.Storefile(); //数据保存cout << "修改成功" << endl;}
}void Datam::Removeid(long long id)
{int frow = 201;Datam d1;Show s1;for (int i = 0; i < row; i++){if (id == dint[i][0]){frow = i;}}if (frow == 201){s1.Nofound();}else {for (int i = frow; i < row; i++){if (i == row - 1){str[i][0] = str[i][1] = '\0';for (int j = 0; j < col; j++){dint[i][j] = 0;}}for (int j = 0; j < abtc; j++){if (j == 0){dint[i][j] = dint[i + 1][j];}else if (j == 1 || j == 2){str[i][j - 1] = str[i + 1][j - 1];}else{dint[i][j - 2] = dint[i + 1][j - 2];}}}cout << "删除成功" << endl;row -= 1;d1.Storefile();}
}void Datam::Removen(string name)
{int frow=201;Datam d1;Show s1;for (int i = 0; i < row; i++){if (name == str[i][0]){frow = i;}}if (frow == 201){s1.Nofound();}else {for (int i = frow; i < row; i++){if (i == row - 1){str[i][0] = str[i][1] = '\0';for (int j = 0; j < col; j++){dint[i][j] = 0;}}for (int j = 0; j < abtc; j++){if (j == 0){dint[i][j] = dint[i + 1][j];}else if (j == 1 || j == 2){str[i][j - 1] = str[i + 1][j - 1];}else{dint[i][j - 2] = dint[i + 1][j - 2];}}}cout << "删除成功" << endl;row -= 1;d1.Storefile();}
}
逻辑:
/*逻辑类*/
#include <iostream>using namespace std;class Logic
{
public:Logic();~Logic();static void Sman(); //筛选出性别男static void Swoman(); //筛选出性别女static void Siddts(); //将学生学号从大到小排序static void Sidstd(); //将学生学号从小到大排序static void Fradts(); //将学生总成绩从大到小排序static void Frastd(); //将学生总成绩从大到小排序
};
#include "Logic.h"
#include "GlobalValue.h"
#include "Show.h"
#include <iomanip>
#include<vector>using namespace std;Logic::Logic() {}
Logic::~Logic() {}void Logic::Sman()
{string man = "男";Show s1;for (int i = 0; i < row; i++){if(str[i][1]==man)s1.Ones(i); //显示一个学生的信息}
}void Logic::Swoman()
{string woman = "女";Show s1;for (int i = 0; i < row; i++){if (str[i][1] == woman)s1.Ones(i); //显示一个学生的信息}
}void Logic::Siddts()
{vector<long long>id(row, 0); //存放排序后的学生学号Show s1; //Show的对象for (int i = 0; i < row; i++) //将dint中的学号存入id{id[i] = dint[i][0];}for (int i = 1; i < row; i++) //使用冒泡排序从大到小排列数组id{for (int j = 0; j < row - i; j++){if (id[j] < id[j + 1]){long long buffer = id[j];id[j] = id[j + 1];id[j + 1] = buffer;}}}for (int i = 0; i < row; i++) //遍历dint的学号信息与排序后的id数组核对,核对成功一个,输出一个{for (int j = 0; j < row; j++){if (id[i] == dint[j][0]){s1.Ones(j); //显示一个学生的信息}}}
}void Logic::Sidstd()
{vector<long long>id(row, 0); //存放排序后的学生学号Show s1; //Show的对象for (int i = 0; i < row; i++) //将dint中的学号存入id{id[i] = dint[i][0];}for (int i = 1; i < row; i++) //使用冒泡排序从小到大排列数组id{for (int j = 0; j < row - i; j++){if (id[j] > id[j + 1]){long long buffer = id[j];id[j] = id[j + 1];id[j + 1] = buffer;}}}for (int i = 0; i < row; i++) //遍历dint的学号信息与排序后的id数组核对,核对成功一个,输出一个{for (int j = 0; j < row; j++){if (id[i] == dint[j][0]){s1.Ones(j); //显示一个学生的信息}}}
}void Logic::Fradts()
{Show s1;vector<vector<long long>> fra(row, vector<long long>(2,0));for (int i = 0; i < row; i++){fra[i][0] = dint[i][0];for (int j = 2; j <abtc ; j++){fra[i][1] += dint[i][j];}}for (int i = 1; i < row; i++) //使用冒泡排序从大到小排列数组fra{for (int j = 0; j < row - i; j++){if (fra[j][1] < fra[j + 1][1]){long long buffer = fra[j][1];fra[j][1] = fra[j + 1][1];fra[j + 1][1] = buffer;buffer = fra[j][0];fra[j][0] = fra[j + 1][0];fra[j + 1][0] = buffer;}}}for (int i = 0; i < row; i++) //遍历学号{for (int j = 0; j < row; j++){if (fra[i][0] == dint[j][0]){s1.Ones(j); //显示一个学生的信息}}}
}void Logic::Frastd()
{Show s1;vector<vector<long long>> fra(row, vector<long long>(2, 0));for (int i = 0; i < row; i++){fra[i][0] = dint[i][0];for (int j = 2; j < abtc; j++){fra[i][1] += dint[i][j];}}for (int i = 1; i < row; i++) //使用冒泡排序从大到小排列数组fra{for (int j = 0; j < row - i; j++){if (fra[j][1] > fra[j + 1][1]){long long buffer = fra[j][1];fra[j][1] = fra[j + 1][1];fra[j + 1][1] = buffer;buffer = fra[j][0];fra[j][0] = fra[j + 1][0];fra[j + 1][0] = buffer;}}}for (int i = 0; i < row; i++) //遍历学号{for (int j = 0; j < row; j++){if (fra[i][0] == dint[j][0]){s1.Ones(j); //显示一个学生的信息}}}
}
显示:
/*显示类*/
#include <iostream>using namespace std;class Show
{
public:Show();~Show();static void Abt(); //显示属性栏static void Mshowm(); //显示主菜单static void Errorf(); //文件读取错误信息static void Erroec(); //命令读取错误信息static void Nofound(); //未找到错误信息static void Mones(); //1号子菜单显示static void Mtwos(); //2号子菜单显示static void Mthrs(); //3号子菜单显示static void Mfour(); //4号子菜单显示static void Mfive(); //5号子菜单显示void Ones(int); //(使用行数row)显示某个学生的信息void Onesm(string); //使用姓名查询某学生信息void Onesid(long long); //使用学号查询某学生信息static void Image(string); //将某次成绩以图像显示
};
#include "Show.h"
#include "GlobalValue.h"
#include <iostream>
#include <iomanip>using namespace std;Show::Show(){}
Show::~Show(){}void Show::Abt()
{for (int i = 0; i < abtc; i++){if (i == abtc - 1) cout << setw(dte) << abt[i] << endl;else cout << setw(dte) << abt[i];}
}void Show::Mshowm()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.录入学生信息 \n";cout << " 2.显示学生信息 \n";cout << " 3.修改学生信息 \n";cout << " 4.查询学生信息 \n";cout << " 5.删除学生信息 \n";cout << " 6.导出学生信息 \n";cout << " 7.学生数据初始化 \n";cout << " 0.退出 系统 \n";cout << "请输入数字序号:";
}void Show::Errorf()
{cout << "打开文件错误,未找到文件,可能无法正常运行程序。 " << endl;
}void Show::Erroec()
{cout << "错误,未找到该命令,请重新输入序号" << endl;cout << "请重新输入命令序号:";
}void Show::Nofound()
{cout << "错误,未找到该信息" << endl;
}void Show::Mones()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.录入学生信息 \n";cout << " 0.返回上一菜单 \n";cout << "请输入数字序号:";
}void Show::Mtwos()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.按照文件中的顺序 \n";cout << " 2.按照学号从大到小 \n";cout << " 3.按照学号从小到大 \n";cout << " 4.按照总成绩从大到小 \n";cout << " 5.按照总成绩从小到大 \n";cout << " 6.显示全部性别为男的学生 \n";cout << " 7.显示全部性别为女的学生 \n";cout << " 8.将某次成绩以图像显示 \n";cout << " 0.返回上一菜单 \n";cout << "请输入数字序号:";
}void Show::Mthrs()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.使用学号查找后修改信息 \n";cout << " 2.使用姓名查找后修改信息 \n";cout << " 3.添加更多成绩 \n";cout << " 0.返回上一菜单 \n";cout << "请输入数字序号:";
}void Show::Mfour()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.使用学号查询 \n";cout << " 2.使用姓名查询 \n";cout << " 0.返回上一菜单 \n";cout << "请输入数字序号:";
}void Show::Mfive()
{cout << "---------------------------------\n";cout << " 请使用数字序号来进行操作 \n";cout << " 1.使用学号查找后删除 \n";cout << " 2.使用姓名查找后删除 \n";cout << " 0.返回上一菜单 \n";cout << "请输入数字序号:";
}void Show::Ones(int found)
{for (int i = 0; i < col; i++){if (i == 0){cout << setw(dte) << dint[found][i];cout << setw(dte) << str[found][0] << setw(dte) << str[found][1];}else if (i == col - 1) cout << setw(dte) << dint[found][i] << endl; else cout << setw(dte) << dint[found][i];}
}void Show::Onesm(string name)
{Show s1;for (int i = 0; i < row; i++){if (name == str[i][0]){s1.Ones(i);}else if (i == row - 1) s1.Nofound();}
}void Show::Onesid(long long id)
{Show s1;for (int i = 0; i < row; i++){if (id == dint[i][0]){s1.Ones(i);}else if (i == row - 1) s1.Nofound();}
}void Show::Image(string fra)
{int ffra = 0;cout << setw(dte) << abt[0] << setw(dte) << abt[1];for (int i = 4; i < abtc; i++){if (fra == abt[i]){ffra = i;cout << setw(dte) << abt[i] << endl;}}for (int i = 0; i < row; i++){cout << setw(dte) << dint[i][0] << setw(dte) << str[i][0] << " ";for (int j = 0; j < dint[i][ffra - 2]; j++){cout << "I";}cout << endl;}
}
菜单:
/*菜单类*/
#include <iostream>using namespace std;class Menu
{
public:Menu();~Menu();static void Menuone(); //1.录入学生信息 的子菜单static void Menutwo(); //2.显示学生信息 的子菜单static void Menuthree(); //3.修改学生信息 的子菜单static void Menufour(); //4.查询学生信息 的子菜单static void Menufive(); //5.删除学生信息 的子菜单
};
#include "Menu.h"
#include "Show.h"
#include "Datam.h"
#include "Logic.h"
#include <iostream>using namespace std;Menu::Menu() {};
Menu::~Menu() {};void Menu::Menuone()
{int cmd = 1; //变量数字命令序号int n = 0; //添加的学生信息数量Show s1; //Show的对象Datam d1;s1.Mones(); //这一行显示模块负责显示菜单选项while (cmd != 0) //如果cmd=2退出循环,返回上一菜单{cin >> cmd;switch (cmd){case 1:cout << "输入录入学生信息的个数:" << endl; //这一行数据处理模块进行添加信息cin >> n;d1.Adds(n);system("pause");system("cls");break;case 0: //返回主菜单system("cls");break;default:s1.Erroec(); //命令错误break;}if (cmd == 1) break; //完成学生信息输入后,退出循环}
}void Menu::Menutwo()
{int cmd = 1;string fra;Show s1;Datam d1;Logic l1;s1.Mtwos();while (cmd != 0){cin >> cmd;switch (cmd){case 1:cout << "按照文件中的顺序:" << endl;s1.Abt();d1.Fileout();system("pause");system("cls");break;case 2:cout << "按照学号从大到小:" << endl;s1.Abt();l1.Siddts();system("pause");system("cls");break;case 3:cout << "按照学号从小到大:" << endl;s1.Abt();l1.Sidstd();system("pause");system("cls");break;case 4:cout << "按照总成绩从大到小:" << endl;s1.Abt();l1.Fradts();system("pause");system("cls");break;case 5:cout << "按照总成绩从小到大:" << endl;s1.Abt();l1.Frastd();system("pause");system("cls");break;case 6:cout << "显示性别为男的学生:" << endl;s1.Abt();l1.Sman ();system("pause");system("cls");break;case 7:cout << "显示性别为女的学生:" << endl;s1.Abt();l1.Swoman();system("pause");system("cls");break;case 8:cout << "输入要显示的那次成绩:";cin >> fra;cout << "将某次成绩以图像显示:" << endl;s1.Image(fra);system("pause");system("cls");break;case 0: //返回主菜单system("cls");break;default:s1.Erroec(); //命令错误break;}if (cmd == 1 || cmd == 2 || cmd == 3 || cmd == 4 || cmd == 5 || cmd == 6 || cmd == 7 || cmd == 8) break;}
}void Menu::Menuthree()
{int cmd = 1;long long id = 0;int n = 0;string abtname;string name;string fabt;Show s1;Datam d1;s1.Mthrs(); //这一行显示模块负责显示菜单选项while (cmd != 0) //如果cmd=2退出循环,返回上一菜单{cin >> cmd;switch (cmd){case 1:cout << "输入你要修改的学生的学号:";cin >> id;cout << "输入你要修改的项目:";cin >> fabt;d1.Changeid(id, fabt);system("pause");system("cls");break;case 2:cout << "输入你要修改的学生的姓名:";cin >> name;cout << "输入你要修改的项目:";cin >> fabt;d1.Changena(name ,fabt);system("pause");system("cls");break;case 3:system("cls");d1.Addabt();case 0: //返回主菜单system("cls");break;default:s1.Erroec(); //命令错误break;}if (cmd == 1 || cmd == 2 || cmd == 3) break; //完成学生信息输入后,退出循环}
}void Menu::Menufour()
{int cmd = 1;long long id = 0;string name;Show s1;s1.Mfour();while (cmd != 0) {cin >> cmd;switch (cmd){case 1:cout << "输入学生学号:";cin >> id;s1.Abt();s1.Onesid(id);system("pause");system("cls");break;case 2:cout << "输入学生姓名:";cin >> name;s1.Abt();s1.Onesm(name);system("pause");system("cls");break;case 0:system("cls");break;default:s1.Erroec(); //命令错误break;}if (cmd == 1 || cmd == 2) break;}
}void Menu::Menufive()
{int cmd = 1;long long id = 0;string name;Show s1;Datam d1;s1.Mfive();while (cmd != 0){cin >> cmd;switch (cmd){case 1:cout << "输入要删除的学生的学号:";cin >> id;d1.Removeid(id);system("pause");system("cls");break;case 2:cout << "输入要删除的学生的姓名:";cin >> name;d1.Removen(name);system("pause");system("cls");break;case 0:system("cls");break;default:s1.Erroec(); //命令错误break;}if (cmd == 1 || cmd == 2) break;}
}
3.数据文件和执行文件
程序运行或者调试的需要一个DATA文件,里面存放的是学生数据。
网盘:
链接:https://pan.baidu.com/s/17l6Zw4C3-shrDuVBe0HmTw
提取码:79zv
运行效果:
大一期末项目:学生管理系统相关推荐
- ssh html项目,SSH项目-学生管理系统
SSH项目-学生管理系统 资源下载此资源下载价格为3D币,请先登录 资源文件列表 StudentManagent/.classpath , 979 StudentManagent/.myhiberna ...
- QT项目-学生管理系统
前言 本文章主要讲解本人在QT学习期间所开发的项目-学生管理系统,代码主要参考于网上查找. 一.界面展示 功能主要包括,学生信息的插入删除,以及修改. 再加上按照id,或者成绩的升降序排序 二.代码展 ...
- Python基础 编写项目 学生管理系统
print('欢迎来到成绩管理系统'.center(30,'*')) list = [] while True: print('1.录入成绩') print('2.查看成绩') print('3.删除 ...
- MySQL数据库期末项目 图书馆管理系统
1 项目需求分析 1.1 项目名称 图书馆管理系统 1.2 项目功能 在以前大多部分图书馆都是由人工直接管理,其中每天的业务和操作流程非常繁琐复杂,纸质版的登记信息耗费了大量的人力物力.因此图书馆管理 ...
- Java项目:学生管理系统(java+Springboot+Maven+mybatis+Vue+Mysql)
源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统功能包括: 学生管理,教师管理,课程管理,成绩管理,系统管理等等. 二.项目运行 环境配置: Jdk1.8 + Tomc ...
- Java项目:学生管理系统(无库版)(java+打印控制台)
源码获取:博客首页 "资源" 里下载! 功能介绍: 学生成绩管理系统成绩表 用户管理操作: /*** 用户管理操作*/ @Controller @RequestMapping(&q ...
- JavaSE-初级阶段项目-学生管理系统
1.需求分析 配置 项目文件 环境:IDEA IntelliJ 工具包 :hutool-poi-apidocs 工具包导入: 右击项目文件 open module settings 3.具体实现 (1 ...
- 参考别人博客,自己实现用idea运行eclipse项目--学生管理系统-
别人的博客:https://blog.csdn.net/zeal9s/article/details/90690524 我自己录制的视频: 百度网盘:链接:https://pan.baidu.com/ ...
- 期末项目——人力资源管理系统需求分析
人力资源管理系统需求分析 小组成员:朱国辉 许珍源 需求获取及分析 1.1 业务需求 随着现在计算机技术的不断完善,以及现代经济的不断发展,传统的管理技术不再满足企业的需要,越来越多的企业注重计算机信 ...
最新文章
- UILabel中的多行文本
- 全球首部AI交响变奏曲问世,AI技术应用再拓边界
- python爬虫完整实例-python爬虫实战之爬取京东商城实例教程
- office在线编辑器
- 子域名查询DNS记录查询
- 按键精灵易语言c,求助(把按键精灵的源码转为易语言的)
- 设计模式:单例和简单工厂
- remote: Incorrect username or password ( access token ) fatal: Authentication failed for gitee
- IBM总架构师寇卫东:话说程序员的职业生涯-IT程序人生-职业生涯规划
- 程序员的奋斗史(二)——今天你跑步了吗
- Atom飞行手册翻译: 2.2 在Atom中移动
- 小甲鱼python课后题和答案简书_小甲鱼Python入门 10讲 答案
- php txt替换,文本替换专家批量替换TXT文本内容教程
- Flink服务的HA配置
- 大牛深入讲解!6年老Android面经总结,系列教学
- 瑞思拜 我儿豁 SpringMVC基础 兄弟们冲冲冲
- python控制相机,在OpenCV / Python中设置相机参数
- 化繁为简,微软 Desktop Flow(“RPA”)正式在华商用!
- android自定义标尺,Android自定义标尺滑动选择值效果
- 微信小程序----使用微信内置地图查看位置wx.openLocation(Object object)