选课管理信息系统设计

2023-01-10 版权声明 我要投稿

第1篇:选课管理信息系统设计

浅谈专业实践课选课系统的设计

采用ASP技术和SQL Server数据库设计了专业实践课选课系统,以满足教学管理者的管理需求,同时实现了教师与学生的信息交流。系统遵循软件工程方法进行了系统的开发。

专业实践课选课ASPSQL Server

一、引言

中专学校存在自身办学的特点,有别于其他的高校,随着招生人数的逐年递增,学生的课程安排、成绩统计分析、升学、毕业、就业等的工作量随之增加,迫切需要改变传统的手工管理。而其中的专业实践课是教学工作中的重中之重。原有的专业实践课的管理已经无法满足需要,采用ASP技术和SQL Server数据库设计了专业实践课选课系统,以满足教学管理者的管理需求,同时实现了教师与学生的信息交流。系統遵循软件工程方法进行了系统的开发。

二、系统分析

1.可行性分析

学校是一所建筑行业的全国重点中专学校,承担多个专业、2000多名学生的专业课、基础课、综合实验、毕业设计等教学任务,专业实践课在教学计划中所占的比重较大、课程较多,对于专业实践课的教学与管理应该由传统垂直的金字塔式管理逐渐向网络式结构演变。建立新型教学管理模式,为各工作人员提供所需的信息是学校目前应面对的问题。专业实践课选课系统的数据关系虽然比较复杂,但是其需要实现的功能清晰明了,因此完全可以实现开发。软件方面也相对的简单,建立数据库和建立各种表项都比较方便,应用软件开发环境的选择也很方便,可以任选一种目前比较流行的结构化开发环境。从目前学校的师资与设备情况看,无论是软件还是硬件技术均可满足系统开发的要求。

2.用例分析

(1)通知管理

教师将上课的时间、地点以及课程的基本安排或者布置作业的要求等发布到通知布告栏来通知学生,使学生在课前对所选专业实践课有初步的了解。

(2)学生信息管理

学生必须使用自己的帐号和密码登录系统,登录后可以使用自己的权限,如课程查询、个人资料查询及修改、上传作业等操作。

(3)成绩管理

每个学期期末将以班为单位,根据不同部门自己的需求,分别统计输出所有学生和所有课程的平均分、总分、最高分、最低分、成绩排名、各科的优秀率、及格率、各分数段人数、以及不及格学生的名单与进行奖励等级的评定。

(4)课程管理

可以进行专业实践课程查询,本学期根据教学大纲开设课程的基本情况,包括:不同专业相应学期所开设的具体课程;根据教委要求增加/删除的课程,修改课程信息(上课时间、地点调整),课程因为一些特殊原因停止选课/开始选课,以及各专业学生选课总体情况查询,每个专业开设课程选课具体名单,修改开设课程学生选课情况,选课名单进行打印等。

(5)作业管理

包括作业查询、作业提交、布置作业学生可以将做好的作业上传到网络由教师批改,教师将作业要求等布置好,发布到网络。

(6)报表打印

其主要功能是可以根据不同科室的需要,灵活地生成各种报表及一些特殊的表格。

(7)通知查询

学生可以通过浏览通知发布栏查看各种通知,以及通知的要求。

(8)成绩查询

学生登陆网站输入自己的学号就可以浏览查询自己本学期所学课程的成绩,但是不可以修改成绩。

(9)上传作业

学生可以将教师布置的作业,按照要求做好,上传到系统。

(10)选课

学生可以先查看各门专业实践课程的相关信息,了解每门课程的基本信息,然后可以进行选课。

3.业务流程分析

业务流程的作用是表明各个部分之间的操作范围和管理职能,它可以从宏观来把握整体的脉络,找出业务流程中的不合理的方面等。专业实践课选课系统的需求分析的重点是对选课管理与学生信息两部分,通过业务流程进行描述,可以了解到整个学校基本业务以及业务动态去向:从新生入学填写学生登记表,留下学生的基本信息,每个学期学生各课程的学习情况,学生在校的各种活动和实践记录、奖励与惩罚记录,甚至退学信息、毕业信息等,都由教务人员记录填写,三年后学生毕业时生成学生信息,将学生在校期间所有记录统计汇总到学生信息,最后存入学生档案并保存。在专业实践课选课业务流程中:各专业课程先由任课教师填写课程信息,学生看过课程信息以后填写选课单来选课,再由教务人员对选课情况进行汇总生成课表,与各课程选课学生的名单,每学期由各班班主任对学生的学期各课程成绩进行登记,进行汇总分析,作为学生信息的一部分写入学生信息,各报表和评语均交至校领导审核并做相应的存档。

4.数据流程分析

