学生信息管理系统_第1页
学生信息管理系统_第2页
学生信息管理系统_第3页
学生信息管理系统_第4页
学生信息管理系统_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着院校的扩招,学生数量不断增加,学生管理已成为学校管理中的重中之重。传统的学生管理方法是从学生的个人的自然情况出发,对其进行管理。但是,这种方法不但效率低,而且还要耗费大量的人力,已经不能满足学校对学生管理的要求。提高学生管理的管理水平,优化资源,尽可能地降低学校的管理成本,成为该学校势在必行的新课题。学生信息管理系统从学生管理的现状出发,根据学生管理的新要求进行开发设计的,它解决了学生管理中数据信息量大,修改不方便,对一系列数据进行统计与分析花费时间长等问题。帮助管理人员有效管理学生信息。学生信息管理系统主要使用visualstudio进行编码,使用sqlserver2021开发后台数据库。本系统主要实现的功能有学生信息录入,学生成绩录入,成绩等级设置,学生违规处理,学生成绩排行,学生信息查询,学生成绩查询、打印。【关键词】学生管理;数据统计;数据库AbstractWiththeincreasingrecruitmentincollegesanduniversities,theincreasingnumberofstudents,studentmanagementhasbecomeatoppriorityinschoolmanagement.Thetraditionalstudentmanagementmethodfromstudent'sindividualnature,carriesonthemanagement.However,thisapproachnotonlylowefficiency,butalsocostlotsofmanpower,alreadycannotsatisfytherequirementofschoolmanagementtothestudent.Improvethemanagementlevelofstudentmanagement,optimizeresources,schoolofmanagementtoreducecosts,asmuchaspossiblebecomethenewsubjectfortheschoolisimperative.Studentinformationmanagementsystemfromthepresentsituationofthestudentmanagementaccordingtothenewrequirementsofstudentmanagementindevelopmentanddesign,itsolvesthestudentmanagementdatainthelargeamountofinformation,therevisionisnotconvenient,aseriesofdatastatisticsandanalysisofissuesoflongtime.Helpstudentsmanagementinformationmanagementstudentseffectively,hasbecomeanindispensablemanagementtoolinschoolmanagement.Thissystemmainlyisencodedusingvisualstudio,developmentbackgrounddatabaseusingSQLserver2021.Thissystemmainlyrealizethefunctionofthestudentinformationinput,studentsachievementsrecorded,gradelevelsetting,studentmishandling,studentperformanceranking,querystudentinformation,studentachievementinquiry,printing【keywords】studentsmanagement;Datastatistics;Thedatabase1.绪论1.1研究背景随着计算机信息化时代的到来,运用计算机手段来获取和处理数据信息是当今信息管理的显著特点,运用计算机技术可将许多繁琐复杂的工作简易化。随着我国加入WTO世贸组织以来,信息技术及信息获取对于发展各行各业的经济,都起到了至关重要的作用。全世界范围内信息技术水平的高速发展,信息化数字技术在各个领域都得到了前所未有的广泛的应用。信息管理乃是人类为了有效合理地开发和利用信息资源,以现代科技信息技术为手段,对信息资源进行统筹、组织、计划、控制和领导的社会活动。简单地说,信息管理就是人对信息资源和信息活动的管理。信息管理随着经济的迅速发展,具有信息量猛增、信息处理和传播速度更快、信息处理的方法日趋复杂、信息管理所涉及的领域不断扩大的时代特征。信息管理系统可使各种文档实现电子化,通过电子数据库的形式对数据进行保管,按每个人的不同身份分配的权限进行使用和共享数据信息。从而实现信息的系统管理。1.2技术简介1.2.1visualstudio2021特点简介(1)支持WindowsAzure,微软云计算架构迈入重要里程碑。(2)助力移动与嵌入式装置开发,三屏一云商机无限。(3)实践当前最热门的Agile/Scrum开发方法,强化团队竞争力。(4)升级的软件测试功能及工具,为软件质量严格把关。(5)搭配Windows7,Silverlight4与Office,发挥多核并行运算威力,创建美感与效能并重的新一代软件。(6)支持最新C++标准,增强IDE,切实提高程序员开发效率。1.2.2VisualC++2021简介VisualC++2021(版本号:10.0),于2021年发布。VisualC++开发团队考虑使用SQLServerCompact格式的数据库来存储源码的相关信息。此版也加入了现代化的C++并行运算库ParallelPatternsLibrary。此版建构于.NETFramework4.0之上,但仍支持机器码的编译。1.2.3SQLserver2021简介SQLServer2021是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。SQLServer2021数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。

SQLServer2021数据引擎是本企业数据管理解决方案的核心。此外SQLServer2021结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。SQLServer2021的特点有:NET框架主机

使用SQLServer2021,开发人员通过使用相似的语言,例如微软的VisualC#.net和微软的VisualBasic,将能够创立数据库对象。开发人员还将能够建立两个新的对象--用户定义的类和集合。

(2)XML技术

在使用本地网络和互联网的情况下,在不同应用软件之间散步数据的时候,可扩展标记语言(XML)是一个重要的标准。SQLServer2021将会自身支持存储和查询可扩展标记语言文件。

(3)ADO.NET2.0版本

