C++课程设计--学生考试质量分析系统设计(MFC)

课设题目

学生考试质量分析系统设计

课设要求

  1. 用户管理
  2. 学生信息的录入、删除、修改
  3. 将当前系统中的信息保存在文件中,并可将保存在文件中的信息读入到当前系统中,供用户进行使用
  4. 根据以下关键字进行查询: 学生学号、姓名、班级、课程名称
  5. 分 别按照学号、单科成绩、总成绩、平均成绩进行排序
  6. 查询每门课程的最高分、 最低分及相应学生学号、姓名和班级
  7. 对某门课以班为单位统计不同分数段的学生数及所占比例

程序运行界面

在这里插入图片描述
在这里插入图片描述

核心代码

void pupil::OnButton4() 
{
	// TODO: Add your control notification handler code here
UpdateData(true);
	int sel = m_pupil.GetSelectionMark();
	if(sel ==-1)
	{
		MessageBox("请选择需要修改的车票!");
	}
	else if(m_id==""&&m_name==""&&m_sex==""&&m_age==""&&m_class==""&&m_chinese==""&&m_math==""&&m_english=="")

	{
		MessageBox("修改信息有误,请重新修改!");
	}
else
{

    stu[sel].student_id = m_id;
    stu[sel].name = m_name;
	stu[sel].sex =m_sex;
    stu[sel].age = m_age;
	stu[sel].class_id= m_class;
	stu[sel].chinese= m_chinese;
	stu[sel].math= m_math;
	stu[sel].english= m_english;

    m_pupil.SetItemText(sel,0,m_id); 
    m_pupil.SetItemText(sel,1,m_name);  
	m_pupil.SetItemText(sel,2,m_sex);  
	m_pupil.SetItemText(sel,3,m_age); 
	m_pupil.SetItemText(sel,4,m_class);
	m_pupil.SetItemText(sel,5,m_chinese);
	m_pupil.SetItemText(sel,6,m_math);
	m_pupil.SetItemText(sel,7,m_english);

    MessageBox("修改信息成功!");
}
	
}

void pupil::OnButton5() 
{
	// TODO: Add your control notification handler code here
		int n = m_pupil.GetSelectionMark();

	if(n<0)
		MessageBox("请选中要删除的信息!");
	else
	{ 

        stu.erase(stu.begin()+n);
		m_pupil.DeleteItem(n);
  //清空编辑框
	m_id="";
	m_name="";
	m_sex="";
	m_age="";
	m_class="";
	m_chinese="";
	m_math="";
	m_english="";
	UpdateData(false);
MessageBox("删除成功!");
	}

}

void pupil::OnButton6() 
{
	// TODO: Add your control notification handler code here
		// TODO: Add your control notification handler code here
    UpdateData(true);
	int flag = 1;
	int i = 0;
	if (stu.size()==0){
		flag = 0;
		MessageBox("当前系统未有学生信息!");
	}
    else if( m_id==""&&
		     m_name==""&&
		     m_class==""
			 )
	{
		flag = 0;
		MessageBox("请输入查询信息!");
	}

	if (flag==1) {

		for( i = 0;i < stu.size();i++)
	{
		if ( stu[i].student_id == m_id||stu[i].name == m_name||stu[i].class_id == m_class)	
		{   
			MessageBox("学生信息成功找到!");
            m_id = stu[i].student_id;
            m_name = stu[i].name;
			m_sex = stu[i].sex;
			m_age = stu[i].age;
			m_class = stu[i].class_id;
			m_chinese = stu[i].chinese;
			m_math = stu[i].math;
            m_english = stu[i].english;
			UpdateData(false);
			break;
		}
	}
	}

	if (i==stu.size()&&flag==1)
	{
      MessageBox("学生信息未找到!");
	}
}

bool sort_id(Student &a,Student &b)
{

return _ttoi(a.student_id)>_ttoi(b.student_id);
}
void pupil::OnButton9() 
{
			int index = m_x.GetCurSel();
			CString choice;
  m_x.GetLBText(index,choice); 
  if(choice=="平均成绩")
  {
	  std::sort(stu.begin(),stu.end(),Student::sort_ave_nums);
  }
  else if(choice=="语文")
  {
  	  	std::sort(stu.begin(),stu.end(),Student::sort_chinese);

  }
  else if(choice=="数学")
  {
  	  	std::sort(stu.begin(),stu.end(),Student::sort_math);

  }
  else if(choice=="英语")
  {
  	  	std::sort(stu.begin(),stu.end(),Student::sort_english);

  }
  else if(choice=="学号")
  {
	  	std::sort(stu.begin(),stu.end(),Student::sort_id);

  }
  else  // 总成绩排序
  {	  	std::sort(stu.begin(),stu.end(),Student::sort_nums);

  }
 	m_pupil.DeleteAllItems(); // 全部清空 
for (int i=0;i<stu.size();i++)
{
 		m_pupil.InsertItem(i,stu[i].student_id);
		m_pupil.SetItemText(i,1,stu[i].name);
		m_pupil.SetItemText(i,2,stu[i].sex);
		m_pupil.SetItemText(i,3,stu[i].age);
		m_pupil.SetItemText(i,4,stu[i].class_id);
		m_pupil.SetItemText(i,5,stu[i].chinese);
		m_pupil.SetItemText(i,6,stu[i].math);
		m_pupil.SetItemText(i,7,stu[i].english);
		m_pupil.SetItemText(i,8,stu[i].nums);
		m_pupil.SetItemText(i,9,stu[i].ave_nums);

}
}


void pupil::OnButton11() 
{
	// TODO: Add your control notification handler code here
	
			int index = m_y.GetCurSel();
			CString choice;
  m_y.GetLBText(index,choice); 
  if(choice=="英语")
  {
	  std::sort(stu.begin(),stu.end(),Student::sort_english);
  }
  else if(choice=="语文")
  {
  	  	std::sort(stu.begin(),stu.end(),Student::sort_chinese);

  }
  else  // 数学
  {
  	  	std::sort(stu.begin(),stu.end(),Student::sort_math);

  }
  
  m_pupil.DeleteAllItems(); // 全部清空 

 		m_pupil.InsertItem(0,stu[0].student_id);
		m_pupil.SetItemText(0,1,stu[0].name);
		m_pupil.SetItemText(0,2,stu[0].sex);
		m_pupil.SetItemText(0,3,stu[0].age);
		m_pupil.SetItemText(0,4,stu[0].class_id);
		m_pupil.SetItemText(0,5,stu[0].chinese);
		m_pupil.SetItemText(0,6,stu[0].math);
		m_pupil.SetItemText(0,7,stu[0].english);
		m_pupil.SetItemText(0,8,stu[0].nums);
		m_pupil.SetItemText(0,9,stu[0].ave_nums);

}

项目源码

需要源码的小伙伴请前往
微信公众号:海轰Pro
回复: 海轰
O(∩_∩)O哈哈~

发布了155 篇原创文章 · 获赞 110 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_44225182/article/details/103956573