C小组作业学生信息管理完整(整理)_第1页
C小组作业学生信息管理完整(整理)_第2页
免费预览已结束,剩余7页可下载查看

下载本文档

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

文档简介

1、课程:C+课程设计 课程设计题目:学生信息管理系统 组员: 指导老师: 杨永平 日期: 2014 年 5 月 8 日 目录 1,引言 . 3 1.1 课程背景及意义 . 3 1.2 可行性分析 . 3 2, . 系统需求分析 . 4 2.1 功能需求分析 . 4 2.2 性能需求分析 . 4 2.3 系统总体结构设计 . 4 3, 详细设计 . 5 3.1 具体操作步骤分析 . 5 4, 设计测试流程 . 14 5, 结束语 . 18 参考文献 . 18 6,小组分工记录 . 19 自我评价 . 20 1引, 言 为了方便对学生的信息进行高效的管理,编写了该程序来提高学生信息管理 效率,使用该

2、程序之后学校管理者可以对某位学生的相关信息进行查询,还可 以对某个学生的信息进行数据的修改,删除,添加等操作,那么学生也可以通 过某些特殊情况更新自己的相关信息,通过本系统的操作练习可以让我们更好 的掌握学生在校的一些基本信息情况,减轻学校的相关管理人员的负担,也使 学生的信息长期的保留下来。 1.1 课题背景及意义 一直以来人们使用传统的人工方式管理在校学生的基本信息情况,那么随着 大数据时代的来临,人们越来越多依赖于计算机,也就是网络时代,在计算机 尚未在广泛使用之前学生的信息管理主要靠手工进行记录,一个做典型的例子 就是,当我们的学生要进行信息添加的时候就要一个一个去查找然后再进行添 加

3、写上去,我们知道当老师所要保存学生的信息的时候必须把学生的信息记录 下来而且进行查找的工作是非常困难的如果我们对于学号进行排序之后查找某 个学生的信息就变得十分简单了所以为了极大的方便老师和学生们,为了提高 管理效率减轻管理人员的负担有必要去开发这样一个小型的学生信息管理系 统。 1.2 可行性分析 1)经济可行性分析 作为学校这样的商业性质较小的场所,其经济成分比重相对少很多,主要 是支出的费用 :其中包括设备购买费,软件开发费,管理和维护费,人员工资和 培训费等,由于各个学校实施统一的管理操作,系统信息共享,其设备购置, 人员工资,维护费用相对少,而且该系统的费用也很低。 2)技术可行分析

4、 技术上的可行性分析:现有技术条件是否顺利完成开发工作,硬件,软件 配置是否满足开发者的需求,各类技术和人员的数量,水平,来源等,学生信 息管理系统的工作主要是给学生和老师之间架起一座桥梁,能够方便相互沟通 信息和处理信息,这一点非常适合计算机特点,通过网络技术,发挥计算机信 息传输速度快,准确度高的优势,计算机硬件和软件技术的飞速发展为系统的 建设提供了技术的条件。 3)社会可行性分析 社会可行性分析有时也称为操作可行性,主要论证该系统在企业或者机构开 发行业运行的可能行及运行之后对于企业产生的影响,及组织内外是否具备接 受和使用该系统的条件,在当前信息技术飞速发展的环境下,计算机技术和软

5、件技术的更新是学校完全有可能也有能力去采用这样的新进管理技术,它对于 学校所带来的影响可以看到:使学校在一定的可能下进行机构精简,迫使工作 人员继续学习知识扩宽学校在市场环境下的生存空间,对于学生和管理人员业 务方式的转变和扩充。 2,系统需求分析 2.1 功能需求分析 1)录入信息:将学生的姓名,学号,专业 ,成绩写入文件 2)增加人员:增加学生,并把学生的相关信息写入文件中。 3)删除人员:删除某个学生的基本信息。 4)修改数据:修改学生的信息。 2.2 性能需求分析 1,硬件环境 处理器:In terCR300 或是更高。 内存: 128MB 硬盘空间: 20MB 2,软件环境: 操作系