从对SQL类的新的支持,到多活动结果集(MARS),SQLServer2021中的ADO.NET将推动数据集的存取和操纵,实现更大的可升级性和灵活性。

(4)增强的安全性

SQLServer2021中的新安全模式将用户和对象分开,提供fine-grainAccess存取、并允许对数据存取进行更大的控制。另外,所有系统表格将作为视图得到实施,对数据库系统对象进行了更大程度的控制。

(5)Transact-SQL的增强性能

SQLServer2021为开发可升级的数据库应用软件,提供了新的语言功能。这些增强的性能包括处理错误、递归查询功能、关系运算符PIVOT,APPLY,ROW_NUMBER和其他数据列排行功能,等等。

(6)SQL服务中介

SQL服务中介将为大型、营业范围内的应用软件,提供一个分布式的、异步应用框架。

(7)通告服务

通告服务使得业务可以建立丰富的通知应用软件,向任何设备,提供个人化的和及时的信息,例如股市警报、新闻订阅、包裹递送警报、航空公司票价等。在SQLServer2021中,通告服务和其他技术更加紧密地融合在了一起,这些技术包括分析服务、SQLServerManagementStudio.2.需求分析2.1系统功能简要描述用户要输入正确的用户名和密码以后才能登录学生信息管理系统。在学生信息管理系统中,可以通过主窗体上的按钮对科室信息、科目信息、教师信息、班级信息、班级科目和考试类别进行设置,也可以在“学生管理”菜单中录入学生信息和学生成绩,在录入成绩以后,还要对成绩进行等级设置,这样不但有助于对学生成绩管理,还能简化学生成绩的查询,当学生违反校规时,要通过学生违规处理将学生所犯的错误进行记录,以便学校对其处罚。在“查询管理”菜单中可以快速对学生信息、学生成绩和学生违规信息进行查询,还可以将学生成绩生成报表并进行打印。2.2系统目标学生信息管理系统以实现学生日常的信息管理为设计目标,加以强大的数据库管理功能,可以方便对学生信息进行管理,大大提高学校日常工作的效率。本系统在设计时应该满足以下几点:(1)采用人机对话的操作方式,信息查询灵活、方便、快捷、准确、数据存储安全可靠;(2)对学生信息的操作简单,可以方便的进行添加、修改和删除;(3)可以根据需要灵活地调整科目信息;(4)可以录入教师信息,方便任命班级的班主任;(5)编辑考试类别,更灵活地对学生测验;(6)打印学生成绩报表,更直观的了解学生成绩;(7)学生违规处理,对于违反校规的学生进行处罚;(8)对用户输入的数据,系统进行严格的数据检验,尽可能排除认为错误;(9)系统最大限度地实现了易维护性和易操作性;(10)系统运行稳定,安全可靠。2.3技术可行性分析本系统采用C/S开发方案,采用C++技术和SQLServer2021数据库,Windows7操作系统。(1)从技术和可扩展性来讲,是可行的。随着Internet的飞速发展使得C/S模式已成为当前热门的系统架构方式,并且技术已经成熟,系统操作简单,不需要任何硬件设备,可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。(2)操作上也是可行的,该系统不需要太大投入及太多的技术资源支持。(3)人员的数量可以满足,以小组讨论研究,互相分享想法,一起探讨研究,集思广益,可以满足技术条件。在规定的期限内可以完成本系统的开发。2.4经济可行性分析2.4.1支出采用本系统,旨在解决学生信息管理,所需的软件硬件部分较少,计算机一台,软件需要安装Visualstudio2021,SQLServer2021,windows7以上操作系统平台。基本建设投资方面,可以利用现有设备,不必进行另外的硬件设备投资。其他包括教务处管理员维护培训费用和软件设计和开发费用。2.4.2收益本系统运行可以提高学生信息管理的效率,满足师生查询的需要,减少管理员的不必要的操作,方便快捷的有效完成学生管理的各项工作。提高工作效率,减少纸张的使用,收益明显提高。2.5操作可行性分析学生信息管理第统使用简单,速度快,准确度高,现有人员只需经过简单培训即可熟练掌握其使用依法;系统管理人员可使用动手能力较强的人员,经过短期培训就能解决常见问题。2.6总结本系统的技术成熟、完备,测试手段可靠,经过经济、技术、操作等方面的可行性分析,可以确定本系统的开发完全必要,而且是可行的,为尽快实现校务办公现代化管理,提高工作效率,节省人力资源,减轻老师的工作负担,方便教务处对学生的管理,可以立项开发。3.总体设计3.1系统功能描述通过对学生管理过程的研究和分析,要求本系统应该具有以下功能:(1)学生信息录入;(2)学生成绩录入;(3)程序等级设置;(4)学生违规处理;(5)学生成绩排行;(6)学生信息查询;(7)学生成绩查询、打印。3.2用户选择本系统面向的用户有:学校的系统人员、管理人员、教师、学生。所以对计算机的人性化和易用性比较高,应用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是计算学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到了学生违规,做到看界面简单易懂,容易操作,提高了学校管理效率以及提升了学生信息的安全性和完整性。3.3模块划分3.4.1登入模块用户登陆(教师登陆,管理员登陆)3.4.2学生管理此模块由学生基本信息、学生违规信息、3.4.3查询管理此模块由学生违规查询和学生信息查询等3.4.4.基本信息管理此模块由教师信息、班级信息、考试类别信息等3.4.5退出退出管理系3.4实体-联系图(1)管理员实体管理员实体包括管理员名称和管理员密码。管理员实体E-R图如图3.1所示。图3.1管理员实体E-R图(2)教师信息实体教师信息实体包括教师编号、教师姓名、教师性别、所在办公室、教师文凭教师职称等。教师信息实体E-R图如图3.2所示。图3.2教师信息实体E-R图(3)学生信息实体学生信息实体包括学生编号、学生姓名、学生性别、学生年龄、联系、和所在班级等。学生实体E-R图如图3.3所示。图3.3学生信息实体E-R图(4)违规信息实体违规信息实体包括违规编号、违规内容、处理结果、备注信息和违规时间等。违规信息实体E-R图如图3.4所示。图3.4违规信息实体E-R图(5)成绩等级实体成绩等级实体包括等级名称、成绩上限和成绩下限等。图3.5成绩等级实体E-R图(6)成绩信息实体成绩信息实体包括学生编号、考试科目、考试成绩、考试类别和考试时间等。成绩信息实体E-R图如图3.6所示。图3.6成绩信息实体E-R图3.5系统功能结构学生信息管理系统的功能结构如图3.7所示。图3.7学生信息管理系统功能结构图4.详细设计4.1系统预览学生信息管理系统由多个功能模块组成,下面仅列出几个典型的功能模块。学生成绩等级设置模块如图4.1所示,该模块用于将学生的成绩按分数进行等级划分;学生信息查询模块如图4.2所示,该模块用于查询学生的基本信息。图4.1学生成绩等级设置图4.2学生信息查询学生违规处理模块如图4.3所示,该模块用于记录学生的违规处理情况;学生违规查询模块如图4.4所示,该模块用于对指定学生的违规情况进行查询。图4.3学生违规处理图4.4学生违规查询4.2业务流程图 图4.5学生信息管理系统业务流程图4.3公共类设计本系统使用ODBC连接数据源,可以通过CDatabase类的Open函数连接数据源,Open函数用于创建到数据源的连接。语法:virtualBOOLOpen(LPCTSTRlpszDSN,BOOLbExclusive=FALSE,BOOLbReadOnly=FALSE,LPCTSTRlpsaConnect=”ODBC;”,BOOLbUseCursorLib=TRUE);Open函数的参数说明如表4.1所示。表4.1Open函数的参数说明参数描述lpszDSN通过ODBC管理器注册的数据源名,如果DSN在lpszConnect中被设置,那么lpszDSN应设为NULL,并显示一个数据源对话框,用户可以在该对话框中选择数据源.bExclusive默认为FALSE,表示以共享方式打开数据源,当前版本的类库不支持独占方式,不能设置为TRUE.bReadOnly默认为FALSE,当值为TRUE时以只读方式打开数据源.lpszConnect连接字符串,可以包括数据源名、用户账号(ID)、秘密和其他信息,字符串必须以“ODBC;”开头,表示要连接到一个ODBC数据源.bUseCursorLib默认为TRUE,表示装载光标库,设为FALSE则不装载,快照需要光标库,动态集不需要光标库.在CMystudentsysApp类中构造一个CDatabase类对象,在InitInstance方法中连接数据源。代码如下:if(CoInitialize(NULL)!=0)//初始化COM环境{AfxMessageBox(“初始化COM支持库失败!”);exit(1);}try{CStringstrConnect;strConnect.Format(“DSN=mystudentsys;”);//设置连接字符串//判断连接数据库是否成功if(m_DB.Open(NULL,false,false,”ODBC;DSN=mystudentsys;UID=sa;PWD=;”)==0){AfxMessageBox(“UnabletoConnecttheSpecifiedDataSource”);returnFALSE;}}Catch(CDBException*pE){pE->ReportError();pE->Delete();returnFALSE;}4.4主窗体设计学生信息管理系统主窗口由菜单和客户区域组成,其中,客户区域由按钮和位图组成,主窗体效果如图4.6所示。图4.6学生管理系统主窗口主窗体设计步骤如下:启动VisualC++,选择文件/新建命令,打开对话框,如图4.7所示。图4.7新建对话框4.5科目信息管理模块设计4.5.1科目信息管理模块概述科目信息管理用于维护科目信息,主要实现科目的添加、修改和删除等操作。科目信息管理窗口如图4.8所示。4.5.2科目信息管理技术分析本系统使用ODBC连接数据源,在进行对数据表的操作时可以以CRecordset类为基类派生一个数据表映射类,这样可以方便操作数据表。派生数据表映射类的步骤如下:创建一个与数据表映射的类CSubjectinfo,打开类向导窗口,单击AddClass按钮,在弹出的快捷菜单中选择新建命令,打开NewClass对话框,如图4.9所示。(2)在name文本框中输入类名CSubjectinfo,在Baseclass下拉列表框中选择基类CRecordset,单击OK按钮打开DatabaseOptions(数据库选项)对话框,如图4.10所示。(3)在ODBC下拉列表框中选择一个数据源,本例为mystudentsys。Mystudentsys是学生信息管理系统所需的数据源,用于连接tb_subject数据库。(4)单击OK按钮打开“SQLSever登录”对话框,如图4.11所示。(5)单击“确定”按钮,打开SelectDatabaseTables(选择数据表)对话框,如图4.12所示。(6)选择dbo.tb_subject选项,单击OK按钮创建映射类。(7)在映射类CSubjectinfo的头文件中引入afxdb.h头文件。4.5.3科目信息管理实现过程(1)创建一个对话框,打开对话框属性窗口,将对话框的ID设置为IDD_DIg_subjectinfo,将对话框的标题设置为“科目信息管理”。(2)向对话框中添加一个群组控件、两个静态文本控件和两个编辑框控件,各控件的属性设置如表4.2所示。表4.2控件资源设置控件ID控件属性对应变量IDC_STATICCaption:科目名称无IDC_STATICCaption:科目代码无IDC_subjectname无CStringm_subjectnameIDC_subjectid无CStringm_subjectid创建一个工具栏资源IDR_TOOLBAR_subjectinfo。为创建的对话框添加一个类,类名为CSubjectdlg。在该类的头文件中引入Subjectinfo.h头文件,使其可以使用映射类CSubjectinfo。向对话框中添加OnInitDialog方法,在对话框初始化时创建工具栏并打开模块使用的数据表。代码如下:BOOLCClass_subjectinfodlg::OnInitDialog(){ CDialog::OnInitDialog(); //创建工具栏,并设置工具栏属性 if(!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE |CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC) ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR_classsubjectinfo)) { TRACE0(_T(“创建工具条失败\n”)) returnFALSE; }//显示工具栏 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//设置工具栏按钮风格 m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);//设置sql语句 CStringsqlStr; sqlStr="SELECT*FROMtb_class_subject"; myclass_subjectinfoset=newCClass_subjectset(&((CMystudentsysApp*)AfxGetApp())->m_DB); if(!myclass_subjectinfoset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表 { AfxMessageBox("tb_class_subject表打开失败!"); } returnTRUE;}自定义一个DisplayRecord方法,在记录集指针移动时为控件赋值。代码如下:boolCClass_subjectinfodlg::DisplayRecord(){ if(myclass_subjectinfoset->IsEOF()&&myclass_subjectinfoset->IsBOF())//判断是否移动到了开头和结尾 { m_classname="";//为控件赋空值 m_classid=""; } else { if(myclass_subjectinfoset->IsBOF()//移动到了开头就向后移动 { myclass_subjectinfoset->MoveNext();//向下移动记录集指针 } else//否则前移 { if(myclass_subjectinfoset->IsEOF()) { myclass_subjectinfoset->MovePrev();//向上移动记录集指针 } } } m_classname=myclass_subjectinfoset->m_classname;//对应变量赋值 m_classid=myclass_subjectinfoset->m_code; UpdateData(FALSE); returntrue;}(7)处理工具栏“添加”按钮的单击事件,当单击“添加”按钮时,将清空控件中的数据,以方便用户进行输入。代码如下:voidCClass_subjectinfodlg::Onclasssubjectinfotoolbaradd(){ //清空控件中的数据 m_classname=""; m_classid=""; UpdateData(FALSE);}(8)处理工具栏“保存”按钮的单击事件,当单击“保存”按钮时,将控件中的数据保存到数据库中。代码如下:voidCClass_subjectinfodlg::Onclasssubjectinfotoolbarsave(){ //更新控件信息 UpdateData(TRUE); if(m_classname.IsEmpty()||m_classid.IsEmpty()) { AfxMessageBox("请输入相应的数据!"); return; } myclass_subjectinfoset->AddNew(); myclass_subjectinfoset->m_code=m_classid;//对应变量更新 myclass_subjectinfoset->m_classname=m_classname; myclass_subjectinfoset->Update(); myclass_subjectinfoset->Requery(); DisplayRecord();}处理工具栏“删除”按钮的单击事件,当单击“删除”按钮时,将控件中的数据对应的数据库中记录删除。代码如下:voidCClass_subjectinfodlg::Onclasssubjectinfotoolbardel(){ myclass_subjectinfoset->Delete();//删除记录 myclass_subjectinfoset->Requery(); DisplayRecord();//更新显示}分别处理工具栏中“第一条”、“上一条”、“下一条”和“末一条”按钮的单击事件,当工具栏按钮按下时,实现显示“第一条”、“上一条”、“下一条”和“末一条”记录的功能。代码如下:voidCClass_subjectinfodlg::Onclasssubjectinfotoolbarfirst(){ if(!myclass_subjectinfoset->IsBOF()) { myclass_subjectinfoset->MoveFirst();//移动到第一条记录 DisplayRecord();//更新窗口显示 }}voidCClass_subjectinfodlg::Onclasssubjectinfotoolbarlast(){ if(!myclass_subjectinfoset->IsEOF()) { myclass_subjectinfoset->MoveLast();//移动到末一条 DisplayRecord();//更新窗口显示 }}voidCClass_subjectinfodlg::Onclasssubjectinfotoolbarnext(){ if(!myclass_subjectinfoset->IsEOF()) { myclass_subjectinfoset->MoveNext();//移动到下一条记录 DisplayRecord();//更新窗口显示 }}voidCClass_subjectinfodlg::Onclasssubjectinfotoolbarpre(){ if(!myclass_subjectinfoset->IsBOF()) { myclass_subjectinfoset->MovePrev();//移动到上一条记录 DisplayRecord();//更新窗口显示 }}处理对话框的WM_CLOSE事件,当窗口关闭时,断开与数据表的连接,并释放指针。代码如下:voidCClass_subjectinfodlg::OnClose(){ if(myclass_subjectinfoset->IsOpen())//判断数据表是否打开 { myclass_subjectinfoset->Close();//关闭数据表 deletemyclass_subjectinfoset;//释放指针 } CDialog::OnClose();}4.6学生信息管理模块设计4.6.1学生信息管理模块概述学生信息管理用于设置学生的基本信息,主要实现对学生基本信息的添加、修改和删除等操作。学生信息管理窗体如图4.13所示。图4.13学生信息管理4.6.2学生信息管理技术分析修改记录使用CRecordset类的Edit函数,调用了Edit函数以后,就可以重新设定当前记录中的每个字段的值了,但是这时被修改的记录值只是被保存起来,只有在调用了CRecordset类的Update函数以后才修改,否则不对记录作出修改。删除记录需要使用CRecordset类的Delete函数,并且在调用Delete函数之后不需要调用Update函数,但是在调用Delete函数时,记录集中必须具有有效记录。4.6.3学生信息管理实现过程创建一个对话框,打开对话框属性窗口,将对话框的ID设置为IDD_DIginfostudent,将对话框标题设置为“学生信息管理”。向对话框中添加1个群组控件、7个静态文本控件和7个编辑框控件,各控件的属性设置如表4.3所示。表4.3控件资源设置控件ID控件属性对应变量IDC_studentname无CStringm_studentnameIDC_studentage无floatm_studentageIDC_studentphone无CStringm_studentphoneIDC_findstudent_id无CStringm_studentidIDC_studentsex无CStringm_studentsexIDC_studentclass无CStringm_studentclassIDC_studentaddr无CStringm_studentaddr(3)以CRecordset类为基类派生一个CStudentinfoset类。(4)向对话框中添加OnInitDialog方法,在对话框初始化时创建工具栏并打开本模块使用的数据表。代码如下:BOOLCInfoStudent::OnInitDialog(){ CDialog::OnInitDialog();//创建工具栏if(!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC) ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR_subjectinfo)) { TRACE0(_T("创建工具条失败\n")); returnFALSE; }RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX); m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX); //显示工具栏RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //设置sql语句 CStringsqlStr; sqlStr="SELECT*FROMtb_studentinfo"; mystudentset=newCStudentinfoset(&((CMystudentsysApp*)AfxGetApp())->m_DB); if(!mystudentset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表 { AfxMessageBox("tb_studentinfo表打开失败!"); } returnTRUE;}自定义一个DisplayRecord方法,在记录集指针移动时为控件赋值。代码如下:boolCInfoStudent::DisplayRecord(){if(mystudentset->IsBOF()&&mystudentset->IsEOF())//判断记录中是否有数据 {//清空控件中数据 m_studentaddr=""; m_studentage=0.0f; m_studentclass=""; m_studentname=""; m_studentphone=""; m_studentsex=""; m_studentid=""; } else { if(mystudentset->IsBOF())//移动到了开头就向后移 { mystudentset->MoveNext();//向下移动记录集指针 } else//否则前移 { if(mystudentset->IsEOF()) { mystudentset->MovePrev();//向前移动记录集指针 } } }//为记录中的值添加到控件中 m_studentaddr=mystudentset->m_addr; m_studentage=mystudentset->m_age; m_studentclass=mystudentset->m_class; m_studentname=mystudentset->m_studentname; m_studentphone=mystudentset->m_phone; m_studentsex=mystudentset->m_sex; m_studentid=mystudentset->m_studentid; UpdateData(FALSE);//更新控件显示 returnTRUE;}处理工具栏“添加”按钮的单击事件,当单击“添加”按钮时,将清空控件中的数据,以便用户进行输入。代码如下:voidCInfoStudent::Onsubjectinfotoolbaradd(){ //清空控件中的数据 m_studentaddr="";m_studentage=0.0f;m_studentclass="";m_studentname="";m_studentphone=""; m_studentsex=""; m_studentid=""; UpdateData(FALSE);}处理工具栏“保存”按钮的单击事件,当单击“保存”按钮时,将控件中的数据保存到数据库中。代码如下:voidCInfoStudent::Onsubjectinfotoolbarsave(){ UpdateData(TRUE);//判断控件中数据是否为空 if(m_studentaddr.IsEmpty()||m_studentclass.IsEmpty() ||m_studentname.IsEmpty()||m_studentphone.IsEmpty() ||m_studentsex.IsEmpty()||m_studentid.IsEmpty()) { AfxMessageBox("请输入相应的数据!"); return; } mystudentset->AddNew();//调用添加记录的函数处理//将控件中数据赋值给新纪录的相应字段 mystudentset->m_studentid=m_studentid; mystudentset->m_addr=m_studentaddr; mystudentset->m_age=m_studentage; mystudentset->m_class=m_studentclass; mystudentset->m_studentname=m_studentname; mystudentset->m_phone=m_studentphone; mystudentset->m_sex=m_studentsex; mystudentset->Update();//更新记录集 mystudentset->Requery();//刷新记录集 AfxMessageBox("成功保存数据!"); DisplayRecord();//更新显示}处理工具栏“删除”按钮的单击事件,当单击“删除”按钮时,将控件中的数据对应的数据库中记录删除。代码如下:voidCInfoStudent::Onsubjectinfotoolbardel(){ mystudentset->Delete();//删除记录 mystudentset->Requery();//刷新记录集 DisplayRecord();//更新显示}分别处理工具栏中“第一条”、“上一条”、“下一条”和“末一条”按钮的单击事件,当工具栏按钮按下时,实现显示“第一条”、“上一条”、“下一条”和“末一条”记录的功能。代码如下:voidCInfoStudent::Onsubjectinfotoolbarfirst(){ //TODO:Addyourcommandhandlercodehere if(!mystudentset->IsBOF()) { mystudentset->MoveFirst();//移动到第一条记录 DisplayRecord();//更新窗口显示 }}voidCInfoStudent::Onsubjectinfotoolbarlast(){ if(!mystudentset->IsEOF()) { mystudentset->MoveLast();//移动到末一条记录 DisplayRecord();//更新窗口显示 }}voidCInfoStudent::Onsubjectinfotoolbarnext(){if(!mystudentset->IsEOF()) { mystudentset->MoveNext();//移动到下一条记录 DisplayRecord();//更新窗口显示 }}voidCInfoStudent::Onsubjectinfotoolbarpre(){ //TODO:Addyourcommandhandlercodehere if(!mystudentset->IsBOF()) { mystudentset->MovePrev();//移动到上一条记录 DisplayRecord();//更新窗口显示 }}4.6.4学生信息管理单元测试本系统在初期编辑程序时常遇到一种错误,在第一次运行时没有问题,但是当第二次再运行时就会出错,后来发现是数据表重复打开造成的错误。要解决这个问题并不难,只要处理的WM_CLOSE事件,当窗口关闭时,断开与数据表的连接,并释放指针,就可以实现。代码如下:voidCInfoStudent::OnClose(){ if(mystudentset->IsOpen())//判断数据表是否打开 { mystudentset->Close();//关闭数据表 deletemystudentset;//释放指针 } CDialog::OnClose();}4.7学生成绩录入模块设计4.7.1学生成绩录入模块概述学生成绩录入管理用于记录学生的考试成绩。在录入学生成绩时,应保证同一学生的考试科目、考试时间、考试类别不能重复。如果重复,系统认为数据不合法,将给与提示,并退出操作。学生成绩录入窗口如图4.14所示。图4.14学生成绩录入窗口4.7.2学生成绩录入技术分析向数据表中添加记录,首先要打开记录集,可以使用CRecordset类的Open函数来实现。语法:virtualBOOLOpen(UNITnOpenType=AFX_DB_USE_DEFAULT_TYPE,LPCTSTRlpszSQL=NULL,DWORDdwOptions=none);nOpenType:记录集的类型,如表4.4所示。表4.4记录集类型表类型描述AFX_DB_USE_DEFAULT_TYPE默认数据库CRecordset::dynaset可双向滚动的动态集CRecordset::snapshot可双向滚动的快照CRecordset::dynamic提供比动态集更好的动态特性CRecordset::forwardOnly只能向前滚动的只读记录集lpszSQL:要执行的SQL语句或表名,如果参数为NULL,则函数直接调用GetDefaultSQL获取默认的SQL语句。dwOptions:一些选项的组合,默认值为none。然后使用CRecordset类的AddNew函数增加记录(要求数据库必须是以添加记录的方式打开),随后调用CRecordset类的Update函数更新记录集完成新纪录的添加,最后调用CRecordset类的Close函数关闭记录集。4.7.3学生成绩录入实现过程创建一个对话框,打开对话框属性窗口,将对话框的ID设置为“DD_DIginfostudent”,将对话框标题设置为“学生成绩录入”。向对话框中添加1个群组控件、6个静态文本控件、4个编辑框控件、一个时间控件和两个按钮控件。各控件的属性设置如表4.5所示。表4.5控件资源设置控件ID控件属性对应变量IDC_sutentid无CStringm_sutentidIDC_examsubject无floatm_examsubjectIDC_submarks无CStringm_submarkIDC_examkind无CStringm_examkindIDC_examdate_picker无CStringm_examdateIDC_inputsave_marks Caption:保存无IDCANCELCaption:返回无(3)以CRecordset类为基类派生一个CExaminfo_submarkset类。(4)向对话框中添加OnInitDialog方法,在对话框初始化时打开本模块使用的数据表。代码如下:BOOLCExaminfo_submarkdlg::OnInitDialog(){ CDialog::OnInitDialog();//设置sql语句 sqlStr="SELECT*FROMtb_examinfo_sub"; myexamsubmarkset=newCExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB); if(!myexamsubmarkset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表 { AfxMessageBox("tb_examinfo_sub表打开失败!"); } m_examdate=CTime::GetCurrentTime();//获得系统时间 UpdateData(FALSE);//更新控件显示数据 returnTRUE;}处理“保存”按钮的单击事件,将学生成绩保存到数据表中。在保存数据时,程序首先检查数据是否合法(数据是否为空,数据是否重复),如果不合法,则进行提示并退出操作,否则保存数据。代码如下:voidCExaminfo_submarkdlg::Oninputsavemarks(){ UpdateData(TRUE);//读á入?输?入?的?资哩?料? if(m_studentid.IsEmpty()||m_examsubject.IsEmpty()||m_examkind.IsEmpty()) { AfxMessageBox("请?输?入?相à应畖的?数簓据Y!"); return; } CStringsqlStr_findid; sqlStr_findid="SELECT*FROMtb_studentinfoWHEREtb_studentinfo.studentid='"+m_studentid+"'"; myfindset_id=newCStudentinfoset(&((CMystudentsysApp*)AfxGetApp())->m_DB); if(!myfindset_id->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid)) { AfxMessageBox("tb_studentinfo表括?打洙?开a失骸?败悒?"); } if(myfindset_id->GetRecordCount()==0) { AfxMessageBox("没?有瓺此?学§生Θ?请?确ā?认?学§号?后ó再ù输?入?!"); if(myfindset_id->IsOpen()) { myfindset_id->Close(); deletemyfindset_id; } return; } if(myfindset_id->IsOpen()) { myfindset_id->Close(); deletemyfindset_id; } CStringsql; CStringyear,month,day; year=m_examdate.Format("%Y"); month=m_examdate.Format("%m"); day=m_examdate.Format("%d"); sql.Format("SELECT*FROMtb_examinfo_subWHEREtb_examinfo_sub.studentid\ ='%s'andcode='%s'andkind='%s'andyear(examdate)='%s'and\ month(examdate)='%s'andday(examdate)='%s'",m_studentid, m_examsubject,m_examkind,year,month,day); myexamsubmarkset_findsame=newCExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB); if(!myexamsubmarkset_findsame->Open(AFX_DB_USE_DEFAULT_TYPE,sql)) { AfxMessageBox("tb_examinfo_sub表括?打洙?开a失骸?败悒?"); } if(myexamsubmarkset_findsame->GetRecordCount()!=0) { AfxMessageBox("已?经-有瓺此?记?录?,不?能ü重?复′输?入?!"); if(myexamsubmarkset_findsame->IsOpen()) { myexamsubmarkset_findsame->Close(); } return; }

