2015《程序综合实验》实验指导书(4)

2018-11-16 22:07

实验四 成绩管理程序设计与实现

一、实验目的与要求

实验目的:锻炼面向对象编程与文件操作能力 实验要求:

1、熟悉C++程序设计。

2、运用OO知识对实验题目进行分析和设计。 3、进行程序编写和调试工作。 二、实验内容

设计一个程序实现对学生成绩的管理,要求可以对指定的文件进行操作,可将多个文件组成一个文件。程序设计功能及要求:

1、输入:学生的基本信息,包括学号、姓名、C语言成绩、高等数学成绩等。

原始数据文件格式 (具体数据和项目自行编写): 学号 姓名 1 张三 2 李四

英语

C语言 高等数学????

76 89 78 ? ? ?

2、查询:可以按学号、姓名等进行成绩查询。 3、删除:删除某条记录。

4、计算:计算每个学生的总成绩、平均成绩,所有学生单科的平均成绩,将总成绩、平均成绩、名次加到对应学生成绩记录后。

5、统计:统计每科成绩分布情况,统计情况加到文件最后。 输出数据文件(由程序自动生成)

学号 姓名 英语 C语言 高等数学 ???平均成绩 名次 1 张三 76 89 78 2 李四 ?. ?. ?.

统计情况:

????

分数段 英语 C语言 高等数学 ???????.

? ? ? ?

<60 2 60~69 8 70~79 5 80~89 10

平均分 78 ? 三、实验方法 1、数据结构的设计

根据对题目的要求,设计合适的类或结构类型、以及各种对象、变量。 2、设计各成员函数,分别实现以下功能: 1)学生信息的录入

从键盘录入学生的基本信息,并将其保存至学生成绩文件。 2)学生信息查询

从键盘输入姓名或学号,在学生成绩文件中实现按学号、姓名的查找,如果存在,则输出该学生的其他信息,如不存在,输出不存在此学生。 3)学生信息的删除

从键盘输入要删除的学生学号或姓名,在学生成绩文件中删除该学生的基本信息。 4)成绩的计算

计算每个学生的总成绩、平均成绩,所有学生单科的平均成绩,将总成绩、平均成绩、名次加到对应学生成绩记录后; 5)统计

统计每科成绩分布情况,统计情况加到学生成绩文件最后。 3、界面的设计

采用菜单或字符界面的形式,方便功能的选择。 四、参考资料

1、 创建基于对话框的mfc project 2、 涉及的新控件

List control(property->style->view->report)

3、 数据存储:可以考虑定义结构体或者类,在相关类中手动增加用于保存成绩数据的公有数据成员,注意在构造函数中初始化

class CListControlDlg : public CDialog {

// Construction public:

CListControlDlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data

//{{AFX_DATA(CListControlDlg)

enum { IDD = IDD_LISTCONTROL_DIALOG }; CListCtrl m_list; CString m_Number; CString m_Name; int

m_Math;

int int

m_English; m_Politic;

//}}AFX_DATA

// ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CListControlDlg) protected:

virtual void DoDataExchange(CDataExchange* pDX);

//

DDX/DDV

support

//}}AFX_VIRTUAL

struct Student stu[50];//用于保存最多50个学生的成绩 int m_length;//实际的保存的学生成绩记录数 // Implementation

??????????????.. }

4、 List control初始化

在初始化函数BOOL CListControlDlg::OnInitDialog()中进行相关初始化,显示list control中的列标题

m_list.InsertColumn(0,\学号\

m_list.InsertColumn(1,\姓名\m_list.InsertColumn(2,\数学\m_list.InsertColumn(3,\英语\m_list.InsertColumn(4,\政治\m_list.InsertColumn(5,\总分\m_list.InsertColumn(6,\平均分\m_list.InsertColumn(7,\名次\

说明:InsertColumn参数1:第**列,参数2:列标题,参数3,:对齐方式(LVCFMT_CENTER,LVCFMT_LEFT等),参数4:列宽 5、 退出/取消函数

调用CDialog::OnCancel();或CDialog::OnOK(); 6、 CListControlDlg::OnSave()

(1) 用户通过edit控件输入的数据传给类的数据成员,保存到数组

(2) 显示在list control中

m_list.InsertItem(m_length,m_Number);//插入第m_length条新记录 m_list.SetItemText(m_length,1,m_Name);//该记录的具体列的值,参数1:第m_length条记录,参数2:该记录的第**列,参数3:具体内容,CString类型 7、 排序

显示排序后的数据需要重新刷屏,即先删除所有list control中的记录,再重新插入

m_list.DeleteAllItems(); m_list.DeleteItem(int nItem); m_list.DeleteColumn(int col);


2015《程序综合实验》实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:病理科培训计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: