学生数据库管理系统(付源码)

大一期间学C++ 课程,做的课设,供大家学习交流!


各种功能的简单介绍
      增加记录功能:用于增加学生各门成绩信息,数学,语文及英语,并将各门成绩信息存于系统界面文件当中,从而显示在系统主界面上。
     查询记录功能:用于查询之前已输入的学生各门成绩信息,通过函数调用将该生的成绩信息查找出来,并用窗口提示的方式告知用户。
      删除记录功能:用于删除已录入学生的各门成绩的信息,使用之后,该生的全部个人信息将从界面文件系统里消失。
更新记录功能:即可以实现对某一学生的信息进行修改,修改之后系统将自动存入修改后该生新的各门成绩的信息。
     平均分排序功能:即对主界面显示列表上的学生成绩的平均分进行排序,可以按由高到低的方式进行排序。
     以上就是本系统的一些简单功能。


/*********************************头文件**************************************/
#include <iostream>
#include <conio.h>    //屏幕操作函数,用于getch(),这是C的操作
#include <iomanip>
using namespace std;


int INDEX[100];                                    //可以存储100个数据
/*********************************结构体*************************************/
struct Student   
{
     int id;                                       //学号
     char name[20];                                //姓名
     char sex;                                     //M男性 F女性
     float chinese,math,English;                   //3门成绩
	 float sum;                                    //总分
	 float average;                                //平均分
};     


/********************************全局变量**********************************/
const int count=1;                                    //记录学生总人数
struct Student students[count];                       //记录学生信息

/********************************函数声明*********************************/

void  menu( );                                      //菜单页面
void page_title(char *menu_item);                   //清屏输出函数,变量指针
void computer( );                                   //计算函数
void student_new( );                                //录入学生基本信息
void student_print( );                              //输出学生基本信息
int  search_id( );                                  //查询学生记录
void sort_aver( );                                  //按成绩平均分排序
void student_del( );                                //删除学生信息
void score_edit( );                                 //修改成绩
void return_confirm( );                             //按键返回函数


/*******************************主函数**********************************/
void main( )
{   //主函数体所在的第一页是主菜单
    menu: page_title("Menu");                    //主菜单所在的页面,且返回主菜单要清除之前的屏
     menu( );     
     switch(getch())
     {
       case '1': student_new( );break;                //录入学生基本信息
       case '2': search_id( );break;                 //查询学生记录
       case '3': sort_aver( );break;                  //按成绩平均分排序
       case '4': student_del( );break;               //删除学生信息
       case '5': score_edit( );break;                 //修改成绩
       case '0' : exit(0);
     }
	 goto menu;                                      //操作完毕跳转主菜单
	  // menu在首行menu: page_title("Menu"); 中被定义了
}




/**************************-------函数定义------**************************/

/********************************菜单页面*********************************/
void  menu(void)                                         
{
     cout<<"请用数字键选择操作:"<<endl;
     cout<<"   1 录入并显示学生基本信息"<<endl;
     cout<<"   2 查询学生基本信息"<<endl;
     cout<<"   3 对学生成绩进行排序"<<endl;
     cout<<"   4 删除学生基本信息"<<endl;
     cout<<"   5 修改成绩"<<endl;
     cout<<"   0 exit"<<endl;
     cout<<"温馨提示:男性-M,女性-F"<<endl;
     cout<<endl<<"请输入数字:";
}

/*********************************清屏和显示页面标题函数*****************************/
void page_title(char *menu_item)                    
 {
  system("CLS");    // //清除屏幕内容,接着打印内容,即是所谓的跳转
  cout<<"------------------------->>学生信息管理系统<<<<-----------------------------";
  cout<<endl<<endl<<menu_item<<endl<<endl;
 }

/********************************按键返回函数*********************************/
void return_confirm(void)                           //不至于界面立刻返回,按键后才返回
 {
   cout<<"\n\n---请输入任意键进行返回:";            
   getch( );                                         //输入任意键                                        
 }

/*********************************计算函数*********************************/
void computer( )   
{
	int n;
	for(n=0;n<count;n++)
	{
		students[n].sum=students[n].chinese+students[n].math+students[n].English;
	    students[n].average=(students[n].chinese+students[n].math+students[n].English)/3;
    }
	
}

/*********************************录入学生基本信息*************************/
void student_new(void) 
{
     int n; 
     page_title("录入学生基本信息");
     for(n=0;n<count;n++) 
     {   
        cout<<"id=";
        cin>>students[n].id;
        cout<<"Name=";
        cin>>students[n].name;
        cout<<"Sex=";
        cin>>students[n].sex;
        cout<<"chinese=";
        cin>>students[n].chinese;    
        cout<<"math=";
        cin>>students[n].math; 
        cout<<"English=";
        cin>>students[n].English;
        cout<<endl;
	 }
	 cout<<"录入效果:"<<endl;
     student_print( );
	 return_confirm();	 
	
 }
 