中国企业物流运作现状及发展战略探讨摘要:自从2001年中国加入WTO之后,市场竞争就更加激烈。每个企业为了提高自身的竞争力,努力提高物流水平,降低物流成本。本文将中国物流现状与发达的国家和地区的企业物流运作模式进行对比,提出了中国的企业物流发展战略关键词:企业物流现状;运行模式;发展战略一、中国企业物流的运作现状及弊端

物流战略是很多企业总体战略中必须考虑到的一个重要因素。为了在市场中提升自我竞争了,企业不断在降低物流成本和提高物流水平上下功夫。无论是在国内还是国际市场上,都能够最大程度上的降低成本,同时又不减低服务水平,获得竞争优势。企业物流的管理整体上来说还是处于不完善的阶段,大多停留在纸币时代。比较先进的企业已经配备了电脑,但是依旧没有形成系统的体系和网络。EDL、个人电脑、人工智能、专家系统、通信和扫描等先进的信息技术还未在物流运作中广泛地运用。但是物流是一种新型的管理技术,涉及领域宽广。因此物流管理人员要熟悉掌握企业内物流和因此延伸的整条供应链的管理知识,掌握整个工艺流程,精通物流管理技术。而我国现在十分缺乏具备综合物流知识的管理和技术人才,难以满足企业物流现代化的需求。二、中国企业物流的发展战略1990年以来,在国外,物流已经成为了该国一个重要的经济增长点。但是在中国,物流才刚刚起步。企业之间生产经营,市场运行的各个方面展开竞争。具体体现在技术、人才上包括了物流和供应链。在竞争如此激烈的背景之下,企业进入了一个微利时代,产品的成本和利润变得十分透明。而这用竞争还会不断加深,变得更加激烈,三、发展物流为当务之急

