学生基本信息管理系统C++源代码

作者&投稿:闭咸 (若有异议请与网页底部的电邮联系)
学生基本信息管理系统C++ 源代码~

学生基本管理系统是大学里必须要做一个题目,你可参考百度文库的一个C++实现的学生管理系统,给你上个地址吧:http://wenku.baidu.com/link?url=H9JUaYGIhVScWdrgszxf2LFRzKSkeg49qC69EcZsmskWDlBTmLCH_2dyNFEo_d4pSxaI4uhv74ew6c9IYSDzWCMcVjU_SHeH38ZbJpPVTIa

#include
#include
#include
#include
#define INIT_SIZE 10
#define INCRE_SIZE 10
#define SUBJECT_NUM 3
#define LEN 3

void show_Start();

void show_Table();

void addRecord();

void Info_delete();
void deleteRecord();
void delete_Num(int);
void delete_Name(char tarName[]);


void Info_modify();
void modifyRecord();
void modify_Num(int);
void modify_Name(char[]);


void Info_query();
void queryRecord();
void query_Num(int);
void query_Name(char[]);


void display();

void quit();

void menu_CMD();



char *subject[SUBJECT_NUM] = {"高代","数分","C语言"};

struct STUDENT
{
int num;
char name[20];
char sex;
float score[SUBJECT_NUM];
};

//struct STUDENT stu[LEN + 1];

//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);

int static stuNum = 0;
//先暂时定义三个学生吧...

STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);;

int main()
{
//record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);
//STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);

/*
record[1].num = 1001;
strcpy(record[1].name,"Jason");
record[1].sex = 'M';
record[1].score[0] = 85.0;
record[1].score[1] = 90.0;
record[1].score[2] = 95.0;


record[2].num = 1002;
strcpy(record[2].name,"Jerry");
record[2].sex = 'M';
record[2].score[0] = 85.0;
record[2].score[1] = 90.0;
record[2].score[2] = 95.0;


record[3].num = 1003;
strcpy(record[3].name,"Jessie");
record[3].sex = 'F';
record[3].score[0] = 85.0;
record[3].score[1] = 90.0;
record[3].score[2] = 95.0;
*/


/*
Info_modify();
int key;
cout<<"请输入您的选择 : ";
cin>>key;

if(key == 1)
{
int targetNum;
cout<<"请输入您欲修改的学生的学号 : ";
cin>>targetNum;

modify_Num(targetNum);
cout<<endl;

display();
}

if(key == 2)
{
char targetName[20];
cout<<"请输入您欲修改学生的姓名 : ";
cin>>targetName;

modify_Name(targetName);
cout<<endl;

display();
}

if(key == 3)
{
exit(0);
}
*/

show_Start();


menu_CMD();




return 0;


}

//修改完后还应该显示
void show_Start()
{
//cout<<endl;
cout<<" **************************************** "<<endl;
cout<<" 这是一个 "<<endl;
cout<<" 学生成绩管理系统 "<<endl;
cout<<" 可以对学生成绩进行管理 "<<endl;
cout<<" 欢迎大家使用 "<<endl;
cout<<" Made by Jason "<<endl;
cout<<" **************************************** "<<endl;
}



// 显示表头信息,即是 : 学号,姓名,性别,高代,数分,C语言.
void show_Table()
{
cout<<"学号"<<""<<"姓名"<<""<<"性别";
cout<<""<<subject[0]<<""<<subject[1]<<""<<subject[2];
cout<<endl;
}


void menu_CMD()
{
int key;
while(1)
{
cout<<"1. 增加学生信息"<<endl;
cout<<"2. 删除学生信息"<<endl;
cout<<"3. 修改学生信息"<<endl;
cout<<"4. 查询学生信息"<<endl;
cout<<"5. 显示学生信息"<<endl;
cout<<"6. 退出"<<endl;
cout<<"请输入您的选择 : ";
cin>>key;
while(1)
{
if((key 6))
{
int key;
cout<<"您的输入有误,请重新输入!"<<endl;
cout<<"请选(1 - 5) : ";
cin>>key;
}
else
{
break;
}
}
switch(key)
{
case 1:
addRecord();
break;
case 2:
deleteRecord();
break;
case 3:
modifyRecord();
break;
case 4:
queryRecord();
break;
case 5:
display();
break;
case 6:
quit();
break;
}


}
}

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


