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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学生信息管理系统win+sqlWord文档格式.docx

1、52 实训中遇到的问题及解决方法 3053 设计中尚存的不足之处 3054 感想和心得体会 3055 最满意地方 30附录: 30学生信息管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉面向对象程序设计过程。本程序中涉及MFC,class等方面的知识。通过本程序的训练,使学生能对MFC有一个更深刻的了解,掌握利用MSSQL通过ADO实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。1、问题定义创建一个学生信息管理系统。假设系统中每个学生记录只包括学号、姓名、手机号、身份证号、联系地址。程序的运行效果如下图所示,选择任意菜单后,实现相应功

2、能。图1.1 学生信息管理系统功能需求在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。2、系统设计21 总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。 解决方案关系图22 详细设计通过登陆验证后然后出现一个界面,改界面作为一个login类然后主界面的操作,以项目名+dlg作为类名学生数据操作部分,新建一个对话框界面,以DataOperation作为类名。2.3 运行环境目标是写windows xp可以运行,但是编写程序的机子是w

3、indows 7,用vs2010编写,因此产生兼容性问题,最后程序运行环境为Windows 7以上,装有MSSQL的计算机。3、系统设计31 编码项目名取为testmfc,因为每次做新东西的时候。不用含test就经常干不成,所以项目名还是加test好点。3.1.1 ADO因为需要ADO的支持,所以在stdafx.h中要引入ADO的dll并重命名下结束标记,避免与文件的EOF冲突。因为主要执行操作都在CtestmfcDlg,也就是主要的界面,所以把ADO的相关操作语句放到该类下面Switchint是作为一个开关用,作为是否刷新表单中的内容,1为刷新,其他不刷新。Querycommand作为查询语

