1、 课课 程程 设设 计计 教教 学学 院院 计算机学院计算机学院 课程名称课程名称 高级语言程序设计高级语言程序设计 题题 目目 学生选课系统学生选课系统 专专 业业 软件工程软件工程 班班 级级 12 级软件工程(级软件工程(1)班)班 姓姓 名名 同组人员同组人员 指导教师指导教师 2013 年 12 月 15 日 1 目目 录录 一概述. 2 二总体方案设计 2 三详细设计 . 4 四程序的调试与运行结果说明 . 8 五课程设计总结 .17 参考文献18 2 一一 概述概述 1. 课程设计的目的课程设计的目的 1理解和掌握该课程中的有关基本概念,程序设计思想和方法。 2培养综合运用所学知
2、识独立完成课题的能力。 3培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论, 全方位考虑问题等科学技术人员应具有的素质。 4掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中 找到解决问题的新途径的悟性,初步培养工程意识和创新能力。 2. 课程设计的要求课程设计的要求 需要的基本知识与技能,尚未掌握的知识点,需要查阅相关资料。教师对 本题目所提出的要求等。 (1) 需求分析需求分析 1.1 任务要求任务要求 制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括: 课程编码、课程名称、适用专业、课程类型(必修、限选、必选、实践、学习) 、 学分、学时、主讲教师等
3、。学生信息管理,学生选课管理(学生选课学分总数 有一定范围) ,学生可以对课程进行查询、浏览,选完课后可以退选、重选,并 可以按学号、姓名进行查询和统计。 要求:1.源文件采用多文件的工程结构。 2.数据储存采用文件形式。 3.标准的 C 输入输出。 4.功能完善,适当的注释。 5.关于文件的内容要自学。 1.2 系统功能需求分析系统功能需求分析 1.为存储课程信息,需要定义一个结构体类型,成员包括课程编码、课程名称、 适用专业、课程类型、学分、学时、主讲教师,所选人数等等,并建立链表, 定义该结构体类型的指针,用于指向各节点; 2.为存储学生信息,需要定义一个结构体类型,成员包括学生编码、学
4、生姓名、 所选课程编码、所选课程学分和等等,并建立链表,定义该结构体类型的指针, 用于指向各节点; 3.对于课程信息和学生信息,可以选择从键盘输入也可选择从文件中打开原来 3 存盘的信息,并对他们分别建立添加、删除、浏览、查询等功能的子函数,完 成相应的功能,对程序实现模块化。这其中要用到对链表的删除、插入、增加 等知识。删除包括课程删除和学生信息删除,删除时用一结构体指针指向链表 的第一个结点, 检查该节点的值是否等于输入的要删除的课程编号或学生学号, 若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点, 再添加。查询功能要设置按照学生姓名、学生编号等多种方式。 4.学生选课
5、是要先输入自己的学号,如果在已经输入的学生信息中找不到此学 号,则提示需要先输入自己的信息。如找到了自己的学号,则可以进行选课。 在选课之前要先对所有的课程信息进行浏览。选课有一定的学分限制,超过相 应的学分(这里设置的是 10 个学分) ,系统就会显示可以选满的信息。此系统 还可以实现删除所选课程的功能,设计思路与选课功能相似。 5为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除 的信息存入磁盘中。 6.实现易于使用者理解和使用的友好界面。 4 课程信息 从 文 件 录 入 从 键 盘 录 入 增加 删除 学生信息 从 文 件 录 入 从 键 盘 录 入 增加 删除 选 课
6、 退 课 信息存储 二二 总体方案设计总体方案设计 1.1.具体的设计思路:具体的设计思路: 程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改 操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设 置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修 改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包 括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选 择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取, 然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保 存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻 辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。 2 概要设计概要设计 2.1 系统总体设计框架系统总体设计框架 对程序进行模块化可以使整个程序清晰明了。 对课程信息和学生信息建立 从文件中输入、从键盘中输入、添加、删除、查询和浏览的功能,其各个子函 数中运用链表储存数据。选课管理建立学