//增加学生信息
void addRecord()
{


if(stuNum == 0)
{
cout<<"原来没有记录,现在建立新表!"<<endl;
stuNum++;
}
else
{
cout<<"现在在当前表的末尾添加新的信息!"<<endl;
stuNum++;
}

//如果数组空间不够,重新申请空间
if(stuNum > INIT_SIZE)
{
cout<<"内存空间不够,现在重新申请新的内存空间!"<<endl;
record = (STUDENT*)realloc(record,(INIT_SIZE + INCRE_SIZE)*sizeof(STUDENT));
cout<<"空间申请完成!"<<endl;
}


cout<<"您现在要添加一组新的信息,您确定吗?"<<endl;
cout<<"请输入您的选择(Y/N) : ";
char choi;
cin>>choi;
if((choi == 'Y')||(choi == 'y'))
{
cout<<"请输入学号 : ";
cin>>record[stuNum].num;
cout<<"请输入姓名 : ";
cin>>record[stuNum].name;
cout<<"请输入性别(M为男,F为女) : ";
cin>>record[stuNum].sex;

int i;
for(i = 0;i < SUBJECT_NUM;i++)
{
cout<<"请输入"<<subject[i]<<"的成绩 : ";
cin>>record[stuNum].score[i];
}
}

if((choi == 'N')||(choi == 'n'))
{
cout<<"退出添加新学生信息!"<<endl;
cout<<endl;
}

cout<<"现在已经有"<<stuNum<<"条学生的信息了!"<<endl;
cout<<endl;
}


//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
//删除信息 晚上完成...


//显示deleteRecord的表头信息
void Info_delete()
{
cout<<"请输入删除方式 : "<<endl;
cout<<"1. 按学号删除"<<endl;
cout<<"2. 按姓名删除"<<endl;
cout<<"3. 退出删除"<<endl;
}



//删除学生的信息,包含两个子函数
void deleteRecord()
{
int key;
cout<<endl;
Info_delete();
cout<<"请输入您的选择 : ";
cin>>key;

if(key == 1)
{
int targetNum;
cout<<"请输入您欲删除学生的学号 : ";
cin>>targetNum;

//按学号删除
delete_Num(targetNum);
cout<<endl;
}

if(key == 2)
{
char targetName[20];
cout<<"请输入您欲删除学生的姓名 : ";
cin>>targetName;

//按姓名删除
delete_Name(targetName);
cout<<endl;
}

if(key == 3)
{
while(1)
{
menu_CMD();

}
}
}


//按学号删除学生信息
//只用完成删除操作,而不必输出. 输出的操作可以在主菜单中进行

void delete_Num(int tarNum)
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(record[i].num == tarNum)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//第一种情况,欲删除的学生是最后一位
if(i = stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<""
<<record[i].score[0]<<record[i].score[1]<<""<<record[i].score[2];
cout<<endl;

cout<<endl<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum - 1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
//显示信息应该放在后面
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
*/
}


//2.第二种情况,欲删除的学生不是最后一位
if(i != stuNum)
{

cout<<"您所要删除的学生信信息是 : "<<endl;
show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<""
<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];

for(int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}

//接着完成输出

cout<<endl;
cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
*/
}

stuNum--;
cout<<"现在还是剩下"<<stuNum<<"条学生的信息";
cout<<endl;
}
}
}

/*

//方法同上
void delete_Name(char tarName[])
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//第一种情况 : 欲删除学生是最后一位
if(i = stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<""
<<record[i].score[0]<<record[i].score[1]<<""<<record[i].score[2];
cout<<endl;

cout<<endl<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum - 1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
}


//第二种情况 : 欲删除学生不是最后一位
if(i != stuNum)
{

cout<<"您所要删除的学生信信息是 : "<<endl;
show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<""
<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];

//整体往前 前移一位
for(int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}
cout<<endl;

//接着完成输出
cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}

cout<<endl;
}
}

}

}

*/


