课程设计(信息管理系统)_第1页
课程设计(信息管理系统)_第2页
课程设计(信息管理系统)_第3页
课程设计(信息管理系统)_第4页
课程设计(信息管理系统)_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、郑州工业应用技术学院课程设计说明书 题目: 学生信息管理系统 姓 名: 蔡 阳 阳 院 (系): 信 息 工 程 学 院 专业班级:14 级计算机科学与技术一班 学 号: 1401110107 指导教师: 张 吉 同 成 绩: 时间: 2015 年 9 月 11 日至 2015 年 11 月 14 日郑州工业应用技术学院课程设计任务书 题目 学 生 信 息 管 理 系 统 专业、班级14级计算机科学与技术一班 学号1401110107 姓名 蔡阳阳 主要内容:1.了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法;3.

2、60;掌握用VC+开发应用程序的的一般步骤和方法;4.  能够利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:实现学生信息的存储,可以用文件来实现。编程实现学生信息的添加、删除、修改、浏览和查询等功能(必须实现的功能)。基本要求: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 Visual C+ 6

5、.0环境下的实现过程:系统的分析、功能模块的设计、系统的调试和测试。此系统的主要管理信息:学生的班级、学生的学号、学生的作业情况、作业评分。本系统的主要功能有:输入数据、显示所有的数据、按成绩降序排列、查找并显示一组数据、插入一组数据、修改一组数据、删除一组数据、从文件中读取数据、将所有记录写入文件、退出本系统。 关键字:学生成绩处理、VC+、MFC、控件四、主要步骤 1、新建工程:用MFC AppWizard(exe)创建一个单文档的应用程序StudentCheck。在第六步中将视图的基类选择为。2、1添加一个基于ListView类的新的类listView、用于显示学生信息2、2为CMain

6、Frame添加一个切分窗口的映射函数OnCreateClient并添加一个切分窗口的函数成员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.Cre

7、ateView(0,1,RUNTIME_CLASS(listView),CSize(0,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_D

8、ATA_INIT(StuInfoDlg)m_strSpecial = _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_FEMAL

9、E,IDC_RADIO_FEMALE);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(&

10、quot;服装表演");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()MessageBox("必须

12、要有姓名!");else if(m_strNO.IsEmpty()MessageBox("必须要有学号!");Else3、1用MFC ClassWizard为CStudentCheckView类添加NM_CLICK消息映射通过映射来在列表视图显示学生信息。并添加下列初始化代码:CPoint point;UINT uFlags;:GetCursorPos(&point);/该函数检取光标的位置,以屏幕坐标表示CTreeCtrl& m_TreeCtrl = GetTreeCtrl(); m_TreeCtrl.ScreenToClient(&po

13、int); 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.GetSize();/得到数组的大小:知道储存了几个

14、学生的信息 ");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(); GetDocument()->GetNextView(p

15、os);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()函数,用来动态添加学生信息并添加下列初始代码:CTreeC

16、trl& 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+)CStudentInfo *stu=(CStudentInfo*)doc->

