



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工业应用技术学院课程设计说明书题目:学生信息管理系统姓名:蔡 阳 阳院 (系):信息工程学院专业班级: 14级计算机科学与技术一班学号:1401110107指导教师:吉 同成绩:时间:2015年 9 月 11日至2015年 11月 14 日专业资料工业应用技术学院课程设计任务书题目学生信息管理系统专业、班级14 级计算机科学与技术一班学号 1401110107 姓名 蔡阳阳主要容:1.了解 Windows编程的基础知识,掌握MFC 应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和法;3. 掌握用 VC+ 开发应用程序的的一般步骤和法;4. 能够利用所学的基本知识 , 设计一个简单
2、的学生信息管理应用程序,具有以下功能:实现学生信息的存储,可以用文件来实现。编程实现学生信息的添加、删除、修改、浏览和查询等功能(必须实现的功能)。基本要求:1. 用 VC进行编码,实现应用程序的功能。注重编码质量,代码要有适当的注释;2. 采用单文档多视图式,左边为树视图,右边为列表视图,左边一级节点为中原工学院,二级节点为计算机学院和软件学院,三级节点为计算机学院的三个专业。要求可以动态增加节点。楼便为列表视图,包含学生的学号、性别、姓名各科成绩等。右边也可以实现动态增加3 当选中节点时,显示对应的学生信息。如当选中”中原工学院 ”时选中所用的学生信息,选中“计算机学院”时,显示所有计算机
3、学院学生信息主要参考资料:1谭浩强 .C+ 语言基础课程 M. 北京:清华大学出版社,2009专业资料2 于永彦 . C+ 程序设计基础案例教程 M. 北京:北京大学出版社, 20093 莉.C+ 语言程序设计习题与实验指导 M. 清华大学出版社 ,2007完成期限:9 月 11日-11月 14 日指导教师签名:课程负责人签名:2015 年 11月 14 日摘要随着科学技术的发展,计算机领域不断取得新的研究成果。计算机在代替和延伸劳动面发挥越来越重要的作用,不仅咋商业、企业、银行等起着重要作用,而且在日常生活中国也越来越来离不开计算机。就像在大学,有很多学生信息需要处理、保存。以及提供优质的服
4、务,此事计算机显得尤为重要。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识。作为计算机应用的一部分,使用计算机对学生作业信息进行管理,有着手工管理所无法比拟的有点。所以,现今大部分大学都使用了计算机来规划整个学生信息、提供选课、网络教学等。学生作业处理系统能便用户迅速、准确处理学生作业,给出评分评价,得到想要的数据并能将学生的信息以文档的形式保存,以供使用时调出。本文介绍了简易学生的作业处理系统在Microsoft VisualC+ 6.0 环境下的实现过程:系统的分析、功能模块的设计、系统的调试和测试。 此系统的主要管理信息: 学生的班级、学生的学号、专业资料学生
5、的作业情况、作业评分。本系统的主要功能有:输入数据、显示所有的数据、按成绩降序排列、查找并显示一组数据、插入一组数据、修改一组数据、删除一组数据、从文件中读取数据、将所有记录写入文件、退出本系统。关键字:学生成绩处理、VC+ 、MFC 、控件四、主要步骤1、新建工程:用MFC AppWizard(exe)创建一个单文档的应用程序StudentCheck 。在第六步中将视图的基类选择为。2 、 1 添加一个基于ListView 类的新的类listView 、用于显示学生信息专业资料2 、 2 为 CMainFrame添加一个切分窗口的映射函数OnCreateClient并添加一个切分窗口的函数成
6、员CSplitterWnd m_wndSplitter;然后添加下列代码:专业资料CRect rect;GetClientRect(&rect);CSize paneSize(rect.Width()/3,rect.Height();m_wndSplitter.CreateStatic(this,1,2);m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CStudentCheckView),paneSize,pContext);m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(listView),CSize(0,
7、0),pContext);return true;2 、 4 创建一个CstuInfoDlg对话框2、 5 添加下列控件专业资料并为上面控件添加变量在 WorkSpace 中进入 ClassView 视图,为 CStuInfoDlg 类添加一个 BOOL 型的成员变量m_bMale, 并在 CStuInfoDlg 类设置该变量的初始值,添加代码如下:StuInfoDlg:StuInfoDlg(CWnd* pParent /*=NULL*/): CDialog(StuInfoDlg:IDD, pParent)m_bMale=FALSE;/AFX_DATA_INIT(StuInfoDlg)m_st
8、rSpecial = _T("");m_tBirth = 0;m_strMath = 0;m_strName = _T("");m_strNO = _T("");m_strAcademy = _T("");/AFX_DATA_INIT用 MFC ClassWizard为 CStuInfoDlg类添加 WM_INITDIALOG消息映射,并添加下列初始化代码:专业资料if(!m_bMale)CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_FEMAL
9、E);elseCheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);/ 对专业组合框进行初始化m_comboSpecial.AddString("网络工程 ");m_comboSpecial.AddString("软件工程 ");m_comboSpecial.AddString("计算机科学 ");m_comboSpecial.AddString("服装设计 ");m_comboSpecial.AddString("服装表演 &q
10、uot;);m_comboSpecial.AddString("艺术设计 ");m_strSpecial=" 网络工程 "m_comboAcademy.AddString("计算机学院 ");m_comboAcademy.AddString("服装学院 ");m_strAcademy="计算机学院 "m_tBirth=CTime(1989,10,7,0,0,0);m_strMath=80;UpdateData(FALSE);/将信息显示在控件中2 、6 用 MFC ClassWizard为单选按
11、钮IDC_RADIO_MALE添加 BN_CLICKED 的消息映射,并添加下列初始代码:m_bMale=TRUE;用 MFC ClassWizard 为单选按钮 IDC_RADIO_FEMALE 添加 BN_CLICKED 的消息映射,并添加下列初始代码:m_bMale=FALSE;用 MFC ClassWizard 为单选按钮 IDOK 添加 BN_CLICKED 的消息映射,并添加下列初始代码:UpdateData();m_strName.TrimLeft();/将字符串最前面的空格修整掉m_strNO.TrimLeft();专业资料if(m_strName.IsEmpty()Messa
12、geBox(" 必须要有姓名!");else if(m_strNO.IsEmpty()MessageBox(" 必须要有学号!");Else3 、 1 用 MFC ClassWizard 为 CStudentCheckView类添加 NM_CLICK消息映射通过映射来在列表视图显示学生信息。并添加下列初始化代码:专业资料CPoint point;UINT uFlags;:GetCursorPos(&point);/该函数检取光标的位置,以屏幕坐标表示CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeC
13、trl.ScreenToClient(&point);HTREEITEM hSel=m_TreeCtrl.HitTest(point,&uFlags);/ 测试鼠标点是否在一个节点项上,若是,则选中该点if(hSel!=NULL)&&(TVHT_ONITEM & uFlags)m_TreeCtrl.SelectItem(hSel);CString strItem=m_TreeCtrl.GetItemText(hSel);CStudentCheckDoc *doc=GetDocument();int nIndex=doc->m_stuObArray.
14、GetSize();/得到数组的大小:知道储存了几个学生的信息");for(int n=0;n<nIndex;n+)CStudentInfo*stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n);/调 取m_stuObArray中储存的第n 个对象信息CString str=stu->strSpecial;/得到该学生的专业信息CString dlg=stu->strAcademy;/得到该学生的学院信息POSITION pos=GetDocument()->GetFirstViewPosition();GetDoc
15、ument()->GetNextView(pos);listView*list=(listView*)GetDocument()->GetNextView(pos);/定义一个指向列表视图类的指针if(n=0)list->GetListCtrl().DeleteAllItems();/删除全部列表项if(strItem=str|strItem=dlg|strItem="中原工学院 ")list->Onprint(stu);/把息输信入到列表中3、2 然后为 CStudentCheckView添加一个void 类型的成员函数CreateTree() 函
16、数,用来动态添加学生信息专业资料并添加下列初始代码:CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();HTREEITEM hRoot,hParent,hChild,pS;hRoot=m_TreeCtrl.InsertItem("中原工学院 ",0,1);BOOL flag=TRUE;CStudentCheckDoc *doc=GetDocument();int i=doc->m_stuObArray.GetSize();for(int n=0;n<i;n+)CStudent
17、Info *stu=(CStudentInfo*)doc->m_stuObArray.GetAt(n); CString str1=stu->strAcademy;CString str2=stu->strSpecial;if(!m_TreeCtrl.ItemHasChildren(hRoot)/判断根节点是否有子节点hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);elsehParent=m_TreeCtrl.GetChildItem(hRoot);pS=hPa
18、rent;for(;pS!=NULL;pS=m_TreeCtrl.GetNextItem(pS,TVGN_NEXT)CString strItem1=m_TreeCtrl.GetItemText(pS);if(strItem1=str2)flag=FALSE;if(flag)专业资料hParent=m_TreeCtrl.InsertItem(str2,hRoot);m_TreeCtrl.InsertItem(str1,0,1,hParent);elseif(!m_TreeCtrl.ItemHasChildren(hParent)/ 判断是否有子节点 m_TreeCtrl.InsertItem(
19、str1,0,1,hParent);elsehChild=m_TreeCtrl.GetChildItem(hParent); for(;hChild!=NULL;hChild=m_TreeCtrl.GetNextItem(hChild,TVGN_NEXT)CString strItem2=m_TreeCtrl.GetItemText(hChild);if(strItem2=str1)flag=TRUE;if(!flag)m_TreeCtrl.InsertItem(str1,0,1,hParent);SetCtrlStyle(m_TreeCtrl.GetSafeHwnd(),TVS_HASLIN
20、ES|TVS_LINESATROOT|TVS_HASBUTTONS);3、3 为 CStudentCheckView添加消息映射OnIntialUpte,用来调用CreateTree() 函数,动态添加学生信息。并添加下列初始代码:CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();CreateTree();3、4 为 CStudentCheckView添加一个 void 类型的成员函数SetCtrlStyle(HWND hWnd,DWORD dwNewStyle)/设置列表控件不同的显示式专业资料并添加下
21、列初始代码:LONG lStyle;lStyle = GetWindowLong(hWnd, GWL_STYLE);/获取当前窗口stylelStyle &= LVS_TYPEMASK; /清除显示式位lStyle |= dwNewStyle; /设置 styleSetWindowLong(hWnd, GWL_STYLE, lStyle);/设置 style4 、1 在 WorkSpace 中进入 ClassView 视图,为 listView 类添加一个 void 型的成员函数 Onprint(CStudentInfo *dlg), 用来添加学生信息。并添加下列初始代码:CListC
22、trl&m_listctrl=GetListCtrl();/变量m_listctrl.InsertItem(0,dlg->strName);/姓名m_listctrl.SetItemText(0,1,dlg->strNO);/学号if(dlg->bMale)m_listctrl.SetItemText(0,2,"男 ");elsem_listctrl.SetItemText(0,2,"女 ");m_listctrl.SetItemText(0,3,dlg->tBirth.Format("%Y-%m-%d"
23、;);/ 出生年月 CString str;/ 理解str.Format("%d",dlg->strMath);/数学成绩m_listctrl.SetItemText(0,4,str);专业资料m_listctrl.SetItemText(0,5,dlg->strSpecial);/专业m_listctrl.SetItemText(0,6,dlg->strAcademy);/学院4 、 2 然后为 listView 添加消息映射 NM_CLICK ,用来通过点击或得学生的映射,并通过点击查找学生信息。并添加下列初始代码:int i = lpItem->
24、;iItem;if (i >= 0)CListCtrl& ListCtrl = GetListCtrl();CString str = ListCtrl.GetItemText(i, 0);MessageBox(str);4 、 3 为 listView 添加消息映射OnIntialUpte,用来在列表视图输出学生的信息专业资料并添加下列初始代码:CListCtrl&m_listctrl=GetListCtrl();CString strHeader7="姓名 ","学号 ","性别 ","出生年月 &
25、quot;,"数学成绩 ","所选专业 ","所在学院 "int nWidth7=100,100,100,100,100,100,100;for(int nCol=0;nCol<7;nCol+)m_listctrl.InsertColumn(nCol,strHeadernCol,LVCFMT_LEFT,nWidthnCol);5 、 1 建立序列化类 CStudentInfo 用来保存学生信息 ,添加 C/C+ Header File ,并添加下列初始代码:class CStudentInfo:public CObjectpub
26、lic:CString strName;CString strNO;BOOLbMale;CTimetBirth;intstrMath;CString strSpecial;CString strAcademy;DECLARE_SERIAL(CStudentInfo)public:CStudentInfo();CStudentInfo(CString name,CString id,BOOL male,CTime birth,int math,CString special,CString academy);void Serialize(CArchive &ar);5 、 2 添加 C/
27、C+ Source File, 并添加下列初始代码:#include "stdafx.h"专业资料#include "StudentInfo.h"CStudentInfo:CStudentInfo(CString name,CString id,BOOL male,CTime birth,int math,CString special,CString academy)strName=name;strNO=id;bMale=male;tBirth=birth;strMath=math;strSpecial=special;strAcademy=acade
28、my;IMPLEMENT_SERIAL(CStudentInfo,CObject,1) /序列化实现voidCStudentInfo:Serialize(CArchive&ar)/从档案文件中读取该对象或向档案文件中写入该对象。if(ar.IsStoring()ar<<strName<<strNO<<bMale<<tBirth<<strMath<<strSpecial<<strAcademy; elsear>>strName>>strNO>>bMale>>
29、tBirth>>strMath>>strSpecial>>strAcademy; 6、 1 打开该文档应用程序的菜单资源,添加顶层菜单项“学生基本操作”并添加菜单项目:添加删除、修改、查询, ID 依次为 ID_STUINFO_ADD 、 ID_STUINFO_Del 、 ID_STUINFO_XIUGAI 、ID_STUINFO_FIND 。打开 CStudentCheckDoc, 分别添加下列映射:专业资料6、 2 分别为下列函数添加下列代码用来添加、删除、修改、查询学生的信息,添加初始代码:void CStudentCheckDoc:OnStuinfo
30、Add() /添加信息StuInfoDlg dlg;if(dlg.DoModal()!=IDOK)return;/ 判断学生信息是不是已经添加 CStudentInfo*pStudent=newCStudentInfo(dlg.m_strName,dlg.m_strNO,dlg.m_bMale,dlg.m_tBirth, dlg.m_strMath,dlg.m_strAcademy,dlg.m_strSpecial);m_stuObArray.Add(pStudent);POSITION pos=GetFirstViewPosition();CStudentCheckView *stu=(CS
31、tudentCheckView*)GetNextView(pos); stu->CreateTree();SetModifiedFlag();/ 设置文档更改标志UpdateAllViews(NULL);/ 更新视图void CStudentCheckDoc:OnSTUINFODEl() /删除学生信息Find dlg;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();for(int n=0;n<i;n+)CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n);
32、if(stu->strName=dlg.m_name)delete m_stuObArray.GetAt(n);m_stuObArray.RemoveAt(n,1);专业资料SetModifiedFlag();/ 设置文档更改标志UpdateAllViews(NULL);/ 更新视图void CStudentCheckDoc:OnStuinfoFind() /查找学生信息Find dlg;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();if(i=0)AfxMessageBox(" 无学生信息 ");
33、elsefor(int n=0;n<i;n+)CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n);if(stu->strName=dlg.m_name)/*POSITION pos=GetFirstViewPosition();GetNextView(pos);listView *list=(listView*)GetNextView(pos);CListCtrl& m_list=list->GetListCtrl();m_list.DeleteAllItems();list->Onprint(stu);
34、flag=FALSE;*/CString strRes,strSex(" 女 ");CString str;/ 理解str.Format("%d",stu->strMath);if(stu->bMale) strSex="男 "strRes.Format(" 姓名:%s,n学号: %s,n性别:%s,n出生年月:%s,n 学院: %s,n 专业: %s,n 数学成绩: %s",stu->strName,stu->strNO,strSex,stu->tBirth.Format("
35、;%Y-%m-%d"),stu->strAcademy,stu->strSpecial,str);AfxMessageBox(strRes);/ 判断是否找到 void CStudentCheckDoc:OnStuinfoXiugai() /修改学生信息Find dlg;StuInfoDlg dl;BOOL flag=TRUE;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();if(i=0)专业资料AfxMessageBox(" 无学生信息 ");elsefor(int n=0;n<i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国板型电阻器数据监测研究报告
- 2025年中国束状染色机市场调查研究报告
- 2025年中国无缝小背心市场调查研究报告
- 2025年中国ABS珠数据监测研究报告
- 2025年中国方杆磨尖铅笔市场调查研究报告
- 2025年中国数控高速塑料中空成型机市场调查研究报告
- 2025-2030年中国互联网传媒市场动态监测及投资前景评估报告
- 2025-2030年中国丙烯行业市场发展预测及前景调研分析报告
- 2025-2030年中国MTBE甲基叔丁基醚行业风险评估与发展前景分析报告
- 新疆吐鲁番市鄯善县2025年三年级数学第二学期期末经典模拟试题含解析
- 笔的制造设备综合效率OEE提升考核试卷
- 2025-2030中国聚丙烯三元共聚物行业市场发展趋势与前景展望战略研究报告
- 2025年上半年苏州太仓临港投资发展集团限公司公开招聘工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 工业自动化控制系统调试与维护题库
- 2025届广东省佛山市高三语文二模高分范文12篇:“成长最大的悲哀是失去了想象力”
- 2025年合肥高新美城物业有限公司招聘30人笔试参考题库附带答案详解
- 2025内蒙古中煤鄂尔多斯能源化工有限公司招聘98人笔试参考题库附带答案详解
- 青少年体重健康管理
- 2025年中国AI医疗健康企业创新发展百强榜单报告-摩熵咨询
- 建筑垃圾清运投标技术方案
- 小学科学课件《水的循环》
评论
0/150
提交评论