void delete_Name(char tarName[])
{
int i;
for(i = 1;i <= stuNum;i++)
{

//删除还要分两种情况讨论
//1. 欲删除的学生信息是最后一位
//2. 欲删除的学生信息不是最后一位

//当欲删除的学生是最后一位,直接输出前面LEN-1位学生的信息

if(strcmp(record[i].name,tarName) == 0)
{
if(i == stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;
show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<""
<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];

cout<<endl;

cout<<"删除后学生信息表为 : "<<endl;
show_Table();
for(int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
*/
}


//当欲删的学生不是最后一位,整体往前前移一位
if(i != stuNum)
{
cout<<"您所要删除的学生信息是 : "<<endl;

show_Table();
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex<<"";
cout<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];
cout<<endl;

//整体往前前移一位
for(int j = i+1;j <= stuNum;j++)
{
record[j-1] = record[j];
}

//然后输出
cout<<endl;
cout<<"删除后学生信息表为 : "<<endl;

show_Table();
for(int i = 1;i <= stuNum-1;i++)
{
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
/*
stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
*/
}

stuNum--;
cout<<"现在还剩下"<<stuNum<<"条学生的信息";
cout<<endl;
}
}
}






/*****************************************************************************
******************************************************************************/



//显示modifyRecord的表头信息
void Info_modify()
{
cout<<"请输入修改方式 : "<<endl;
cout<<"1. 按学号修改"<<endl;
cout<<"2. 按姓名修改"<<endl;
cout<<"3. 退出修改"<<endl;
}



//查询学生的成绩,当然里面包括两个子函数
void modifyRecord()
{
int key;
cout<<endl;
Info_modify();
cout<<"请输入您的选择 : ";
cin>>key;


//按学号修改
if(key == 1)
{
int targetNum;
cout<<"请输入您欲修改的学生的学号 : ";
cin>>targetNum;

modify_Num(targetNum);
cout<<endl;

//display();
}

//按姓名修改
if(key == 2)
{
char targetName[20];
cout<<"请输入您欲修改学生的姓名 : ";
cin>>targetName;

modify_Name(targetName);
cout<<endl;

//display();
}

//退出修改
if(key == 3)
{
while(1)
{
menu_CMD();
}
}
}



//按学号修改
void modify_Num(int tarNum)
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(record[i].num == tarNum)
{
cout<<endl<<"请修改该学生的信息"<<endl;
cout<<"请输入该学生的学号 : ";
cin>>record[i].num;
cout<<"请输入该学生的姓名 : ";
cin>>record[i].name;
cout<<"请输入该学生的性别 : ";
cin>>record[i].sex;
cout<<"请输入"<<subject[0]<<"的成绩 : ";
cin>>record[i].score[0];
cout<<"请输入"<<subject[1]<<"的成绩 : ";
cin>>record[i].score[1];
cout<<"请输入"<<subject[2]<<"的成绩 : ";
cin>>record[i].score[2];
}
}
}


//按姓名修改
void modify_Name(char tarName[])
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
cout<<endl<<"请修改该学生的信息 : "<<endl;
cout<<"请输入该学生的学号 : ";
cin>>record[i].num;
cout<<"请输入该学生的姓名 : ";
cin>>record[i].name;
cout<<"请输入该学生的性别 : ";
cin>>record[i].sex;
cout<<"请输入"<<subject[0]<<"的成绩 : ";
cin>>record[i].score[0];
cout<<"请输入"<<subject[1]<<"的成绩 : ";
cin>>record[i].score[1];
cout<<"请输入"<<subject[2]<<"的成绩 : ";
cin>>record[i].score[2];
}
}
}



///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////



//显示queryRecord的表头信息
void Info_query()
{
cout<<"请输入查询方式 : "<<endl;
cout<<"1. 按学号查询"<<endl;
cout<<"2. 按姓名查询"<<endl;
cout<<"3. 退出查询"<<endl;
}



//查询学生信息queryRecord
void queryRecord()
{
int key;
cout<<endl;
Info_query();
cout<<"请输入您的选择 : ";
cin>>key;

if(key == 1)
{
int targetNum;
cout<<"请输入您欲查询学生的学号 : ";
cin>>targetNum;

query_Num(targetNum);
cout<<endl;
}

if(key == 2)
{
char targetName[20];
cout<<"请输入您欲查询学生的学号 : ";
cin>>targetName;

query_Name(targetName);
cout<<endl;
}

//退出查询,退回到主菜单吧...
if(key == 3)
{
while(1)
{
menu_CMD();
}
}
}


