ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:20.96KB ,
资源ID:23648874      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23648874.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生信息管理系统实验报告.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、学生信息管理系统实验报告学生信息管理系统实验报告班 级:10网工三班 学生姓名:谢昊天 学号:*实验目的和要求:实验目的:1、加深理解Windows程序设计的基本概念;2、基于单文档的应用程序的创建;3、学会对话框及相关控件的创建;4、熟悉基本的Windows消息映射机制和消息相应过程。实验内容:1.创建一个基于对话框的应用程序,用于处理学生成绩,并能够处理相关数据。2.进一步完善实验二中的系统;3.在学生信息管理系统中添加一个信息查询对话框,并做好相应的界面设计;4.根据功能要求完成相应的界面设计;实验内容与分析设计:1.使用单文档或基于对话框应用程序框架;2.设计信息查询对话框,增加信息检

2、索功能;3.信息存储可以借助于数据库,也可以借助于文件,检索记录可以直接在记录文件中进行;4.通过界面的设计,增加成绩处理的功能;实验步骤与调试过程:1打开Visual c+ 6.0编程环境;2点击文件-新建、选择建立新的工程;选择Win32 Console Application选项建立工程名为“学生信息管理系统”的一个空工程;3继续点击文件-新建、选择建立新的文件;选择C+ Source File选项建立在“学生信息管理系统”工程下的名为“学生信息管理系统”的文件;(或者使用试验一中的文件);整个系统的功能在菜单内完成,分别是在学生信息管理下的学生信息录入4创建学生信息的录入。void A