数据流程是描述系统的逻辑模型的主要工具,其中不包括硬、软件,数据结果与文件的组织,是用来描述所要实现的系统的功能。结合中专学校的实际出发,从上到下将系统进行分解,从宏观上把握系统功能。分析本学期专业实践课的管理与学生信息管理的总体情况,识别来自系统外部的数据流和流出系统的数据流,确定外部项,此时暂时不考虑系统内部的各种数据存储、加工、变换及数据流的情况等。

为了更详细的描述选课系统,把总体的功能分解为学生信息管理、选课管理、统计查询管理三大功能模块。把学生的成绩存放在所在班的成绩一览表中,任课教师把学生成绩单送教务科。教务科的人员根据成绩单把学生的成绩填写在信息表中,学期结束时,给学生发放成绩通知单,并根据“学习成绩一览表”评选本学期学习优秀奖,并颁发奖学金,同时决定学生的升级、补考、留级、退学等情况。教务科人员根据成绩单进行成绩统计分析,统计各年级每门课的成绩分布情况。补考成绩也作类似的处理。

三、系统设计

1.模块结构设计

专业实践课选课系统包括系统控制、选课管理、成绩管理、通知管理、作业管理、学生管理、打印管理七个模块。

(1)系统控制模块

系统的整体控制是由管理员完成的,划分为权限管理子模块和用户管理子模块。

①用户验证功能

用户要通过本系统查询和处理数据,必须先进行注册,拥有一个用户名和密码,每次访问系统时,必须输入用户名和密码进行登录。

②系统权限设置

本系统的用户分为三类:系统管理员、教师和学生。

③用户管理

系统管理员的权限是最强大的,他可以对系统中所有的教师、学生的信息进行全面的浏览、查找、添加、编辑和删除;教师类的用户是指当前系统中所有的教师,能够查看其所教授班级的学生信息,管理其所教授的课程信息。学生类的用户是指当前在校的所有学生,学生的权限是相对单一的,只能对其自身的信息进行浏览和查询,不具有查找其他人员信息的权力,也不具有对自身和其他人的信息进行管理和修改的权利。

(2)學生管理

首先学生必须使用自己的帐号和密码登录系统,在此把学生管理划分为学生信息输入子模块、学生信息查询子模块、学生信息修改子模块三类。学生登陆成功后才可以进行其他操作。

(3)成绩管理

从大体上把这部分划分为成绩输入子模块、成绩统计分析子模块、成绩查询打印子模块。

①分权限管理

所有用户都使用自己的账号和密码登陆系统,登陆后根据他们的身份不同享受的权限也会有所不同。教师主要承担的是成绩管理这块,对自己的学生进行成绩方面的各项操作。但是对于学生来说,他们只能对自己的学习成绩进行查看,不能进行修改。

②成绩录入和修改

这部分都是由教师自行完成的,当然有一个前提,就是在课程结束的一个规定时间范围内,如果超出这个时间,教师因为某些原因要修改成绩就需要联系系统管理员,由管理员利用自己的权限进行成绩的修改。

③成绩查询打印

掌握每个学生的各学期专业实践课的成绩,并记录在数据库中以便查询,并且在毕业时输出成绩一览表。可以针对某一门课程生成学生成绩报表并打印,也可以针对某一学生的所有课程对应的成绩,生成报表并且打印。

④成绩统计分析

在学期结束后以班为单位,分别输出所有学生和所有课程的相应成绩,各个科室根据自己的不同需要进行统计,结果将作为奖励评定的依据(包括教师和学生)。

(4)选课模块

选课模块是整个系统的核心部分,包括两大模块。

①选课子模块

既面向教师又面向学生。作为教师,他可以增加、删除、修改课程信息,并随时了解选修本课的学生名单,对教学进行相应的安排。作为学生来说,他可以查询本学期要开设的专业实践课,并对课程做初步了解,根据自己已经修了多少学分,还差多少学分,来完成后面课程的规划,进行选课操作和退课操作等。

②课程管理子模块

主要功能有:本学期开设的所有必修实践课程的简介;本学期开设所有专业实践课程的简介;增加/删除选修课程的信息;课程停选/开选的信息;以及学生选课情况查询;选课的学生名单打印等。

(5)作业管理

包括作业安排、作业提交。教师将作业要求等布置好,发布到网络,学生可以将做好的作业上传到网络由教师批改。

(6)通知管理

可以开辟一个区域作为信息的发布,使大家登陆系统可以明显的看到一些重要信息。

(7)打印管理

生成各种报表及一些特殊表格并打印输出。

2.物理配置方案设计

硬件配置主要是看学校自身的条件了,作为中专学校现有的硬件资源还是有一定的局限。必须以处理速度快、可靠、数据存储容量大、具有良好的兼容性与可扩充性、可维护性强、有良好的性能/价格比、适用性优良为原则来设计。由于学校已配备自己的机房,且可以满足系统的运行与操作使用,所以仍然使用学校机房的硬件配置。