//按学号查询
void query_Num(int tarNum)
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(record[i].num == tarNum)
{
//如果表中有该学生信息的话,仅用输出该学生的信息即可.
//输出该学生的信息
cout<<"该学生的信息如下 : "<<endl;

//显示表头信息
show_Table();

//显示该学生具体的信息
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
cout<<""<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];
cout<<endl;
}
}
}



//按姓名查询
void query_Name(char tarName[])
{
int i;
for(i = 1;i <= stuNum;i++)
{
if(strcmp(record[i].name,tarName) == 0)
{
cout<<"该学生的信息如下 : "<<endl;

show_Table();

cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
cout<<""<<record[i].score[0]<<""<<record[i].score[1]<<""<<record[i].score[2];
cout<<endl;
}
}
}



///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////



//先显示所有学生的信息吧
//显示record里所有学生的成绩
void display()
{
show_Table();
int i,j;
for(i = 1;i <= stuNum;i++)
{
//cout<<"学号"<<""<<"姓名"<<""<<"性别";
cout<<record[i].num<<""<<record[i].name<<""<<record[i].sex;
for(j = 0;j < SUBJECT_NUM;j++)
{
cout<<""<<record[i].score[j];
}
cout<<endl;
}
cout<<endl;
}


//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//退出
void quit()
{
char choi;
cout<<"您确定要退出吗?"<<endl;
cout<<"请输入您的选择(Y/N) : ";
cin>>choi;
if((choi == 'Y')||(choi == 'y'))
{
cout<<"现在退出学生信息管理系统"<<endl;
exit(0);
}
//如果不是退出,则接着退回到主界面
else
{
cout<<endl;
menu_CMD();
}

}

这个是原创的... 在C-Free 4.0里跑过,可以正常运行
你可以试着跑一下,如果有什么问题可以和我联系

#include <iostream>
#include <iomanip>
#include <string>

using namespace std;

typedef struct student {
unsigned m_id;
string m_name;
unsigned m_age;
string m_sex;
string m_address;
string m_contact;
string m_dormitory;
struct student *m_next;
}student;

class CStudent {
private :
student *head;
public :
CStudent() {
head = new student;
head->m_id = 0;
head->m_name = "noname";
head->m_next = NULL;
}
~CStudent() {
student *p = head,*q;
while(p) {
q = p;
p = q->m_next;
delete q;
}
}
student readdata(int model); // model = 1:不读取学号,2:不读取姓名,其他,读取所有信息
void entering();
bool insert(const student &astu);
student *findid(unsigned id) const;
student *findname(const string &name) const;
student *findsex(const string &sex) const;
student *finddormitory(const string &dormitory) const;
unsigned boys() const;
unsigned girls() const;
unsigned headcount() const;
bool eraseid();
bool erasename();
bool modifyid();
bool modifyname();
void Show() const;
void query() const;
void friend statistics(const CStudent &aclss);
void friend erase(CStudent &aclss);
void friend modify(CStudent &aclss);
};

