mfc课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计报告课题:基于MFC学生成绩管理系统院系:数学与计算机学院专业:软件工程1203姓名:邹思泉学号:1205110224日期:2014.12.20学生信息管理系统一、设计任务与目标1.了解MFC应用向导所生成应用程序的基本结构;2.掌握对话框编程的一般方法;3.学习用类向导添加消息响应函数及控件关联变量;4.掌握Windows通用控件使用方法;5.了解Windows通用对话框编程的使用方法二、方案设计与论证项目名称:student,选择对话框应用程序框架。本程序中管理的学生信息包括:学号、姓名、性别、专业、年级、出生年月。在第一个对话框里使用控件工具创建控件完成登录界面1.设置对话框IDD_STUDENT_DIALOG调出MFCWizard在menbervariables设置文本框的类型与成员名称,实现消息映射,实现登录过程中用户名和密码的输入,在创建的button中添加代码实现登录功能。2.设置对话框IDD_DIALOG1在对话框中添加四个按钮,分别实现调用对话框实现学生信息的录入、查询、删除和退出程序3.设置对话框IDD_INFOR_DIALOG1在对话框中添加控件,调出MFCWizard在menbervariables设置文本框的类型与成员名称其他对话框的设置也类似。4.对话框之间使用模态对话框,先将个对话框之间实现互相调用。三、程序框图或流程图,程序清单与调用关系登录主菜单录入信息查询信息删除信息退出登录用户名密码保存在“password.txt”文件中。用户输入用户名密码后与文件中的账号密码比较。录入信息通过函数voidCluru::write(CStud*stu)实现数据的保存。保存到“record.txt”通过函数voidCluru::clean()实现输入后对话框中数据清除True则{EndDialog(1);infora;a.DoModal();return;}进入主菜单False则重新输入用户名密码查询信息根据输入要查询的学号,与录入功能中保存的文件对比。True输出数据。删除信息通过classCdelete:publicCDialog建立删除函数四、全部源程序清单1.登录模块在登录对话框的按钮中添加代码头文件#includestdafx.h#includeStudent.h#includeStudentDlg.h#includeinfor.h#includefstream.h//文件voidCStudentDlg::OnOK(){//TODO:AddextravalidationhereUpdateData(TRUE);charname[50];charpwd[50];CStringaa;ifstreammf(password.txt);//打开保存密码的文件mf.getline(name,sizeof(name));//获取mf.getline(pwd,sizeof(pwd));aa=name;if(m_name.IsEmpty())//假如名字为空弹出窗口{MessageBox(用户名不能为空,请输入用户名!,注意);return;}elseif(m_password.IsEmpty()){AfxMessageBox(密码不能为空,请输入密码!);return;}ifstreamf(password.txt);while(!f.eof())//直到0结束{//for(inti=1;i30;i++)//{f.getline(name,sizeof(name));f.getline(pwd,sizeof(pwd))if(m_name==name&&m_password==pwd)//假如用户名密码正确,showwindow{UpdateData(FALSE);ofstreammf(password.txt);mfm_name'\n'm_password'\n';m_jdt.ShowWindow(SW_SHOW);mf.close();for(intkk=0;kk100;kk++){m_jdt.SetPos(kk);::Sleep(20);}EndDialog(1);//模态对话框的调用infora;//infor是主菜单a.DoModal();return;}if(m_name==name&&m_password!=pwd){AfxMessageBox(密码错误!);return;}//}}if(m_name!=name&&m_password!=pwd)AfxMessageBox(用户信息不正确,登陆失败!);//弹出错误提示框UpdateData(FALSE);}2.主菜单模块voidinfor::OnButton1()//点击按钮进入录入对话框{//TODO:AddyourcontrolnotificationhandlercodehereEndDialog(1);//模态对话框的调用Cluruaa;aa.DoModal();return;}voidinfor::OnButton2()//点击按钮退出{//TODO:AddyourcontrolnotificationhandlercodehereEndDialog(1);}//点击按钮进入删除对话框voidinfor::OnButton3(){//TODO:AddyourcontrolnotificationhandlercodehereEndDialog(1);Cdeletecc;cc.DoModal();return;}点击按钮进入查询对话框voidinfor::OnButton4(){//TODO:AddyourcontrolnotificationhandlercodehereEndDialog(1);Cxiugaidd;dd.DoModal();return;}3.录入模块在class中建立一个基本类writeclasswrite:publicCluru{public:write();virtual~write();};然后写下边的代码write::write(){CStud*stu;stu-m_strName=m_sName;stu-m_strMajor=m_sMajor;stu-m_strGrade=m_sGrade;stu-m_strDate=m_sBirthday;stringtemp;if(m_cMale.GetCheck())temp=男;elsetemp=女;ofstreamou;///是从内存到硬盘ou.open(record.txt,ios::app);//选择附加模式。以追加的方式打开文件ouleft;ousetw(20)stu-m_strID;ousetw(20)stu-m_strName;if(m_cMale.GetCheck())temp=男;elsetemp=女;ousetw(20)temp;ousetw(20)stu-m_strMajor;ousetw(20)stu-m_strGrade;ousetw(20)stu-m_strDate;ouendl;ou.close();}write::~write(){}录入按钮的功能代码voidCluru::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereEndDialog(1);inforz;z.DoModal();return;}voidCluru::OnOK(){//TODO:AddextravalidationhereUpdateData();if(m_sNum==||m_sName==||m_sMajor==||m_sGrade==||m_sBirthday==||(!m_cMale.GetCheck()&&!m_cFemale.GetCheck())){MessageBox(学生信息不完整,无法录入!,错误);return;}//查询学号是否存在intflag=0;CStud*stu=newCStud;stu-m_strID=m_sNum;stringtemp;ifstreamin(record.txt);while(intemp){if(temp==stu-m_strID){flag=1;MessageBox(该学号已存在!,注意);in.close();m_sNum=;UpdateData(false);//只将学号清空,其余信息保留return;}}in.close();//说明该学生信息还没存档,以下将其信息存档write(stu);deletestu;MessageBox(录入完毕!,成功);clean();//清空表格//TODO:Addextravalidationhere//CDialog::OnOK();}voidCluru::clean(){m_sNum=;m_sName=;m_sMajor=;m_sGrade=;m_sBirthday=;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);}voidCluru::write(CStud*stu){stu-m_strName=m_sName;stu-m_strMajor=m_sMajor;stu-m_strGrade=m_sGrade;stu-m_strDate=m_sBirthday;stringtemp;if(m_cMale.GetCheck())temp=男;elsetemp=女;ofstreamou;ou.open(record.txt,ios::app);//选择附加模式ouleft;ousetw(20)stu-m_strID;ousetw(20)stu-m_strName;if(m_cMale.GetCheck())temp=男;elsetemp=女;ousetw(20)temp;ousetw(20)stu-m_strMajor;ousetw(20)stu-m_strGrade;ousetw(20)stu-m_strDate;ouendl;ou.close();}查询模块voidCxiugai::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();m_sName=;m_sMajor=;m_sGrade=;m_sBirthday=;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);//清空上次查找记录,只保留现在输入的学号if(m_sNum==){MessageBox(学号为空,无法查询!,错误);return;}ifstreamin(record.txt);stringtemp,str;intflag=0;while(intemp){str=m_sNum;if(temp==str){flag=1;//说明找到了intemp;m_sName=temp.c_str();//类型转换intemp;if(temp==男)m_cMale.SetCheck(1);elsem_cFemale.SetCheck(1);intemp;m_sMajor=temp.c_str();intemp;m_sGrade=temp.c_str();intemp;m_sBirthday=temp.c_str();UpdateData(false);in.close();break;}in.ignore(1024,'\n');}in.close();if(!flag){MessageBox(该学生信息不存在!,注意);m_sNum=;UpdateData(false);}删除模块voidCde

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功