可视化学生成绩管理系统QT.docx
- 文档编号:6502206
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:22
- 大小:10.55MB
可视化学生成绩管理系统QT.docx
《可视化学生成绩管理系统QT.docx》由会员分享,可在线阅读,更多相关《可视化学生成绩管理系统QT.docx(22页珍藏版)》请在冰豆网上搜索。
可视化学生成绩管理系统QT
中国地质大学
计算机高级语言课程设计报告
(QT设计)
——学生成绩管理系统
班级:
191142班
学号:
姓名:
日期:
2015年7月2日
一课程设计题目与要求
(包括题目与系统功能要求)
【实习内容】
C++语言,面向对象的分析与设计。
然后改成QT语言。
【基本要求】
学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生成绩的录入、删除、
查找及修改、成绩的统计分析等等。
请设计一个系统实现对学生成绩的管理。
系统要求实现以下功能:
(1)增加记录:
要求可以连续增加多条记录。
(2)删除一个学生的记录:
要求可以先查找,再删除。
删除前,要求用户确认。
(3)成绩修改:
若输入错误可进行修改;要求可以先查找,再修改。
(4)查找:
可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处
于指定分数段内的学生名单等等。
(5)统计分析:
对某个班级学生的单科成绩进行统计,求出平均成绩;求平均成绩要
求实现函数的重载,既能求单科的平均成绩,又能求三科总分的平均成绩。
求出
一门课程标准差和合格率;
(6)排序功能:
要求按总分进行排序(从高到低),若总分相同,则按数学排序;若总
分和数学相同,则按物理排序;若总分和各科成绩都相同,则按学号排序;
(7)文件操作:
可以打开文件,显示班级的所有学生信息;可以将增加或修改后的成
绩重新写入文件;可以将排序好的信息写入新的文件。
【较高要求】
查找可以实现模糊查询,即输入名字的一部分,可以列出满足条件的所有记录。
再从这
个记录中进行二次选择。
二需求分析
【问题描述】
在编写过程中,主要的困难有:
1.模糊搜索(不能使用string中的find函数)需要自定义一个函数。
2.排序,需要自己学习算法。
【系统环境】
三概要设计
【类的设计】:
类Student:
#ifndefSTUDENT_H
#defineSTUDENT_H
#include
#include
#include
#include
#include
#include
usingnamespacestd;
classstudent{
private:
stringm_id,m_name;
intm_math,m_eng,m_phy;
public:
student();
student(string,string,int,int,int);
oInt(),
ui->lineEdit_3->text().toInt(),ui->lineEdit_4->text().toInt());
v[i]=temp;
ui->textEdit->insertPlainText("修改成功!
");
}
();
}
#include""
#include""
Dialog_delete:
:
Dialog_delete(QWidget*parent):
QDialog(parent),
ui(newUi:
:
Dialog_delete)
{
ui->setupUi(this);
}
Dialog_delete:
:
~Dialog_delete()
{
deleteui;
}
#include""
#include""
#include""
#include""
#include
#include
Dialog_tongji:
:
Dialog_tongji(QWidget*parent):
QDialog(parent),
ui(newUi:
:
Dialog_tongji)
{
ui->setupUi(this);
ui->textEdit->insertPlainText("确定显示统计分析?
");
QGraphicsOpacityEffect*effect=newQGraphicsOpacityEffect(this);
effect->setOpacity;
ui->textEdit->setGraphicsEffect(effect);
}
Dialog_tongji:
:
~Dialog_tongji()
{
deleteui;
}
voidDialog_tongji:
:
on_pushButton_clicked()
{
QStringqst;
ui->textEdit->clear();
managementme;
ui->textEdit->insertPlainText("科目依次为数学、英语、物理。
");
ui->textEdit->insertPlainText("前三个为平均分,中间为及格率,后三个为标准差");
vector
in=(in);
for(inti=0;i<();i++){
qst=QString:
:
number(in[i]);
ui->textEdit->insertPlainText(qst+'\n');
}
}
#include""
#include
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
MainWindoww;
();
return();
}
#include""
#include""
#include""
#include""
#include""
#include""
#include
#include""
#include
#include
managementme;
vector
QStrings2q(conststring&s)
{
returnQString(QString:
:
fromLocal8Bit()));
}
MainWindow:
:
MainWindow(QWidget*parent):
QMainWindow(parent),
ui(newUi:
:
MainWindow)
{
ui->setupUi(this);
ui->textEdit->setText("欢迎进入学生成绩管理系统!
");
QGraphicsOpacityEffect*effect=newQGraphicsOpacityEffect(this);
effect->setOpacity;
ui->label_7->setGraphicsEffect(effect);
ui->textEdit->setGraphicsEffect(effect);
}
MainWindow:
:
~MainWindow()
{
deleteui;
}
voidMainWindow:
:
on_pushButton_clicked()
{
ui->textEdit->clear();
ui->textEdit->insertPlainText("ID:
姓名:
数学:
英语:
物理:
");
QStringa,b,c,d,e,o;
students;
for(inti=0;i<();i++){
s=v[i];
a=s2q());
b=s2q());
c=QString:
:
number(),10);
d=QString:
:
number(),10);
e=QString:
:
number(),10);
o=a+''+b+''+c+''+d+''+e+'\n';
ui->textEdit->insertPlainText(o);
}
}
voidMainWindow:
:
on_ok_clicked()
{
ui->textEdit->clear();
studenttemp(ui->ID->text().toStdString(),ui->xingming->text().toStdString(),ui->shuxue->text().toInt(),
ui->yingyu->text().toInt(),ui->wuli->text().toInt());
(temp);
QStringa,b,c,d,e,o;
a=s2q());
b=s2q());
c=QString:
:
number(),10);
d=QString:
:
number(),10);
e=QString:
:
number(),10);
o=a+''+b+''+c+''+d+''+e+'\n';
ui->textEdit->insertPlainText(o);
ui->textEdit->insertPlainText("添加成功!
");
();
}
voidMainWindow:
:
on_pushButton_2_clicked()
{
Dialog_chage*dialog1=newDialog_chage(this);
dialog1->setWindowTitle(tr("changeinformation"));
if(dialog1->exec()==QDialog:
:
Rejected)return;
}
voidMainWindow:
:
on_ok_2_clicked()
{
QStringqst=ui->delete_2->text();
stringst=();
v=(st);
ui->delete_2->clear();
Dialog_delete*dialog2=newDialog_delete(this);
dialog2->setWindowTitle(tr("deleteinformation"));
if(dialog2->exec()==QDialog:
:
Rejected)return;
}
voidMainWindow:
:
on_ss_clicked()
{
QStringqst=ui->sousuo->text();
stringstr=();
v=(str);
on_pushButton_clicked();
ui->sousuo->clear();
}
voidMainWindow:
:
on_ss_2_clicked()
{
QStringqst1=ui->kemu->text();
QStringqst2=ui->sousuo1->text();
QStringqst3=ui->sousuo2->text();
stringstr=();
inta=();
intb=();
v=(a,b,str);
if()){
on_pushButton_clicked();
}
else{
ui->textEdit->clear();
ui->textEdit->insertPlainText("对不起!
没有您所查的信息!
");
}
ui->kemu->clear();
ui->sousuo1->clear();
ui->sousuo2->clear();
}
voidMainWindow:
:
on_pushButton_3_clicked()
{
Dialog_tongji*dialog3=newDialog_tongji(this);
dialog3->setWindowTitle(tr("tongjiinformation"));
if(dialog3->exec()==QDialog:
:
Rejected)return;
}
voidMainWindow:
:
on_pushButton_4_clicked()
{
v=();
on_pushButton_clicked();
}
#include""
#include
voidmanagement:
:
addtxt(){etId())&&()==stu[i].getName())){
cout<<"数据库已有此人!
不能再添加!
"< p++; } } if(p==0){ (s); otxt(); } cout<<"是否继续增加? (继续回复1。 否则回复0.)"< cin>>m; if(m==0)break; } } vector : itxt(){etId()< (); } vector : findtxt(conststring&m){etId()[j])break; } if(j==()){ (stu[i]); } for(k=0;k<();k++){ if(m[k]! =stu[i].getName()[k])break; } if(k==()){ (stu[i]); } } returns; } vector : findtxt1(inta,intb,conststring&m){etMath()>=a&&stu[i].getMath()<=b){ (stu[i]); } } } elseif(m=="Eglish"){ for(intj=0;j<();j++){ if(stu[j].getEng()>=a&&stu[j].getEng()<=b){ (stu[j]); } } } elseif(m=="Phy"){ for(intk=0;k<();k++){ if(stu[k].getPhy()>=a&&stu[k].getPhy()<=b){ (stu[k]); } } } else{} returns; } vector : deletetxt(conststring&m){etMath(); sum2+=stu[i].getEng(); sum3+=stu[i].getPhy(); if(stu[i].getMath()>=60)p1++; if(stu[i].getEng()>=60)p2++; if(stu[i].getPhy()>=60)p3++; } sum1/=i; sum2/=i; sum3/=i; p1/=i; p2/=i; p3/=i; for(j=0;j<();j++){ v1+=(stu[i].getMath()-sum1)*(stu[i].getMath()-sum1); v2+=(stu[i].getEng()-sum2)*(stu[i].getEng()-sum2); v3+=(stu[i].getPhy()-sum3)*(stu[i].getPhy()-sum3); } v1=sqrt(v1/i); v2=sqrt(v2/i); v3=sqrt(v3/i); (sum1); (sum2); (sum3); (p1); (p2); (p3); (v1); (v2); (v3); returnin; } } } vector : ptxt(){otal()>stu[j].total()){ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } elseif(stu[j+1].total()==stu[j].total()){ if(stu[j+1].getMath()>stu[j].getMath()){etMath()==stu[j].getMath()){etPhy()>stu[j].getPhy()){ t=stu[j]; stu[j]=stu[j+1]; stu[j+1]=t; } elsebreak; } elsebreak; } elsebreak; } } returnstu; } #include"" student: : student(){ m_id="0"; m_name="0"; m_math=0; m_eng=0; m_phy=0; } student: : student(stringid="0",stringname="0",intmath=0,inteng=0,intphy=0){ m_id=id; m_name=name; m_math=math; m_eng=eng; m_phy=phy; } student: : student(conststudent&s){ m_id=; m_name=; m_math=; m_eng=; m_phy=; } stringstudent: : getId(){ returnm_id; } stringstudent: : getName(){ returnm_name; } intstudent: : getMath(){ returnm_math; } intstudent: : getEng(){ returnm_eng; } intstudent: : getPhy(){ returnm_phy; } intstudent: : total(){ return(getMath()+getEng()+getPhy()); } studentstudent: : operator=(conststudent&s){ m_id=; m_name=; m_math=; m_eng=; m_phy=; return*this; } 界面文件: 资源文件为截图中的图片。 计算机学院 191142班 2015-7-2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化 学生 成绩管理系统 QT