string readstring() {
string str;
while(cin.get() != '
');
cin >> str;
return str;
}

student CStudent::readdata(int model) {
student tmp;
if(model != 1) { cout << "学    号: "; cin >> tmp.m_id; }
if(model != 2) { cout << "姓    名: "; tmp.m_name = readstring(); }
cin >> tmp.m_age;
cout << "性    别: ";
tmp.m_sex = readstring();
cout << "住    址: ";
tmp.m_address = readstring();
cout << "联系方式: ";
tmp.m_contact  =readstring();
cout << "寝    室: ";
tmp.m_dormitory = readstring();
return tmp;
}

void CStudent::entering() {
student tmp;
cout << "学号(0 to return): ";
cin >> tmp.m_id;
while(tmp.m_id) {
if(findid(tmp.m_id) == NULL) {
cout << "姓    名: ";
tmp.m_name = readstring();
cout << "年    龄: ";
cin >> tmp.m_age;
cout << "性    别: ";
tmp.m_sex = readstring();
cout << "住    址: ";
tmp.m_address = readstring();
cout << "联系方式: ";
tmp.m_contact = readstring();
cout << "寝    室: ";
tmp.m_dormitory = readstring();
insert(tmp);
}
else cout << "重复的学号:" << tmp.m_id << endl;
cout << "学号(0 to return): ";
cin >> tmp.m_id;
}
}

student *CStudent::findid(unsigned id) const {
student *p;
for(p = head; p->m_next; p = p->m_next)
if(p->m_next->m_id == id) return p;
return NULL;
}

student *CStudent::findname(const string &name) const {
student *p;
for(p = head; p->m_next; p = p->m_next)
if(p->m_next->m_name == name) return p;
return NULL;
}


student *CStudent::findsex(const string &sex) const {
student *p;
for(p = head; p->m_next; p = p->m_next)
if(p->m_next->m_sex == sex) return p;
return NULL;
}

student *CStudent::finddormitory(const string &dormitory) const {
student *p;
for(p = head; p->m_next; p = p->m_next)
if(p->m_next->m_dormitory == dormitory) return p;
return NULL;
}

bool CStudent::insert(const student &astu) {
student *newnode,*p = head;
if(p->m_next == NULL) {
p->m_next = new student(astu);
p->m_next->m_next = NULL;
return true;
}
while(p->m_next) {
if(p->m_next->m_id == astu.m_id) {
cout << "重复的学号,插入失败!
";
return false;
}
if(p->m_next->m_id > astu.m_id) {
newnode = new student(astu);
newnode->m_next = p->m_next;
p->m_next = newnode;
return true;
}
p = p->m_next;
}
p->m_next = new student(astu);
p->m_next->m_next = NULL;
return true;
}

unsigned  CStudent::boys() const {
unsigned cnt = 0;
student *p;
for(p = head->m_next; p; p = p->m_next)
if(p->m_sex == "男") ++cnt;
return cnt;
}

unsigned CStudent::girls() const {
unsigned cnt = 0;
student *p;
for(p = head->m_next; p; p = p->m_next)
if(p->m_sex == "女") ++cnt;
return cnt;
}

unsigned CStudent::headcount() const {
unsigned cnt = 0;
student *p;
for(p = head->m_next; p; p = p->m_next,++cnt);
return cnt;
}

bool CStudent::eraseid() {
student *q,*p;
unsigned id;
cout << "输入要删除的学号:";
cin >> id;
p = findid(id);
if(p == NULL) {
cout << "没有找到学号是\"" << id << "\"的学生,删除失败!
";
return false;
}
q = p->m_next;
p->m_next = q->m_next;
delete q;
return true;
}
bool CStudent::erasename() {
student *q,*p;
string name;
cout << "输入要删除人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout << "没有找到姓名是\"" << name << "\"的学生,删除失败!
";
return false;
}
q = p->m_next;
p->m_next = q->m_next;
delete q;
return true;
}

bool CStudent::modifyid() {
student tmp,*p;
unsigned id;
cout << "输入要修改的学号:";
cin >> id;
p = findid(id);
if(p == NULL) {
cout << "没有找到学号是\"" << id << "\"的学生,修改失败!
";
return false;
}
tmp = readdata(1);
tmp.m_id = id;
*p = tmp;
return true;
}

bool CStudent::modifyname() {
student *p,tmp;
string name;
cout << "输入要修改人的姓名:";
name = readstring();
p = findname(name);
if(p == NULL) {
cout << "没有找到姓名是\"" << name << "\"的学生,修改失败!
";
return false;
}
tmp = readdata(2);
tmp.m_name = name;
*p = tmp;
return true;
}

int menu() {
int choice;
do {
system("cls");
cout << "****************************
";
cout << "*   学生基本信息管理系统   *
";
cout << "*==========================*
";
cout << "*    1、录入学生信息       *
";
cout << "*    2、显示学生信息       *
";
cout << "*    3、查询学生信息       *
";
cout << "*    4、添加学生信息       *
";
cout << "*    5、统计学生信息       *
";
cout << "*    6、删除学生信息       *
";
cout << "*    7、修改学生信息       *
";
cout << "*    0、退出管理系统       *
";
cout << "****************************
";
cout << "
请选择:";
cin >> choice;
}while(choice < 0 || choice > 7);
return choice;
}

void show(student *p) {
cout << p->m_id << " " << p->m_name << " " << p->m_age << " ";
cout << p->m_sex << " " << p->m_address << " ";
cout << p->m_contact << " " << p->m_dormitory << endl;
}

void CStudent::Show() const {
student *p;
cout << "----------------------------------------------------------
";
for(p = head->m_next; p; p = p->m_next) show(p);
cout << "----------------------------------------------------------
";
system("pause");
}

