您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > MFC学生信息管理系统课程设计报告
《C++可视化》课程设计——学生信息管理系统设计C++基于MFC类可视化程序设计报告小组成员:赵文琪,倪涛学号:3130704233,3130704234班级:软件132指导老师:汪国武安徽工程大学计算机与信息学院2014/12/30方案概述1、问题描述学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。2、功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。(3)显示功能:可当前系统中所有学生的信息和课程设计题目信息显示,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(7)注销功能:注销当前用户,返回登陆界面。3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。学生选修课系统设计方案系统登录界面:登陆界面系统界面系统信息界面主界面:信息统计界面:系统实现:1.首先建立一个MFC类对话框,添加相关系统控件。如图:2.在解决方案中添加Student类,并实现这个类。代码如下://Student.hclassStudent{public:stringname;stringstuNo;stringsex;stringmajor;doublescore;stringbanji;public:Student(void);Student(stringname,stringstuNo,stringsex,stringmajor,doublescore,stringbanji);}//Student.cpp#includeStdAfx.h#includeStudent.hStudent::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#includeStudent.hclassFileManager{private:charfilename[40];public:FileManager(charfilename[]);~FileManager(void);voidadd(Studentstu);intremove(stringname);voidedit(Studentstu);Studentsearch(stringname);mapstring,StudentloadAll();voidsaveAll(mapstring,Studentm);};//FileManager.cpp#includeStdAfx.h#includeFileManager.hFileManager::FileManager(charfilename[]){strcpy_s(this-filename,40,filename);}FileManager::~FileManager(void){}voidFileManager::add(Students){ofstreamfout(filename,ios::out|ios::app);fouts.names.stuNos.sexs.majors.scores.banjiendl;fout.close();}intFileManager::remove(stringname){mapstring,Studentm=loadAll();mapstring,Student::iteratorit=m.find(name);if(it==m.end())return0;//表示学生不存在else{m.erase(it);saveAll(m);return1;//表示有一个学生被删除}}voidFileManager::edit(Studentstu){mapstring,Studentm=loadAll();m[stu.name]=stu;saveAll(m);}StudentFileManager::search(stringname){Students;mapstring,Studentm=loadAll();mapstring,Student::iteratorp;for(p=m.begin();p!=m.end();p++)//据姓名查if(name==p-first)//根据姓名找到{s=p-second;//取出该学生对象break;}returns;}//将文件中的每一名学生(一行)存入一个mapmapstring,StudentFileManager::loadAll(){mapstring,Studentm;mapstring,Student::iteratorp;ifstreamfin(filename,ios::in);while(!fin.eof()){Students;fins.names.stuNos.sexs.majors.scores.banji;if(s.name.size()!=0)m[s.name]=s;}fin.close();returnm;}voidFileManager::saveAll(mapstring,Studentm){ofstreamfout(filename,ios::out);Students;mapstring,Student::iteratorp;for(p=m.begin();p!=m.end();p++){s=p-second;//取出该学生对象fouts.names.stuNos.sexs.majors.scores.banjiendl;}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(该学生不存在!,提示);elseMessageBox(删除成功!,提示);}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-int_sex==0?男:女);s.score=score;s.major=LPCSTR(major);s.banji=(this-int_banji==0?一班:二班);f.edit(s);MessageBox(修改成功!,提示);}voidCdialogDlg::OnBnClickedButton1()//保存按钮的功能{MessageBox(已成功保存所有已编辑信息到stuInfo.txt!,提示);}voidCdialogDlg::OnBnClickedButtonsave(){}voidCdialogDlg::OnBnClickedButton2()//显示全部{UpdateData(TRUE);FileManagerfi(stuInfo.txt);mapstring,Studentp;mapstring,Student::iteratori;p=fi.loadAll();CStringlist=;for(i=p.begin();i!=p.end();i++){list+=学号:;list+=i-second.stuNo.c_str();list+=姓名:;list+=i-second.name.c_str();list+=性别:;list+=i-second.sex.c_str();list+=班级:;list+=i-second.banji.c_str();list+=专业:;list+=i-second.major.c_str();list+=;list+=\n;}MessageBox(list,所有学生);}voidCdialogDlg::OnBnClickedButton4()//注销按钮的功能{CDialog::OnOK();Logindlg1
本文标题:MFC学生信息管理系统课程设计报告
链接地址:https://www.777doc.com/doc-2867365 .html