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