学生选课系统毕业论文

上传人:沈*** 文档编号:67257027 上传时间:2022-03-30 格式:DOC 页数:34 大小:241.50KB
返回 下载 相关 举报
学生选课系统毕业论文_第1页
第1页 / 共34页
学生选课系统毕业论文_第2页
第2页 / 共34页
学生选课系统毕业论文_第3页
第3页 / 共34页
点击查看更多>>
资源描述
毕业设计(论文)摘要Internet是当今世界上最大的计算机信息网络,它由一 些使用公用语言互相通信的计算机连接而成. 从网络通信技术的观点来看,Internet是一个以TCP/IP (传输控制协议/网际协议,协议是通信双方在通信 时共同遵守的约定)通信协议为基础,连接各个国 家,各个部门,各个机构计算机网络的数据通讯网 从信息资源的观点来看,Internet是一个集各个领域, 各个学科的各种信息资源为一体的,供网上用户共 享的数据资源网.本论文主要包括学生选课系统方案分析与网络规划,本系统是一个典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。利用其提供的各种面向对象的开发工具,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。本系统可以方便老师、学生更方便的选课。实现全校学生选课在线查询。还可以对新来的学生信息进行信息录入。由于学生上课情况复杂,可以实现信息修改,及时调整学生的基本情况。关键字 Internet,管理系统,信息查询修改目录1 引言(绪论)411 课题研究的目的512 课题研究的意义513 课题的可行性分析51.3.1 课题调研51.3.2 可行性分析62 准备阶段621 C语言基础622 数据库系统63 应用系统开发工具731 对软件和硬件的要求732 运行需求733 其他需求734 数据库应用系统开发简介735 学生选课系统836 MS SQL Server 简介84系统分析941 系统简要分析942 应用需求分析943 业务流分析1044 数据流分析1045 系统数据模型设计104.5.1 E-R图104.5.2 数据表125 操作方法1451 登录1452 界面设计1553 录入课程信息1554 学生信息管理1555 学生选课1656 信息查看及存储1657 退出系统166 调和测试17结 论17致 谢18参 考 文 献19附 录:相关代码201 引言(绪论)C+这个词在中国大陆的程序员圈子中通常被读做“C加加”,而西方的程序员通常读做“C plus plus”,“CPP”。 它是一种使用非常广泛的计算机编程语言。C+是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。数字化内容选择的原因有很多,概括起来主要有:(1)存储空间的原因。数字化的产品是通过网络被广大用户存取利用,而大家都知道数字化产品是存放在磁盘阵列上的,磁盘阵列由服务器来管理,磁盘空间是有限的,服务器的能力也是有限的,不可能无限量地存入数字资源,这就需要我们对文献资源数字化内容进行选择。(2)解决数字化生产高成本和图书馆经费有限性之间矛盾的需要。几乎没有图书馆有充足的资源来对整个馆藏进行数字化,内容选择不可避免。(3)数字资源管理的需要。技术的快速发展使数字化项目所生成的数字资源的生命周期越来越短,投入巨资进行数字迁移是延长数字资源生命的1个重要途径,昂贵的维护成本就必须考虑数字化的内容选择。 (4)C+是一种绝对不会试图迎合某个模子的语言。特别是它的形式可以变化多端,以解决不同类型的问题。这主要反映在象Microsoft Visual C+和Borland C+Builder那样的工具身上。它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应用(用于Microsoft Windows操作系统)。 传统上,为了确保企业持续扩大的IT系统稳定运行,一般用户信息中心往往不仅要不断更新更大容量的IT运维软硬件设备,极大浪费企业资源;更要长期维持一支由数据库维护、服务器维护、机房值班等各种维护人员组成的运维大军,维护成本也随之节节高升。为此,企业IT决策者开始思考:能不能像拧水龙头一样按需调节的使用IT运维服务?而不是不断增加已经价格不菲的运维成本。11 课题研究的目的1.掌握C语言编程技术,多媒体技术。2.掌握一种多任务多用户操作系统。3.学会使用某种开发工具。12 课题研究的意义本学生选课管理系统可以说是一个综合性的学校学生学生管理系统,因而具有较强的实用性和先进性。通过调查,要求系统需要有以下功能: 由于操作人员的计算机知识普遍较差,要求有良好的人机界面; 由于该系统的使用对象多,要求有较好的权限管理; 原始数据修改简单方便,支持多条件修改 方便的数据查询,支持多条件查询; 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且学校用于学生管理的微机都是奔腾4以上的机器,在存储量、速度方面都能满足数据库运行的要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。本系统的设计是在Windows XP中文版操作系统环境下,使用Microsoft Viscual C+中文版开发成功的。本文中所做的主要工作如下: (1) 阐述整个个性化页面生成系统的系统结构及工作原理;分析了系统实现中的特殊性、难点和重点。 (2) 设计实现用户管理、课程管理、选课信息录入管理、新生信息录入管理、课程的浏览和查找、学生查找等页面 。(3) 分析并解决实现中的若干技术问题。 (4) 建立完整的网上选课,进行测试并分析结果。13 课题的可行性分析1.3.1 课题调研(1)与实践活动和相关的文件和资料自行查找。(2)本课题要求学生有熟练的C语言开发能力,有较强的自学能力以及一定的关系数据库理论开发功底。(3)具有对突发事件进行处理的能力。(4)具体问题再做详细调查研究并与指导老师面谈。1.3.2 可行性分析(1)技术可行性-本系统仅需要一台装有Office软件的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件。(2) 经济可行性-由于本系统是为学生选课管理使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。(3) 操作可行性-界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。2 准备阶段21 C语言基础C 语言发展如此迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE PLUS、DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序, 就更能显示C 语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。归纳起来C 语言具有下列特点:1. C是中级语言它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。2. C是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。3. C语言功能齐全C 语言具有各种各样的数据类型, 并引入了指针概念, 可使程序效率更高。另外C 语言也具有强大的图形功能, 支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大, 可以实现决策目的。4. C语言适用范围大C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。22 数据库系统信息系统的主要任务是通过大量的数据获得管理所需要的信息,这就必须存储和管理大量的数据。因此建立一个良好的数据组织结构和数据库,使整个系统都可以迅速、方便、准确地调用和管理所需的数据,是衡量信息系统开发工作好坏的主要指标之一。数据库系统设计数据库设计主要是进行数据库的逻辑设计,即将数据按一定的分类、分组系统和逻辑层次组织起来,是面向用户的。数据库设计时需要综合企业各个部门的存档数据和数据需求,分析各个数据之间的关系,按照数据库提供的功能和描述工具,设计出规模适当、正确反映数据关系、数据冗余少、存取效率高、能满足多种查询要求的数据模型。为了更好地组织数据和设计出实际应用数据库,应该注意如下问题:规范化地重组数据结构:对数据进行规范化表达,这在后面将会具体讨论。关系数据结构的建立:在进行了数据基本结构的规范化重组后,还必须建立整体数据的关系结构。这一步设计完成后数据库和数据结构设计工作基本完成,一个规范化数据库系统结构就建立起来了。建立关系数据结构涉及三方面内容:确定关联的关键指标项并建立关联表;确定单一的父系记录结构;建立整个数据库的关系结构。3 应用系统开发工具31 对软件和硬件的要求硬件:内 存:2G 或更大 硬 盘:250G 或更大软件: Microsoft相关软件即可注:需要能上连接互联网系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性,运行效率等方面的考虑。系统运行时对数据的保密性要求不高对一般的数据不要求进行加密。此外,对其它软件几乎没有依赖性,程序健壮性较好32 运行需求硬件条件:普通的PC机;打印机;局域网。软件条件:Windows XP以上的操作系统即可。33 其他需求本系统有较好的可维护性、可靠性、可理解性、效率。易于用户理解和操作。可维护性包括了可读性、可修改性、可测试性、等含义。34 数据库应用系统开发简介在数据库应用系统开发之前,对开发数据库的基本概念应当了解,对数据库的结构、开发数据库应用程序的步骤、开发体系及方法都应当有相当清晰的了解和认识。数据库应用系统开发的目标是建立一个满足用户长期需求的产品。开发的主要过程为:理解用户的需求,然后,把它们转变为有效的数据库设计。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用。数据库技术在计算机软件邻域研究中一直是非常重要的主题,产生于60年代,30多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统。并且,近年来,随着World Wide Web(WWW)的猛增及Internet技术的迅速发展,使得数据库技术之时成为最热门技术之一。用户数据目前表明,大多数主流数据库管理系统把用户数据表示为关系。现在把关系看作数据表。表的列包含域或属性,表的行包含对应业务环境中的实体的记录。并非所有的关系都同样符合要求,有些关系比其它关系更结构化一些。35 学生选课系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处. 理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好选课信息而设计的。学校作为一种信息资源的集散地,学生和课程繁多,包含很多的信息数据的管理,基于这些问题,我认为有必要建立一个学生选课系统,使选课管理工作规范化,系统化,程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。36 MS SQL Server 简介MS SQL Server是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。MS SQL Server 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。 MS SQL Server数据引擎是本企业数据管理解决方案的核心。此外MS SQL Server结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的 BI 解决方案,帮助您的团队通过记分卡、Dashboard、Web services 和移动设备将数据应用推向业务的各个领域。许多因素致使产生信息存储爆炸。有了新的信息类型,例如图片和数字化视频,和从RFID标签获得的传感器信息,公司的数字信息数量在急剧增长。规范化和全球化的发展要求信息存储的安全性和随时可用性。同时,磁盘存储的成本显著地降低了,使得公司投资的每一美元可以存储更多的数据。用户必须快速的在大量的数据中找到相关的信息。此外,他们想在任何设备上使用这个信息,并且计划每天使用,例如Microsoft Office系统应用程序。对数据爆炸和用户期望值不断增加的管理为公司制造了许多挑战。Microsoft® 数据平台愿景提供了一个解决方案来满足这些需求,这个解决方案就是公司可以存储和管理许多数据类型,包括XML、e-mail、时间/日历、文件、文档、地理等等,同时提供一个丰富的服务集合来进行数据交互作用:搜索、查询、数据分析、报表、数据整合,和强大的同步功能。用户可以访问从创建到存档于任何设备的信息,从桌面到移动设备的信息。4系统分析41 系统简要分析每个人可以进行登录,对系统进行全面的管理,对新用户的添加,删除,对信息进行管理。老师、学生不同身份的用户进入不同的界面,进行不同的操作。教师可以发布自己本学期所要教的课程,以及对学生成绩进行管理。同学可以通过查询本学期所开设课程进行选择。42 应用需求分析学生选课系统需要满足来自三方面的需求,这三个方面分别是学生、教师和管理员。学生的需求是查询院系的课程、学生选课情况及学生信息的修改;教师对选课系统学生选课情况进行操作,同时形成学生选课查看确认;选课管理员的功能最为复杂,包括对学生、教师、选课进行管理和统计,及系统状态的查看、维护并生成选课报表。学生可以直接查看选课情况,学生可以根据本人学号和密码登录系统,还可以进行本人学科成绩情况的查询和维护部分个人信息。一般情况下,学生只应该查询和维护本人的选课情况和个人信息,若查询和维护其他学生的选课及成绩查询信息,就要知道其他学生的学号和密码。这些是很难得到的,特别是密码,所以不但满足了学生的要求,还保护了学生的个人隐私。学校工作人员有修改学生选课的权限,所以需对工作人员登陆本模块进行更多的考虑。在此系统中,学校工作人员可以为学生加入选课或是登陆记录,并打印生成相应的报表给用户查看和确认院系管理人员功能的信息量大,数据安全性和保密性要求最高。本功能实现对选课信息、教师信息、总体选课情况信息的查询和统计、工作人员和管理人员信息查看及维护。学校管理员可以浏览、查询、修改、统计选课的基本信息;浏览、查询、统计和修改学生选课的基本信息,浏览、查询、统计学生信息,但不能添加删除和修改学生的信息,这部分功能应该由院系工作人员执行,但是,删除某条学生选课基本信息记录时,应实现对该学生选课的级联删除。并且还应具有生成选课报表,并打印输出的功能。设计不同用户的操作权限和登陆方法对所有用户开放的学生选课查询和个人部分信息维护查看个人情况信息维护学生个人密码根据选课情况对数据库进行操作并生成报表根据选课情况对数据库进行操作并生成报表查询及统计各种信息维选课信息维护工作人员和管理员信息维护学生信息处理信息的完整性。本系统主要实现教师信息管理、学生信息管理、课程信息管理和系信息管理,其中教师信息管理有教师姓名、教师工号、教师职称、教师所属系;学生信息管理有学生姓名、学生学号和学生所在系;课程信息管理有课程名称、学分、上课地点、已选人数、课程性质、开课系、课程人数;系信息管理有系号和系名。(1)学生信息模块完成学生的登陆,然后根据各位同学所在的系不同,调用相应的选课模块。其中学生登录模块的功能是验证登录人员确实是本院的学生,学生启动本系统后,系统提示输入学生学号码和密码,验证后进入主控操作界面。(2)教师信息模块完成教师的登陆,然后根据各位教师所在的系不同,教师所教的课程不同,调用所选的课程.其中教师登陆模块的功能是验证登录人员确实是本院的教师,教师启动本系统后,系统提示输入教师工号和密码,验证后进入主控操作界面。 (3)课程信息管理包括必修课程和选修课程,学生必需先登陆才能进行对课程的选课否则不能进入选课系统. (4)系信息管理中学生必需选重所在的系号和系名才能进行选课,否则并不能进行选课.43 业务流分析学生成绩管理系统的业务流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除。所有用户均可以进行信息查询和统计,有权限用户还可以基于已有信息进行奖学金评定,评定结果可以报表打印。44 数据流分析学生成绩管理系统的数据流程:首先由教师或系统管理员等有录入权限的用户将各自权限范围内的信息进行录入处理,然后保存信息到数据库中。有权限的人可以对这些库信息进行修改和删除处理。所有用户均可以进行信息查询和统计。45 系统数据模型设计4.5.1 E-R图学生成绩记录号学号课程号成绩图4-1学生成绩信息教工系部(班级)工号姓名系部密码权限班级班级系名系代码图4-2教工,系部信息课程上课时间学时学分课程号课程名上课地点课程状态教师号课程简介图4-3课程信息学号班级密码系部学生姓名图4-4学生信息4.5.2 数据表系部信息表字段数据类型数据长度系代码数字6系名文本20班级数字20表4-5教师信息表字段数据类型数据长度工号数字6姓名文本10系部文本20班级数字10密码文本10表4-6学生信息表字段数据类型数据长度学号数字6姓名文本10系部文本20班级数字20密码文本10表4-6课程信息表字段数据类型数据长度课程号数字6课程名文本20教师号数字10学分数字10学时数字10上课时间时间20上课地点文本20课程简介文本50课程状态是/否10表4-75 操作方法51 登录运行环境:Microsoft Viscual C+语言:C+5 .2 界面设计图5-1学生选课系统界面5.3 录入课程信息图5-2录入课程信息界面54学生信息管理图5-3学生信息界面55 学生选课图5-4选课界面56信息查看及存储图5-5信息查看及存储界面57退出系统图5-6退出系统界面6 调和测试程序中出现的问题:1从文件读入记录到程序里,但一条记录有不同字段,分别要录入不同的变量里,最后用SWITCH分别进行输出判断。2程序结束时,要把记录重新读入到文件里,我想我用的类创建的,程序结束时,自动调用析构函数,没具体弄清析构函数其它用法,就把读出到文件的操作放在析构函数里面,导致文件里的数据在退出程序时被清空。后经过老师反复给我调试,终于清楚问题所在。我就把读入文件的操作单独放在一个函数里,退出再调用。3在主函数调用菜单,我先用的VOID类型,后来调用时发现不行,我要输入的操作不能执行,就改成CHAR返回类型,判断其选择的什么。4我用STRUCT建立一条记录所需要的变量,再建立一个类,在类内建立一个结构成员数组,这样就可建立N条记录,但实际过程中,有时输入不到这么多条记录,经过反复思考,我建立一个成员变量来保存建立多少条记录。5再执行删除信息操作时,我的思路受到阻碍,不知道怎么删除记录,如果让删除的记录都清为零,但那条记录依然存在,只不过是全为零,所以后来我想到让后面的记录一条条覆盖前面的记录,也算是删除记录,虽然最后一条记录在数组中实际上这样就存在两条,但我让成员变量控制记录个数,所以进行输出时根本不会输出最后那条重复的记录。结 论 1通过这次学生选课系统设计,以C+语言为基础编写,更让我掌握到C+语言中相关语句的运用。 2用Microsoft Viscual C+环境下编写,我觉得,从文件中读入数据十分麻烦,没有在数据库中读入数据这么轻松,如果我要用到两个表中的记录,非常麻烦。 3整个设计过程过后,我也基本掌握了设计的基本步骤。为我们以后做毕业论文也有很好的帮助。4C+是非常好的系统编程的语言,但不能以此独立,但用C+语言是做不出好的系统,还是要和其它软件结合,以C+为基础编写系统,这样做出来的系统也更好,更美观。5. 通过这次设计,我学会了和别人配合工作,因为一个人所学的知识不可能面面俱到的,只有通过合作,发挥自己的优点,体现团队精神,才能使工作做得更为出色。通过这次设计,我学到了许多书本上学不到的知识,增强了自己的动手能力。即将毕业我十分珍惜这次锻炼的机会,我按部就班的完成了自己的设计任务,但由于自己的知识水平有限,仍然存在很多的不足之处,恳请老师多多指教!致 谢首先非常感谢学校能开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年的时间,现在终于到结尾了。刚拿到这个课题时,觉得这个课题比较难。今天回过去看看,却十分的欣慰,因为通过我们的努力终于完成了。虽然这不是我读大学以来第一次写论文,但却是花费心血最多的一次,这是对我大学三年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都进步了。这期间凝结了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。 首先,我要特别感谢叶老师对我的悉心指导,在设计期间叶老师帮助我收集文献资料,理清设计思路,指导操作方法,并对我所做的课题提出有效的改进方案。老师渊博的知识、严谨的作风、诲人不倦的态度和学术上精益求精的精神让我受益终生。其次,学校在这方面也给我们提供了很大的支持和帮助,学校领导比较重视,给我们安排了较多的上机次数和足够的计算机,让我们有尽可能多的时间上机;并为我们开通了网线,方便我们上网查找信息;另外提供了专门的教室方便我们上机调试;每个设计小组配有专门的指导老师,帮助我们能顺利完成整个设计。对于学校和老师为我的毕业设计所提供的极大帮助和关心,在此我致以衷心的感谢!另外,还要感谢同学三年来对我的关心与支持,感谢各位老师在学习期间对我的严格要求。同时也要感谢身边朋友的热心帮助,没有你们的支持与关心,就没有我今天的毕业设计! 参 考 文 献1 张剑平,学校管理信息系统。北京:中国铁道出版社。2 吴开军,选课系统的设计与实现,电脑开发与应用育。西南师大出版社。3 谭浩强,C语言程序设计 (第2版)。清华大学出版社。4 夏邦国,Visual C+数据库开发经典实例精解。机械工业出版社。5 周鸣扬,于秋生,Visual C+程序设计教程。机械工业出版社。6 罗娟,WEB与数据库技术计算机工程。武汉大学7 郑莉,董渊,C+语言程序设计。清华大学出版社。 8 斯文克,Visual C+MFC编程实例。机械工业出版社。9 陈世洪,SQL SERVER 2000管理,开发及应用实例详解。人民邮电出版社。10 百度百科相关资料以及相关论文引用。附 录1:相关代码#include #includeint N1,N2,kk1,kk2,kk3;struct couse * head1;struct student * head2;struct couse/课程信息结构体 int num1; char name120; int score; int nelepeo;/课程已选人数 int Melepeo;/课程人数上限 struct couse * next;struct student/学生信息结构体 int num2; char name220; int nelenum50;/已选课程编号 int nelen;/已选课程数量 struct student * next;void Ms() for(kk1=0;kk11100;kk1+) for(kk2=0;kk21200;kk2+) for(kk3=0;kk3num1,p1-name1,&p1-score,&p1-Melepeo);p1-nelepeo=0;head1=NULL;while(p1-num1!=0) N1=N1+1; if(N1=1)head1=p1; else p2-next=p1; p2=p1; p1=(struct couse * )malloc(sizeof(struct couse); scanf(%d%s%d%d,&p1-num1,p1-name1,&p1-score,&p1-Melepeo); p1-nelepeo=0;p2-next=NULL;void filec()/录入键盘子函数(从文件录入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0; printf(输入要读入的文件路径:); getchar(); gets(filepath); if(fp=fopen(filepath,r)=NULL) printf(找不到%s文件!n,filepath); exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,%d%s%d%d%d,&p1-num1,p1-name1,&p1-score,&p1-nelepeo,&p1-Melepeo); head1=NULL; while(!feof(fp) N1=N1+1; if(N1=1)head1=p1; else p2-next=p1; p2=p1; p1=(struct couse * )malloc(sizeof(struct couse); fscanf(fp,%d%s%d%d%d,&p1-num1,p1-name1,&p1-score,&p1-nelepeo,&p1-Melepeo); p2-next=NULL;void inputc()/录入课程主函数 int i; printf(ttt录入课程信息n); printf(n1.从键盘录入n); printf(2.从文件录入n); printf(3.返回主菜单n); printf(请选择(13):n); scanf(%d,&i); switch(i) case(1):keyboardc();break; case(2):filec();break; case(3):break; void insertc(struct couse *incouse)/课程管理子函数(增加课程) struct couse *p0,*p1,*p2; p1=head1; p0=incouse; if(head1=NULL) head1=p0; p0-next=NULL; else while(p0-num1 p1-num1) & (p1-next!=NULL) p2=p1; p1=p1-next; if(p0-num1 num1) if(head1=p1) head1=p0; else p2-next=p0; p0-next=p1; else p1-next=p0; p0-next=NULL; N1=N1+1;void delc(int num1)/课程管理子函数(删除课程) struct couse *p1,*p2; if(head1=NULL) printf(n没有课程,无法删除!n); goto end; p1=head1; while(num1!=p1-num1 & p1-next!=NULL) p2=p1; p1=p1-next; if(num1=p1-num1) if(p1=head1) head1=p1-next; else p2-next=p1-next; printf(已删除该编号课程!n); N1=N1-1; else printf(无该编号的课程!n); end:;void managementc()/课程管理主函数 struct couse * incouse; int i,num1; printf(ttt课程管理n); printf(1.新增课程n); printf(2.删除课程n); printf(3.返回主菜单n); printf(请选择(13):n); scanf(%d,&i); switch(i) case(1): incouse=(struct couse *)malloc(sizeof(struct couse); printf(课程编号t课程名称t学分t课程人数上限n); scanf(%d%s%d%d,&incouse-num1,incouse-name1,&incouse-score,&incouse-Melepeo); incouse-nelepeo=0; insertc(incouse); break; case(2): printf(请输入要删除课程的编号:n); scanf(%d,&num1); delc(num1); break; case(3):break; void keyboards()/录入学生信息子函数(从键盘录入) int i; struct student *p1,*p2; N2=0; p1=p2=(struct student *)malloc(sizeof(struct student); printf(学生学号t学生姓名n); scanf(%d%s,&p1-num2,p1-name2); p1-nelen=0; for(i=0;inelenumi=0; head2=NULL; while(p1-num2!=0) N2=N2+1; if(N2=1)head2=p1; else p2-next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student); scanf(%d%s,&p1-num2,p1-name2); p1-nelen=0; for(i=0;inelenumi=0; p2-next=NULL;void files()/录入学生信息子函数(从文件录入) int i=0; FILE * fp; char filepath20; struct student *p1,*p2; N2=0; printf(输入要读入的文件路径:); getchar(); gets(filepath); if(fp=fopen(filepath,r)=NULL) printf(找不到%s文件!n,filepath); exit(0); p1=p2=(struct student*)malloc(sizeof(struct student); fread(p1,sizeof(struct student),1,fp); head2=NULL; while(!feof(fp) i=0; N2=N2+1; if(N2=1)head2=p1; else p2-next=p1; p2=p1; p1=(struct student * )malloc(sizeof(struct student); fread(p1,sizeof(struct student),1,fp); p2-next=NULL;void inputs()/录入学生信息主函数 int i; printf(ttt录入学生信息n); printf(n1.从键盘录入n); printf(2.从文件录入n); printf(3.返回主菜单n); printf(请选择(13):n); scanf(%d,&i); switch(i) case(1):keyboards();break; case(2):files();break; case(3):break; void inserts(struct student * incouse)/学生信息管理子函数(填加学生信息) struct student *p0,*p1,*p2; p1=head2; p0=incouse; if(head2=NULL) head2=p0; p0-next=NULL; else while(p0-num2 p1-num2) & (p1-next!=NULL) p2=p1; p1=p1-next; if(p0-num2 num2) if(head2=p1) head2=p0; else p2-next=p0; p0-next=p1; else p1-next=p0; p0-next=NULL; N2=N2+1;void dels(int num2)/学生信息管理子函数(删除学生信息) struct student *p1,*p2; if(head2=NULL) printf(n没有该学生信息,无法删除!n); goto end; p1=head2; while(num2!=p1-num2 & p1-next!=NULL) p2=p1; p1=p1-next; if(num2=p1-num2) if(p1=head2) head2=p1-next; else p2-next=p1-next; printf(已删除该学生信息!n); N2=N2-1; else printf(无该学号的学生!n); end:;void managements()/学生信息管理主函数 struct student * incouse; int i,num2; printf(ttt学生信息管理n); printf(1.新增学生信息n); printf(2.删除学生信息n); printf(3.返回主菜单n); printf(请选择(13):n); scanf(%d,&i); switch(i) case(1): incouse=(struct student *)malloc(sizeof(struct student); incouse-nelen=0; incouse-nelenum0=0; printf(学生学号t学生姓名n); scanf(%d
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!