MFC学生信息管理系统课程设计报告Word格式文档下载.docx
《MFC学生信息管理系统课程设计报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《MFC学生信息管理系统课程设计报告Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
(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;
Student(void);
Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji);
}
//Student.cpp
#include"
StdAfx.h"
Student.h"
Student:
:
Student(void)
Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji)
this->
name=name;
stuNo=stuNo;
sex=sex;
major=major;
score=score;
banji=banji;
3.将数据保存、读取。
在解决方案中创建FileManager类。
//FileManager.h
#pragmaonce
classFileManager
private:
charfilename[40];
FileManager(charfilename[]);
~FileManager(void);
voidadd(Studentstu);
intremove(stringname);
voidedit(Studentstu);
Studentsearch(stringname);
map<
string,Student>
loadAll();
voidsaveAll(map<
m);
};
//FileManager.cpp
FileManager.h"
FileManager:
FileManager(charfilename[])
strcpy_s(this->
filename,40,filename);
~FileManager(void)
{}
voidFileManager:
add(Students)
ofstreamfout(filename,ios:
out|ios:
app);
fout<
<
s.name<
"
"
s.stuNo<
s.sex<
s.major<
s.score<
s.banji<
endl;
fout.close();
intFileManager:
remove(stringname)
m=loadAll();
iteratorit=m.find(name);
if(it==m.end())
return0;
//表示学生不存在
else
{
m.erase(it);
saveAll(m);
return1;
//表示有一个学生被删除
}
edit(Studentstu)
m[stu.name]=stu;
saveAll(m);
StudentFileManager:
search(stringname)
Students;
iteratorp;
for(p=m.begin();
p!
=m.end();
p++)//据姓名查
if(name==p->
first)//根据姓名找到
{
s=p->
second;
//取出该学生对象
break;
}
returns;
//将文件中的每一名学生(一行)存入一个map
map<
FileManager:
loadAll()
m;
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;
saveAll(map<
m)
out);
p++)
s=p->
fout<
4.系统功能键有7个:
使这7个功能键分别起到作用的代码如下:
voidCdialogDlg:
OnBnClickedButtonsubmit()//添加按钮的功能
UpdateData(TRUE);
FileManagerf("
stuInfo.txt"
);
Studentstu=f.search(LPCSTR(name));
if(stu.name!
="
)
MessageBox("
该学生已存在!
"
提示"
return;
CStringmajor;
cbx_major.GetWindowTextA(major);
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("
添加成功!
OnBnClickedButtonsearch()//按姓名查找
if(stu.name=="
该学生不存在!
//将对象的值在界面显示出来
stuNo=stu.stuNo.c_str();
int_sex=(stu.sex=="
?
0:
1);
int_banji=(stu.banji=="
?
0:
1);
score=stu.score;
cbx_major.SelectString(0,stu.major.c_str());
UpdateData(FALSE);
//更新界面控件,使其显示关联变量的值
OnBnClickedButtonremove()//按姓名删除
if(f.remove(LPCSTR(name))==0)
删除成功!
OnBnClickedButtonedit()//编辑按钮的功能
不允许修改姓名!
i