MFC学生信息管理系统课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++基于MFC类可视化程序设计报告

方案概述

1、问题描述

学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。

2、功能要求

(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。

(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可当前系统中所有学生的信息和课程设计题目信息显示,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

(6)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

(7)注销功能:注销当前用户,返回登陆界面。

3、问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

学生选修课系统设计方案

登陆界面系统界面系统信息界面系统登录界面:

主界面:

信息统计界面:

系统实现:

1.首先建立一个MFC类对话框,添加相关系统控件。如图:

2.在解决方案中添加Student类,并实现这个类。代码如下:

//Student.h

class Student

{

public:

string name;

string stuNo;

string sex;

string major;

double score;

string banji;

public:

Student(void);

Student(string name,string stuNo,string sex,string major,double score,string banji); }

//Student.cpp

#include "StdAfx.h"

#include "Student.h"

Student::Student(void)

{

}

Student::Student(string name,string stuNo,string sex,string major,double score,string banji) {

this->name=name;

this->stuNo=stuNo;

this->sex=sex;

this->major=major;

this->score=score;

this->banji=banji;

}

3.将数据保存、读取。在解决方案中创建FileManager类。代码如下:

//FileManager.h

#pragma once

#include "Student.h"

class FileManager

{

private:

char filename[40];

public:

FileManager(char filename[]);

~FileManager(void);

void add(Student stu);

int remove(string name);

void edit(Student stu);

Student search(string name);

map loadAll();

void saveAll(map m);

};

//FileManager.cpp

#include "StdAfx.h"

#include "FileManager.h"

FileManager::FileManager(char filename[])

{

strcpy_s(this->filename,40,filename);

}

FileManager::~FileManager(void)

{ }

void FileManager::add(Student s)

{

ofstream fout(filename,ios::out|ios::app);

fout<<<<" "<

fout.close();

}

int FileManager::remove(string name)

{

map m=loadAll();

map::iterator it=m.find(name);

if(it==m.end())

return 0;//表示学生不存在

else

{

m.erase(it);

saveAll(m);

return 1;//表示有一个学生被删除

}

}

void FileManager::edit(Student stu)

{

map m=loadAll();

m[]=stu;

saveAll(m);

}

Student FileManager::search(string name)

{

Student s;

map m=loadAll();

map::iterator p;

for(p=m.begin();p!=m.end();p++)//据姓名查

if(name==p->first)//根据姓名找到

{

s=p->second;//取出该学生对象

break;

}

return s;

}

//将文件中的每一名学生(一行)存入一个map

相关文档
最新文档