用c++编写学生管理系统

设计开发一个“学生信息”管理系统。该系统模拟数据库管理系统(DBMS)的功能,为用户提供数据存储、查找的能力。
该系统存储的学生信息包括:
学号、姓名、性别、语文成绩、数学成绩
系统支持用户通过输入命令,实现与系统的交互。系统支持的命令包括:
1)新增数据命令:向系统中新增数据。命令语法格式如下:
ADD(数据)
---其中,ADD为命令名;
---括号中,“数据”为用户输入的新数据,包含描述学生信息的5个数据项,每个数据项之间用逗号分隔;
该命令的例子如:
ADD(x,x,x,x,x)
ADD(x,x,x,,)
要求:
新录入的数据中,学号和姓名必填,其余可不填;
学号不能与系统中已有的数据重复;
2)数据查询命令:从系统中检索数据。命令语法格式如下:
SELECT 数据项 where 条件
---其中, SELECT为命令名;
---“数据项” 为“*”,或者“学号、姓名、性别、语文成绩、数学成绩”其中之一或它们的组合;
---where为命令的关键字,用户可写可不写,若有写,则必须写出“条件”
---“条件”为数据筛选的依据,支持“=”运算符,格式为:
数据项=值
若用户输入以下命令,其相应的输出为:
(1)select *; 则显示以上所有数据
(2)select 学号;则显示:
s1001
s1002
(3)select 学号,姓名;则显示:
s1001,小明
s1002,小红
…………
3)退出系统命令:终止程序运行;命令语法格式如下:
EXIT

要求告诉我写这个程序的思路,涉及c++的什么知识,以及编写的过程有什么要注意的
若用户未按以上的语法要求输入命令,则系统需要给出错误提示信息,并请用户重新输入
系统的数据用文件存储

今天卧病在家,抽时间写的这么个简单的管理系统,完全是命令行界面的,对于一些异常的内容考虑的还不是很周到。不知道你具体用于做什么。不过希望对你有帮助,你可以基于源码进行修改。如下内容在VC2005上编译并测试通过基本场景。如果你需要图形界面,你可以尝试用MFC或者C#等包装,时间有限,只能先做到这些了。good luck!
// mytest.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <map>
#include <string>
#include <algorithm>

class Student
{
public:
Student(std::string name,
unsigned long id,
std::string sex,
std::string political,
std::string address)
:
m_name(name),
m_id(id),
m_sex(sex),
m_political(political),
m_address(address)
{
}
public:
unsigned long m_id;
std::string m_name;
std::string m_sex;
std::string m_political;
std::string m_address;
};

typedef std::map<unsigned long, Student> StudentCont;