社会的经济环境在不断地发展变化之中,这就要求中小企业从战略发展的高度出发去思考物流的发展问题。在大企业实时物流战略的同时,作为灵活的反应者,中小企业在市场中,也积极采取了行动。希望通过积极的物流战略提升自身的竞争力。信息技术的发展前景大好,经济贸易的高速发展,物流业已经显示出了蓬勃的活力和蕴藏的无限商机,物流服务正逐渐成为中国企业之中最为经济合理的综合服务模式。中国进入WTO的时间还不算长,我国的中小企业应该及时把握住这一机会,在物流市场竞争比较不激烈时加入物流领域,迅速地占领一定的市场份额。但是如果中小企业不作为,等时间再长久一些,将会失去发展物流的优势。

四、从战略角度做物流

现下,我国的许多中小企业还未意识到物流战略以及控制物流成本的重要性。中小企业应当认识到物流战略是提升竞争力的重要手段,并且重视自身物流系统地建设,将物流系统的建设上升到战略高度。事实上,企业物流成本是除了原材料成本之外的最大成本项目。在国外发达国家,它们的物流成本一般控制在10%左右。而我国的现状就不太乐观。我国物流成本一般占总成本30%-40%,鲜活产品占60%左右甚至更多。我们应该看到的是系统完善的物流管理可以节省15%-30%物流成本,很大程度上减少库存和运输成本,对于中小企业来说,技术上和产品质量都比不上大企业。但不得不承认的是,中小企业产品价格更加受消费者青睐,市场需求反应更加灵活迅速。一旦中小企业将物流上升到战略高度,利用先进的物流管理模式,就可以大大的节省产品成本,进一步发挥自身的优势。想要在变幻莫测的市场中屹立不倒。谋求更加长远的发展,中小企业就要把物流放到企业经营管理的战略高度上进行思考。除了考虑要怎样解决仓储运输和商品配送这些物流的基本问题,还要思考怎样把采购、生产和销售过程中的物流活动的有机结合。做到以业务流程为基础,使得物流的一体化。最终达到加强企业的在瞬息万变的市场当中的竞争能力。