软件配置主要根据现有硬件的条件,选择适合学校现阶段使用的数据库和操作系统。本系统的软件配置根据用户对系统稳定性的要求,力求满足管理的操作灵活方便。客户端使用Windows2000或者WindowsXP操作系统。对于服务器端,每秒钟数据库并发数据访问的记录数在2000以上,而且对稳定性要求高,要求维护水平好,所以选择WindowsXP操作系统。本系统的前台采用ASP技术,后台数据库采用SQL Server。主要是考虑使用ASP进行Web动态开发,可以与数据库和其他的进程很好的进行交互。后台数据库采用SQL Server,它具有数据管理能力,提供了很多的管理工具,在使用过程中使用者充分感受到它对数据库内容的完整约束,安全约束和作业管理的方便,以及进行分布式事务处理和联机分析处理,支持B/S结构,具有强大的网络功能。

3.系统包设计

专业实践课选课系统中拥有大量数字化信息资源,这些资源是由多种媒体、多种格式组成的,而且它们之间还是相互关联的。使用UML对专业实践课选课系统进行基于面向对象的分析和设计,可以从开发系统的最初就融会贯通,把握住选课信息资源的特征。系统与子系统包描述了专业实践课选课系统中系统与系统之间的关系,显示了将系统拆分为课程管理、学生管理等五个子系统的设计过程。

4.类设计

专业实践课选课系统总类图中引入了两个关联类为选课关联类与教授关联类,它们包含属性学期、成绩、班级号等。专业实践课选课系统总类图描述了学生实体与课程实体之间由选课关联类联系,课程实体与教师实体之间由教授关联类联系,教师与班级之间的联系为管理,关联管理不包含要记录的信息,它本身也没有属性和操作所以仅作为关联。

四、结论

专业实践课选课系统能够完成学生信息的存储、成绩的查询、各类相关报表的打印,以及选课、学生管理的基本功能。它既是各教学环节的活动场所,也是教师对教学进行管理的平台。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。它不仅是教师对教学进行管理的平台,也是教师与学生进行交流的平台。

参考文献:

[1]李俊.建立综合管理信息系统实现学生管理科学化.天津:交通高教研究,2001.

[2]姚全珠.基于C/S与B/S混合架构的高校数字化档案管理系统.计算机工程与应用,2005,25(12):40-43.

[3]李游,黄滨,田贵荣.基于WEB模式的学生学籍管理系统的设计与实现.教育信息化,2006,(1):35-37.

[4]李长春,陈智,宁康琪.学生成绩管理系统设计,数字技术与应用,2010,(3):79.

[5]Laudon,Kenneth C,Laudon,Jane P. Management Information Systems:Managing the Digital Firm. Prentice Hall/CourseSmart.

[6]Jeffrey D. Ullman,Jennifer Widom. First Course In Database Systems.A:International version. Pearson,2008,(2).

作者:张颖

第2篇:学生选课管理信息系统规划

(1) 系统的意义与目标

随着学校的办学规模不断扩大,生源的急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量,学校如何做管理才能够降低成本又能够提高管理质量;老师如何工作才能达到既能减轻工作量又能提高工作水平成为一直探讨和研究的一门学科。伴随着计算机的盛行,信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟,学校需要与时俱进的发展,达到科学化和高效化的管理,就需要建立一套与自身特点相适应的管理信息系统来满足学校学分制改革的要求,便于操作使用。

通过正确的口令进入系统,进行数据库的维护操作和运用,对数据安全性有一定的保障,保密性好;进入系统后可对学籍信息、班级信息进行添加、修改、删除、查询操作;用来实现学生信息管理工作流程的系统化、规范化和自动化。

(2) 系统的用户需求

通过调查,要求系统需要有以下功能:

⑴ 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;

⑵ 由于该系统的使用对象多,要求有较好的权限管理;

⑶ 原始数据修改简单方便,支持多条件修改;

⑷ 方便的数据查询,支持多条件查询;

⑸ 在相应的权限下,删除数据方便简单,数据稳定性好;

⑹ 数据计算自动完成,尽量减少人工干预;

学生选课管理系统的性能要求;

⑴软件的可行

以Windows XP为操作系统,运用SQL的数据库技术,根据科学的管理方法与编程技术设计、开发学生信息管理系统,能符合各种技术要求,拥有较高的存储能力和处理速度。该系统的运行硬件环境PC机,当用户使用系统时,通过正确的口令进入系统,进行数据库的维护操作和运用,对数据安全性有一定的保障,用户放心使用

(2)系统科学的分析

待开发模块的一般描述

本设计主要为学校学生信息管理提供一个使用方便、经济实用的系统模块,以替代传统的手工操作方式。对学生的基本信息模块进行了设计,包括添加、删除、查询学生信息等操作。

