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

上传人:b****2 文档编号:2187206 上传时间:2022-10-27 格式:DOCX 页数:16 大小:110.01KB
下载 相关 举报
MFC学生信息管理系统课程设计报告.docx_第1页
第1页 / 共16页
MFC学生信息管理系统课程设计报告.docx_第2页
第2页 / 共16页
MFC学生信息管理系统课程设计报告.docx_第3页
第3页 / 共16页
MFC学生信息管理系统课程设计报告.docx_第4页
第4页 / 共16页
MFC学生信息管理系统课程设计报告.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

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

《MFC学生信息管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《MFC学生信息管理系统课程设计报告.docx(16页珍藏版)》请在冰豆网上搜索。

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

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

 

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

classStudent

{

public:

stringname;

stringstuNo;

stringsex;

stringmajor;

doublescore;

stringbanji;

public:

Student(void);

Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji);

}

//Student.cpp

#include"StdAfx.h"

#include"Student.h"

Student:

:

Student(void)

{

}

Student:

:

Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji)

{

this->name=name;

this->stuNo=stuNo;

this->sex=sex;

this->major=major;

this->score=score;

this->banji=banji;

}

3.将数据保存、读取。

在解决方案中创建FileManager类。

代码如下:

//FileManager.h

#pragmaonce

#include"Student.h"

classFileManager

{

private:

charfilename[40];

public:

FileManager(charfilename[]);

~FileManager(void);

voidadd(Studentstu);

intremove(stringname);

voidedit(Studentstu);

Studentsearch(stringname);

maploadAll();

voidsaveAll(mapm);

};

//FileManager.cpp

#include"StdAfx.h"

#include"FileManager.h"

FileManager:

:

FileManager(charfilename[])

{

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

}

FileManager:

:

~FileManager(void)

{}

voidFileManager:

:

add(Students)

{

ofstreamfout(filename,ios:

:

out|ios:

:

app);

fout<

fout.close();

}

intFileManager:

:

remove(stringname)

{

mapm=loadAll();

map:

:

iteratorit=m.find(name);

if(it==m.end())

return0;//表示学生不存在

else

{

m.erase(it);

saveAll(m);

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

}

}

voidFileManager:

:

edit(Studentstu)

{

mapm=loadAll();

m[stu.name]=stu;

saveAll(m);

}

StudentFileManager:

:

search(stringname)

{

Students;

mapm=loadAll();

map:

:

iteratorp;

for(p=m.begin();p!

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

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

{

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

break;

}

returns;

}

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

mapFileManager:

:

loadAll()

{

mapm;

map:

:

iteratorp;

ifstreamfin(filename,ios:

:

in);

while(!

fin.eof())

{

Students;

fin>>s.name>>s.stuNo>>s.sex>>s.major>>s.score>>s.banji;

if(s.name.size()!

=0)

m[s.name]=s;

}

fin.close();

returnm;

}

voidFileManager:

:

saveAll(mapm)

{

ofstreamfout(filename,ios:

:

out);

Students;

map:

:

iteratorp;

for(p=m.begin();p!

=m.end();p++)

{

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

fout<

}

fout.close();

}

4.系统功能键有7个:

使这7个功能键分别起到作用的代码如下:

voidCdialogDlg:

:

OnBnClickedButtonsubmit()//添加按钮的功能

{

UpdateData(TRUE);

FileManagerf("stuInfo.txt");

Studentstu=f.search(LPCSTR(name));

if(stu.name!

="")

{

MessageBox("该学生已存在!

","提示");

return;

}

CStringmajor;

this->cbx_major.GetWindowTextA(major);

Students;

s.name=LPCSTR(name);

s.stuNo=LPCSTR(stuNo);

s.sex=(this->int_sex==0?

"男":

"女");

s.score=score;

s.major=LPCSTR(major);

s.banji=(this->int_banji==0?

"一班":

"二班");

f.add(s);

MessageBox("添加成功!

","提示");

}

voidCdialogDlg:

:

OnBnClickedButtonsearch()//按姓名查找

{

UpdateData(TRUE);

FileManagerf("stuInfo.txt");

Studentstu=f.search(LPCSTR(name));

if(stu.name=="")

{

MessageBox("该学生不存在!

","提示");

return;

}

//将对象的值在界面显示出来

this->stuNo=stu.stuNo.c_str();

this->int_sex=(stu.sex=="男"?

0:

1);

this->int_banji=(stu.banji=="一班"?

0:

1);

this->score=stu.score;

this->cbx_major.SelectString(0,stu.major.c_str());

UpdateData(FALSE);//更新界面控件,使其显示关联变量的值

}

voidCdialogDlg:

:

OnBnClickedButtonremove()//按姓名删除

{

UpdateData(TRUE);

FileManagerf("stuInfo.txt");

if(f.remove(LPCSTR(name))==0)

MessageBox("该学生不存在!

","提示");

else

MessageBox("删除成功!

","提示");

}

voidCdialogDlg:

:

OnBnClickedButtonedit()//编辑按钮的功能

{

UpdateData(TRUE);

FileManagerf("stuInfo.txt");

Studentstu=f.search(LPCSTR(name));

if(stu.name=="")

{

MessageBox("不允许修改姓名!

","提示");

return;

}

CStringmajor;

this->cbx_major.GetWindowTextA(major);

Students;

s.name=LPCSTR(name);

s.stuNo=LPCSTR(stuNo);

s.sex=(this->i

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

当前位置:首页 > 人文社科 > 法律资料

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

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