void CStudent::query() const {
int select;
unsigned id;
string name;
student *p;
cout << "1、按学号查询
2、按姓名查询
0、返回
";
cin >> select;
switch(select) {
case 1 : cout << "请输入学号:"; cin >> id;
if(p = findid(id)) show(p->m_next);
break;
case 2 : cout << "请输入姓名:"; name = readstring();
if(p = findname(name)) show(p->m_next);
break;
case 0 : return;
default : cout << "选择错误。
";
}
system("pause");
}

void statistics(const CStudent &a) {
unsigned total = a.headcount();
unsigned boys = a.boys();
unsigned girls = a.girls();
cout << "学生总数:" << total << "人。
";
cout << "其中,男生:" << boys << "名。";
cout << "女生:" << girls << "名。
";
system("pause");
}

void erase(CStudent &a) {
int select;
unsigned id;
string name;
student *p,*q;
cout << "1、按学号删除
2、按姓名删除
0、返回
";
cin >> select;
switch(select) {
case 1 : cout << "请输入学号:"; cin >> id;
if(p = a.findid(id)) {
q = p->m_next;
p->m_next = q->m_next;
delete q;
cout << "成功删除 " << id << " 的信息。
";
}
break;
case 2 : cout << "请输入姓名:"; name = readstring();
if(p = a.findname(name)) {
q = p->m_next;
p->m_next = q->m_next;
delete q;
cout << "成功删除 " << name << " 的信息。
";
}
break;
case 0 : return;
default : cout << "选择错误。
";
}
system("pause");
}

void modify(CStudent &a) {
int select;
cout << "1、按学号修改
2、按姓名修改
0、返回
";
cin >> select;
switch(select) {
case 1 : if(a.modifyid()) cout << "修改成功。
"; break;
case 2 : if(a.modifyname()) cout << "修改成功。
"; break;
case 0 : return;
default : cout << "选择错误。
";
}
system("pause");
}

int main() {
CStudent a;
int an;
do {
an = menu();
switch(an) {
case 1 : a.entering(); break;
case 2 : a.Show(); break;
case 3 : a.query(); break;
case 4 : a.entering(); break;
case 5 : statistics(a); break;
case 6 : erase(a); break;
case 7 : modify(a); break;
case 0 : break;
default : cout << "选择错误。
"; break;
}
}while(an);
return 0;
}



