这里是一个大一的萌新!仅做学习分享
工程文件在评论区置顶!!
近期整理了一下大一上学期的课程设计报告作为学习总结,使用的软件是Qt Creator,主界面效果如下图
QT具体环境如下图
——————————以下为课程设计报告———————————
*学生成绩管理系统设计*
1 基本功能描述
学生成绩管理系统包括以下功能
(1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。
(2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。
(3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。
(5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。
(6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。
(7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。
(9)排序功能:可按总分和单科成绩排名次。
2 设计思路
如图是整个学生成绩管理系统的流程图,本程序使用QT来设计图形界面。
如流程图所示,在主函数中先创建一个主窗口类来作为功能导航,操作者可以在主窗口选择点击添加信息、查询和修改、统计和操作进入对应的子窗口来进行各项功能的使用
在添加学生窗口类中可以进行学生信息的录入,学号重复会有提示
在查询和修改窗口类中可以点击对应查询的条目显示出对应学号信息并选择修改或者删除,点击修改会进入到修改子窗口进行信息的修改
在统计和排序窗口类中可以查看到对应学生的各种信息和计算得到的平均分总分等,并能通过点击排序按钮进行排序
(每一个窗口类都涉及到读文件和传递字符串到显示model上的操作、对存入信息是否合法的判断、清空界面、修改显示内容等等保证功能实现的成员函数,具体请看代码)
图1 流程图
图2 主窗口
3 软件设计
3.1 设计步骤
打开Qt Creator,在文件中点击新建,在弹出框内选择Application的QT widgets模板,输入工程名stumanager及其所在位置,点击确定,如图3所示。
图3 新建QT工程
将弹出的对话框,选择主窗口mainwindow类,点击下一步,如图4所示。
图4 基本对话框
这样,Qt Creator就建立了一个基于主窗口的程序框架,如图5所示。
图5 新建的主窗口框
3.2 界面设计
1、创建控件
在图5所示的Forms选项卡中双击打开ui界面,在窗口左边。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“添加学生”为例进行介绍,其他按钮的创建可参照此进行操作。
图6 选择ui设计界面
图7 UI设计界面
1)在图6中左侧列表选择合适的控件拖拽到设计界面中间进行摆放。
2)在图6中“Buttons”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,如图7所示,在该对话框中输入控件的ID值和标题属性。
图8 Push Button属性
按照上面的操作过程编辑其他按钮和编辑框等对象的属性。
表1 添加学生类中 各按钮和编辑框等对象的属性
对象 | ID | 标题或说明 |
---|---|---|
编辑框 | lid | 输入学号 |
按钮 | btnok | 确认按钮 |
按钮 | btncancel | 取消按钮 |
下拉列表 | lage | 选择年龄 |
按钮组 | stuchoose | 选择小中大学生 |
… | … | 控件实在太多… |
完成后界面如图8所示。
图9添加学生界面
2、连接变量和代码
\1) 给按钮连接变量。在按钮上单击鼠标右键,在弹出菜单中选择转到槽,就可以给该窗口类添加一个槽函数来进行点击输入等事件的操作,如图9所示。
图10 转到槽
在转到槽列表框中选择信号clicked(),就能添加该事件对应的槽函数如图11所示
图11 新建的槽函数
创建成功后,在槽函数中写下实现相应功能的代码即可
3.3 关键功能的实现
1)学生信息的输入
编辑框所关联的变量为lid,lname等,还有按钮组、下拉列表等实现信息填入的控件,当点击确认按钮且信息合法时,将进行录入信息函数
2)查询功能的实现
一开始和添加功能类似,先将选择搜索的对应信息存入key字符串,读取文件后作为关键字在文件中搜索出对应条目&