




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C+可视化课程设计学生信息管理系统设计C+基于MFC类可视化程序设计报告小组成员:赵文琪,倪涛学号:,班级:软件132指导老师:汪国武安徽工程大学计算机与信息学院2014/12/30方案概述1、问题描述学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。2、功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。添加记录时,要求学号和编号要唯一。如果添加了重复记录,则提示数据添加重复并取消添加。(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息
2、。(3)显示功能:可当前系统中所有学生的信息和课程设计题目信息显示,每条记录占据一行。(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。(6)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。(7)注销功能:注销当前用户,返回登陆界面。3、问题的解决方案 根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系
3、统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。学生选修课系统设计方案系统信息界面系统界面登陆界面系统登录界面:主界面:信息统计界面:系统实现:1. 首先建立一个MFC类对话框,添加相关系统控件。如图:2. 在解决方案中添加Student类,并实现这个类。代码如下:/Student.hclass Studentpublic:string name;string stuNo;string sex;string major;double score;string banji;public:Student
4、(void);Student(string name,string stuNo,string sex,string major,double score,string banji);/Student.cpp#include StdAfx.h#include Student.hStudent: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-
5、major=major;this-score=score;this-banji=banji;3. 将数据保存、读取。在解决方案中创建FileManager类。代码如下:/FileManager.h#pragma once#include Student.hclass FileManagerprivate:char filename40;public:FileManager(char filename);FileManager(void);void add(Student stu);int remove(string name);void edit(Student stu);Student se
6、arch(string name);map loadAll();void saveAll(map m);/FileManager.cpp#include StdAfx.h#include FileManager.hFileManager:FileManager(char filename)strcpy_s(this-filename,40,filename);FileManager:FileManager(void) void FileManager:add(Student s)ofstream fout(filename,ios:out|ios:app); s.stuNo
7、 s.sex s.major s.score s.banjiendl;fout.close();int FileManager:remove(string name)map m=loadAll();map:iterator it=m.find(name);if(it=m.end()return 0;/表示学生不存在elsem.erase(it);saveAll(m);return 1;/表示有一个学生被删除void FileManager:edit(Student stu)map m=loadAll();=stu;saveAll(m);Student FileManager:
8、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;/将文件中的每一名学生(一行)存入一个mapmap FileManager:loadAll()map m;map:iterator p;ifstream fin(filename,ios:in);while(!fin.eof()Student s;s.stuNos.sexs.m
9、ajors.scores.banji;if(.size()!=0)=s;fin.close();return m;void FileManager:saveAll(map m)ofstream fout(filename,ios:out);Student s;map:iterator p;for(p=m.begin();p!=m.end();p+)s=p-second;/取出该学生对象 s.stuNo s.sex s.major s.score s.banjicbx_major.GetWindowTextA(major);Student s;s.n
10、ame = 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(添加成功!,提示);void CdialogDlg:OnBnClickedButtonsearch()/按姓名查找UpdateData(TRUE);FileManager f(stuInfo.txt);Student stu=f.search(LPCSTR(name)
11、;if(=)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);/更新界面控件,使其显示关联变量的值void CdialogDlg:OnBnClickedButtonremov
12、e()/按姓名删除UpdateData(TRUE);FileManager f(stuInfo.txt);if(f.remove(LPCSTR(name)=0)MessageBox(该学生不存在!,提示);elseMessageBox(删除成功!,提示);void CdialogDlg:OnBnClickedButtonedit()/编辑按钮的功能UpdateData(TRUE);FileManager f(stuInfo.txt);Student stu=f.search(LPCSTR(name);if(=)MessageBox(不允许修改姓名!,提示);return;CSt
13、ring major;this-cbx_major.GetWindowTextA(major);Student s; = 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(修改成功!,提示);void CdialogDlg:OnBnClickedButton1()/保存按钮的功能MessageBox(已成功保存所有
14、已编辑信息到stuInfo.txt!, 提示);void CdialogDlg:OnBnClickedButtonsave() void CdialogDlg:OnBnClickedButton2()/显示全部UpdateData(TRUE);FileManager fi(stuInfo.txt);mapp;map:iterator i;p = fi.loadAll();CString list = ;for (i = p.begin(); i != p.end(); i+)list += 学号: ;list += i-second.stuNo.c_str();list += 姓名: ;lis
15、t += .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, 所有学生);void CdialogDlg:OnBnClickedButton4()/注销按钮的功能CDialog:OnOK();Login dlg1;dlg1.DoModal();UpdateData(FALSE
16、);5. 创建登陆界面,在解决方案中,以Dlg.h为基类创建一个Login类,代码如下:/Login.h#pragma once/ Login 对话框class Login : public CDialogDECLARE_DYNAMIC(Login)public:Login(CWnd* pParent = NULL); / 标准构造函数virtual Login();/ 对话框数据enum IDD = IDD_LOGIN ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE
17、_MAP()public:afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();CString zhanghao;CString mima;/Login.cpp/ Login.cpp : 实现文件/using namespace std;#include stdafx.h#include dialog.h#include Login.h/ Login 对话框IMPLEMENT_DYNAMIC(Login, CDialog)Login:Login(CWnd* pParent /*=NULL*/): CDialog(Login:
18、IDD, pParent), zhanghao(_T(), mima(_T()Login:Login()void Login:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);DDX_Text(pDX, IDC_EDIT_username, zhanghao);DDX_Text(pDX, IDC_EDIT_password, mima);BEGIN_MESSAGE_MAP(Login, CDialog)ON_BN_CLICKED(IDOK, &Login:OnBnClickedOk)ON_BN_CLICKED(IDCAN
19、CEL, &Login:OnBnClickedCancel)END_MESSAGE_MAP()/ Login 消息处理程序void Login:OnBnClickedOk()UpdateData(TRUE);char name20,pass20;ifstream fin(login.txt);while ( !fin.eof() finname; finpass; if(zhanghao=name&mima=pass) break; fin.close();if(fin.eof()MessageBox(登陆失败!);return; elseOnOK();void Login:OnBnClickedCancel()this-ShowWindow(SW_HIDE);工程总结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 历史●安徽卷丨2024年安徽省普通高中学业水平选择性考试历史试卷及答案
- 《ERP原理与应用(微课版)》陈承欢成明山课后思考参考答案
- 高中生英语课堂学习投入现状及其影响因素研究
- 西部志愿者试题及答案
- 北京八中2024-2025学年度第二学期第三次模拟答案
- 生物●全国甲卷丨2023年普通高等学校招生全国统一考试生物试卷及答案
- 建材公司风险管理与应急预案制定
- 2025版无限期劳动合同协议书模板
- 2025年中国台式封口机行业市场前景预测及投资价值评估分析报告
- 2025餐厅转让合同简易模板
- 肿瘤防治中医科普知识
- DB4113T040-2023 种猪场伪狂犬病净化技术规范
- 学校教科研成果推广情况汇报模板
- 《十八项医疗核心制度》详细解读
- 《西安交通大学》课件
- 2025年中国寰球工程有限公司招聘笔试参考题库含答案解析
- 科室医疗质量与安全管理小组成员及职责
- 公车驾驶员安全教育
- 《选品与采购》课件-4.电商采购
- T-HSPP 0017-2024 含多肽氨基酸水溶肥料
- 突发公共卫生事件卫生应急
评论
0/150
提交评论