17、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=hParent;for(;pS!=NULL;pS=m_TreeCtrl.G

18、etNextItem(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);else if(!m_TreeCtrl.ItemHasChildren(hParent)/判断是否有子节点m_TreeCtrl.InsertItem(str1,0,1,hParent);elsehChild=m_TreeCtrl

19、.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_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS);3、3为

20、CStudentCheckView添加消息映射OnIntialUpte,用来调用CreateTree()函数,动态添加学生信息。并添加下列初始代码:CTreeCtrl& m_TreeCtrl = GetTreeCtrl();m_TreeCtrl.DeleteAllItems();CreateTree();3、4为CStudentCheckView添加一个void类型的成员函数SetCtrlStyle(HWND hWnd, DWORD dwNewStyle)/设置列表控件不同的显示方式并添加下列初始代码:LONG lStyle; lStyle = GetWindowLong(hWnd,

21、GWL_STYLE);/获取当前窗口style lStyle &= LVS_TYPEMASK; /清除显示方式位 lStyle |= dwNewStyle; /设置style SetWindowLong(hWnd, GWL_STYLE, lStyle);/设置style4、1在WorkSpace中进入ClassView视图,为listView类添加一个void型的成员函数Onprint(CStudentInfo *dlg),用来添加学生信息。并添加下列初始代码:CListCtrl&m_listctrl=GetListCtrl();/变量m_listctrl.InsertItem

22、(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");/出生年月CString str;/理解str.Format("%d",dlg->st

23、rMath);/数学成绩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->iItem;if (i >= 0) CListCtrl& ListCtrl = GetListCtrl();CString str

24、 = ListCtrl.GetItemText(i, 0);MessageBox(str);4、3为listView添加消息映射OnIntialUpte,用来在列表视图输出学生的信息并添加下列初始代码:CListCtrl&m_listctrl=GetListCtrl();CString strHeader7="姓名","学号","性别","出生年月","数学成绩","所选专业","所在学院"int nWidth7=100,100,100,100,1

25、00,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 CObjectpublic:CString strName;CString strNO;BOOL bMale;CTime tBirth;int strMath;CString strSpecial;CString

26、 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/C+ Source File,并添加下列初始代码:#include "stdafx.h"#include "StudentInfo.h"CStudent

27、Info: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=academy;IMPLEMENT_SERIAL(CStudentInfo,CObject,1) /序列化实现void CStudentInfo:Serialize(CArchive &ar)/ 从档案文

28、件中读取该对象或向档案文件中写入该对象。if(ar.IsStoring() ar<<strName<<strNO<<bMale<<tBirth<<strMath<<strSpecial<<strAcademy;else ar>>strName>>strNO>>bMale>>tBirth>>strMath>>strSpecial>>strAcademy;6、1打开该文档应用程序的菜单资源,添加顶层菜单项“学生基本操作”并添加菜单项

29、目:添加删除、修改、查询,ID依次为ID_STUINFO_ADD、ID_STUINFO_Del、ID_STUINFO_XIUGAI、ID_STUINFO_FIND。打开CStudentCheckDoc,分别添加下列映射:6、2分别为下列函数添加下列代码用来添加、删除、修改、查询学生的信息,添加初始代码:void CStudentCheckDoc:OnStuinfoAdd() /添加信息StuInfoDlg dlg;if(dlg.DoModal()!=IDOK)return;/判断学生信息是不是已经添加CStudentInfo*pStudent=new CStudentInfo(dlg.m_st

30、rName,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=(CStudentCheckView*)GetNextView(pos);stu->CreateTree();SetModifiedFlag(); /设置文档更改标志UpdateAllViews(NULL); /更新视图void CStu

31、dentCheckDoc: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);if(stu->strName=dlg.m_name)delete m_stuObArray.GetAt(n);m_stuObArray.RemoveAt(n,1);SetModifiedFlag(); /设置文档更改标志Update

32、AllViews(NULL); /更新视图void CStudentCheckDoc:OnStuinfoFind() /查找学生信息Find dlg;if(dlg.DoModal()!=IDOK)return;int i=m_stuObArray.GetSize();if(i=0)AfxMessageBox("无学生信息");elsefor(int n=0;n<i;n+)CStudentInfo *stu=(CStudentInfo*)m_stuObArray.GetAt(n);if(stu->strName=dlg.m_name)/*POSITION pos=

33、GetFirstViewPosition();GetNextView(pos);listView *list=(listView*)GetNextView(pos);CListCtrl& m_list=list->GetListCtrl();m_list.DeleteAllItems();list->Onprint(stu);flag=FALSE;*/CString strRes,strSex("女");CString str;/理解 str.Format("%d",stu->strMath);if(stu->bMale)

34、 strSex="男"strRes.Format("姓名: %s,n学号:%s,n性别: %s,n出生年月: %s,n学院:%s,n专业:%s,n数学成绩:%s",stu->strName,stu->strNO,strSex,stu->tBirth.Format("%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(i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论