程序设计课程设计报告
目录
一、课程设计题目及内容
二、程序中使用的数据及主要符号说明
三、带有详细注释的自己编写的源程序
四、程序运行时的效果图
五、实验结果分析,实验收获和体会。
1、实验结果分析:
2、实验收获和体会:
一、实验内容
实验1:
(1)、设计一个学生类Student,包括数据成员:姓名、学号、二门课程(面向对象程序设计、高等数学)的成绩。
(2)、创建一个管理学生的类Management,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。
(3)、创建一个基于对话框的MFC应用程序,程序窗口的标题上有你姓名、学号和应用程序名称。使用(1)和(2)中的类,实现对学生信息和成绩的输入和管理。
(4)、创建一个单文档的MFC应用程序,读取(3)中保存的文件中的学生成绩,分别用直方图和折线方式显示所有学生某课程的成绩分布图。
二、程序中使用的数据及主要符号说明
unsigned int mID;//学号
CString mName;//姓名
unsigned int mAge;//年龄
CString mAdd;//地址
float mCpp;//c++成绩
float mMath;//数学成绩
CListBox m_list;//列表名
afx_msg void OnClickedButtonAdd();//添加按钮
afx_msg void OnClickedButtonDel();//删除按钮
afx_msg void OnClickedButtonChange();//修改
afx_msg void OnClickedButtonOk();//确定
afx_msg void OnClickedButtonCancle();//取消
afx_msg void OnSelchangeList1();//列表控件
virtual BOOL OnInitDialog();//初始化对话框
afx_msg void OnDestroy();//防止内存泄漏
afx_msg void OnClickedButton6();
int m_count;//记录人数
int mSex;//性别
三、带有详细注释的自己编写的源程序
(1)、设计一个学生类Student
//Student.h
#pragma once
#include<string>
//using namespace std;
#include<iostream>
enum Sex {
male, female };
class Student
{
public:
Student();//构造函数
~Student();//析构函数
unsigned int GetID()const
{
return m_num;
}
void SetID(unsigned int ID) {
m_num = ID; };
std::string GetName()const
{
return m_name;
}
void SetName(const std::string& name) {
m_name = name; };
Sex GetSex()const
{
return m_sex;
}
void SetSex(Sex sex) {
m_sex = sex; };
unsigned int GetAge()const
{
return m_age;
}
void SetAge(unsigned int age) {
m_age = age; };
std::string GetAdd()const
{
return m_add;
}
void SetAdd(std::string add) {
m_add = add; };
float GetCpp()const
{
return m_cpp;
}
void SetCpp(float cpp) {
m_cpp = cpp; };
float GetMath()const
{
return m_math;
}
void SetMath(float math) {
m_math = math; };
friend std::ostream& operator<<(std::ostream& os, const Student& st);
friend std::istream& operator>>(std::istream& is, Student& st);
private:
unsigned int m_num;//学号
std::string m_name;//姓名
Sex m_sex;//性别
unsigned int m_age;//年龄
std::string m_add;//地址
float m_cpp;//c++成绩
float m_math;//数学成绩
};
//Student.cpp///
#include "pch.h"
#include "Student.h"
Student::Student()//初始化
:m_num(0)
, m_name("")
, m_sex(male)
, m_age(20)
, m_add("")
, m_cpp(0.0f)
, m_math(0.0f)
{
}
Student::~Student()
{
}
std::ostream& operator<<(std::ostream& os, const Student& st)//重载函数
{
os << "" << st.m_num;
os << "" << st.m_name;
os << "" <<(int )st.m_sex;
os << "" << st.m_age;
os << "" << st.m_add;
os << "" << st.m_cpp;
os << "" << st.m_math;
return os;
}
std::istream& operator>>(std::istream& is, Student& st)
{
is >> st.m_num;
is >> st.m_name;
int sex;
is >> sex;
st.m_sex = sex == 0 ? male : female;
is >> st.m_age;
is >> st.m_add;
is >> st.m_cpp;
is >> st.m_math;
return is;
}
(2)、添加一个CStudentinfo类,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。
//Dlg.h
#pragma once
// CStudentinfo 对话框