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

作者&投稿:栋羽 (若有异议请与网页底部的电邮联系)
学生信息管理系统最简单源代码。~

方法一:
1、创建一个c语言项目。然后右键头文件,创建一个Stu的头文件。

2、然后编写头文件的代码。再将数据结构的增删改查和结构体写入头文件。

3、然后在源文件中创建main源文件和Stu源文件。再main文件中写入intmian()代码。

4、然后在mian主函数中,写入while语句无限循环。再写入Init函数。

5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。

6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。

方法二:
1、新建一个学生实体类,用于存放学生的各项信息。

2、新建一个链表节点类,每个节点存放一个学生信息及下一个节点的引用。

3、添加一个主操作类,并添加本系统的菜单方法。

4、定义链表的头节点,当前最后一个节点,以及主控制逻辑信息。

5、使用io流逐行读取存有学生信息的文本文件,对每行字符串,采用分割后得到一个字符串数组,数据各项即为一个学生的具体信息。然后新建一个节点加入到链表。

6、运行结果:

#include
#include
#include
using namespace std;
class student
{
public:
void setdate();//录入
void chazhao();//查找
void showdate();//输出
//void change();//修改
void del();//删除
private:
student *next,*head;
string name;
int age;
};
void student::setdate()
{
int n;
cout<<"请输入所要录入的学生人数:"<<endl;
cin>>n;
student *p,*s;
int i;
for(i=0;i<n;i++)
{
p=new student;
cout<<"分别输入学生的年龄和姓名:";
cin>>p->age>>p->name;
if(i==0)
head=s=p;
else s->next=p;
p->next=NULL;
s=p;
}
ofstream fout("d://program//test.txt",ios::out);
if(!fout){cout<<"cannot open file.";}
for(i=0;i<n;i++)
{
foutagename<<endl;
head=head->next;
}
fout.close();
}
void student::showdate()
{
student *p;
ifstream fout1("d://program//test.txt",ios::in);
if(!fout1){cout<<"cannot open file.
";exit(1);}
p=new student;
while(fout1.good())
{
fout1>>p->age>>p->name;
if(fout1.good())
coutagename<<endl;
}
fout1.close();
}
void student::chazhao()
{
string a;
int k=0;
cout<<"输入你要查找的学生的姓名:
";
cin>>a;
student *p;
ifstream fout1("d://program//test.txt",ios::in);
if(!fout1){cout<<"cannot open file.
";exit(1);}
while(fout1.good())
{
p=new student;
fout1>>p->age>>p->name;
if(p->name==a)
{
coutagename<<endl;
k=1;
break;
}
}
if(k==0) cout<<"你所查找的学生不存在!!!
";
fout1.close();
}
void student::del()
{
student *p,*op;
string namea;
cout<<"输入你所要删除的学生的姓名:
";
cin>>namea;
ifstream fout("d://program//test.txt",ios::in);
if(!fout){cout<<"cannot open file.";}
while(fout.good())
{
p=new student;
int i=0;
fout>>p->age>>p->name;
if(p->name==namea&&i==0)
{
delete p;
break;
}
else if(p->name==namea&&i!=0)
{
op->next=p->next;
delete p;
break;
}
else
{
op=p;
p=p->next;
}
i++;
}
cout<<"删除成功!!!
";
fout.close();
}
int main()
{
student duixiang;
int m;
cout<<"-------------欢迎使用我的成绩管理系统!
";
cout<<"--------------------1.录入学生信息
";
cout<<"--------------------2.输出学生信息
";
cout<<"--------------------3.查找学生信息
";
cout<<"--------------------4.删除学生信息
";
cout<<"--------------------5.退出系统
";
cout<<"请选择所要执行的操作(1~4):
";
cin>>m;
switch(m)
{
case 1:duixiang.setdate();
case 3:duixiang.chazhao();
//case 3:duixiang.change();break;
case 4:duixiang.del();break;
case 2:duixiang.showdate();
case 5:break;
}
return 0;
}
/*void menu::shanchu() {
system("cls") ;
char ch[10] ;
cout<<"
*** 删除信息 ***
"<<endl ;
cout<<"
请输入要删除人的姓名 : " ;
cin>>ch ;
addbook *p , *p1 ;
p1 = head ;

while( p1 )
{
// coutname<<endl ; // 查找结点
if(strcmp( p1->name , ch ) == 0 )
break ;
else {
p = p1 ; // 标记相连结点位置,删除后可连接
p1 = p1->next ;
}
}
if( p1!= NULL )
{ // 判断结点是否为空
cout<<"所要删除的名片的信息如下,请确认!:
"<<endl ;
output(p1) ; // 函数输出名片信息
cout<<"请再次确认是否删除该信息!!!(Y/N) :" ;
char c[10] ;
while(1)
{
cin>>c ;
if( toupper(c[0]) == 'Y' && c[1]=='\0' )
{
if( p1 == head )
{ // 判断是否是第一个结点
head = p1->next ;
delete p1 ;
}
else
{
p->next = p1->next ; // 已标记结点的连接
delete p1 ;
}
cout<<" *** 删除成功 ***
" ;
system("cls") ;
cout<<"




" ;
cout<<" *** 是否继续删除 ***
" ;
cout<<"*** 请确认(Y/N) :" ;
while(1)
{
cin>>c;
if( toupper(c[0]) == 'Y' && c[1]=='\0' )
shanchu() ;
else if( toupper(c[0]) == 'N' && c[1]=='\0' )
return ;
else cout<<"输入错误 , 请重新输入(Y/N) :" ;
}
}
else if( toupper(c[0]) == 'N' && c[1]=='\0' ) return ;
else cout<<"输入错误 , 请重新输入(Y/N) :" ;
}
}
else {
cout<<"


未找到该信息!!!"<<endl ;
system("pause") ;
return ;
}
}
*/

#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#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<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别";
cout<<"\t"<<subject[0]<<"\t"<<subject[1]<<"\t"<<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 < 1)||(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<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

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

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

cout<<"您所要删除的学生信信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;

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

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

cout<<"您所要删除的学生信信息是 : "<<endl;
show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t"
<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];

cout<<endl;

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

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

show_Table();
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex<<"\t";
cout<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(int j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<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<<"\t"<<record[i].name<<"\t"<<record[i].sex;
cout<<"\t"<<record[i].score[0]<<"\t"<<record[i].score[1]<<"\t"<<record[i].score[2];
cout<<endl;
}
}
}

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

