




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安思源学院毕业设计GRADUATION PROJECT,XIAN SIYUAN UNIVERSITC语言的学生成绩系统设计毕业论文目录第一章 绪论11.1 系统开发目标11. 2 开发工具的选择11.3 开发方法的选择21.3.1 系统分析21.3.2 系统设计31.3.3 系统实施31.3.4 调试维护41.4 开发本系统的意义4第二章 系统分析52.1 背景分析52.2 组织机构调查分析52.3 可行性分析52.3.1 技术可行性分析52.3.2 经济可行性62.3.3 运行可行性6第三章 数据库系统的特点73.1数据库系统的特点73.1.1数据库(简称DB)73.1.2数据库系统(DBS)73.1.3数据库系统的特点83.1.4 基本数据模型93.2关系数据模型与关系数据库103.3 数据库的逻辑设计103.4 数据库管理系统的概念103.5 数据库应用系统11第四章 系统设计134.1系统数据流程图设计134.1.1系统数据流程图144.2模块设计14第五章 数据库设计165.1数据库的逻辑设计165.2 程序的实现17总结 32 致谢33参考文献34第1章 绪论 本文以学校管理信息系统建设中的教学管理子系统的开发为背景,论述了管理信息系统的概念、结构及系统开发的基本原理和方法,全文共分为绪论、系统分析、数据库设计、系统设计、系统实施、开发总结、致谢、参考文献、附录等。1.1 系统开发目标 本系统是将现代话的计算机技术和传统的教学、教务工作相结合,按照学院的工作流程设计完成的。为了使系统在学院的管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下的系统开发目标:1.系统应具有实用性、可靠性和适用性,同时注意到先进性。2.对各个数据库进行动态管理,防止混乱。3.能够按照用户选择的不同的条件进行简单查询和复合查询。4.能够对查询结果进行分类汇总,实现报表打印。5.注意数据的安全性,具有数据备份和恢复的功能6.方便用户的操作,尽量减少用户的操作。1. 2 开发工具的选择 在开发工具的选择上,我们选择了对数据库有强大功能的数据库开发系统,于是选择了美国 Borland 公司推出的VC+6.0 开发工具。在pc机数据库系统xbase家族中, VC+6.0 是第一个全面支持面向对象程序设计的数据库语言工具。它的主要特点有:1.强大的查询与管理功能2.强大的数据库开发功能3.扩大了对SQL语言的支持4.大量使用可视化的界面操作工具5.支持面向对象的程序设计6.多平台支持7.支持网络应用1.3 开发方法的选择 在开发方法的选择上,选择了演绎式原型法与生命周期法相结合的方法。具体来说,就是在系统开发之前对系统有一个总体框架设想,各功能单元的结构和功能也比较清楚,但是还没有具体实现。系统完成什么功能,分成哪几个部分,各个部分又有哪几个模块,都已理解掌握,且以后不需要做更大的变动,只是具体到每个模块,还没有全部实现。具体地设计可能是完全实现一个模块,也可能是用一个效率高地模块代替一个旧模块。信息系统的开发是一项比较复杂的工作,我们必须选用科学的有效的开发方法。近年来,国内外已逐步总结出一些开发信息系统的方法和技术,但是,从目前的情况来看,系统的开发技术仍是一个比较薄弱的环节。那么根据本系统开发的要求,本系统选择了生命周期法和原型法相结合的方法。现具体介绍如下: 生命周期这个概念源于系统工程方法。广义地说,任何系统均有其发生、发展、成熟、消亡或更新换代的过程,这个过程称为系统的生命周期。主要包括系统调查阶段、系统分析、系统设计、系统实施及系统维护与评价五个部分。根据系统设计而对整个系统实施,包括物理实施,程序设计,调试等。实施是最后的一步,关系着最后的成功。 系统实施的任务主要包括:1程序设计2物理实施3使用说明书4编译1.3.1系统分析 先根据用户提出的建立新系统的要求,进行初步调查和初步可行性分析,提出系统总体规划。再对原系统进行深入的调查,彻底掌握原系统的模型,并在此基础上提出新系统的逻辑模型。a.系统目标 学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,使用本系统对学生的成绩进行合理管理,实现学生成绩的录入、编辑、删除等功能,也可以实现成绩的排序、检索等。它将成为教务处老师的一个很好的帮手。b系统功能 总体来说,学生成绩管理系统完成以下功能:1 学生管理2 成绩管理3 成绩打印1.3.2系统设计 根据系统分析确定的逻辑模型,确定新系统的物理模型,即计算机化信息系统应用软件的总体结构和数据库设计,并提出系统配置方案,继而对物理模型进行详细的设计。主要内容有:代码设计,用户界面设计,处理过程设计,编写系统设计说明书。系统设计是以系统分析为基础,而系统设计又是系统实施的基础,系统设计的主要任务是代码设计、物理设计、数据库设计、功能结构图设计。系统设计的任务主要包括:1代码设计2系统物理设计3数据库设计1.3.3系统实施 按照物理模型实现应用软件的编写和测试,系统试运行,编写技术文件,系统转换,系统交付使用,以及运行后的系统维护和评价等工作。 生命周期法要求信息系统的开发研制工作要按照规定步骤,使用一定的图表工具,在结构化和模块化的基础上进行。结构化的思想是把整个系统的功能看作是一个大模块,根据系统分析和设计的不同要求,按照由顶向下,逐步求精的原则进行模块的分解和组合,这种方法贯穿于系统分析、系统设计和程序设计的各个过程中。生命周期法主要有以下几个特点:1.建立面向用户的观点2.加强调查研究与系统分析3.逻辑设计与物理设计分别进行4.使用结构化、模块化方法5.严格按照阶段进行6.工作文件标准化和文献化1.3.4调试维护 系统程序和数据的维护又包括程序的维护,数据文件的维护,代码的维护等等。维护是系统在使用中应对系统注意,并加以维护,维护包括:1系统运行的日常维护2系统运行情况的记录3系统程序和数据的维护1.4 开发本系统的意义学生成绩管理是学校管理中异常重要的一个环节,作为学校,除了育人,就是育知,学生成绩管理的计算机化是整个学校教务管理中的重要一部分,能否实现这一步关系到学校办学整体效率的高低,介与它的重要性,学生成绩管理系统的开发与应用就逐渐提入议程,并占着越来越重要的份量。 运用学生成绩管理系统可以减轻学院教学人员的工作量,缩小开支,提高工作效率与准确率,能够合理安排时间,能够尽快的知道自己的考试成绩,投入新的课程的学习或复习这次没有考过的课程。而学生成绩管理系统的应用也为今天的民办教育在未来市场的竞争力有所提高。从大的方向说,就是为了加速我国四化建设的发展,实现全部的自动化,使我国发展成为通讯网络化,决策科学化,办公自动化的国家。 在现代,高科技的飞跃发展,人们工作习惯的改变,特别是电脑的大量普及,人们生活节奏越来越快,怎样提高工作效率是人们首先考虑的问题。学生成绩管理是一个非常繁琐与复杂的一项工作,一个原因就是工作量大,不好管。对于一个学校而言,更应该运用一些本地资源,提高管理的力度,对学生负责,对国家负责。 第2章 系统分析这章主要讲的是学生成绩管理系统的逻辑分析,系统分析在整个系统中具有重要作用为系统的设计打下基础。2.1 背景分析 学院在教学这一部分主要是由教务处对课程、对学生、对学生成绩进行合理地安排以及统筹计划,以期让教务处中最段的时间段把学生的成绩核算出来,提高教务处的办事效率。同时,能够随时对学生、学生成绩进行各种查询,以及很好地对系统进行维护。2.2 组织机构调查分析 教学组织机构主要是由:学生管理,成绩管理,成绩打印等组成。职责:学生管理:管理一些学生的档案,具体是学生的学号、姓名、家庭地址、家庭电话等。 成绩管理:管理学生的成绩核算、录入、删除、排序、查询、检索等。成绩打印:管理学生的成绩报表的打印以及打印报表的整理、维护、保存等2.3 可行性分析 可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。也就是说可行性研究的目的不是解决问题,而是确定问题是否值得去解,研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。 一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案可行性等方面研究可行性。 可行性研究需要的时间长短取决于工程的规模,一般说来,可行性研究的成本只占预期的工程中成本的5-10%。2.3.1 技术可行性分析技术上的可行性分析要考虑将来要采用的硬件和软件技术能否满足用户(这里是校方)提出的要求(如计算机的容量、速度等)。此外,还要考虑开发人员的水平,做为计算机信息管理专业毕业的优等生,数据库设计方面对于我们应该还过得去,在学校里生活了三年,对这个管理模式应该比较熟悉。学生成绩管理系统的编写,是十分好编的,我想几天就可以写出程序,再花上三来天的调试,计划一个星期就可以完成投入使用了。我们掌握了数据库及其应用技术、数据库原理、计算机网络技术等课程,对数据库的设计、应用、维护及局域网的组成有了深刻的认识与一定的动手实践能力,考取了信息处理、程序设计、数据库技术等国家IT认证。从一定程度上具备了开发一个小型系统的能力。2.3.2 经济可行性主要从对项目的经济上进行分析评价,一方面是支出的费用,包括设备购置费、管理和维护费用、人员工资和培训费等,另一个是取得的收益。这是个超小型的管理系统,从投入的人力,财力与物力来讲是非常之小的,只要一台电脑,一台打印机,这个系统就可以搞起来,考虑到学校里有电脑,现只要购置一台打印机就可以了。从节省人力方面,可以让管理人员从繁与复杂的工作中解脱出来,做更多的工作,可以给教学管理提高一个层次。2.3.3 运行可行性 民办教育正在迅猛发展,学院从硬件到软件都投入了大量的人力、物力、财力,在教务上,给各个办公室配置了计算机,并能联接到互联网,并且,学院领导对这方面比较重视,在教务上配置了一定数目的能够训练操作计算机的干事,可以快速、方便、高效地使用计算机进行日常工作。学院开展了计算机及其维修专业,可让学生以实践方式对系统进行维护。使此系统在实践上具备了可行性。由此可知,开发学生成绩管理系统在学校中具有可行性。第3章 数据库系统的特点 本章主要讲解数据库的特点,数据库的设计;在设计数据库时应该注意哪些部分。这是设计每个数据库过程中必要弄清的一个问题。做为一名数据库的设计者要搞懂数据库的工作原理与步骤。3.1 数据库系统的特点数据库管理系统将具有一定结构的数据组成一个集合,它主要具有以下几个特点:数据的结构化;数据的共享性;数据的独立性;数据的完整性;数据的灵活性;数据的安全性。3.1.1 数据库(简称DB)数据库是以一定的组织方式存放于计算机外存储器中相互关联的数据集合,它是数据库系统的核心和管理对象,其数据是集成的、共享的以及冗余最小的。它是依照某种数据模型组织起来并存放二级存储器中的数据集合。这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制。从发展的历史看,数据库是数据管理的高级阶段,它是由文件管理系统发展起来的。数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。1. 物理数据层。它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。2. 概念数据层。它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。3. 逻辑数据层。它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。3.1.2 数据库系统(DBS)数据库系统(DBS)是一个采用数据库技术,具有管理数据库功能,由硬件、软件、数据库及各类人员组成的计算机系统数据库系统是为适应数据处理的需要而发展起来的一种较为理想的数据处理的核心机构。计算机的高速处理能力和大容量存储器提供了实现数据管理自动化的条件。 数据库系统一般由4个部分组成:数据库,即存储在磁带、磁盘、光盘或其他外存介质上、按一定结构组织在一起的相关数据的集合。数据库管理系统(DBMS)。它是一组能完成描述、管理、维护数据库的程序系统。它按照一种公用的和可控制的方法完成插入新数据、修改和检索原有数据的操作。数据库管理员(DBA)。用户和应用程序。对数据库系统的基本要求是:能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。冗余数据少,数据共享程度高。系统的用户接口简单,用户容易掌握,使用方便。能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止错误数据的产生,一旦产生也能及时发现。有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。具有可修改性和可扩充性。能够充分描述数据间的内在联系。3.1.3 数据库系统的特点 1、 数据共享: 2、 面向全组织的数据结构化: 数据不再从属于一个特定应用,而是按照某种模型组织成为一个结构化的整。它描述数据要身的特性,也描述数据与数据之间的种种联系。 3、 数据独立性: 4、 可控数据冗余度: 5、 统一数据控制功能: 数据安全性控制:指采取一定的安全保密措施确保数据库中的数据不被非法用户存取而造成数据的泄密和破坏; 数据完整性控制:是指数据的正确性、有效性与相容性。 并发控制:多个用户对数据进行存取时,采取必要的措施进行数据保护; 数据恢复:系统能进行应急处理,把数据恢复到正确状态。3.1.4 基本数据模型 一、 数据组织: 关系型数据库中的数据层次如下: 1、 数据项(field):又称字段,用于描述实体的一个属性,是数据库的基本单位。一般用属性名作项名; 2、 记录(Record):又称为结点,由若干个数据项组成,用于描述一个对象; 3、 文件(File):由若干个记录组成; 4、 数据库(Data Base):由逻辑相关的文件组成。 二、 数据模型: 数据的组织形式称为数据模型,它决定 数据(主要是结点)之间联系的表达方式。主要包括层次型、网状型、关系型和面向对象型四种。层次型和网状型是早期的数据模型,又称为格式化数据系统数模型。 以上四种模型决定了四种类型的数据库:层次数据库系统,网状数据库系统,关系型数据库系统以及面向对象数据库系统。 目前微机上使用的主要是关系型数据库。 1、 层次型:是以记录为结点的有向树; 2、 网状型:树的集合,它的表示能力以及精巧怀强于层次型,但独立性下降。 3、 关系型: 在关系型中,数据被组织成若干张二维表,每张表称为一个关系。 一张表格中的一列称为一个“属性”,相当于记录中的一个数据项(或称段),属性的取值范围称为域。 表格中的一行称为一个“元组”,相当于记录值。 可用一个或若干个属性集合的值标识这些元组,称为“关键字”。 每一行对应的属性值叫做一个分量。 表格的框架相当于记录型,一个表格数据相当于一个同质文件。所有关系由关系的框架和若干元组构成,或者说关系是一张二维表。 关系型的特点:描述的一致性;可直接表示多对多关系;关系必须是规范化的;关系模型建立在数学概念基础上。 4、 面向对象型:主要采用对象和灯的概念。3.2 关系数据模型与关系数据库关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。系数据库是支持关系模型的数据库系统。关系模型由关系数据结构、关系操作集合和完整性约束三部分组成。关系操作分为关系代数、关系演算、具有关系代数和关系演算双重特点的语言(SQL语言)。完整性约束提供了丰富的完整性:实体完整性、参照完整性和用户定义的完整性。3.3 数据库的逻辑设计数据库设计过程包括:现实世界需求分析概念设计逻辑设计物理设计 。概念设计利用数据模型进行概念数据库的模式设计。它不依赖任何DBMS(数据库管理系统)常用的数据模型为ERM(实体联系模型),用到的术语有:实体、属性、联系、键。逻辑设计把概念设计得到的概念数据库模式变为逻辑数据模式,它依赖于DBMS。用到的术语有:函数依赖、范式、关系分解。 在逻辑设计过程中,分两步进行,一是图块结构的设计,即按数据的空间分布将数据划分为规则的或不规则的块。二是图层信息的组织,即按照数据的性质分类,将性质相同或相近的归为一类,形成不同的图层。图块结构和图层结构是空间数据库从纵、横两个方间的延伸,同时空间数据库是两者的逻辑再集成。 属性是空间实体的特征反映。空间实体的属性特征有质量特征、数量特征和关系特征等等。关系模型的逻辑结构是一组关系模式的集合。而ER图则是由实体、实体的属性和实体之间的联系三个要素组成的。所以将ER图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,在转换的过程中一般都遵循一定的原则。3.4 数据库管理系统的概念数据库管理系统(database management system)是一种操纵和管理数据库的大型软件,是用于建立、使用和维护数据库,简称dbms。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过dbms访问数据库中的数据,数据库管理员也通过dbms进行数据库的维护工作。它提供多种功能,可使多个应用程序和用户用不同的方法在同时或不同时刻去建立,修改和询问数据库。它使用户能方便地定义和操纵数据,维护数据的安全性和完整性,以及进行多用户下的并发控制和恢复数据库 按功能划分,数据库管理系统大致可分为6个部分:模式翻译;应用程序的编译;交互式查询;数据的组织与存取;事务运行管理;数据库的维护。它所提供的功能有以下几项:数据定义功能;数据管理功能;对数据库进行保护;数据库的建立和维护;数据库的传输。3.5 数据库应用系统数据库系统的个体含义是指一个具体的数据库管理系统软件和用它建立起来的数据库;它的学科含义是指研究、开发、建立、维护和应用数据库系统所涉及的理论、方法、技术所构成的学科。在这一含义下,数据库系统是软件研究领域的一个重要分支,常称为数据库领域数据库研究跨越于计算机应用、系统软件和理论三个领域,其中应用促进新系统的研制开发,新系统带来新的理论研究,而理论研究又对前两个领域起着指导作用。数据库系统的出现是计算机应用的一个里程碑,它使得计算机应用从以科学计算为主转向以数据处理为主,并从而使计算机得以在各行各业乃至家庭普遍使用。在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往很复杂,是普通用户难以实现的,所以就由系统软件(数据库管理系统)来完成,而提供给用户的是简单易用的数据库语言。由于对数据库的操作都由数据库管理系统完成,所以数据库就可以独立于具体的应用程序而存在,从而数据库又可以为多个用户所共享。因此,数据的独立性和共享性是数据库系统的重要特征。数据共享节省了大量人力物力,为数据库系统的广泛应用奠定了基础。数据库系统的出现使得普通用户能够方便地将日常数据存入计算机并在需要的时候快速访问它们,从而使的计算机走出科研机构进入各行各业、进入家庭。第四章 系统设计系统的设计是一个应用软件的前台设计,它是用户与数据库联系的了一必要桥梁。后台重要但前台也不可呼略。学生成绩设计的主菜单如下图所示:4.1 系统数据流程图设计软件设计应当表现出层次结构,它应巧妙地利用各个软件部件之间的控制关系;设计应当是模块化的,即该软件应当从逻辑上被划分成多个部件,分别实现各种特定功能和子功能;设计最终应当给出具体的模块(例如子程序或过程),这些模块就具有独立的功能特性;.应当应用在软件需求分析期间得到的信息,采取循环反复的方法来获得设计。如图所示:4.1.1 系统数据流程图 在系统工作的过程中,还体现了各各功能模块之间的相互依存。例如本系统:4.2 模块设计 系统用户管理模块功能:系统管理模块主要实现以下功能:用户登录添加用户修改用户密码输入输出:系统启动后,将首先出现用户登录窗体,用户首先输入用户名,然后输入密码,如果用户3次输入密码不正确,将退出程序学籍管理模块功能:学籍信息管理模块主要实现以下功能:添加学籍信息修改学籍信息查询学籍信息班级信息管理模块功能:班级信息管理模块主要实现以下功能:添加班级信息修改班级信息课程设置模块功能:添加课程信息修改课程信息设置年级课程成绩管理模块功能:添加成绩管理修改成绩管理查询成绩管理帮助模块的设计一个良好的Windows应用程序应该提供一个About窗口,其中包括本系统的名称。所有者,联系方式,版本号,与专利信息等。第五章 数据库设计一个成功的管理系统,是由:50% 的业务 + 50% 的软件 所组成,而 50% 的成功软件又有 25% 的数据库 + 25% 的程序 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学课程里也有专门的讲述。5.1 逻辑设计一个好的数据库系统关键在于建数据库时的逻辑设计。逻辑结构设计的任务就是把概念结构设计阶段设计的ER图(或EER图),转换成与选用DBMS所支持的数据模型相符合的逻辑结构。就以本系统为例: class_Info 班级信格列名数据类型可否为空说明class_NoINT(4) NOT NULL班号(主键)GradeCHAR(10) NULL年级Directo CHAR(10) NULL班主任Classroom_NoCHAR(10) NULL教室course_Info 课程基本信息表列名数据类型可否为空说明course_NoINT(4)NOT NULL课程编号(主键)course_NameCHAR(10) NULL课程名称course_Type CHAR(10) NULL课程类型course_Des CHAR(50) NULL课程描述gradecourse_Info 年级课程设置表数据类型可否为空说明gradeCHAR(10) NULLcourse_NameCHAR(10) NULL课程名称result_Info 学生成绩信息表exam_NoCHAR(10) NOT NULLstudent_ID考试编号INT(4) NOT NULLstudent_Name学生姓名CHAR(10) NULLclass_NoINT(4) NULL学生班号course_NameCHAR(10) 课程名称NULLResultFLOAT(8) NULL分数user_Info 系统用户表列名数据类型可否为空说明user_ID CHAR(10) NOT NULL用户名称(主键)user_PWDCHAR(10)NULL用户密码user_DESCHAR(10) NULL5.2具体程序】5.2 程序的实现/*xuesheng.c*/*头文件(.h)*/#include stdio.h /*I/O函数*/#include stdlib.h /*其它说明*/#include string.h /*字符串函数*/#include conio.h /*屏幕操作函数*/#include mem.h /*内存操作函数*/#include ctype.h /*字符操作函数*/#include alloc.h /*动态地址分配函数*/#define N 3 /*定义常数*/typedef struct z1 /*定义数据结构*/ char no11; char name15; int scoreN; float sum; float average; int order; struct z1 *next;STUDENT; /*以下是函数原型*/STUDENT *init(); /*初始化函数*/STUDENT *create(); /*创建链表*/STUDENT *delete(STUDENT *h); /*删除记录*/void print(STUDENT *h); /* 显示所有记录*/void search(STUDENT *h); /*查找*/void save(STUDENT *h); /*保存*/STUDENT *load(); /*读入记录*/void computer(STUDENT *h); /*计算总分和均分*/STUDENT *insert(STUDENT *h); /*插入记录*/void append(); /*追加记录*/void copy(); /*复制文件*/STUDENT *sort(STUDENT *h); /*排序*/STUDENT *index(STUDENT *h); /*索引*/void total(STUDENT *h); /*分类合计*/int menu_select(); /*菜单函数*/*主函数开始*/main()int i; STUDENT *head; /*链表定义头指针*/ head=init(); /*初始化链表*/ clrscr(); /*清屏*/ for(;) /*无限循环*/ switch(menu_select()break case 0:head=init();break; case 1:head=create();break; /*创建链表*/ case 2:head=delete(head);break; /*删除记录*/ case 3:print(head);break; /*显示全部记录*/ case 4:search(head);break; /*查找记录*/ case 5:save(head);break; /*保存文件*/ case 6:head=load(); break; /*读文件*/ case 7:computer(head);break; /*计算总分和均分*/ case 8:head=insert(head); break; /*插入记录*/ case 9:copy();break; /*复制文件*/ case 10:head=sort(head);break; /*排序*/ case 11:append();break; /*追加记录*/ case 12:head=index(head);break; /*索引*/ case 13:total(head);break; /*分类合计*/ case 14:exit(0); /*如菜单返回值为14程序结束*/ /*菜单函数,返回值为整数*/menu_select() char *menu=*MENU*, /*定义菜单字符串数组*/ 0. init list, /*初始化*/ 1. Enter list, /*输入记录*/ 2. Delete a record from list, /*从表中删除记录*/ 3. print list , /*显示单链表中所有记录*/ 4. Search record on name, /*按照姓名查找记录*/ 5. Save the file, /*将单链表中记录保存到文件中*/ 6. Load the file, /*从文件中读入记录*/ 7. compute the score, /*计算所有学生的总分和均分*/ 8. insert record to list , /*插入记录到表中*/ 9. copy the file to new file, /*复制文件*/ 10. sort to make new file, /*排序*/ 11. append record to file, /*追加记录到文件中*/ 12. index on nomber, /*索引*/ 13. total on nomber, /*分类合计*/ 14. Quit; /*退出*/ char s3; /*以字符形式保存选择号*/ int c,i; /*定义整形变量*/ gotoxy(1,25); /*移动光标*/ printf(press any key enter menu.n); /*压任一键进入主菜*/ getch(); /*输入任一键*/ clrscr(); /*清屏幕*/ gotoxy(1,1);/*移动光标*/ textcolor(YELLOW); /*设置文本显示颜色为黄色*/textbackground(BLUE); /*设置背景颜色为蓝色*/ gotoxy(10,2); /*移动光标*/ putch(0xc9); /*输出左上角边框*/ for(i=1;i44;i+) putch(0xcd); /*输出上边框水平线*/ putch(0xbb); /*输出右上角边框*/ for(i=3;i20;i+) gotoxy(10,i);putch(0xba); /*输出左垂直线*/ gotoxy(54,i);putch(0xba); gotoxy(10,20);putch(0xc8); /*输出左上角边框*/ for(i=1;i44;i+) putch(0xcd);/*输出下边框水平线*/putch(0xbc);/*输出右下角边框*/ window(11,3,53,19); /* 制作显示菜单的窗口,大小根据菜单条*/ clrscr(); /*清屏*/ for(i=0;i16;i+) /*输出主菜单数组*/ gotoxy(10,i+1); cprintf(%s,menui); textbackground(BLACK); /*设置背景颜色为黑色*/ window(1,1,80,25); /*恢复原窗口大小*/gotoxy(10,21);do printf(n Enter you choice(014):); /*在菜单窗口外显示信息*/ scanf(%s,s); c=atoi(s); while(c14);/*选择项不在014之重输*/ return c;STUDENT *init() return NULL;STUDENT *create() int i; int s; STUDENT *h=NULL,*info; /* STUDENT指向结构体的指针*/ for(;) info=(STUDENT *)malloc(sizeof(STUDENT); /*申请空间*/ if(!info) /*如果指针info为空*/ printf(nout of memory); /*输出内存溢出*/ return NULL; /*返回空指针*/ inputs(enter no:,info-no,11); /*输入学号并校验*/ if(info-no0=) break; /*如果学号首字符为则结束输入*/ inputs(enter name:,info-name,15); /*输入姓名,并进行校验*/ printf(please input %d score n,N); /*提示开始输入成绩*/ s=0; /*计算每个学生的总分,初值为0*/ for(i=0;iscorei); /*输入成绩*/ if(info-scorei100|info-scoreiscorei100|info-scoreiscorei; /*累加各门课程成绩*/ info-sum=s; /*将总分保存*/ info-average=(float)s/N; /*求出平均值*/ info-order=0; /*未排序前此值为0*/ info-next=h; /*将头结点做为新输入结点的后继结点*/ h=info; /*新输入结点为新的头结点*/return(h); /*返回头指针*/*输入字符串,并进行长度验证*/inputs(char *prompt, char *s, int count) char p255;do printf(prompt); /*显示提示信息*/ scanf(%s,p); if(strlen(p)count)printf(n too long! n); while(strlen(p)count); strcpy(s,p); /*将输入的字符串拷贝到字符串s中*/*输出链表中结点信息*/void print(STUDENT *h)int i=0; /* 统计记录条数*/ STUDENT *p; /*移动指针*/ clrscr(); /*清屏*/ p=h; /*初值为头指针*/ printf(nnn*STUDENT*n); printf(|rec|nO | name | sc1| sc2| sc3| sum | ave |order|n); printf(|-|-|-|-|-|-|-|-|-|n); while(p!=NULL) i+; printf(|%3d |%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, i, p-no,p-name,p-score0,p-score1,p-score2,p-sum,p-average,p-order); p=p-next; printf(*end*n);/*删除记录*/STUDENT *delete(STUDENT *h) STUDENT *p,*q; /*p为查找到要删除的结点指针,q为其前驱指针*/ char s11; /*存放学号*/ clrscr(); /*清屏*/printf(please deleted non); /*显示提示信息*/ scanf(%s,s); /*输入要删除记录的学号*/ q=p=h; /*给q和p赋初值头指针*/while(strcmp(p-no,s)&p!=NULL) /*当记录的学号不是要找的,或指针不为空时*/ q=p; /*将p指针值赋给q作为p的前驱指针*/ p=p-next; /*将p指针指向下一条记录*/ if(p=NULL) /*如果p为空,说明链表中没有该结点*/ else /*p不为空,显示找到的记录信息*/ printf(*have found*n); printf(|no | name | sc1| sc2| sc3| sum | ave |order|n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-10s|%-15s|%4d|%4d|%4d| %4.2f | %4.2f | %3d |n, p-no, p-name,p-score0,p-score1,p-score2,p-sum, p-average,p-order); printf(*end*n); getch(); /*压任一键后,开始删除*/ if(p=h) /*如果p=h,说明被删结点是头结点*/ h=p-next; /*修改头指针指向下一条记录*/ else q-next=p-next
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共设施维护与管理合同签订全流程指南
- 私下股权转让与目标公司市场营销合作协议
- 二手商业地产买卖合同模板含租赁合同续签约定
- 张小娴作品创作特点
- 花朵女孩动漫课件
- 碱基互补配对课件
- 中班糊涂医生课件
- 乳房解剖结构
- 模拟技术基础考试题及答案
- 农业银行2025平凉市秋招无领导模拟题角色攻略
- 危重患者转运及安全管理
- 妇幼信息管理制度
- 初一英语摸底试题及答案
- 梁式转换层悬挂式施工和贝雷梁施工技术
- 《第四单元 参考活动3 设计橡皮章》说课稿 -2023-2024学年初中综合实践活动苏少版八年级上册
- 《药品生产质量管理规范(GMP)》专业培训课件
- 2025年青海省农商银行农信社系统招聘笔试参考题库含答案解析
- 肉毒素知识培训课件
- 2025年江苏省常州市中考作文解析和范文
- 人教版3到6年级单词表打印版(小学必背单词3000打印版)
- 2024“五史”全文课件
评论
0/150
提交评论