我国的中小企业只有突破地域限制、行业的局限,放眼于国内外,才能说真正意义上做好了战略制定,最大限度地把握住了机遇,有效规避风险。具体来的说,就是首先着眼于当前的地域市场的开拓,在获得了本地竞争的优势之后,辐射全国,放眼于全球。

五、重视物流系统的全面改造

发展物流并不是一蹴而就的,它需要一步步地前进。因此中小企业要注重制定详细的物流重组的长期实施计划和发展策略。物流重组需要从物流业务流程、组织机构、企业资源管理系统等方面展开,这样一来才有可能慢慢实现企业物流向供应链管理的“横向一体化”。达到降低生产、库存、运输等环节的成本,最终给客户带来更大的效益,给消费者带去更大的实惠。与此同时,企业的经营者应该打破传统的观念,不再只是局限于投入产出管理问题,如流程再造、压缩成本、加强培训以及有限资源的合理配置问题。企业的经营者应当认识到物流是企业市场营销的基础,从战略高度去思考物流运营成本与市场拓展需要、物流顾客服务的特殊要求之间的动态平衡,做到将物流系统与营销战略有机结合。现代化的物流在国际上又被称为一体化物流、供应链管理、销售链管理等等。不同于传统的物流,现代物流包括了运输、储存、装卸、搬运、包装、流通加工、配送、信息处理、回收等功能。对我国的中小企业来说,发展物流必须重视物流系统的全面改造。以物流供应链思想作为指导,注意对物流管理的强化,积极运用有效策略,全新打造物流的运作与管理体系。