(3)模块设计

3.1 登录界面

登录界面的设计,主要是本着实用简便的原则设计制作。

3.2 主界面

当操作员的名称和密码均正确的时候,系统便会进入信息管理(主界面)。信息管理包括系统的所有主功能模块:学籍管理、班级管理、查询管理、退出系统。它可以实现录入学籍信息、录入班级信息、查询学籍信息(按学号、按姓名、按班级查询)、退出系统等功能。

3.3 信息管理

3.3.1添加学籍信息

当操作员点击学籍管理图片按钮进入子目录,继续点击添加学籍信息图片按钮,便可进入添加学籍信息界面,对学籍信息进行录入,添加学籍信息界面的结构(如图4):

3.3.2 修改学籍信息

当操作员点击学籍管理图片按钮进入子目录,继续点击修改学籍信息图片按钮,便可进入修改学籍信息界面,对学籍信息进行更改、删除,修改学籍信息界面的结构

3.3.3修改班级信息

当操作员点击班级管理图片按钮进入子目录,继续点击修改班级信息图片按钮,便可进入修改班级信息界面,对班级信息进行录入,修改班级信息界面的结构

3.3.5 数据库表

记录表信息,添加、修改后的信息保存于学籍信息表或班级信息表中。表中包含学号、姓名等字段,使用户直观、便捷的了解学生的基本情况3.3.4查询学籍信息

学籍信息的查询基于表,其中提供了按学号,按姓名,按班级三种查询,在选择按学号、按姓名或按班级后,可在文本框中输入要查询的姓名、学号或班级,然后点击“查询”可得到满足条件的查询结果。功能是便于操作人员对学籍信息的检索查询。如按班级查询,输入要查询的班级

4.系统调试

完成对流程的编码后,最重要的是对系统的测试工作。测试在系统设计阶段有两个时期,一个时期是在编码写完每个模块后做单元测试,另一个是对系统做综合测试。

第一、模块测试:在模块测试的时候,设计者从下面几个方面考虑:模块的结构;局部数据结构;重要执行通道;出错的处理通道;影响上述方面的边界条件。

第二、整体测试:总体测试是组装软件的系统技术,本系统采用渐增集成测试,即测试单一模块,再将测试完的模块加入到系统中,进行一次系统测试,以此类推将所以模块加入系统中,在具体测试时,采用自顶向下的结合方式,从主控模块开始,沿各控制层向下移动,逐渐把所以模块结合。

第三、评估运行可靠性的问题:结果正确;运行速度;空间利用率;

算法的可靠性

(3)系统经费概算

初步估算约需要20万,包括硬件资源,技术资源,开发费用。培训费用等。其中,开发期间约需8万。调试与运行约需6万元。

(4) 系统开发计划

本系统计划由开发小组(开发人员4人)用12个月完成,具体时间安排计划如下:

系统调研,系统分析:3个月

系统设计:2个月

系统程序设计:3个月

系统调试:2个月

系统试运行:2个月

第3篇:网上选课系统毕业设计总结

网上选课系统总结

1、前言

随着社会的发展,学生培养计划已不再一成不变,各个学校纷纷推出了面向全体学生的选课服务,这项旨在为大家提供一个更加宽松自由而且更符合学生意愿的服务已成为当代学生过程中不可缺少的一部分。正式计算机技术的迅速发展使得人们从过去复杂的手工劳动中得以解脱,从而使这种服务在现在才可能迅速普及,同时编写一套完整的学生信息显得尤为重要。

2、学生选课管理系统的组成

本系统包括首页,系统公告,学生选课,教师查看,系统管理,系统帮助,联系我们7个部分。

“首页”主要是介绍衡水学院的基本情况。

“系统公告”介绍最近的一些新闻和通知,方面同学们及时了解。

“学生选课”是为学生提供选课界面。该界面要列出搜有课程信息供学生查询和选课。包括未选课程,已选课程,学生选课受一些条件的约束,如课程名额限制,该界面允许学生选课和修改退选。

“教师查看”教师可以查看学生选课情况,有详细的选课名单。

“系统管理”主要是按指定系检索该系的学生信息,维护学生,系,课程和学生选课及成绩等方面基本信息,包括增加,删除,修改

“系统帮助”主要是帮助学生能更好及时的完成选课任务。

3、系统实现

采用了ASP.NET结合SQL Server2008数据库,即将学生选课的有关数据库存放在选用的SQL Server2008作为后台的数据库。

运行环境硬件与网络环境:用服务器能运行Windows XP及以上操作系统。

第4篇:C语言课程设计学生选课系统

题目

一、学生选课管理系统

第一部分:课程设计名称、目的、要求

第二部分:程序总体设计思路

第三部分:程序功能划分、图示及流程图