6、统: win7/XP/Visual C+ 2.3 系统总体结构设计 对学生信息进行管理系统,只要划分以下 2 个模块: 1) 操作:包括录入数据,增加人员,删除人员,修改人数据 2) 查询:包括按学号,姓名进行查询。 图 2.1 系统总体结构如下图所示: 学生信息管理系 3详细设计 3.1 具体操作步骤分析 1) 一、用 acess 创建一个 xinxi.Mdb 文件,数据的初始值如下 1F _ 添加代码获取列表信息 void Cstude ntView:O nlni tialUpdate() CListView:OnlnitialUpdate()。 /调用 GetListCtrl() 直接访

7、问 ListView的列表控件,从而可以用项 填充 ListView。注意获得的控件为引用,就是控件自身,不能使用对象。 CListCtrl& mistctrl=GetListCtrl()。/获取内嵌在列表视图中的列表控件 mistctrl.SetExte ndedStyle(LVS_EX_FULLROWSELECT) Cstude ntSet cset。 cset.Open()。 /打开记录集 CODBCFieldI nfo field。 /创建列表头 for(UINT i=0。icset.m_nFields。i+) 查 看 学 生 信息 二、操设置数据 三、用 mfc appwiz

8、ardmfc appwizard 创建一个基于 CListviewCListview 的默认单文档应用程序 studentstudent 在选择数据源时选择已经设置好的学生信息数据库 录 入 数 据 土增 叩I 四、在 studenstudentView.tView. cpcp 修源文件中添加头文件 #include studentS, 添加代码,设置报表风格改为“报 :PreCreateWi ndow(CREATESTRUCT & cs) 表视图”显示方式 studentView 员 cs.style|= LVS_REPORT return CListVi V et.h按 按 姓 学

9、 名 号 查 查 询 询 查询 cset.GetODBCFieldInfo(i,field)。 mistctrl.lnsertColumn(i,field.m_strName,LVCFMT_LEFT,100)。 cset.Close()。/关闭记录集 UpdateListltemData()。 IITODO:调用 GetListCtrl()直接访问 ListView 的列表控件, /从而可以用项填充 ListView。 以上内容放入 OnlnitUpdate()重载函数。 给视图类添加自定义函数 UpdateListltemData() 成员函数: void Cstude ntView:Upd

