可视化学生成绩管理系统QT文档格式.docx

上传人:b****1 文档编号:14322372 上传时间:2022-10-22 格式:DOCX 页数:36 大小:5.47MB
下载 相关 举报
可视化学生成绩管理系统QT文档格式.docx_第1页
第1页 / 共36页
可视化学生成绩管理系统QT文档格式.docx_第2页
第2页 / 共36页
可视化学生成绩管理系统QT文档格式.docx_第3页
第3页 / 共36页
可视化学生成绩管理系统QT文档格式.docx_第4页
第4页 / 共36页
可视化学生成绩管理系统QT文档格式.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

可视化学生成绩管理系统QT文档格式.docx

《可视化学生成绩管理系统QT文档格式.docx》由会员分享,可在线阅读,更多相关《可视化学生成绩管理系统QT文档格式.docx(36页珍藏版)》请在冰豆网上搜索。

可视化学生成绩管理系统QT文档格式.docx

(2)删除一个学生的记录:

要求可以先查找,再删除。

删除前,要求用户确认。

(3)成绩修改:

若输入错误可进行修改;

要求可以先查找,再修改。

(4)查找:

可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处

于指定分数段的学生等等。

(5)统计分析:

对某个班级学生的单科成绩进行统计,求出平均成绩;

求平均成绩要

现函数的重载,既能求单科的平均成绩,又能求三科总分的平均成绩。

求出

一门课程标准差和合格率;

(6)排序功能:

要求按总分进行排序(从高到低),若总分相同,则按数学排序;

若总

分和数学相同,则按物理排序;

若总分和各科成绩都相同,则按学号排序;

(7)文件操作:

可以打开文件,显示班级的所有学生信息;

可以将增加或修改后的成

绩重新写入文件;

可以将排序好的信息写入新的文件。

【较高要求】

查找可以实现模糊查询,即输入名字的一部分,可以列出满足条件的所有记录。

再从这

个记录中进行二次选择。

二需求分析

【问题描述】

在编写过程中,主要的困难有:

1.模糊搜索(不能使用string中的find函数)需要自定义一个函数。

2.排序,需要自己学习算法。

【系统环境】

Qt5.4.1

三概要设计

【类的设计】:

类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);

//构造函数

student(conststudent&

);

//复制构造函数

~student(){};

//析构函数

stringgetId();

//自定义接口

stringgetName();

intgetMath();

intgetEng();

intgetPhy();

inttotal();

studentoperator=(conststudent&

//=号重载

};

#endif//STUDENT_H

#defineMANAGEMENT

#include"

student.h"

#include"

QString"

QFileDialog>

QFile>

qtextstream.h>