3、dd:OnOK() UpdateData(); if(m_sNum = | m_sName = | m_sMajor = | m_sGrade = | m_sBirthday = | (!m_cMale.GetCheck() & !m_cFemale.GetCheck() MessageBox(学生信息不完整,无法录入!, 错误); return; 5创建学生信息的删除。6创建学生信息的修改。void Modify:OnOK() UpdateData(); ifstream in(record.txt); int r = 0, k; string a; while(r != m_nRecord

4、) in a; k = a.size(); r+; if(r = m_nRecord) break; in.ignore(1024, n); 7创建学生信息的查询。void Search: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可视化的窗口五个,分别实现用户的登

5、录,学生信息的录入,修改,删除,查找。9通过窗口的各个按键对学生信息进行操作。10在组建选项中点击执行【学生信息管理系统.exe】(或者Ctrl+F5)执行程序.11程序没有错误,正常执行学生信息管理系统.exe,显示学生信息管理系统。实验结果:调试无误,正常运行学生信息管理系统.exe,显示学生信息管理系统操作页面。可以实现一下操作:1. 实现简单地使用用户名和密码来进入登陆界面。2.实现任意添加学生的信息,包括添加学生的个人学号,姓名,性别,专业,年级出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。3.实现删除学生的信息,包括删除学生的个人学号,姓名

6、,性别,专业,年出生日期。根据编号进行用户权限检查,在数据库中进行查找相符和的记录,如果编号在数据库中不存在相应记录,则提示不能删除,否则可以删除该记录。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。4.实现编辑学生的信息,包括编辑学生的个人学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候有一项为空则提示输入相关的信息。5. 实现查询学生的信息,包括编辑查询学生的个学号,姓名,性别,专业,年级,出生日期。输入不允许为空,并且有提示功能,如果输入的时候为空则提示输入相关的信息。6. 实现保存学生的信息,包括保存学生的个人学号,姓名,

7、性别,专业,年级,出生日期。疑难小结:通过本次综合试验,了解了C语言、C+,Windows网络编程的一些基础知识,学习到了用C语言、C+,Windows网络编程的特点。学习到了如何如何建立一个学生类实现基本地操作;如何定义所需的学生类及实现基本地操作。如何定义指向结构体的指针设置服务器CSocket地址,实现了数据的存储,以及了实现查询学生的信息同,在实验过程中,回顾书本上的理论知识,巩固了Windows网络编程的知识。主要算法和程序清单:1.录入学生信息void Add:OnOK() UpdateData(); if(m_sNum = | m_sName = | m_sMajor = | m

8、_sGrade = | m_sBirthday = | (!m_cMale.GetCheck() & !m_cFemale.GetCheck() MessageBox(学生信息不完整,无法录入!, 错误); return; int flag = 0; CStudent *stu = new CStudent; stu-m_strID = m_sNum; string temp; ifstream in(record.txt); while(in temp) if(temp = stu-m_strID) flag = 1; MessageBox(该学号已存在!, 注意); in.close();

9、 m_sNum = ; UpdateData(false); / 只将学号清空,其余信息保留 return; in.close(); write(stu); delete stu; MessageBox(录入完毕!, 成功); clean(); / 清空表格 / TODO: Add extra validation here / CDialog:OnOK();void Add:clean() m_sNum = ; m_sName = ; m_sMajor = ; m_sGrade = ; m_sBirthday = ; m_cMale.SetCheck(0); m_cFemale.SetChe

10、ck(0); UpdateData(false);void Add:write(CStudent* stu) stu-m_strName = m_sName; stu-m_strMajor = m_sMajor; stu-m_strGrade = m_sGrade; stu-m_strDate = m_sBirthday; string temp; if(m_cMale.GetCheck() temp = 男; else temp = 女; ofstream ou; ou.open(record.txt, ios:app); / 选择附加模式 ou left; ou setw(20) m_st

11、rID; ou setw(20) m_strName; if(m_cMale.GetCheck() temp = 男; else temp = 女; ou setw(20) temp; ou setw(20) m_strMajor; ou setw(20) m_strGrade; ou setw(20) m_strDate; ou endl; ou.close();2.查询信息代码void Delete:OnOK() if(!searched) MessageBox(请先查询!, 注意); return; if(!find) MessageBox(该学生信息不存在,无法删除!, 错误); re

12、turn; int mbr = MessageBox(确定要删除该学生的所有信息吗?, 注意, MB_YESNO|MB_ICONQUESTION); if(mbr = IDNO) return;int k; ifstream in(record.txt); for(int i = 1; i a; k = a.size(); /为了得到文件指针的偏移量 if(i = index) / 说明文件指针到达要删除那行了,但偏移了k字节 break; in.ignore(1024, n); in.seekg(-k, ios:cur); / 让指针跳到要删除那行的行首 int offset = in.te

13、llg(); / 记下指针位置,便于写新的记录fstream ou; / 这是文件流,不是输出流! ou.open(record.txt); ou.seekp(offset, ios:beg); /跳到删除行string str; getline(in, str); int size = str.size(); / 得到删除行的大小 for(i = 0; i size; i+) ou temp) index+; str = m_sNum; if(str = temp) find = true; / 找到了 in temp; m_sName = temp.c_str(); in temp; if

14、(temp = 男) m_cMale.SetCheck(1); else m_cFemale.SetCheck(1);in temp; m_sMajor = temp.c_str();in temp; m_sGrade = temp.c_str();in temp; m_sBirthday = temp.c_str(); UpdateData(false); in.close(); break; in.ignore(1024, n); in.close();if(!find) MessageBox(该学生信息不存在!, 注意); m_sNum = ; UpdateData(false); se

15、arched = false; / TODO: Add your control notification handler code here void Delete:clean() m_sMajor = ; m_sGrade = ; m_sBirthday = ; m_cMale.SetCheck(0); m_cFemale.SetCheck(0); UpdateData(false);3.修改学生信息代码void Modify:OnOK() / TODO: Add extra validation here UpdateData(); ifstream in(record.txt); in

16、t r = 0, k; string a; while(r != m_nRecord) in a; k = a.size(); r+; if(r = m_nRecord) break; in.ignore(1024, n); in.seekg(-k, ios:cur); int offset = in.tellg();string temp, str; int flag = 0; / 用来判断信息是否改动 for(int col = 0; col temp; switch(col) case 0: if(m_sNum != temp.c_str() flag = 1; break; case

17、1: if(m_sName != temp.c_str() flag = 1; break; case 2: if(m_cMale.GetCheck() str = 男; else str = 女; if(temp != str) flag = 1; break; case 3: if(m_sMajor != temp.c_str() flag = 1; break; case 4: if(m_sGrade != temp.c_str() flag = 1; break; case 5: if(m_sBirthday != temp.c_str() flag = 1; break; if(fl

18、ag) break; if(flag = 0) MessageBox(该学生信息没有改动!, 注意); return; if(m_nRecord = 0 | index = 0) MessageBox(没有学生信息!, 错误); return; / 查看新改的学号是否已存在 ifstream infile(record.txt); int rd = 0; / 因为要排除原来那行,是与其它行比较看是否重号 while(infile temp) rd+; if(temp.c_str() = m_sNum & rd != m_nRecord) MessageBox(该学号已存在, 请重新输入!, 注

19、意, MB_ICONWARNING); show(m_nRecord); return; infile.ignore(1024, n); infile.close();int mbr = MessageBox(确定要修改该学生的信息吗, 注意, MB_YESNO|MB_ICONQUESTION); if(mbr = IDNO) show(m_nRecord); / 显示原来信息 return; CStudent *stu = new CStudent; stu-m_strID = m_sNum; stu-m_strName = m_sName; if(m_cMale.GetCheck() st

20、u-m_strSex = 男; else stu-m_strSex = 女; stu-m_strMajor = m_sMajor; stu-m_strGrade = m_sGrade; stu-m_strDate = m_sBirthday; / 将信息存入变量,便于比较 stu-savetofile(offset); delete stu;LVITEM lvi; lvi.mask = LVIF_IMAGE | LVIF_TEXT; lvi.iItem = m_nRecord; in.seekg(offset, ios:beg); int c = 0; while(in str) lvi.iS

21、ubItem = c; lvi.pszText = (LPTSTR)(str.c_str(); if(c = 0) m_cList.InsertItem(&lvi); else m_cList.SetItem(&lvi); c+; if(c = 6) break; m_cList.DeleteItem(m_nRecord-1); MessageBox(修改完毕!, 成功); /CDialog:OnOK();void Modify:show(int r) clean(); if(r index) return;ifstream in(record.txt); int k = 0; for(int

22、 i = 1; i a; k = a.size(); if(i = r) break; in.ignore(1024, n); /同样,也是为了得到要显示那行 in.seekg(-k, ios:cur); /退回到行头m_nRecord = r; string temp; for(int col = 0; col != 6; col+) in temp; switch(col) case 0: m_sNum = temp.c_str(); break; case 1: m_sName = temp.c_str(); break; case 2: if(temp = 男) m_cMale.Set

23、Check(1); else m_cFemale.SetCheck(1); break; case 3: m_sMajor = temp.c_str(); break; case 4: m_sGrade = temp.c_str(); break; case 5: m_sBirthday = temp.c_str(); break; UpdateData(false); in.close(); void Modify:clean() m_nRecord = 0; m_sNum = ; m_sName = ; m_sGrade = ; m_sMajor = ; m_sBirthday = ; m

24、_cMale.SetCheck(0); m_cFemale.SetCheck(0); UpdateData(false);BOOL Modify:OnInitDialog() CDialog:OnInitDialog(); / TODO: Add extra initialization here index = 0; / 行数 ifstream infile(record.txt); string str; while(infile str) / 为了得到总共的记录数(行数) index+; infile.ignore(1024, n); infile.close();m_cList.Ins

25、ertColumn(0, 学号, LVCFMT_LEFT, 130); m_cList.InsertColumn(1, 姓名, LVCFMT_LEFT, 100); m_cList.InsertColumn(2, 性别, LVCFMT_LEFT, 70); m_cList.InsertColumn(3, 专业, LVCFMT_LEFT, 120); m_cList.InsertColumn(4, 年级, LVCFMT_LEFT, 80); m_cList.InsertColumn(5, 出生日期, LVCFMT_LEFT, 100);ifstream in(record.txt); LVITEM lvi; for(int r = 0; r str) lvi.iSubItem = c; lvi.pszText = (LPTSTR

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1