//先显示所有学生的信息吧
//显示record里所有学生的成绩
void display()
{
show_Table();
int i,j;
for(i = 1;i <= stuNum;i++)
{
//cout<<"学号"<<"\t"<<"姓名"<<"\t"<<"性别";
cout<<record[i].num<<"\t"<<record[i].name<<"\t"<<record[i].sex;
for(j = 0;j < SUBJECT_NUM;j++)
{
cout<<"\t"<<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.h>
#include<iomanip.h>
void input(); //声明7个函数
void output();
void paixu();
void chazhao();
void charu();
void shanchu();
void tongji();
struct Student //结构体
{
int num;
char name[12];
float math;
float eng;
float com;
float sum;
float ave;
};
Student x[30];
int N=0;
void main()
{
int m;
do
{ //开场效果
cout<<endl;
cout<<endl;
cout<<" * * * * * * * * * * * * * * * * * * * * * * *"<<endl;
cout<<" * 欢迎使用学生信息管理系统 *"<<endl;
cout<<" * 1.输入信息 2.输出信息 *"<<endl;
cout<<" * 3.总分排序 4.查找信息 *"<<endl;
cout<<" * 5.插入信息 6.删除信息 *"<<endl;
cout<<" * 7.统计分数 8.退出系统 *"<<endl;
cout<<" * Made by Shanglogo *"<<endl;
cout<<" * * * * * * * * * * * * * * * * * * * * * *"<<endl;
cout<<endl;
cout<<"请选择···"<<endl;
cin>>m;
switch(m)
{
case 1: input();break; //选择七个函数。。
case 2: output();break;
case 3: paixu();break;
case 4: chazhao();break;
case 5: charu();break;
case 6: shanchu();break;
case 7: tongji();break;
case 8: cout<<"谢谢使用!"<<endl;break;
default: cout<<"请输入正确数字(1--8)"<<endl;
}
}while(m!=8);
}
void input() //输入信息
{
char m;
do
{
int n=0;int z=N,t=0;
do{
t=0;
cout<<"请输入学号!"<<endl;
cin>>x[N].num;

for( n=0;n<z;n++)
if(x[N].num==x[n].num)
{

cout<<"该学号已存在!!"<<endl;
t++;
break;
}
}while(t==1);

cout<<"请输入姓名"<<endl;
cin>>x[N].name;
do
{
cout<<"请输入数学成绩(0--100)"<<endl;
cin>>x[N].math;
}while(x[N].math<0||x[N].math>100);
do
{
cout<<"请输入英语成绩(0--100)"<<endl;
cin>>x[N].eng;
}while(x[N].eng<0||x[N].eng>100);
do
{
cout<<"请输入计算机成绩"<<endl;
cin>>x[N].com;
}while(x[N].com<0||x[N].com>100);
x[N].sum=x[N].math+x[N].eng+x[N].com;
x[N].ave=x[N].sum/3;
cout<<"是否继续输入?(继续请输入y,结束输入其他)"<<endl;
cin>>m;
N++;
}while(m=='y');
}
void output() //输出信息
{
int m;
if(N>0)
{
cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"数学"<<setw(10)<<"英语"<<setw(10)<<"计算机"<<setw(10)<<"总分"<<setw(10)<<"平均分"<<endl;
for(m=0;m<N;m++)
cout<<setw(10)<<x[m].num<<setw(10)<<x[m].name<<setw(10)<<x[m].math<<setw(10)<<x[m].eng<<setw(10)<<x[m].com<<setw(10)<<x[m].sum<<setw(10)<<x[m].ave<<endl;
cout<<"\0"<<endl;
}
else
cout<<"未输入任何信息!!"<<endl;
}
void paixu() //排序
{
if(N>0)
{
for(int k=0;k<N-1;k++)
for(int m=0;m<N-k;m++)
{
Student max;
if(x[m].sum<x[m+1].sum)
{
max=x[m+1];
x[m+1]=x[m];
x[m]=max;
}

}

}
else
cout<<"未输入任何信息!!"<<endl;
}
void chazhao() //查找
{
int n;
if(N>0)
{
cout<<"请输入要查找学生的学号!"<<endl;
cin>>n;
for(int m=0;m<N;m++)
if(x[m].num==n)
{
cout<<setw(10)<<"学号"<<setw(10)<<"姓名"<<setw(10)<<"数学"<<setw(10)<<"英语"<<setw(10)<<"计算机"<<setw(10)<<"总分"<<setw(10)<<"平均分"<<endl;
cout<<setw(10)<<x[m].num<<setw(10)<<x[m].name<<setw(10)<<x[m].math<<setw(10)<<x[m].eng<<setw(10)<<x[m].com<<setw(10)<<x[m].sum<<setw(10)<<x[m].ave<<endl;

break;
}
if(x[m].num!=n)
cout<<"该学号不存在!!"<<endl;
}
else
cout<<"未输入任何信息!!"<<endl;
}
void charu() //插入
{
char n;
do
{
cout<<"请输入学号!"<<endl;
cin>>x[N].num;
cout<<"请输入姓名"<<endl;
cin>>x[N].name;
do
{
cout<<"请输入数学成绩(0--100)"<<endl;
cin>>x[N].math;
}while(x[N].math<0||x[N].math>100);
do
{
cout<<"请输入英语成绩(0--100)"<<endl;
cin>>x[N].eng;
}while(x[N].eng<0||x[N].eng>100);
do
{
cout<<"请输入计算机成绩"<<endl;
cin>>x[N].com;
}while(x[N].com<0||x[N].com>100);
x[N].sum=x[N].math+x[N].eng+x[N].com;
x[N].ave=x[N].sum/3;
N++;
cout<<"是否继续输入?(继续,输入y,否则输入其他)"<<endl;
cin>>n;
}while(n=='y');
}
void shanchu() //删除
{
if(N>0)
{
cout<<"请输入要删除学生的学号!"<<endl;
int n,t=0;
cin>>n;
for(int m=0;m<N;m++)
if(x[m].num==n)
{
for(int k=m;k<=N+1;k++)
x[k]=x[k+1];
N--;
t=1;
}
if(t==0)
cout<<"该学号不存在!!"<<endl;
}
else
cout<<"未输入任何信息!!"<<endl;
}
void tongji() //统计
{
if(N>0)
{
int n,a=0,b=0,c=0,d=0,e=0,f=0;
for(int m=0;m<N;m++)
{
n=(int)x[m].ave/10;
switch(n)
{
case 10: a++;break;
case 9: b++;break;
case 8: c++;break;
case 7: d++;break;
case 6: e++;break;
default: f++;
}
}
cout<<"分数段 100"<<" 90--100"<<" 80--90 "<<" 70--80 "<<" 60--70 "<<" 60以下 "<<endl;
cout<<"人数 "<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<endl;
}
else
cout<<"未输入任何信息!!"<<endl;
}

可以依靠Baiduhi提醒我们
有机会能够处理你所遇到的工作
具体的要求也能够提醒我们
学生信息管理**C++源代码
ES:\\B72C884B60A53CB7BF95C26F5594474A


如何用C语言编写学生信息管理系统
参考如下学生信息管理系统的C源代码吧。include <stdio.h>#include <string.h>\/*定义学生结构体*\/struct Student{ char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Average;};\/*声明学生数组及学生数量*\/struct Student students[1000];int...

学生信息管理系统最简单源代码。
5、在Stu源文件的Init函数用printf语句,将学生管理系统输出。再创建链表的头节点head。6、然后用switch函数对操作进行判断。再执行数据结构的增删改查功能。这样一个学生管理系统的基本框架就完成了。方法二:1、新建一个学生实体类,用于存放学生的各项信息。2、新建一个链表节点类,每个节点存放一个学生...

5.学生信息管理系统设计
试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作;学生信息录入功能(学生信息用文件保存)---输入学生信息浏览功能---输出查询、排序功能---算法:按学号查询、按姓名查询学生信息的删除与修改重要的是使用C语言做。一定要用C语言做。 展开 ...

写一个学生信息的管理系统,用C语言和数据结构,我想请问一下基本的框架...
不知道你要的信息管理功能都要求实现什么功能,只是我前两天做的,可以给你参考一下,用结构做的,其中统计功能是我做的,其他部分是老师编好的 \/*预编译命令*\/ include <stdio.h> include <stdlib.h> include <conio.h> include <string.h> \/*自定义数据类型*\/ typedef struct student{ char ...

C语言程序设计 学生信息管理系统
C语言程序设计 学生信息管理系统 30 【功能要求】(1)学生信息包括:学号,姓名,性别,出生(年,月,日),三门课成绩和总分(数学,英语,C语言,总分)。(2)数据格式:测试数据,以文件方式提供,studf.txt,数据文件自己建... 【功能要求】(1)学生信息包括:学号,姓名,性别,出生(年,月,日),三门课成绩和总分( 数学...

关于C++ 编写一个简单的学生成绩管理系统.通过本系统能实现对学生成绩记...
student(char name[],char numble[],char sex[],float a,float b,float c);student(student &s);void input();\/\/输入学生信息:姓名,学号,性别,英语,数学,语文 float pj();\/\/获取平均分 void stu_delete(student stu[]);\/\/删除 void stu_find(student stu[]);void dispaly();\/\/...

设计题目: 学生信息管理系统设计
设计题目: 学生信息管理系统设计 120 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一程序,提供以下功能:1、学生信息录入功能(学生信息用文件保存)--输入2、学生信息浏览功能--... 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一程序,提供以下功能:1...

用C语言编写一个学生管理系统。
printf("欢迎使用学生成绩管理系统\\n"); printf("[1] 输入所有学生信息\\n"); printf("[2] 输出所有学生成绩\\n"); printf("[3] 按学号查找某个学生信息\\n"); printf("[4] 按姓名查找某个学生信息\\n"); printf("[5] 按学号对学生排序\\n"); printf("[6] 按总成绩对学生排序\\n"); printf("[...

学生信息管理系统源代码
2010-09-20 学生信息管理系统最简单源代码。 147 2014-06-16 学生基本信息管理系统C++源代码 612 2015-07-16 学生信息管理系统源代码,急求 2014-05-22 c语言学生信息管理系统代码 239 2017-01-06 学生基本信息管理系统C++ 源代码 2017-01-03 求学生成绩管理系统的源代码 17 2014-07-11 c语言学生...

用VC编写一个<<学生信息管理系统>>
char c; do { system("cls"); \/*运行前清屏*\/ printf("\\t\\t***学生信息管理系统***\\n"); \/*菜单选择*\/ printf("\\t\\t | 1. 输入档案 |\\n"); printf("\\t\\t | 2. 显示所有档案 |\\n"); printf("\\t\\t | 3. 插入新档案 |\\n"); printf("\\t\\t | 4. 删除档案 |\\n"...

毕节地区19623033702: 谁有学生管理系统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 ...

毕节地区19623033702: 学生管理系统C++代码 -
唐依舒窗: #include<iostream>#include<string> #include<iomanip.h> #include<ctime> #include<conio.h> struct student //定义一个学生结构体 { char name[8]; int num; char add[20]; int Chinese,Math,Enlish,SUM,ave; }; int s=0; class student1 //定义一个学生类 ...

毕节地区19623033702: 学生管理系统C++代码
唐依舒窗: #include<iostream> #include<fstream> #include<iomanip> #include<string> using namespace std; int i; class Stud //学生类 { long no; char name[20]; char tag; char level[10]; public: float score[3]; float sum;void getdate() { tag='#'; cout<<"( 学号 ...

毕节地区19623033702: 谁能提供一下用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<...

毕节地区19623033702: 用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;}};...

毕节地区19623033702: c++学生信息管理系统 -
唐依舒窗: #include#include#include#include using namespace std;const int maxn = 32;struct student{ char id[maxn]; char name[...

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

毕节地区19623033702: 用C语言编写一个学生信息管理系统
唐依舒窗: #include "stdio.h" #include "stdlib.h" #include "string.h" #include "conio.h" jiemian();struct student { char name[50]; char sex[5]; int age; char num[50]; float score1; float score2; float score3; float sum; float ave;}stu[50],del; void gn1() {int...

毕节地区19623033702: 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...

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