4、句查询函数里面用过ACCESS但是发现兼容性不是很好,所以还是用习惯用的MSSQL去做数据库了。void CtestmfcDlg:sqlquery(int switchint, CString querycommand) / TODO: 在此添加控件通知处理程序代码 CoInitialize(NULL);/初始化COM组件 _ConnectionPtr pConn(_uuidof(Connection);/实例化一个connection对象pConn _RecordsetPtr pRst(_uuidof(Recordset);/实例化一个Recordset对象pRst _CommandPtr

5、pCmd(_uuidof(Command);/实例化一个Command对象pCmd try /ACCESS /pConn-ConnectionString=Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:cppdb.mdb;Mode=Share Deny None;Extended Properties=;Jet OLEDB:System database=Registry Path=Database Password=Engine Type=5;Database Locking Mode=1;Global Partia

6、l Bulk Ops=2;Global Bulk Transactions=1;New Database Password=Create System Database=False;Encrypt Database=False;Dont Copy Locale on Compact=False;Compact Without Replica Repair=False;SFP=False /MSSQL pConn-Provider=SQLNCLI10.1;Integrated Security=Persist Security Info=False;User ID=cpp;Initial Cat

7、alog=cppwork;Data Source=(local);Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=LZY;Initial File Name=Use Encryption for Data=False;Tag with column collation when possible=False;MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=FalseOpen(,adConne

8、ctUnspecified); pCmd-put_ActiveConnection(_variant_t(IDispatch*)pConn);CommandText=(_bstr_t)querycommand; pRst=pCmd-Execute(NULL,NULL,adCmdText); catch(_com_error e) if(switchint=1) m_list.DeleteAllItems(); int count=0; while(!pRst-rsEOF) m_list.InsertItem(count, _T(data); m_list.SetItemText(count,

9、1, (_bstr_t)pRst-GetCollect(id m_list.SetItemText(count, 2, (_bstr_t)pRst-number m_list.SetItemText(count, 3, (_bstr_t)pRst-name m_list.SetItemText(count, 4, (_bstr_t)pRst-cellphonenumber m_list.SetItemText(count, 5, (_bstr_t)pRst-cardnumber m_list.SetItemText(count, 6, (_bstr_t)pRst-address pRst-Mo

10、veNext();/下移一个 count+; pRst-Close();/关闭对象 pConn- pCmd.Release();/释放对象 pRst.Release(); pConn.Release(); CoUninitialize();/卸载COM组件3.1.2 控件绑定变量及初始化变量CtestmfcDlg:CtestmfcDlg(CWnd* pParent /*=NULL*/) : CDialogEx(CtestmfcDlg:IDD, pParent) m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); m_edit = _T(select *

11、 from main); m_query1 = _T(DoDataExchange(CDataExchange* pDX) CDialogEx:DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT1, m_edit); DDX_Control(pDX, IDC_LIST5, m_list); DDX_Control(pDX, IDC_COMBO2, m_cb); DDX_Text(pDX, IDC_EDIT2, m_query1);BEGIN_MESSAGE_MAP(CtestmfcDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_W

12、M_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BUTTON1, &OnBnClickedButton1) ON_BN_CLICKED(IDOK, &OnBnClickedOk) ON_BN_CLICKED(IDC_BUTTON3, &OnBnClickedButton3) ON_BN_CLICKED(IDC_BUTTON2, &OnBnClickedButton2) ON_BN_CLICKED(IDC_BUTTON4, &OnBnClickedButton4) ON_BN_CLICKED(IDC_BUTTON5, &OnBnClickedB

13、utton5) ON_CBN_SELCHANGE(IDC_COMBO2, &OnCbnSelchangeCombo2) ON_EN_CHANGE(IDC_EDIT1, &OnEnChangeEdit1) ON_NOTIFY(NM_DBLCLK, IDC_LIST5, &OnDblclkList5) ON_BN_CLICKED(IDCANCEL, &OnBnClickedCancel) ON_BN_CLICKED(IDC_BUTTON6, &OnClickedButton6) ON_BN_CLICKED(IDC_BUTTON7, &OnClickedButton7) ON_BN_CLICKED(

14、IDC_BUTTON8, &OnClickedButton8)END_MESSAGE_MAP()3.1.3 程序初始化工作BOOL CtestmfcDlg:OnInitDialog()OnInitDialog(); / 将“关于.”菜单项添加到系统菜单中。 / IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); /

15、 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 / 执行此操作 SetIcon(m_hIcon, TRUE); / 设置大图标 SetIcon(m_hIcon, FALSE); / 设置小图标 在此添加额外的初始化代码 m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT); m_list.InsertColumn(0,L,0,0,0); m_list.InsertColumn(1,L索引编号,LVCFMT_LEFT,100); m_list.InsertColumn(2,L学号 m_list.InsertC

16、olumn(3,L姓名 m_list.InsertColumn(4,L手机号 m_list.InsertColumn(5,L身份证号,LVCFMT_LEFT,140); m_list.InsertColumn(6,L地址 LABLE: login dlg; dlg.m_statue=L学生信息管理系统登陆 if (dlg.DoModal()=IDOK) CString qstr=Lselect * from login where username=+dlg.m_username+ sqlquery(2,qstr); int count=m_list.GetItemCount(); if(co

17、unt0) if(dlg.m_username=m_list.GetItemText(0,2)&dlg.m_password=m_list.GetItemText(0,3) else AfxMessageBox(L用户名或者密码错误 goto LABLE; else AfxMessageBox(L goto LABLE; else CDialogEx:OnCancel(); m_cb.AddString(L编号 m_cb.SetCurSel(0); CString cs; GetDlgItem(IDC_EDIT1)-GetWindowTextW(cs); sqlquery(1,cs); ret

18、urn TRUE; / 除非将焦点设置到控件,否则返回 TRUE3.1.4 新增按钮操作的函数OnBnClickedButton2() DataOperation dlg; int x=m_list.GetItemCount(); m_list.InsertItem(x, _T( m_list.SetItemText(x, 2, dlg.m_number); m_list.SetItemText(x, 3, dlg.m_name); m_list.SetItemText(x, 4, dlg.m_cellnumber); m_list.SetItemText(x, 5, dlg.m_cardnu

19、mber); m_list.SetItemText(x, 6, dlg.m_address); CString cmd=Linsert into main (number,name,cellphonenumber,cardnumber,address) values (+dlg.m_number+,+dlg.m_name+dlg.m_cellnumber+dlg.m_cardnumber+dlg.m_address+) sqlquery(0,cmd);3.1.5 修改按钮操作的函数OnBnClickedButton4() CString str; int selectrow=-1; bool

20、isselect=false; for(int i=0; im_list.GetItemCount(); i+) if( m_list.GetItemState(i, LVIS_SELECTED) = LVIS_SELECTED ) selectrow=i; isselect=true; if(isselect) str=m_list.GetItemText(selectrow,1); if(str!=) DataOperation dlg; dlg.m_number=m_list.GetItemText(selectrow,2); dlg.m_name=m_list.GetItemText(

21、selectrow,3); dlg.m_cellnumber=m_list.GetItemText(selectrow,4); dlg.m_cardnumber=m_list.GetItemText(selectrow,5); dlg.m_address=m_list.GetItemText(selectrow,6); if (dlg.DoModal()=IDOK) m_list.SetItemText(selectrow, 2, dlg.m_number); m_list.SetItemText(selectrow, 3, dlg.m_name); m_list.SetItemText(se

22、lectrow, 4, dlg.m_cellnumber); m_list.SetItemText(selectrow, 5, dlg.m_cardnumber); m_list.SetItemText(selectrow, 6, dlg.m_address); CString cmd=Lupdate main set number=,name=,cellphonenumber=,cardnumber=,address= where id=+m_list.GetItemText(selectrow,1)+ sqlquery(0,cmd);修改成功 sqlquery(1,L刷新数据中,请再选择一

23、次 sqlquery(1,L AfxMessageBox(L请用鼠标单击要操作的行,然后再按此按钮3.1.6 删除按钮操作的函数OnBnClickedButton3() str=m_list.GetItemText(selectrow,2); if(str! CString delstr=Ldelete from main where number=+str+ m_list.SetItemText(selectrow, 1, L此行已删除 m_list.SetItemText(selectrow, 2, L m_list.SetItemText(selectrow, 3, L m_list.SetItemText(selectrow, 4, L m_list.Se

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

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