Java实现一个简单的学生信息管理系统
稍等吧 现在帮你写个 不是难事 写出来通知你 需要数据库吗?还在不?Student 类 public class Student { private int id;private int age;private int score;private String name;public Student(){ } public Student(int id, int age, int score, String name){ this.id = id;this.age...

C语言程序设计:学生信息管理系统设计
详情请查看视频回答

信息管理与信息系统是什么?
因此企业需要的是真正的复合应用型人才。他们掌握现代管理学理论、计算机科学技术知识及应用能力,具备系统思想,掌握信息系统分析与设计方法以及信息资源开发、管理和利用等方面的基本技能,毕业后能在各类企业、事业单位,从事信息管理以及信息系统分析、设计、实施、管理和评价等方面的工作。

列举两个在学习、生活中常见的管理信息系统,并简要介绍其功能。_百度...
PHILIPS公司的分销管理系统包括了总账、应收应付、UFO表等财务系统模块,又包括了采购管理、库存管理、存货核算和销售管理等购销存业务系统模块。通过二次开发,分销管理系统增加了报表系统作为基础软件的外挂模块,该报表系统主要包括供应链管理模块和应收款管理模块。PHILIPS分销商管理信息系统的特点是财务业务...

如何完善学生就业信息管理系统?
最近关注了一下潍坊工程职业学院,了解到潍坊工程职业学院就业管理系统是该学院为学生提供的一个非常重要的平台。以下有几点看法和建议:1.系统功能应该更加完善:就业管理系统涉及到很多方面,例如就业信息发布、简历投递、招聘会预约等等。我认为该系统还可以加强以下功能:提供更加丰富的招聘信息、增加企业在线...

计算机信息管理系统的设计原则方法及原理分析
在使用该方法设计计算机信息管理系统时,包括的内容有系统初步设计、系统需求解释、系统测试、调试系统等。其中系统初步设计和系统解释阶段需要用户参与,系统设计者能够获得基本的需求数据,然后借助相关的开发工具能够快速制作出对应的应用系统。 2.2周期设计法 周期法属于一种管理信息系统的设计手段,它主要由结构化系统分析...

信息管理与信息系统专业学什么?
信息管理与信息系统专业的课程涵盖了多个领域,旨在为学生提供全面的知识和技能。以下是该专业的主要课程,按照不同的类别进行分点表示和归纳:一、基础理论知识课程 经济学:介绍经济基本原理和经济活动分析方法,培养学生对经济现象和规律的理解。管理学:涵盖管理理论、组织行为学、人力资源管理等内容,培养...

用SQL编写学生学籍管理信息系统
目前的数据库系统ORACLE,SYBASE,INFORMIX,DB2等,各有千秋,根据“学生学籍管理系统”对数据量的要求,本系统采用了SQL Server 200数据库管理系统。学生学籍管理系统中各表的逻辑结构如下所示:表1 student_Info学生个人基本信息 表2 Class_Info学校班级信息表 表3 Course_Info课程基本信息表 表4 grade...

信息系统的基本功能有哪些?
MIS(Management Information System,管理信息系统) ,是一个由人、计算机及其他外围设备等组成的能进行信息的收集、传递、存贮、加工、维护和使用的系统。它是一门新兴的科学,其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的...

学生国网学籍号查询方法?
2015年1月21日,教育部通过全国中小学生学籍信息管理系统为全国中小学生发放了正式学籍号。该系统于2014年1月10日全国联网试运行。全国学籍号是教育部为确保以中小学生身份基本信息为核心的数据准确,利用公安部人口信息管理系统及国家人口基础信息库对学生数据进行核查对比,对准确无误的全国中小学生核发全国...

绥中县13657339987: 谁能提供一下用VC++制作一个学生信息管理系统的代码的啊?? -
塞英乌拉: #include <iostream> #include <vector> #include <string> #include <cstdlib> using namespace std; class student { public: string name; string number; string sex; void setmsg(); }; void student::setmsg() { cout<<"请输入姓名:"; cin>>name; cout<...

绥中县13657339987: 用C++编写一个程序 学生信息管理系统 -
塞英乌拉: #include#include#include#include#defineMax 1000usingnamespacestd;classstudent{private: char name[20]; int number; int grade;public: student(char*,int,int); char*GetName(){returnname;} int GetNo(){returnnumber;} int GetGra(){returngrade;}};...

绥中县13657339987: 跪求用c++编写的“学生信息管理系统”程序 -
塞英乌拉: #include<iostream.h> #include<string.h> #include<iomanip.h> //using namespace std; struct student {char name[15];int number;float chinese,math,English; }; student s[50]; int i=0,n=0; double allscore[50]; void insert(); void delete1(); void find(); ...

绥中县13657339987: c++学生信息管理系统 -
塞英乌拉: #include#include#include#include using namespace std;const int maxn = 32;struct student{ char id[maxn]; char name[...

绥中县13657339987: 谁有学生管理系统c++的代码 -
塞英乌拉: #include typedef struct stud //学生信息结构 { long num; char name[20]; float score; }Stud; typedef struct node { Stud student; struct node *next; }Node; Node *head=NULL; void read(void); void inser(long b); void print(); void find(long b); void ...

绥中县13657339987: C程序设计学生信息管理系统 -
塞英乌拉: #include#include typedef struct student{ int id;//学号 char name[20]; int score; struct student *next;}stu,*spt;typedef struct{ spt head;...

绥中县13657339987: 求c++学生档案管理系统 急!! -
塞英乌拉: /*这是本人刚学习C++不久时写的一个学生信息管理系统,基本功能没问题,至于算法,可能有些不是很好的地方.*//*下面分几个文件,你把文件分别保存,最后打开“学生信息管...

绥中县13657339987: 用C++编写一个学生信息管理系统 -
塞英乌拉: 刚好以前写过,捡个便宜了(就是项目是姓名、学号和各课成绩,要改的话不难)#include<iostream> #include<cstring> #include<fstream>using namespace std; int num; const int MAX_NUM_OF_STUDENTS=1000; struct Student { int no;...

绥中县13657339987: C++编写学生信息管理系统 -
塞英乌拉: #define NULL 0#include#include# define LEN sizeof(struct node) struct node { int num;float score; struct node *llink, *rlink; /* 链域,llink是左链域指针,rlink是右链域指针*/ }; struct node *creat() { struct node *p,*q,*head; int num;float score; head...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网