class StudentMgr
{
public:
StudentMgr()
:
m_num(0)
{
}
void add()
{
std::cin.clear();
std::cin.sync();
std::string name("");
std::cout << "please input student's name: ";
std::getline(std::cin, name);

std::string sex("");
std::cout << "please input student's sex: ";
std::getline(std::cin,sex);

std::string political("");
std::cout << "please input student's political apperance: ";
std::getline(std::cin,political);

std::string address("");
std::cout << "please input student's address: ";
std::getline(std::cin,address);
m_num++;
Student student(name, m_num, sex, political, address);
m_students.insert(std::make_pair(m_num, student));
std::cout << "Student " << m_num << " " << name << " " << sex << " " << political << " " << address << " add successfully!" << std::endl;
}
void del()
{
unsigned long id;
std::cout << "Please input the student's id:";
std::cin >> id;
StudentCont::iterator iter = m_students.find(id);
if(iter != m_students.end())
{
m_students.erase(id);
std::cout << "Id number: " << id << " was deleted successfully!" << std::endl;
}
else
{
std::cout << "Id number: " << id << " doesn't exist in the system!" << std::endl;
}
}
void mod()
{
unsigned long id;
std::cout << "Please input the student's id:";
std::cin >> id;
StudentCont::iterator iter = m_students.find(id);
if(iter != m_students.end())
{
std::cout << "Id number: " << id << " is found, please input the information you want to change!" << std::endl;
std::cout << "please input your choice number:" << std::endl;
std::cout << "--------------------------------" << std::endl;
std::cout << "-[1] name. -" << std::endl;
std::cout << "-[2] sex. -" << std::endl;
std::cout << "-[3] political apperance. -" << std::endl;
std::cout << "-[4] address. -" << std::endl;
std::cout << "-[5] Quit! -" << std::endl;
std::cout << "--------------------------------" << std::endl;
unsigned long choiceNum;
std::cin >> choiceNum;
switch(choiceNum)
{
case 1:
{
std::string name;
std::cin.clear();
std::cin.sync();
std::cout << "please input new student's name: "<< std::endl;
std::getline(std::cin,name);
(*iter).second.m_name = name;
break;
}
case 2:
{
std::string sex;
std::cin.clear();
std::cin.sync();
std::cout << "please input correct student's sex: "<< std::endl;
std::getline(std::cin,sex);
(*iter).second.m_sex = sex;
break;
}
case 3:
{
std::string political;
std::cin.clear();
std::cin.sync();
std::cout << "please input student's new political apperance: "<< std::endl;
std::getline(std::cin,political);
(*iter).second.m_political = political;
break;
}
case 4:
{
std::string address;
std::cin.clear();
std::cin.sync();
std::cout << "please input student's new address: "<< std::endl;
std::getline(std::cin,address);
(*iter).second.m_address = address;
break;
}
case 5:
break;
default:
{
std::cerr << "Input choice number:" << choiceNum << " is wrong!" << std::endl;
break;
}
}
}
else
{
std::cout << "Id number: " << id << " doesn't exist in the system, return to the menu!" << std::endl;
}
std::cout << "modify sucessfull!" << std::endl;
}
void query()
{
unsigned long id;
std::cout << "Please input the student's id:";
std::cin >> id;
StudentCont::iterator iter = m_students.find(id);
if(iter != m_students.end())
{
std::cout << "The student's information is: "
<< (*iter).second.m_id << " "
<< (*iter).second.m_name << " "
<< (*iter).second.m_address << " "
<< (*iter).second.m_political << " "
<< (*iter).second.m_sex << std::endl;
}
else
{
std::cout << "Id number: " << id << " doesn't exist in the system, return to the menu!" << std::endl;
}
}
private:
unsigned long m_num;
StudentCont m_students;
};

void printMenu()
{
std::cout << "please input your choice number:" << std::endl;
std::cout << "--------------------------------" << std::endl;
std::cout << "-[1] Add a student. -" << std::endl;
std::cout << "-[2] Delete a student. -" << std::endl;
std::cout << "-[3] Modify a student. -" << std::endl;
std::cout << "-[4] Query students. -" << std::endl;
std::cout << "-[5] Quit! -" << std::endl;
std::cout << "--------------------------------" << std::endl;
}

void startstudentManagement()
{
std::cout << "Thank you for using this simple student management system, Welcome!" << std::endl;
printMenu();
std::auto_ptr<StudentMgr> studentMgr(new StudentMgr);
bool stop = false;
do
{
unsigned long choiceNum = 0;
std::cout << "Your choice number is: ";
std::cin.clear();
std::cin.sync();
std::cin >> choiceNum;
switch(choiceNum)
{
case 1:
studentMgr->add();
break;
case 2:
studentMgr->del();
break;
case 3:
studentMgr->mod();
break;
case 4:
studentMgr->query();
break;
case 5:
stop = true;
break;
default:
std::cerr << "The input number is none of the choice, please try again." << std::endl;
stop = true;
break;
}
}
while(!stop);
}

void stopstudentManagement()
{
std::cout << "Thank you for using this simple student management system, Bye!" << std::endl;
}

int main(void)
{
startstudentManagement();
stopstudentManagement();
return 0;
}
以上回答你满意么?
温馨提示:答案为网友推荐,仅供参考