符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
bpm有两种意思,一种意思是拍子数,bpm是Beat Per Minute的简称,释义为每分钟节拍数的单位;另一种的意思是业务流程管理,也指针对流程管理的信息化系统,其特点是注重流程驱动为核心,实现端到端全流程信息化管理。
创新互联公司-专业网站定制、快速模板网站建设、高性价比嵊州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式嵊州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖嵊州地区。费用合理售后完善,十多年实体公司更值得信赖。
bpm代表拍子数的介绍
bpm最浅显的概念就是在一分钟的时间段落之间,所发出的声音节拍的数量,这个数量的单位便是bpm。bpm是全曲速度标记,为独立在曲谱外的速度标准,一般以一个四分音符为一拍,60bpm为一分钟演奏均匀60个四分音符或等效的音符组合。一般记一个四分音符为一拍,而后描述一拍即为在当前bpm下的一个四分音符。
bpm作为业务流程管理的介绍
业务流程管理是一种以规范化的构造端到端的卓越业务流程为中心,以持续的提高组织业务绩效为目的的系统化方法,常见商业管理教育如EMBA、MBA等均将BPM包含在内。业务流程是为了实现一定的经营目的而执行的一系列逻辑相关的活动的集合,业务流程的输出是满足市场需要的产品或服务。
5.6 学生模块的实现
学生登录系统之后可以拥有一些信息修改和查看的能力,可以对个人信息进行修改。学生可以查看自己所有的成绩,如图5-13所示。
图5-13 学生成绩查看
学生成绩查看部分功能代码:
学生登录后可以点击选课信息管理按钮,点击选课列表,学生可以查看自己的选课信息,如图5-14所示。
图5-14 选课查看
选课查看功能部分代码如下:
学生账号登录后,点击个人信息中的修改学=学生信息按钮,学生可以对自己的个人信息(性别、姓名、电话、QQ、班级)进行修改操作,具体如图5-15所示。
图5-15 学生信息修改
6 系统测试
(System Testing)是对整个系统的测试,将硬件、软件、操作人员看作一个整体,检验它是否有不符合系统说明书的地方。这种测试可以发现系统分析和设计中的错误。如安全测试是测试安全措施是否完善,能不能保证系统不受非法侵入。再例如,压力测试是测试系统在正常数据量以及超负荷量(如多个用户同时存取) 等情况下是否还能正常地工作。主要目的是尽可能多的发现已编程序中存在的错误。
在学生信息管理系统设计开发完成后,需要对其进行测试分析,为了检验学生信息管理系统的可实施性以及各方面还有可能存在的问题。学生信息管理系统测试由测试的主要内容和分析构成。
6.1 用户登入功能测试
用户登入功能测试主要测试是否只有数据库中存在的用户在输入正确密码的前提下才能登入系统,用户登入功能测试用例如表6-1所示
表6-1 用户登入测试
测试的名称 用户登入测试
测试的目的 检查该系统的用户登录界面的功能是否存在问题
前置的条件 使用三种不同的身份进行登录
测试的步骤 使用前置条件中的存在的和不存在的管理员用户名和密码登录
预期的结果 只有在数据库中已经存在了的用户名和对应的正确密码才可以成功登录该系统
测试的结果 通过
测试的名称用户登入测试
测试的目的检查该系统的用户登录界面的功能是否存在问题
前置的条件使用三种不同的身份进行登录
测试的步骤使用前置条件中的存在的和不存在的管理员用户名和密码登录
预期的结果只有在数据库中已经存在了的用户名和对应的正确密码才可以成功登录该系统
测试的结果通过
根据表中步骤进行测试,没有出现问题,成功通过测试用户登入功能,符合设计的目的和要求。
6.2 各项信息的管理功能测试
各项信息管理功能测试需要测试用户登入,是否学生、老师、管理员可以使用各自的信息的添加删除和修改信息的功能。修改各项信息的管理功能测试用例如表6-2所示
表6-2 各项信息的管理功能测试
测试的名称 各项信息管理功能测试
测试的目的 检查不同用户各项信息管理功能中的添加修改和删除功能是否相互对应
前置的条件 分别使用三种系统数据库中已经存在上网不同的身份进行登录(老师、学生、管理员)
测试的步骤 (1)使用学生用户登录系统,分别进行修改密码和添加、删除个人信息操作。(2)使用教师用户登录系统,分别进行修改密码、添加和删除学生信息操作。(3)使用管理员身份登录系统,分别进行对老师和学生的添加修改和删除操作。
预期的结果 不同的身份登录可以对应不同的身份所拥有的权限(添加、删除和修改功能)
测试的结果 通过
测试的名称各项信息管理功能测试
测试的目的检查不同用户各项信息管理功能中的添加修改和删除功能是否相互对应
前置的条件分别使用三种系统数据库中已经存在上网不同的身份进行登录(老师、学生、管理员)
测试的步骤 (1)使用学生用户登录系统,分别进行修改密码和添加、删除个人信息操作。(2)使用教师用户登录系统,分别进行修改密码、添加和删除学生信息操作。(3)使用管理员身份登录系统,分别进行对老师和学生的添加修改和删除操作。
预期的结果不同的身份登录可以对应不同的身份所拥有的权限(添加、删除和修改功能)
测试的结果通过
根据表中步骤进行测试,没有出现问题,成功通过各项信息管理功能,符合设计的目的和要求。
6.3 Excel导出学生成绩表功能测试
导出学生成绩功能测试需要测试用户登入后进行学生成绩的导出操作,检验是否可以正常导出学生成绩表的功能。Excel导出学生成绩表功能测试用例如表6-3所示。
表6-3 学生信息管理功能测试
测试名称 Excel导出学生成绩表功能测试
测试目的 检查导出学生成绩表功能是否达到要求
前置条件 使用数据库中存在的老师、管理员用户信息登录系统
测试步骤 点击成绩信息管理,点击成绩列表,点击导出操作,选择导出目录,导出学生成绩表。
预期结果 能正常导出学生成绩表功能
测试结果 通过
测试名称 Excel导出学生成绩表功能测试
测试目的检查导出学生成绩表功能是否达到要求
前置条件使用数据库中存在的老师、管理员用户信息登录系统
测试步骤点击成绩信息管理,点击成绩列表,点击导出操作,选择导出目录,导出学生成绩表。
预期结果能正常导出学生成绩表功能
测试结果通过
根据表中步骤进行测试,没有出现问题,成功通过Excel学生成绩导出功能,符合设计的目的和要求。
总结
该系统主要实现了管理员模块,老师模块以及学生模块,主要实现了管理员对于系统中教师,学生以及课程数据的增删改查操作;以及教师对于学生相关信息的管理,例如学生的成绩和考勤信息等;以及学生对于个人信息的修改以及选课信息和课程成绩的查看等功能。由于使用的功能基本相同,所以跳转页面也几乎一致,不同的是点击事件和功能。节省了好多繁琐的跳转的不同页面,设计和实现界面设计的简洁化,更加节省了代码的繁琐程度。
本文虽然设计了信息化的学生信息管理系统,然而由于本人个人能力的不足以及时间的问题,本系统的设计并没有非常完善,系统设计中还存在着一些不足。由于对Java和数据库的掌握还未到炉火纯青的地步,有些比较难以实现的功能尚未完成。我会加强对Java和数据库的理解和学习,之后将会学习比较主流的SpringBoot框架对系统的开发流程进行简化,以及加入一些例如Redis之类的中间件,提高系统的健壮性。
致谢
光阴飞逝,现在蓦然回首,已在南信院学习三年了。依稀记得当年的懵懂小伙,仰望南信校门的情景。第一次走进学校,还是一个转业都分不清的无知者,四年后,我们专业知识已经过硬。这都得益于老师们的辛勤耕耘,无私奉献。"捧着一颗心来, 不带走半根草”。感谢我的南信院的老师们!是你们引领我走向了学术的殿堂,是你们引领我遨游在知识的海洋。在老师的谆教诲之下,我开阔了视野,深邃了思想,丰富了知识。尤其在毕业论文的指导上,老师更是不敢稍微懈怠。从论文选题开始,老师便倾入了大量的心血。得益于老师的启发我选择了研究沉没成本效应。这片浩瀚论文书海之中,我一个人感觉很是无助。但由于老师的指导和帮助,我不再害怕,我鼓足勇气耐心地完成我的毕设。
然后感谢我的论文指导老师蒋理老师,他认真负责的态度以及细心的指导,使我获益匪浅。耐心地指导让我感到万分感谢。感谢南京信息职业技术学院为我提供了这样的学习机会,此次使我感受颇深,并对软件开发技术的掌握也进一步加强了然后,也感谢我的舍友们,在我不懂的时候给予热心的帮助,让我不必一直纠结于哪一个问题,放松了很多。最后,感谢和我一起走过这三年的每一个人,因为有你们,生活变得美好,学习变得快乐。
参考文献
1 史健.海南体育职业技术学院训练竞赛管理系统开发与应用[J].当代体
育科技,2017.
2 张应辉,饶云波.计算机文化基础[M].北京航空航天大学出版社,20
(09).
3 赵文艳,康健.移动 web前端开发.北京理工大学出版社,2018,(09).
4 宋协栋.Dreamweaver网页设计与制作.北京理工大学出版社,2017,(07).
5 万征,刘喜平,骆斯文,万常选.面向计算思维的大学计算机基础.北京高等教育出版社,2015,(02).
6 万征,刘喜平,骆斯文,万常选.数据库系统原理与设计第 3版.北京清华大学出版社,2017,(09).
7 张聪.一种复合模式的仓储式物流配送管理系统设计[J].商场现代化,2017,(07):86-87.
8 余海伟.手工艺品企业的管理系统的设计与实现[D].厦门大学,2017.
9 方银斌. 基于移动物联网的大数据平台设计与实现[D].电子科技大学,2014.
10 DINO ESPOSITO.Social Authentication in ASP.NET MVC 4[J].MSDN magazine, 2013, 28(5):6-10.
摘要由于学校规模进一步扩大,学生人数逐年上升,学生信息的管理也变得越来越复杂。为此,切实有效的把学生信息管理系统引入学校教务管理中,对于促进学校管理制度和提高学校教学质量有着显著意义。 本系统采用B/S结构,ASP为开发语言,SQL Server 2000为数据库来进行设计与开发。本论文,简要阐述了系统的开发背景与开发环境,对系统的构架进行分析,由此划分出各个模块,包括用户注册模块,用户登陆模块,个人管理模块,基本信息管理模块,特殊信息管理模块,毕业生信息管理模块,成绩管理模块,更多信息管理模块,退出系统模块。详细介绍了系统各个模块与功能的实现原理,最后总结开发阶段与测试阶段所遇到的问题与解决方法。 关键词:ASP;SQL Server 2000;B/S结构1 引言管理信息系统就是我们常说的MIS(Management Information System ),在强调管理,强调信息的现代社会中它变得越来越普及。MIS是一门新的科学,它跨越了若干个领域,比如管理科学、系统科学、运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。 近年来Internet的飞速发展,Intranet技术得到了应用,为企业MIS提供了良好的支持环境。管理信息系统在企业的应用中存在三个要素,这就是人、计算机和数据。人是指企业领导者、管理人员、技术人员,以及MIS建设的领导机构和实施机构,他们必须有企业管理人员,尤其是企业领导的积极参与。计算机技术使MIS得以实施的主要技术。在这些技术中,软件开发是MIS开发的重点。第三个因素也不能忽视。企业的管理数据是MIS正常运行的基础。广义地说,各项管理控制是MIS的基础。是想要计算一台机床的成本,需要按时输入、每个零件以及每个螺钉螺母的费用,涉及企业的生产车间、采购、库房、 工艺设计和财务等多个部门,必须有一套管理制度作保证。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。目前,学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。尤其在管理成绩时,任务更加繁重,就成绩管理本身来说,它是一项任务繁重、时效性较强的系统工作,它不但涉及学生个人成绩查询,更涉及到各教师的工作效率和质量。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。 现在我国的一些院校中的信息管理效率还不是很高,这样已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。所以,学生信息系统的设计与开发也是一个时代必经的阶段。本次设计主要采用B/S结构,主要实用于各高校的各专业,从学生入学到毕业每个人在校的信息,以及成绩的管理。本系统主要有六大模块,基本信息管理、特殊信息管理、毕业生信息管理、更多信息管理(补助信息管理、勤工助学信息管理、奖励信息管理、处罚信息管理、异动情况信息管理)、成绩管理、个人管理。用WindonwsXP为操作平台,ASP作为脚本语言,采用SQL Sever 2000作为数据库,用户可以实现对数据的录入,修改,删除等操作。 2 系统开发背景 随着科学技术的不断提高,目前,学校学生管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。近年来随着计算机的迅速发展,计算机已经在社会各个领域显示了它巨大的作用。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。由于上述原因,所以,学生管理系统的开发也是时代的一个必经阶段。本次设计主要采用B/S结构,从学生入学到毕业每个人在校的信息,以及成绩的管理。本系统主要分为六大模块,基本信息管理、特殊信息管理、毕业生信息管理、更多信息管理(补助信息管理、勤工助学信息管理、奖励信息管理、处罚信息管理、异动情况信息管理)、成绩管理、个人管理。用户可以对各种信息进行录入,修改,删除等操作。更方便各个专业老师对学生信息的系统化管理,提高办公效率,以达到更合理化,方便化等要求。 3 系统开发环境 3.1 系统开发理论依据 3.1.1 ASP概述 1.ASP基本含义和特点 ASP是Active Server Page的缩写,意为“活动服务器网页”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。ASP的网页文件的格式是.asp,现在常用于各种动态网站中。 ASP是一种服务器端脚本编写环境,可以用来创建和运行动态网页或web应用程序。ASP网页可以包含HTML标记、普通文本、脚本命令以及COM组件等。利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。 与HTML相比,ASP网页具有以下特点: (1)利用ASP可以实现突破静态网页的一些功能限制,实现动态网页技术; (2)ASP文件是包含在HTML代码所组成的文件中的,易于修改和测试; (3)服务器上的ASP解释程序会在服务器端制定ASP程序,并将结果以HTML格式传送到客户端浏览器上,因此使用各种浏览器都可以正常浏览ASP所产生的网页; (4)ASP提供了一些内置对象,使用这些对象可以使服务器端脚本功能更强。例如可以从web浏览器中获取用户通过HTML表单提交的信息,并在脚本中对这些信息进行处理,然后向web浏览器发送信息; (5)ASP可以使用服务器端ActiveX组建来执行各种各样的任务,例如存取数据库、发现那个Email或访问文件系统等。 (6)由于服务器是将ASP程序执行的结果以HTML格式传回客户端浏览器,因此使用者不会看到ASP所编写的原始程序代码,可放置ASP程序代码被窃取。 2.ASP的优点 ASP的主要优点大概可以归纳如下: (1)可以用 VBscript 或Jscript创建脚本,同时结合HTML语言就能够非常方便地完成网站的应用程序。对于 VBscript和Jscript,使用哪种语言并不重要,Web 服务器等同地处理这两种语言,并向用户的浏览器发送 HTML 格式化结果。 (2)因为ASP采用script语言(VBscript和Jscript)就可以轻松编写程序,因此这就大节省了网络设计人员又得重新学习一种新语言的时间。而且编写ASP无须手工compile编译或链接程序,可在服务器端直接执行,这无疑是更加方便了编写过程。 (3)使用普通的使用记事本之类的文本编辑器,即可进行编辑设计,如:Windows的记事本。不要用FontPage98或DreamWeaver2.0等主页制作软件修改,因为会破坏源代码的。建议使用CuteFTP携带的CuteHTML编辑器进行编辑设计。 (4)ASP是运行在服务器端,所以无须担心浏览器是否支持ASP所使用的编程语言,用户端只要使用可执行HTML码的浏览器,即可浏览Active Server Pages所设计的网页内容。ASP在服务器端运行,当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 (5)ASP能与任何ActiveX scripting语言相容。除了可用VBscript或Jscript语言来设计外,还通过plug-in的方式,使用由第三方所提供的其他脚本语言,譬如Perl、Tcl等。脚本引擎是处理脚本程序的COM(Component Object Model)组件。 (6)Active Server Pages的程序代码隐藏,在客户端上仅可以看到由ASP输出的动态HTML文件。因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。转
方法如下:
1、在百度中搜索:某省全国中小学生学籍信息管理系统,例如“云南省全国中小学生学籍信息管理系统”,点进入。
2、来到系统界面,把登录账号、密码和验证码输入相应的位置;
3、点“登录”即可。(备注:用户名、密码和验证码要保证准确无误。)
注意:
全国中小学生学籍信息管理系统,首先要知道用户名和密码,而且只有学校管理员才可以登陆。此外,全国中小学生学籍信息管理系统是分省份登录的,所以要知道所登录的省份。
扩展资料
系统原则:
未来,系统将涉及全国1.9亿名中小学生,遵循“一个也不能少”的原则,实现全国各级各类学校的全面覆盖。
系统同时实行动态管理,包括对全国范围内的学生注册、学生信息维护、毕业升级、学籍异动的信息化管理,及时跟踪全国的学生流动,全面掌握全国中小学生的真实情况,为教育管理和决策、营养改善计划的实施、学生资助等提供帮助。
教育部从2009年开始规划建设全国中小学生学籍信息管理系统和全国中小学数据库。
作为4个试点省份之一的贵州省教育厅负责人表示,该系统自2012年春季学期在贵州全省运行,有效解决了过去多头统计、学生数据不准等问题,教育部门能及时掌握学生的真实信息,包括每天全省有多少名中小学生未到校上课等。
参考资料:全国中小学生学籍信息管理系统-百度百科
1、什么是流程管理
流程管理,即Process Management,是一种以规范化的构造端到端的业务流程为中心,持续地提高组织业务绩效为目的的系统化方法,也会被称为BPM(Business Process Management),即业务流程管理。
业务流程管理就是做一件事情或者完成一项业务的方法和步骤,它支持跨部门的业务活动以及管理员工的建模、设计、执行和维护流程,旨在帮助企业优化日常业务流程,从而提高员工的工作效率和企业生产力。业务流程管理不仅是一种方法,它更是一种管理思想的体现,在业务流程管理过程中,不仅定义和优化了步骤和环节,而且还定义了每一个环节的负责人、时效以及预期收益。
2、为什么要进行业务流程管理
举个例子:小明已经在在财务部已经工作了五年,他对财务部门如何运作已经 “了如指掌”。通常情况下,财务部只有得到了采购主管的批准才可以向供应商开发票,小明知道哪一步该找哪个负责人,整个开票的流程是什么样子的。但是这个流程小明清楚,不代表其他人清楚,如果把这个最佳流程规范出来,是不是可以提升其他同事的工作效率呢?
另外,财务部给一家供应商开具相关的发票是很快的,但是如果对一百家供应商开发票,财务部所花费的时间可能是预期的数倍。如果这个时候有一个自动化的表单和工作流,非常轻松的用业务流程将每一个人完美的连接起来,是不是又进一步提高了整个部门的业务效率呢?
除了这个财务的流程,其实研发也有研发的流程,生产有生产的流程,销售有销售的流程,人事有人事的流程。在企业的各种工作过程中,都会包含大量的业务流程管理工作。
为什么要进行业务流程管理,从上面的例子我们不难看出,进行业务流程管理可以:
1)固化企业现有业务流程
通过流程将工作事务处理程序固化后,企业所有人员办理类似的事情时就都可以按照这样的流程去做,有助于形成标准化的处理方式,这对企业刚入职的员工或者业务不熟练的员工在处理同样的事务时也会有所帮助。
2)规范企业事务管理
当某项事务需要多个人员或者多个部门(即跨部门)共同处理时,之前固化的成熟业务流程就非常清楚地明确了这个事务完成的顺序以及相关的其他协作人员在这件事情中要做具体工作内容,业务流程使事务管理更加规范化。
3)提高员工的工作效率
通过业务流程管理减少了不必要的时间消耗,既提高了个人的工作效率也提高部门的运作效率。
4)优化现有流程,更加适应企业的发展
对业务流程进行管理之后,我们可以通过观察现有流程的运行情况去发现现有流程与业务不匹配的地方,发现流程中需要完善和改进的地方。这样可以帮助我们进一步优化流程,使流程更加适应企业的发展,给企业助力!
3、好的流程具备的特点
1)管理者及普通员工乐于执行
一个好的流程必须得到管理层的和推崇和普通员工的执行,否则如果流程无法正常运转,那么再好的流程无法对企业产生正向的效益。
2)与流程相关的各个要素必须全面
具体一项事务由企业哪个岗位的人来执行,需要经过哪些相关的部门,如果该岗位上的人不在的话,有谁可以接手?这些都是与流程相关的一些要素。这些要素必须全面,否则流程在执行过程中很容易出问题或者直接中断而且无法及时解决。
3)意外情况的处理
比如公司的仓库发货时货车出现了意外,这个时候是不是要通知仓库补发货,同时告知客户重新发货后可以收货的时间,另外如果量非常大,是不是需要安排生产部门加急安排后续的生产?很多的流程都是一定的顺序执行操作的,但是实际运行的流程在每一个环节上都会出现各种各样的意外情况,对意外情况处理的流程,也是需要慎重考虑的。
4)流程要考虑到基于不同业务分类的多样化
比如,销售流程有厂家直营和代理商经营的区别;项目管理会根据重要性分为一二三级等不同类别的项目,只有分类细化才能加速流程的处理速度而且不影响完成的质量。
其实好的流程需要具备的特点很多,上面说的只是其中一部分。但是总的来看,适合企业自身业务特点的流程才是好的流程。
4、业务流程管理工具推荐
业务流程管理除了要弄清楚流程的各个概念、要求和特点之外,还需要好的工具予以支持。推荐轻流这款工具,它具有无代码搭建业务流程管理系统、支持PC移动等多终端操作、可与现有软件系统集成以及强大的报告生成和分析功能等特点,具体的使用方法可以自己去了解一下。
你说的叫学籍管理系统也可。我把我的课设结果发给你,一共参考。绝对没问题。比你的全面,你只须稍加修正。
学籍管理系统
学籍信息,包括学院、班级、学号、姓名、专业、性别、出生日期,家庭地址,电话号码等。要求该系统具有浏览,增加,删除,查询,插入等功能。程序的主要实现可以用链表来实现。类设计完成后,输入足够的测试数据进行测试,将必要的测试及过程输入到文件中。菜单可以根据设计功能要求自由设计。
#includeiostream.h
#includefstream.h
#includestring.h
#includestdlib.h
#include"Student.h"
#include"StuList.h"
class StuList;//带表头节点的链表类
class Student //链表节点类
{
friend StuList;
private://每个结点的具体信息
char school[12];//学院
char major[12];//专业
char class1[12]; //班级
long number; //学号
char name[9]; //姓名
char sex[7]; //性别
char birth[12]; //出生年月
long phone; //电话号码
char add[20]; //家庭地址
Student *next;
public:
Student(char* scl=NULL,char* mal=NULL,char* cal=NULL,long No=0,char* nal=NULL,char *sal=NULL,char *bil=NULL,char *adl=NULL,long phl=0);//构造函数定义,初始化各个参数
};
class StuList //带表头节点的链表类
{
private:
Student *head,*current;//定义指针
public://以下是成员函数
StuList();
~StuList();
void makeEmpty();
void add(char* scl,char* cal,char* mal,long No,char* nal,char *sal,char *bil,char *adll,long phl);
void insert(char* scl,char* cal,char* mal,long No,char* nal,char *sal,char *bil,char *adl,long phl);
void delet(long No,char* nal);
void searchStu1(char* nal);
void searchStu2(long no);
void chazhao();
void print();
void save();
};
Student::Student(char* scl,char* mal,char* cal,long No,char* nal,char *sal,char *bil,char *adl,long phl)
// Student类的构造函数定义,初始化各个参数
{
……/
}
StuList::StuList()//StuList类的构造函数
{
……
}
StuList::~StuList()//StuList类的析构函数
{
……
}
void StuList::makeEmpty() //清空链表
{……}
void StuList::searchStu1(char* nal) //按姓名查找链表中的节点,打印信息
{
int a=0;
current=head-next;
do
{
if(strcmp(current-name,nal)==0)//strcmp为比较字符串
{
cout"查到姓名为"current-name"的学生的信息:\n";
cout"--------------------------------------------------------------------\n";
cout"学院\t专业\t班级\t学号\t姓名\t性别\t生日\t住址\t电话\n";
cout"--------------------------------------------------------------------\n";
coutcurrent-school"\t"current-major"\t"current-class1"\t"current-number"\t";
coutcurrent-name"\t"current-sex"\t"current-birth"\t"current-add"\t"current-phoneendl;
a++;
}
current=current-next;
}while(current!=NULL);
if(a==0) cout"没找到!"endl;
else cout"\n共"a"条记录!\n";
}
void StuList::searchStu2(long no) //按学号查找链表中的节点,打印信息
{
int b=0;
current=head-next;
do
{
if(current-number==no)
{
cout"查到学号为"current-number"的学生的信息:\n";
cout"--------------------------------------------------------------------\n";
cout"学院\t专业\t班级\t学号\t姓名\t性别\t生日\t住址\t电话\n";
cout"--------------------------------------------------------------------\n";
coutcurrent-school"\t"current-major"\t"current-class1"\t"current-number"\t";
coutcurrent-name"\t"current-sex"\t"current-birth"\t"current-add"\t"current-phoneendl;
b++;
}
current=current-next;
}while(current!=NULL);
if(b==0) cout"没找到!"endl;
else cout"\n共"b"条记录!\n";
}
void StuList::print() //输出链表
{
……
}
void StuList::chazhao()//查找函数
{
if(head-next==NULL)//链表为空
{
cout"链表为空!"endl;
return;
}
int k;
do
{
cout"\n\n\t\t-*-*-*-*-*-*查找功能子菜单-*-*-*-*-*-*\n";
cout"\t\t** **\n";
cout"\t\t** 1、按照姓名查找 **\n";
cout"\t\t** 2、按照学号查找 **\n";
cout"\t\t** 3、退出查找 **\n";
cout"\t\t** **\n";
cout"\t\t-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\n\n";
cout"请选择:";
cink;
char sear[16];
long no;
switch(k)
{
case 1:
cout"姓名:"; cinsear;
StuList::searchStu1(sear);//调用按姓名查找函数
break;
case 2:
cout"学号:"; cinno;
StuList::searchStu2(no); //调用按姓名查找函数
break;
case 3:
char t;
cout"退出查找?(y/n):"; cint;
if(t!='y') k=4;
else k=0;
break;
}
}while(k!=0);
}
void StuList::save()//文件保存
{
Student* p;
p=head-next;
fstream out;
out.open("F:\\maqiong\\学籍管理系统.txt",ios::app);
out"********************************************************************\n";
out"学院\t专业\t班级\t学号\t姓名\t性别\t生日\t住址\t电话\n";
out"--------------------------------------------------------------------\n";
do
{ outp-school"\t"p-major"\t"p-class1"\t"p-number"\t"p-name"\t"p-sex"\t"p-birth"\t"p-add"\t"p-phoneendl;
p=p-next;
}while(p!=NULL);
out.close();
}
void menu()//菜单函数
{
coutendl"\t""*-*-*-*-*-*-*-*-*-*-菜单*-*-*-*-*-*-*-*-*-*-*-*-*-*"endl;
cout"\t""** **"endl;
cout"\t""** 1.加入学生资料 2.插入一个学生 **"endl;
cout"\t""** 3.移除一个学生 4.显示该表 **"endl;
cout"\t""** 5.查找学生资料 6.清空该表 **"endl;
cout"\t""** 7.显示菜单 0.退出程序 **"endl;
cout"\t""** **"endl;
cout"\t""*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*"endlendl;
}
void main()
{
char cmd;
StuList* list=NULL;
list=new StuList;
menu();
do
{
coutendl"请选择要进行的操作序号(7-显示菜单):";//输入命令
cincmd;
if(list==NULL) //检查输入的命令是否合适
while(cmd!='1'cmd!='8'cmd!='0')
{cout"还没有建立链表,请先建立链表:";cincmd;}
switch(cmd) //匹配命令
{
case('1'): //加入学生信息到链表后
char insschool2[12],insclass12[12],insmajor2[12],insname2[12],inssex2[7],insbirth2[12],insadd2[12];
int insnumber2,insphone2;
cout"请输入学生信息"'\n';
cout"学院:"; cininsschool2;
……
……
list-add(insschool2,insmajor2,insclass12,insnumber2,insname2,inssex2,insbirth2,insadd2,insphone2);
list-save();
break;
case('2'): //按学号插入一个学生
char insschool3[12],insmajor3[12],insclass13[12],insname3[12],inssex3[7],insbirth3[12],insadd3[12];
int insnumber3,insphone3;
cout"学院:"; cininsschool3;
……
……
list-insert(insschool3,insmajor3,insclass13,insnumber3,insname3,inssex3,insbirth3,insadd3,insphone3);
list-save();
break;
case('3'): //删除一个学生信息
char tem;
cout"删除一个学生?(y/n)"; cintem;
if(tem=='y')
{
int rem; char insname4[12];
cout"学号:"; cinrem;
cout"姓名:"; cininsname4;
list-delet(rem,insname4);
list-print();
list-save();
break;
}else break;
case('4'): //显示所有学生
list-print(); break;
case('5'): //查找学生信息
list-chazhao();break;
case('6'): //清空链表
char tin;
cout"删除链表退出?(y/n):"; cintin;
if(tin=='y')
{
list-makeEmpty();
cout"链表为空"endl;
break;
}
else break;
case('7'): //显示菜单
menu();
break;
case('0'): //退出
if(list==NULL) break;
char temp;
cout"删除链表并退出?(y/n):"; cintemp;
if(temp=='y'){list-~StuList();list=NULL;}
else cmd=10; break;
default:
cout"请输入菜单中的命令!"endl;
}
}while(cmd!='0');
}