第四部分:程序设计数据、运行结果

第五部分:程序的优缺点

第六部分:心得体会

第七部分:附录(源程序)

第八部分:附录(参考文献)

目录

... ........... . ..... ............... ................... ............. ...........

第一部分:课程设计名称、目的、要求

名称:学生选修课程系统设计

目的:运用C语言提高解决实际问题的能力 实验环境:Microsoft Visual C++ 6.0 内容:

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。 【功能】

系统以菜单方式工作

课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法 按学分查询 按课程性质查询 学生选修课程(可选项)

第二部分:程序总体设计思路

由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。

具体的设计思路如下:

程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。

整个程序的设计思路到此结束。

第三部分:程序功能划分、图示及流程图

【功能模块划分及其流程图】

本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这9个部分来完成。这9个部分依次是:

1. 登录界面函数;void login() 2. 学生登录界面据函数:void stu_login() 3. 管理员登录界面函数:void man_login() 4. 退出界面函数:void bye_sys()

5. 课程选择函数:void c_select() 6. 课程浏览函数:void c_view() 7. 课程查询函数:void c_search() 8. 课程增加函数:void c_add() 9. 课程删除函数:void c_delete() 10. 菜单函数:void index() 11. 主函数部分; main()

总体设计:

学生选课系统管理员登录学生登录新增课程删除课程课程浏览查询课程学生选课课程浏览课程查询c_add函数c_delete函数c_view函数c_search函数c_select函数c_view函数c_search函数

系统功能模块图

部分函数流程图:

1、 课程选择函数:

开始输入要选择的课程的编号j=0;j

2、 课程查询函数

开始输入要查询的课程的编号j=0;j

3、 课程增加函数

开始输入要增加的课程的编号j=0;j

4、课程删除函数

开始输入要删除的课程的编号nj=0;j

本程序是一款应用软件,故数据设计、程序运行结果应在程序的

运用中得以体现,现在通过一个程序的运用事例来对程序运行结果进行演示与实现。 【软件运用举例】

1、程序开始界面如下:

选择某个选项,如进行管理员登录,进行课程的增加 进入管理员界面:

2、再选择所要进行的操作,如进行课程增加,结果如下:

下面可以进行继续增加课程或者退出:

3、选择课程浏览,可以分页查看相应的课程信息: 第一页:

第二页:

4、课程查询

查找结果:

4、 管理员课程删除操作:

删除后可以进行浏览,观察删除后的结果:

可见删除后只有一条记录。删除操作完成正确。 下面进行学生操作的使用方法:

1、学生登陆界面:

2、选择学生选课选项:

3、学生登陆也可进行课程浏览和查询函数,其结果与管理员登陆相同,不再演示。

第五部分:程序的优缺点

【程序的优点】

算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。

[算法上的优点]主要体现在以下三点:

1. 程序采用main主函数方式设计,程序的主体的功能大都由该功能

完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。

2. 程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。

3. 插入操作在本程序中将课程信息直接插入数组最后一个节点,从而减少了数据的相互移动,节省了时间。

[功能上的优点] 主要体现在以下两点:

1. 简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。 2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进行操作。

【程序的缺点】 主要表现在以下两点:

1、 本程序没有进行相应的密码操作,所以对于使用者来说可能存在比较大的不保密性。需要改善。

2、 本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件都是二进制形式。

第六部分:心得体会

选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。

本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。

通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。

程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。

对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。

总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。

第七部分:附录

一、参考文献:

1、李丽娟主编 ,C语言程序设计教程(第二版),人民邮电出版社

2、严蔚敏主编,数据结构(C语言),清华大学出版社

3、崔单主编,C语言程序设计案例精粹,电子工业出版社

4、谭浩强主编,程序设计(第三版),清华大学出版社

二、源程序

#include"stdio.h" #include"stdlib.h" #include"windows.h" #include"string.h"

void index();//首页 void login(); void bye_sys();//退出界面

void stu_login();//学生登录菜单

void c_select(); void c_view();//课程浏览

void c_add();//增加课程 void c_delete(); void c_searchs();//学生查询函数 void c_searchm();//管理员查询函数 void c_viewm();//管理员浏览函数 void c_views();//学生浏览函数

struct course//定义课程结构体

{

int c_num;

char c_name[20];

int c_score;

int c_nelepeo;//课程已选人数

int c_melepeo;//课程人数上限 }; struct student { char s_number[10];

char s_password[10]; }; struct manager { char m_name[10]; char m_password[10]; };

void index()//首页 {

char input;

printf(" ***************************** ");

printf("

湖南大学学生选课系统 ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" ***************************** ");

printf(" **********设计者:刘晓斌****** ");

input=getchar();

system("cls"); } void login()//登陆界面