六、从服务角度做物流

在国外,广泛认为物流业归属于服务业。但是现代物流在中国还是新兴产业。它的发展也就紧密伴随着企业经营管理理念而在发展。当代企业政府对物流管理的认识也逐渐提高到了企业和地区的战略理论的高度。当代企业经营管理理念的核心正在从产品制造转向产品销售再转向现代营销和客户服务。并且提出了“一切为客户创造价值”的现代经营理念。人们对于物流的认识早已经从企业自身的“功能性活动”上升为“以满足客户需求为目的”、“努力为客户创造价值,尽力增加顾客让渡价值”的“从供应到消费的运动、储存和配送的计划、执行和控制”的管理过程。消费者的需求不仅仅是商品。以企业的经营和发展的角度来看,物流就等同于服务。服务也是物流的物品之一。它是企业所提供的服务,“服务的实质上也是一种商品”,但是这一点却常常被人们所忽视。七、引进专业物流管理咨询公司中小企业自身的专业力量不足,因此要懂得借助相关的管理顾问公司以及相关研究机构来科学规划企业的物流战略、实施战略和管理体系。要去了解先进物流企业的作以及这样运作的原因所在。在这一过程之中,它们的物流服务理念是如何变化的,怎样做到满足客户需求和市场竞争,企业经营战略相衔接。这有这样,我国的中小企业才有可能成功地进入一个新的市场领域,在现有的市场基础上进一步地替身自身的服务水平,拓展市场份额。许多的企业在管理咨询方面下了许多的功夫,用以探索新管理方式和学习物流技术的运用。中小企想要全面提升企业的物流运作以及管理的水平,更加迅速地构建起一个先进的物流系统以及管理平台,就应当充分利用专业管理顾问公司的优势能力。结语:战略性的规划、投资以及技术开发是最近几年促进物流现代化发展的重要因素。企业亟需解决的不仅仅是仓促运输以及商品配送等最为基本的物流问题,最重要是为了解决怎么样才能在在变化莫测的市场竞争之中谋求生存与发展这一问题。因此企业必须做到将物流放在企业经营管理这一战略高度上去考虑怎样将采购、生产和销售则一系列过程与物流相结合。从而形成以业务流程为基础,形成物流一体化,达到增强企业市场竞争力的目的。物流已然是企业市场营销的基础。作业企业的经理,在物流决策方面应当从战略高度去考虑物流运营成本和市场拓展需要、物流顾客服务的特殊要求之间的动态平衡,仔细思考怎样才能把物流系统与营销战略以及企业的总体战略灵活结合。不再像传统上,只注重如何解决流程再造、压缩成本等投入产出的管理问题以及有限资源的合理配置问题。参考文献【1】孟祥茹

-中国企业物流运作现状及发展战略探讨\o"《山东交通学院学报》"《山东交通学院学报》

-

2013【2】HYPERLINK"/usercenter/data/author?cmd=authoruri&wd=authoruri:(4a7999e0e9686c0e)%20au

温馨提示

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

最新文档

评论

0/150

提交评论