classmanagement{

vector<

student>

stu;

deletetxt(conststring&

m);

//删除记录

findtxt(conststring&

//模糊搜索

findtxt1(int,int,conststring&

//分数段搜索

itxt();

//文件写入

getstu(){returnstu;

}

double>

ttxt(vector<

//统计分析

ptxt();

//排序

voidaddtxt();

//增加记录

voidchangetxt();

//成绩修改

voidotxt();

//文件输出

voidshow();

//输出

#endif//MANAGEMENT

类mainwindow

#ifndefMAINWINDOW_H

#defineMAINWINDOW_H

#include<

QMainWindow>

management.h"

namespaceUi{

classMainWindow;

classMainWindow:

publicQMainWindow

{

Q_OBJECT

explicitMainWindow(QWidget*parent=0);

~MainWindow();

privateslots:

voidon_pushButton_clicked();

voidon_ok_clicked();

voidon_pushButton_2_clicked();

voidon_ok_2_clicked();

voidon_ss_clicked();

voidon_ss_2_clicked();

voidon_pushButton_3_clicked();

voidon_pushButton_4_clicked();

Ui:

:

MainWindow*ui;

#endif//MAINWINDOW_H

【主界面设计】:

主机面主要以一个do-while循环使得系统能够多次查询。

循环部分是判断语句的嵌套。

能够以用户意愿自由查询和进出系统。

【文件读到屏幕上】

【修改记录】

【添加纪录】

【删除记录】

【模糊搜索】

【分段搜索】

【统计分析】

【排序】

四详细设计"

【增加记录】:

所用函数:

addtxt()函数、itxt()函数。

增加记录主要是调用voidaddtxt()函数。

进入voidaddtxt()函数后,用户经过手动添加信息。

添加信息过后,系统会将用户所输入的信息与数据库中已有信息进行对比,判断数据库中是否已存在该信息。

不存在则添加,添加时会调用student类的构造函数。

用户所添加的信息则会有一个以类型为student的变量push_back到默认以student为类型的容器中。

然后点击确定转为槽函数,再通过mainwindow类中的指针ui指向textedit,使结果输出到textedit上。

此时在经过while循环,使得系统支持重复添加功能。

otxt()函数将数据输出保存到date.txt文件中。

【删除记录】:

实现该功能先要调用voiddeletetxt()函数。

进入该函数后系统会提示用户输入所需删除信息的学号或姓名。

然后系统会在数据库中搜索是否真的存在此信息。

不存在系统会提示用户。

若存在则所删信息会在对话框中出现。

此时系统会调用voiddeletetxt()函数、stringgetId()函数、stringgetName()函数、intgetMath()函数intgetEng()函数、intgetPhy()函数、inttotal()函数。

然后系统会提示用户确定是否删除该信息。

若否则回到主菜单。

若是此时系统会定义一个以student为类型的容器。

然后默认的以student为类型的容器(其中有数据库中的全部信息。

)经过两个for循环将数据库中除了用户要删除的信息全部push_back到定义的容器中。

然后再经过一个for循环。

使得默认的容器当中的信息与定义的容器当中的信息相同。

则完成删除。

删除成功后,通过mainwindow类中指针指向另一个对话框此时对话框会提示用户删除成功。

【成绩修改】:

先进入voidchangetxt()函数,对话框中会提示用户输入所要修改的信息。

输入信息后系统会定义一个以student为类型的变量。

然后系统会调用student&

operator=(conststudent&

)函数,使得修改后的信息覆盖掉原有信息。

在用mainwindow类中的指针ui把结果输出到textedit上,在调用文本输入的函数使得用户能够确定信息确实修改成功了。

【查找】:

进入查找后对话框中会提示用户是分数段查找还是个人成绩查询。

若是前者则系统调用voidfindtxt1()函数。

此时对话框会提示用户选择哪一门成绩以及分数的上下限。

然后系统再调用此时系统会调用voiddeletetxt()函数、stringgetId()函数、stringgetName()函数、intgetMath()函数intgetEng()函数、intgetPhy()函数、inttotal()函数。

对话框中会出现在此分数段中的所有信息。

并回到菜单。

若是后者则系统调用voidfindtxt()函数(支持模糊搜索)。

此时对话框中会提示用户输入所要寻找的信息的学号或姓名。

系统会将数据库中满足条件的信息反馈到对话框中,然后mainwindow类中指针ui将返回的容器的成员转化为QString类型然后将结果反馈到textedit上。

【统计分析】:

现根据对话框的提示选择系统分析栏。

对话框会提示用户是单科情况或是全科情况。

若是前者系统会调用voidttxt()函数,把结果反馈到对话框中并回到主菜单中。

若是后者系统调用voidttxt(inti)函数。

然后把结果(平均分、总平局分、及格率、标准差)用mainwindow类中指针ui转到另一个对话框中,在调用该对话框中的指针ui将结果反馈到textedit上。

【排序】:

现根据对话框的提示选择排序。

系统会调用voidptxt()函数。

进入voidptxt()函数

系统会调用stringgetId()函数、stringgetName()函数、intgetMath()函数intgetEng()函数、intgetPhy()函数、inttotal()函数。

根据总分进行排序(从高到低),若总分相同,则按数学排序;

若总分和数学相同,则按物理排序;

排序完成后,mainwindow类中指针ui将容器中的信息全部转化为QString类型。

然后调用输出文本将结果反馈到textedit上。

【退出系统】:

在主菜单中选择退出系统,系统会跳出主菜单中的do-while循环,结束程序。

五测试

【原有数据】

20121000290边达宇756065

20121000424晨859596

20121000553高佳维869390

20121000570初国利858785

20121000584利振彬708888

20121000818孟珂908696

20121000921罗云迪869075

20121001121田甜958587

20121001248如男908994

20121001316邵叶飞808486

2012

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1