{

void stu_login();

void man_login();

void bye_sys();

int input;

do

{

system("cls");

printf(" 1.学生登录 ");

printf(" 2.管理员登陆 ");

printf(" 3.退出本系统 ");

printf(" 请选择服务类别:");

scanf("%d",&input);

if (input!=1&&input!=2&&input!=3) //输入数不等于选项的时候打印画面

{

printf(" 输入出错!请重新选择~ ");

printf(" 按任意键返回选择页面~ ");

getchar();getchar();

system("cls");

}

if(input==3)//如果输入3退出系统

{

bye_sys();

}

}while(input!=1&&input!=2&&input!=3);

switch(input)

{

case 1:stu_login();break;

case 2:man_login();break;

} }

void bye_sys()//退出界面 { exit(0); }

void man_login() {

void c_add();

void c_delete();

void c_view();

void c_searchm();

int in;

do

{

system("cls");

printf(" 1.新增课程 ");

printf(" 2.删除课程 ");

printf(" 3.课程浏览 ");

printf(" 4.课程查询 ");

printf(" 5.退出 ");

printf(" 请选择服务种类:");

scanf("%d",&in);

if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)

{

printf(" 没有这项服务 按任意重新选择");

getchar();getchar();

}

}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);

switch(in)

{

case 1:c_add();break;

case 2:c_delete();break;

case 3:c_viewm();break;

case 4:c_searchm();break;

case 5:login();break;

} }

void stu_login()//学生登录菜单

{

void c_select();

void c_view();

void c_searchs();

void login();

int input;

do

{

system("cls");

printf(" --学生登陆--");

printf(" 1.学生选课 ");

printf(" 2.课程浏览 ");

printf(" 3.课程查询 ");

printf(" 4.退出 ");

scanf("%d",&input);

if(input!=1&&input!=2&&input!=3&&input!=4)

{

printf(" 没有这项服务~ ");

printf(" 按任意键重新选择");

getchar();

getchar();

}

}while(input!=1&&input!=2&&input!=3&&input!=4);

switch(input)

{

case 1:c_select();break;

case 2:c_views();break;

case 3:c_searchs();break;

case 4:login();break;

} }

