学生信息管理系统实验报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学生信息管理系统实验报告班级:10网工三班学生姓名:谢昊天学号:1215134046实验目的和要求:实验目的:1、加深理解Windows程序设计的基本概念;2、基于单文档的应用程序的创建;3、学会对话框及相关控件的创建;4、熟悉基本的Windows消息映射机制和消息相应过程。实验内容:1.创建一个基于对话框的应用程序,用于处理学生成绩,并能够处理相关数据。2.进一步完善实验二中的系统;3.在学生信息管理系统中添加一个信息查询对话框,并做好相应的界面设计;4.根据功能要求完成相应的界面设计;实验内容与分析设计:1.使用单文档或基于对话框应用程序框架;2.设计信息查询对话框,增加信息检索功能;3.信息存储可以借助于数据库,也可以借助于文件,检索记录可以直接在记录文件中进行;4.通过界面的设计,增加成绩处理的功能;实验步骤与调试过程:1.打开Visualc++6.0编程环境;2.点击文件-新建、选择建立新的工程;选择Win32ConsoleApplication选项建立工程名为“学生信息管理系统”的一个空工程;3.继续点击文件-新建、选择建立新的文件;选择C++SourceFile选项建立在“学生信息管理系统”工程下的名为“学生信息管理系统”的文件;(或者使用试验一中的文件);整个系统的功能在菜单内完成,分别是在学生信息管理下的学生信息录入4.创建学生信息的录入。voidAdd::OnOK(){UpdateData();if(m_sNum==||m_sName==||m_sMajor==||m_sGrade==||m_sBirthday==||(!m_cMale.GetCheck()&&!m_cFemale.GetCheck())){MessageBox(学生信息不完整,无法录入!,错误);return;}5.创建学生信息的删除。6.创建学生信息的修改。voidModify::OnOK(){UpdateData();ifstreamin(record.txt);intr=0,k;stringa;while(r!=m_nRecord){ina;k=a.size();r++;if(r==m_nRecord)break;in.ignore(1024,'\n');}7.创建学生信息的查询。voidSearch::OnOK(){UpdateData();m_sName=;m_sMajor=;m_sGrade=;m_sBirthday=;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);if(m_sNum==){MessageBox(学号为空,无法查询!,错误);return;}8.可视化的窗口五个,分别实现用户的登录,学生信息的录入,修改,删除,查找。9.通过窗口的各个按键对学生信息进行操作。10.在组建选项中点击执行【学生信息管理系统.exe】(或者Ctrl+F5)执行程序.11.程序没有错误,正常执行学生信息管理系统.exe,显示学生信息管理系统。实验结果:调试无误,正常运行学生信息管理系统.exe,显示学生信息管理系统操作页面。可以实现一下操作:1.实现简单地使用用户名和密码来进入登陆界面。2.实现任意添加学生的信息,包括添加学生的个人学号,姓名,性别,专业,年级出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。3.实现删除学生的信息,包括删除学生的个人学号,姓名,性别,专业,年出生日期。根据编号进行用户权限检查,在数据库中进行查找相符和的记录,如果编号在数据库中不存在相应记录,则提示不能删除,否则可以删除该记录。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。4.实现编辑学生的信息,包括编辑学生的个人学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。5.实现查询学生的信息,包括编辑查询学生的个学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。6.实现保存学生的信息,包括保存学生的个人学号,姓名,性别,专业,年级,出生日期。疑难小结:通过本次综合试验,了解了C语言、C++,Windows网络编程的一些基础知识,学习到了用C语言、C++,Windows网络编程的特点。学习到了如何如何建立一个学生类实现基本地操作;如何定义所需的学生类及实现基本地操作。如何定义指向结构体的指针设置服务器CSocket地址,实现了数据的存储,以及了实现查询学生的信息同,在实验过程中,回顾书本上的理论知识,巩固了Windows网络编程的知识。主要算法和程序清单:1.录入学生信息voidAdd::OnOK(){UpdateData();if(m_sNum==||m_sName==||m_sMajor==||m_sGrade==||m_sBirthday==||(!m_cMale.GetCheck()&&!m_cFemale.GetCheck())){MessageBox(学生信息不完整,无法录入!,错误);return;}intflag=0;CStudent*stu=newCStudent;stu-m_strID=m_sNum;stringtemp;ifstreamin(record.txt);while(intemp){if(temp==stu-m_strID){flag=1;MessageBox(该学号已存在!,注意);in.close();m_sNum=;UpdateData(false);//只将学号清空,其余信息保留return;}}in.close();write(stu);deletestu;MessageBox(录入完毕!,成功);clean();//清空表格//TODO:Addextravalidationhere//CDialog::OnOK();}voidAdd::clean(){m_sNum=;m_sName=;m_sMajor=;m_sGrade=;m_sBirthday=;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);}voidAdd::write(CStudent*stu){stu-m_strName=m_sName;stu-m_strMajor=m_sMajor;stu-m_strGrade=m_sGrade;stu-m_strDate=m_sBirthday;stringtemp;if(m_cMale.GetCheck())temp=男;elsetemp=女;ofstreamou;ou.open(record.txt,ios::app);//选择附加模式ouleft;ousetw(20)stu-m_strID;ousetw(20)stu-m_strName;if(m_cMale.GetCheck())temp=男;elsetemp=女;ousetw(20)temp;ousetw(20)stu-m_strMajor;ousetw(20)stu-m_strGrade;ousetw(20)stu-m_strDate;ouendl;ou.close();}2.查询信息代码voidDelete::OnOK(){if(!searched){MessageBox(请先查询!,注意);return;}if(!find){MessageBox(该学生信息不存在,无法删除!,错误);return;}intmbr=MessageBox(确定要删除该学生的所有信息吗?,注意,MB_YESNO|MB_ICONQUESTION);if(mbr==IDNO)return;intk;ifstreamin(record.txt);for(inti=1;i=index;i++){stringa;ina;k=a.size();//为了得到文件指针的偏移量if(i==index)//说明文件指针到达要删除那行了,但偏移了k字节break;in.ignore(1024,'\n');}in.seekg(-k,ios::cur);//让指针跳到要删除那行的行首intoffset=in.tellg();//记下指针位置,便于写新的记录fstreamou;//这是文件流,不是输出流!ou.open(record.txt);ou.seekp(offset,ios::beg);//跳到删除行stringstr;getline(in,str);intsize=str.size();//得到删除行的大小for(i=0;isize;i++)ou;//用空格代替删除行MessageBox(该学生信息已删除!,成功);m_sNum=;clean();searched=false;//在表格是空的情况下要求先查询//TODO:Addextravalidationhere//CDialog::OnOK();}voidDelete::OnButton1(){find=false;//该变量表示是否找到searched=true;//该变量表示是否进行过查询UpdateData();clean();//清空上次查询结果,仅保留现在输入的学号if(m_sNum==){MessageBox(学号为空,无法查询!,错误);searched=false;return;}index=0;//表示要查找的学生信息在哪一行,作为删除的索引ifstreamin(record.txt);stringtemp,str;while(intemp){index++;str=m_sNum;if(str==temp){find=true;//找到了intemp;m_sName=temp.c_str();intemp;if(temp==男)m_cMale.SetCheck(1);elsem_cFemale.SetCheck(1);intemp;m_sMajor=temp.c_str();intemp;m_sGrade=temp.c_str();intemp;m_sBirthday=temp.c_str();UpdateData(false);in.close();break;}in.ignore(1024,'\n');}in.close();if(!find){MessageBox(该学生信息不存在!,注意);m_sNum=;UpdateData(false);searched=false;}//TODO:Addyourcontrolnotificationhandlercodehere}voidDelete::clean(){m_sMajor=;m_sGrade=;m_sBirthday=;m_cMale.SetCheck(0);m_cFemale.SetCheck(0);UpdateData(false);}3.修改学生信息代码voidModify::OnOK(){//TODO:AddextravalidationhereUpdateData();ifstreamin(record.txt);intr=0,k;stringa;while(r!=m_nRecord){ina;k=a.size();r++;if(r==m_nRecord)break;in.ignore(1024,'\n');}in.seekg(-k,ios::cur);intoffset=in.tellg();stringtemp,str;intflag=0;//用来判断信息是否改动for(intcol=0;col6;col++){intemp;switch(col){case0:if(m_sNum!=temp.c_str())flag=1;break;case1:if(m_sNam

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功