/**************************************输出学生基本信息************************/
void student_print(void)     
{	
    cout<<setw(4)<<"id"<<setw(15)<<"name"<<setw(6)<<"sex"<<setw(10)<<"chinese"<<setw(7)<<"math"<<setw(10)<<"English";
    cout<<setw(10)<<"sum"<<setw(10)<<"average"<<endl;
    computer( );
    int n;
	for(n=0;n<count;n++)
	{

         cout<<setw(4)<<students[n].id;
         cout<<setw(15)<<students[n].name<<setw(6)<<students[n].sex <<setw(10)<<students[n].chinese<<setw(7)<<students[n].math; 
         cout<<setw(10)<<students[n].English<<setw(10)<<students[n].sum<<setw(5);
         cout<<setw(10)<<students[n].average;
		 cout<<endl;
	}
}

/************************************查询学生成绩******************************/
int search_id(void)   
{
	 page_title("查询学生成绩");
     computer( );
     cout<<"请输入学生的学号:";
     int i,n;
     cin>>i;                               //输入学号,查询学生各门课程的成绩,并显示。

     for(n=0;n<count;n++)
     {
        if(i==students[n].id)    
		{	  
         cout<<setw(4)<<students[n].id;
         cout<<setw(15)<<students[n].name<<setw(6)<<students[n].sex <<setw(10)<<students[n].chinese<<setw(7)<<students[n].math; 
         cout<<setw(10)<<students[n].English<<setw(10)<<students[n].sum<<setw(5);
         cout<<setw(10)<<students[n].average;
		 cout<<endl;
		 return_confirm();                   //在结束之前进行“按键”操作
		 return n;                          //如果匹配,就提前结束,返回值为n
		 
		}
      }
	  cout<<endl<<"  ----sorry,没有找到该学生成绩信息----"<<endl<<endl;
	  return_confirm();
	  return -1;
	 
}

/**************************************按成绩平均分排序*****************************/
void sort_aver(void)
{    
	page_title("按成绩平均分排序");
     struct Student t;                                       //定义一个结构体类型t
     //冒泡法排序
	 computer( );
	 int i,j;
     for(i=0;i<count-1;i++)
     {
	    for(j=0;j<count-1-i;j++)
		{
	      if (students[j].average<students[j+1].average)   //升序>   降序<
		  {
	          t=students[j];                             //交换的是整体(结构体)
              students[j]=students[j+1];
	          students[j+1]=t;
		  }
		}
    }
    cout<<"排序后学生成绩的排名情况:"<<endl;
    //排序后输出
    student_print( ); 
	return_confirm();	
}


/***********************************************删除学生信息****************************/
void student_del(void)    
 {
	page_title("删除学生成信息");
	computer( );
    int i,n;
    cout<<"删除学生基本信息,请输入学号:";
    cin>>i;
    for(n=0;n<count;n++)   
   { 
       if(i==students[n].id)      //输入学号与某一信息匹配
     {
         students[n].id=0;          //学号归零
         students[n].sex='0';
		 students[n].chinese=0;
		 students[n].math=0;
		 students[n].English=0;
		 students[n].sum=0;
         students[n].average=0;
         cout<<"-----该学生的信息已被删除"<<endl;break;
     }
	   
   }
   cout<<"删除后的效果:"<<endl;
   student_print( );
   return_confirm();
 }

/***********************************************修改成绩********************************/
void score_edit(void)   
 {	
    page_title("修改学生的成绩");
    int  i,n;              //找到某一学生信息,重新录入
    cout<<"修改学生成绩,请输入学号:";
    cin>>i;
	for(n=0;n<count;n++)
	{
      if(students[n].id==i)                 //注意等号"=="
	  {
       cout<<"  id="<<students[n].id<<"   ";
	   cout<<"Chinese="<<students[n].chinese<<"   "; 
       cout<<"math="<<students[n].math<<"   ";
       cout<<"English:"<<students[n].English<<endl;
       cout<<"请输入该学生新的信息:"<<endl;
       cout<<"Chinese=";
       cin>>students[n].chinese;
       cout<<"Math=";
       cin>>students[n].math;
       cout<<"English=";
       cin>>students[n].English;
       cout<<"修改后成绩信息:"<<endl;
	   cout<<"  id:"<<students[n].id<<"   ";
	   cout<<"Chinese:"<<students[n].chinese<<"   "; 
       cout<<"math:"<<students[n].math<<"   ";
       cout<<"English:"<<students[n].English<<endl;
	  }
	}
	return_confirm();
 }
完毕,终结!--- 谢谢观看




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值