void c_select() {

int n,in,i=0,j;int flag=0;

FILE *fp;

FILE *fp1;

char input;

struct course courses[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

input=getchar();

input=getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

}

printf(" 请输入你要选课程的编号:");

scanf("%d",&n);

if((fp1=fopen("courseselect.dat","rb"))==NULL)

{

fp1=fopen("courseselect.dat","wb");

}

else

{

fclose(fp1);

fp1=fopen("courseselect.dat","ab");

}

for(j=0;j

if(courses[j].c_num==n)

flag++;

if(flag==0)

{

printf(" 不存在对应课程 ");

printf(" 继续选课请按1,退出请按2: ");

scanf("%d",&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:

printf("输入错误,将返回登录界面! ");

login();break;

}

}

else

{

fwrite(&courses[j],sizeof(struct course),1,fp1);

fclose(fp1);

printf(" 选课成功 请选择:");

printf(" 1.继续选课");

printf(" 2.退出,返回登录界面!");

scanf("%d",&in);

switch(in)

{

case 1:c_select();break;

case 2:stu_login();break;

default:break;

}

} }

void c_viewm()//课程浏览

{

void stu_login();

void c_view() ;

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

system("cls");

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system("cls");

if(i==1)

{

printf(" 没有记录! ");

getchar();getchar();

man_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{man_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_views()//课程浏览

{

void stu_login();

void c_view() ;

int

inp,i=0,n=0;

FILE *fp;

char input;

struct course courseview[10];

if((fp=fopen("course.dat","rb"))==NULL) //判断是否存在课程

{

system("cls");

printf(" 课程不存在 ");

printf(" <按任意键返回管理菜单> ");

getchar();getchar();

stu_login();//进入学生登陆菜单

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&courseview[i],sizeof(struct course),1,fp);

i=i+1;

}

while(!feof(fp));

fclose(fp);//文件读完后关闭

do

{

system("cls");

if(i==1)

{

printf(" 没有记录! ");

getchar();getchar();

stu_login();

}

else

{

printf(" ------共有%d条记录-------",i-1);

printf(" 课程编号: %d ",courseview[n].c_num);

printf(" 课程名字: %s ",courseview[n].c_name);

printf(" 课程学分: %d ",courseview[n].c_score);

printf(" 课程已选人数: %d ",courseview[n].c_nelepeo);

printf(" 课程人数上限: %d ",courseview[n].c_melepeo);

printf(" 1.上一页 2.下一页 3.回目录");

printf(" 请选择:");

scanf ("%d",&inp);

switch(inp)

{

case 1:

{

if(n==0)

{

printf(" 已到达首页 按任意键返回");

input=getchar();

input=getchar();

}

else

{

n=n-1;

}

break;

}

case 2:

{

if(n==i-2)

{

printf(" 已到达尾页 按人意见返回");

input=getchar();

input=getchar();

}

else

{

n=n+1;

}

break;

}

case 3:{stu_login();break;}

default:

{

printf(" 操作错误 按任意键返回");

getchar();getchar();

break;

}

}

}

}while(inp!=3);

} }

void c_searchs() {

void stu_login();

void c_searchs();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if ((fp=fopen("course.dat","rb"))==NULL)

//判断课程信息是否存在

{

system("cls");

printf(" 课程不存在 按任意键返回");

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system("cls");

printf(" 请输入你要查询的课程编号:");

scanf("%d",&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchs();

case 2:stu_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

}while(inp!=1);

}

void c_searchm() {

void stu_login();

void c_searchm();

int id,i=0,j,inp,k;

int flag=0;

FILE *fp;

struct course coursesear[10];

if ((fp=fopen("course.dat","rb"))==NULL)

//判断课程信息是否存在

{

system("cls");

printf(" 课程不存在 按任意键返回");

getchar();getchar();

stu_login();

}

else//存在的话循环读取文件中的信息直到文件指针到文件尾部

{

do

{

fread(&coursesear[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

system("cls");

printf(" 请输入你要查询的课程编号:");

scanf("%d",&id);

do//检查输入是否符合要求

{

for(j=0;j

{

if(id==coursesear[j].c_num)

{

flag++;

k=j;

}

}

if(flag==1)

{

system("cls");

printf(" 课程编号:%d ",coursesear[k].c_num);

printf(" 课程名字:%s ",coursesear[k].c_name);

printf(" 课程学分:%d ",coursesear[k].c_score);

printf(" 课程已选人数:%d ",coursesear[k].c_nelepeo);

printf(" 课程人数上限:%d ",coursesear[k].c_melepeo);

getchar();getchar();

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

else

{

system("cls");

printf(" 不存在对应记录 ");

printf(" 1.回目录继续查询 2.退出查询系统 ");

printf("请选择:");

scanf("%d",&inp);

switch(inp)

{

case 1:c_searchm();

case 2:man_login();

default:

{

printf(" 没有这项服务 请按任意键重新输入");

getchar();getchar();

}

}

}

}while(inp!=1); }

void c_add()//增加课程 {

void c_add();

void man_login();

int i=0,j,inp;

FILE *fp;

struct course course_new;

struct course courses[10];

system("cls");

printf(" 请输入课程信息");

printf(" 1.课程编号:");

scanf("%d",&course_new.c_num);

printf(" 2.课程名字:");

scanf("%s",course_new.c_name);

printf(" 3.课程学分:");

scanf("%d",&course_new.c_score);

printf(" 4.课程已选人数:");

scanf("%d",&course_new.c_nelepeo);

printf(" 5.课程人数上限:");

scanf("%d",&course_new.c_melepeo);

if((fp=fopen("course.dat","rb"))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

for(j=0;j<=i-1;j++)

if(course_new.c_num==courses[j].c_num)

{

system("cls");

printf(" 对不起,这个编号已经使用过 按任意键返回管理菜单");

getchar();getchar();

man_login();

break;

}

}

if((fp=fopen("course.dat","rb"))==NULL)

{

fp=fopen("course.dat","wb");

}

else

{

fclose(fp);

fp=fopen("course.dat","ab");

}

fwrite(&course_new,sizeof(struct course),1,fp);

fclose(fp);

printf(" 信息输入完毕 按任意键继续");

getchar();getchar();

do

{

system("cls");

printf(" 1.继续输入");

printf(" 2.返回管理菜单");

printf(" 请选择");

scanf("%d",&inp);

if(inp!=1&&inp!=2)

{

printf("输入不符合要求 按任意键重新选择");

getchar();getchar();

}

}while(inp!=1&&inp!=2);

switch(inp)

{

case 1:c_add();break;

case 2:man_login();break;

} }

void c_delete()//查询后删除 {

FILE *fp;

int i=0,j,n,k,flag=0;

struct course courses[10];

void c_delete();

void man_login();

printf(" 请输入你要删除的课程编号:");

scanf("%d",&n);

if((fp=fopen("course.dat","rb"))!=NULL)

{

do

{

fread(&courses[i],sizeof(struct course),1,fp);

i=i+1;

}while(!feof(fp));

fclose(fp);

}

else

{

printf(" 不存在任何课程 按任意键返回");

getchar();getchar();

man_login();

}

for(j=0;j

{

if(courses[j].c_num==n)

{

flag=1;

fp=fopen("course.dat","wb");

for(k=0;k

fwrite(&courses[k],sizeof(struct course),1,fp);

fclose(fp);

fp=fopen("course.dat","ab");

for(k=j+1;k

{

fwrite(&courses[k],sizeof(struct course),1,fp);

}

printf(" 记录已删除! 按任意键返回 ");

getchar();getchar();

man_login();

fclose(fp);

}

}

if(flag==0)

{

printf(" 不存在对应的课程 按任意键返回");

getchar();getchar();

man_login();

} // printf(" 记录已删除! 按任意键返回 ");

}

int main() {

index(); login(); return 0; }

第5篇:酒店客房管理信息系统设计

需求分析:

酒店在正常运营中需要对客房资源、客户信息、客房结算信息进行管理,利用酒店客房管理系统及时了解各个环节中信息的变更,提高管理的效率。系统开发的整体任务就是实现客房信息的系统化、规范化和自动化。系统主要满足一下要求:

1、为方便用户在Windows 平台上能够较好运行,熟练掌握该系统的运作,有良好的人机界面。

2、该系统的使用对象较多,为了方便管理,要求有较好的权限管理,系统用户应该具有不同的等级,按用户要求分为三个等级:系统管理员、系统操作员、一般用户。

3、由于客户流量大、流动性强,输入工作较为繁琐,要求该系统与二代身份证阅读器相连接,从而减少输入量。

4、原始数据修改简单方便,支持多条件修改。

5、方便的数据查询,支持多条件查询。

6、在相应的权限下,删除数据简单方便,数据稳定性高。

7、系统的数据权限管理严格,数据安全性高,避免数据外泄。

8、数据计算自动完成,尽量减少人工干预、

9、系统应该那个数据库维护的功能。

10、系统应该有很好的可扩展性。

11、可以建立客户数据信息库,方便日后与客户进行联系。

12、打印退宿报表,结账报表等报表。

第6篇:管理信息系统课程设计要求

在参考题目中自主选择一个管理信息系统,也可自拟题目,完成以下内容:

1)完成系统功能的代码开发(ACCESS 2003开发环境);

2)完成设计报告。

设计报告内容和要求:

系统应用背景概述:根据选择的课题,描述应用单位的规模和组织结构、现有信息化应用状况等相关背景信息,绘制组织结构图。

需求分析:描述应用单位对系统的需求,希望解决的问题和功能需求。 根据内容绘制业务流程图,数据流图。(可选)

数据库设计:绘制ER图

系统功能描述:对程序的主要功能界面截图并进行介绍。 系统测试:输入具体数据将运行结果截图。

设计总结。

以下题目仅供参考,可以另选题目:

1.学生成绩管理系统

2.学生信息管理系统

3.酒店管理系统

4.教务信息管理系统

5.超市进销存系统

6.企业生产管理系统

7.住宅小区物业管理信息系统

8.仓库管理系统

9.医院管理信息系统

10.图书馆管理信息系统

11.旅行社管理系统

12.办公自动化系统

13.财务管理系统

可以在7.1-7.5 每天5:30到机房做系统,也可以在其他地点,只要不耽误上缴报告,最晚7月15日上交成果。

最终报告形式:

1 电子版(报告书+源代码实现的系统) 发 187267654@qq.com邮箱 2 纸质版交博B507,如果没人在办公室,交到博A 3楼 铁皮信箱中

如果有疑问,联系QQ:187267654

第7篇:管理信息系统课程设计要求 - 工业

《管理信息系统课程设计》要求

1.分组可以1-3人一组(最多3人),如果超过1人课程设计报告中要求最后附上每人的分工说明(每人负责什么内容),每组要选定一人担任组长负责整体进度把握。

2.数据库采用access或sqlserver均可,如果是sqlserver,提交电子档时,需同时提交sqlserver的备份文件。

3.系统要求:

(1)题目可以从以下范围选择,或者自拟题目

1)工资管理系统

2)学习成绩管理系统

3)图书管理系统

4)医院管理系统

5)宾馆管理系统

6)班级档案管理系统

7)住宅小区物业管理系统

8)机房管理系统

9)设备管理系统

10)人力资源管理

11)库存管理系统

12)物资采购管理系统

13)办公自动化系统

14)客户关系管理系统

15)社保管理系统

(2)功能要求:

1)具备基本的增加、修改、删除、查询功能。

2)报表打印(该条不做强制要求)。

4.课程设计报告的内容包括如下几点:

(1)系统规划

(2)系统分析

(3)系统设计

1)数据库设计

2)处理逻辑设计

(4)系统开发

5.提交内容:

(1)电子档:

1)代码的电子档,如果是sqlserver,提交电子档时,需同时提交sqlserver的备份文件;

2)课程设计报告电子档。

(2)课程设计报告打印稿

所有电子稿文件放在一个文件夹中,压缩成一个压缩文件,由学习委员收齐发送到邮箱memail3000@126.com中

上一篇:影视动画创意赏析下一篇:环保公司工作总结