10、ateListltemData(void) 更新数据库,当数据有变动时,用此函数更新 CListCtrl& m_listctrl=GetListCtrl()。 m_listctrl.DeleteAllltems()。 Cstude ntSet cset。 cset.m_strSort=stude ntName,stude ntNo。 cset.Ope n()。 int nltem=0 。 CStri ng str。 while(!cset.lsEOF() for(UlNT i=0。 icset.m_nFields。i+) cset.GetFieldValue(i,str)。 if(i=

11、0) m_listctrl.l nsertltem( nltem,str)。 else m_listctrl.SetltemText(nltem,i,str)。 n ltem+。 cset.MoveNext()。 cset.Close()。 当以上步骤设置好后,运行结果 五、添加控件,设置成类名为 StudentDIgStudentDIg 在 StudentDIg 类中添加相应的控件变量如下: 控件 ID 变量类别 变量类型 变量名 范围和大小 IDC EDIT1 Value CStri ng m strStuName 20 IDC EDIT2 Value CStri ng m strStuN

12、O 20 IDC EDIT3 Value CStri ng m strPh one 20 IDC EDIT4 Value CStri ng m strStuAD 20 IDC EDIT5 Value CStri ng m strStuSP 20 用 MFC ClassWizard 为 StudentDIg 添加 IDOK 按钮的 BN_CLICKED 消息映射, 码: void CStudentDlg:OnBnClickedOk()/ 确定按钮的代码处理 / TODO: 在此添加控件通知处理程序代码 UpdateData()。 m_strStuName.TrimLeft() 。 m_strSt

13、uNO.TrimLeft() 。 if(m_strStuNO.IsEmpty()/ 检测学号的输入是否为空 AfxMessageBox(ID 号不能为空 !)。 else if(m_strStuName.IsEmpty()/ 检测姓名的输入是否为空 AfxMessageBox(姓名不能为空!)。 else OnOK()。 在 CstudentView。Cpp 添加头文件 #include StudentDlg.h 六、添加、修改、删除功能 1、设置菜单 2、用 mfc appwizard 为 CstudentView 类添加 ID_32771、ID_32772、ID_32773 command

14、 消息映射 并添加如下代码 void CstudentView:On32771()/ 添加功能的代码处理 CStudentDlg dlg。 if(dlg.DoModal()!=IDOK) return 。 CstudentSet cset。 cset.m_strFilter.Format(studentNo=%s studentName=%s,dlg.m_strStuNO,dlg.m_strStuName) 。 cset.Open()。 if(!cset.IsEOF() AfxMessageBox(有相同的记录存在! )。 cset.Close()。 return 。 / 信息的获取 cset

15、.AddNew() 。 cset.m_studentName = dlg.m_strStuName 。 cset.m_studentNo = dlg.m_strStuNO。 cset.m_phone=dlg.m_strPhone 。 cset.m_address=dlg.m_strStuAD 。 cset.m_special=dlg.m_strStuSP。 cset.Update()。 cset.Requery()。 cset.Close()。 AfxMessageBox(记录已添加!)。 添加如下代 AND UpdateListItemData() 。 / 更新列表 void Cstuden

16、tView:On32772() CListCtrl& m_listctrl=GetListCtrl() 。 POSITION pos。 pos=m_listctrl.GetFirstSelectedItemPosition() 。 if(pos=NULL) AfxMessageBox(你还没有选中一项! )。 return 。 int nItem=m_listctrl.GetNextSelectedItem(pos) 。 CString strName=m_listctrl.GetItemText(nItem,0) 。 CString strID=m_listctrl.GetItemT

17、ext(nItem,1) 。 CstudentSet cset。 cset.m_strFilter.Format(studentName=%s AND studentNo=%s,strName,strID) 。 cset.Open()。 CStudentDlg dlg。 dlg.m_strStuName=m_listctrl.GetItemText(nItem,0) 。 dlg.m_strStuNO=m_listctrl.GetItemText(nItem,1) 。 dlg.m_strPhone=m_listctrl.GetItemText(nItem,2) 。 dlg.m_strStuAD=

18、m_listctrl.GetItemText(nItem,3) 。 dlg.m_strStuSP=m_listctrl.GetItemText(nItem,4) 。 if( IDOK!=dlg.DoModal() if(cset.IsOpen() cset.Close()。 return 。 cset.Edit()。 cset.m_studentName = dlg.m_strStuName 。 cset.m_studentNo = dlg.m_strStuNO。 cset.m_phone=dlg.m_strPhone 。 cset.m_address=dlg.m_strStuAD 。 cse

19、t.m_special=dlg.m_strStuSP。 cset.Update()。 cset.Requery()。 if(cset.IsOpen() cset.Close()。 AfxMessageBox(修改成功!)。 UpdateListItemData() 。 void CstudentView:On32773() CListCtrl& m_listctrl=GetListCtrl() 。 POSITION pos。 pos=m_listctrl.GetFirstSelectedItemPosition() 。 if(pos=NULL) AfxMessageBox(你还没有选中

20、一项! )。 return 。 int nItem=m_listctrl.GetNextSelectedItem(pos) 。 CString strItem,str 。 strItem=m_listctrl.GetItemText(nItem,0) 。 str.Format(”你确实要删除 s 记录吗? ,strltem)。 if(IDOK!=MessageBox(str,”删除确认 ”,MB_ICONQUESTION|MB_OKCANCEL) return 。 CString strName=m_listctrl.GetItemText(nItem,0) 。 CString strID=m

21、_listctrl.GetItemText(nItem,1) 。 CstudentSet cset。 cset.m_strFilter.Format(studentName=%s AND studentNo=%s,strName,strID) 。 cset.Open() 。 if(!cset.IsEOF() CRecordsetStatus status。 cset.GetStatus(status)。 cset.Delete()。 if(status.m_lCurrentRecord=0) cset.MoveNext() 。 else cset.MoveFirst() 。 if(cset.IsOpen() cset.Close()。 AfxMessageBox(当前指

温馨提示

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

评论

0/150

提交评论