c++课程设计之学生选修课程系统设计

合集下载

学生选修课程系统课程设计参考文献

学生选修课程系统课程设计参考文献

学生选修课程系统课程设计参考文献学生选修课程系统在大学教育中起到了至关重要的作用,因此对于该系统的设计和实施需要参考相关的文献和研究成果。

以下是一些关于学生选修课程系统设计的参考文献:1. 'Design and Implementation of a Student Elective Course Selection System' (学生选修课程选择系统的设计与实现) - 该文献介绍了一个基于Web的学生选修课程选择系统的设计和实施方法。

通过该系统,学生可以根据自己的兴趣和目标,灵活选择适合自己的选修课程,提高学习效果。

2. 'A Study on the Optimization of University Elective Course System' (大学选修课程系统优化研究) - 该研究针对现有大学选修课程系统存在的问题,提出了一种优化方案。

通过对学生的选修课程需求进行分析和预测,结合课程资源和学生数量等限制条件,建立了一种优化模型,以提高选修课程系统的效率和满意度。

3. 'Design of Student Course Selection System based on Data Mining Technology' (基于数据挖掘技术的学生选课系统设计) - 该研究利用数据挖掘技术,分析学生的历史选课数据和个人特征,构建了一个个性化的学生选修课程推荐系统。

通过挖掘学生的兴趣和学习能力等信息,为每个学生提供个性化的选修课程推荐,提高选课的准确性和满意度。

4. 'Design and Implementation of a Mobile Elective Course Selection System' (移动选修课程选择系统的设计与实现) - 该文献介绍了一个基于移动设备的选修课程选择系统的设计和实施方法。

通过手机应用程序,学生可以随时随地查询和选择自己感兴趣的选修课程,提高选课的便捷性和灵活性。

学生选课管理系统(数据库课程设计)

学生选课管理系统(数据库课程设计)

数据库系统原理及其应用教程课程设计报告设计题目选修课程管理系统的设计与实现指导教师摘要随着计算机技术的日新月异,极大的推动的各个行业的信息化进程。

各大高校也急需进行信息化改革,以促进教学质量和工作效率快速提升.本文是在对各大高校全校公开课学生选课情况进行实地调查后,进行详细分析讨论后撰写的学生选课管理系统数据库设计报告.全文从最初的系统规划,到需求分析、概念设计、逻辑设计、物理设计.每一阶段都进行了详细的分析。

接下来的实现、运行与维护阶段,还进行了对本系统的测试,最后是本次项目开发的心得和体会以及本文的参考文献。

本系统主要功能是对学生选课及相关信息进行管理。

较行业同类产品而言,本系统人机界面设计更加合理、人性化,用户操作简单方便。

数据库的安全性更高,对用户访问权限进行了严格控制。

数据存取速度更快,使用年限更长。

可以很好的满足高校公开课学生选课的要求,极大的提高了学校的工作效率.关键字:学生选课管理系统;分析;设计目录一、概述 ...................................................................................................... 错误!未定义书签。

261.1设计背景ﻩ1.2设计目的................................................................................. 错误!未定义书签。

1。

3设计内容...................................................................................... 错误!未定义书签。

二、需求分析ﻩ错误!未定义书签。

2。

1功能分析.................................................................................... 错误!未定义书签。

学生选课系统设计报告

学生选课系统设计报告

大理学院数学与计算机学院《数据库系统设计》课程设计报告班级:2012级计算机科学与技术1班学号:201211514姓名:刘秀珍系统名称:学生选课系统总分:实验报告内容及撰写要求:一、需求分析程序的主要功能描述,可以用文字、框图、用例等方式。

参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。

主要应当包含分析的过程及分析后得到的数据流图和数据字典。

二、数据库设计2.1 数据库概念设计实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。

2.2数据库的逻辑设计根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQL SERVER 2005)的表结构,并根据规范化理论对表结构进行优化调整。

同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。

三、系统实现3.1 数据库访问1)数据访问类及实现代码2)SQL语句3.2 业务逻辑层类及代码描述业务流程、数据处理功能的模块代码3.3表示层的实现可以用界面截图及其实现类及核心代码描述四、总结一、需求分析1.1背景全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。

随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。

网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。

但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。

1.2系统设计要求:设计出一个学生选课数据库系统的简要要求如下:1)设计要求①建立相应的数据库及相关的表、属性、约束、规则、默认等;②输入相应的记录(每个表不少于20条记录);③编写进行数据管理的存储过程。

C或C++课程设计题目-(1)

C或C++课程设计题目-(1)

供选择的C或C++语言程序课程设计题目第一类题目应用类题目1:年历显示。

功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。

假定输入的年份在1940-2040年之间。

(2)输入年月,输出该月的日历。

(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。

题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。

功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。

题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。

(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。

题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。

功能要求:(1)系统以菜单方式工作。

(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。

管理信息系统课程设计--以学生选课系统为例

管理信息系统课程设计--以学生选课系统为例

管理信息系统课程设计--以学生选课系统为例(共26页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--目录1、前言 (3)、系统简介、开发目的、可行性研究、使用环境与开发工具2、系统分析 (4)、系统基本功能描述、系统需求分析 6、组织机构6、管理职能分析 6、业务流程分析 6、数据流程分析 6、数据字典 6现行系统评价 63、新系统设计 (4)1、系统目标设计 52、新系统功能(模块)结构图 63、新系统计算机信息系统流程设计 64、代码设计 65、系统物理配置方案设计 66、数据库设计 67、输出/输入设计 68、程序模块设计说明 6四、设计小结 (1)1、小组总结 22、个人总结 3五、参考文献 (1)六、分工说明 (1)说明:我们小组研究的课题是:学生选修课信息管理系统。

在研究过程中,我们使用的开发工具主要是Windows2003和Visual 。

我们把研究的重点放在在系统分析、系统设计实现过程、方法及内容等方面。

1.前言系统简介管理信息系统是一个以人为主导,利用计算机硬件、软件、网络通信设备以及其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业战略竞优、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。

其主要任务是最大限度的利用现代计算机及网络通讯技术加强企业的信息管理,通过对企业拥有的人力、物力、财力、设备、技术等资源的调查了解,建立正确的数据,加工处理并编制成各种信息资料及时提供给管理人员,以便进行正确的决策,不断提高企业的管理水平和经济效益。

随着Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。

社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷。

学校网上选课系统正是基于这一思想发展起来的。

学生网上选课系统已经在很多高校得到广泛的应用,而且深得广大师生的称赞。

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。

学生可按要求(如总学分不能少于20学分)选课。

课程信息维护,如录入、修改、删除等,课程信息用文件保存。

课程信息浏览?输出。

学生选课功能。

查询功能包括:按学分、课程性质、学生等查询。

统计功能。

统计各门课程的选修人数。

本系统要有通用性、界面美观、操作方便。

要考虑系统安全。

课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。

管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。

输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。

学生选课管理系统javaweb课程设计

学生选课管理系统javaweb课程设计

学生选课管理系统JavaWeb课程设计一、概述学生选课管理系统是一种用于管理学生选课信息的系统,能够实现学生注册、登录、选课、退选等功能。

本文将介绍基于JavaWeb技术设计学生选课管理系统的实现方案。

二、系统设计1. 系统结构学生选课管理系统主要包括学生管理模块、课程管理模块和选课管理模块。

2. 数据库设计系统数据库主要包括学生信息表、课程信息表、选课信息表等。

各表之间通过外键进行关联。

三、功能模块设计1. 学生管理模块•学生注册:学生可以通过系统注册账号。

•学生登录:学生可以使用注册账号登录系统。

•学生信息查看:学生可以查看个人信息。

2. 课程管理模块•课程信息查看:学生可以查看系统中所有课程信息。

•课程详情查看:学生可以查看课程的详细信息。

3. 选课管理模块•选课:学生可以选择感兴趣的课程进行选课。

•退选:学生可以退选已经选修的课程。

四、功能实现系统采用JavaWeb技术实现,包括前端页面的设计和后端逻辑的实现。

1. 前端设计系统前端页面采用HTML、CSS和JavaScript进行设计,主要包括学生登录页面、学生信息页面、课程信息页面等。

2. 后端实现系统后端采用Java语言开发,使用Servlet实现业务逻辑。

通过数据库连接池实现与数据库的交互,实现学生信息的增删改查,课程信息的查询和选课功能。

五、系统展望未来可以进一步完善系统功能,添加成绩管理模块、教师管理模块等,提升系统的全面性和实用性。

六、总结学生选课管理系统是一种重要的教务管理系统,本文设计了基于JavaWeb技术的学生选课管理系统方案,通过前后端的设计和实现,实现了学生信息管理、课程管理和选课功能。

希望该系统能够为学生选课提供便利,为教务管理提供支持。

湖南大学C++程序设计选题和考核标准

湖南大学C++程序设计选题和考核标准

C++程序设计选题与考核标准一、训练要求:1、要求利用C/C++程序设计课程上学习的基础编程技巧来完成程序的设计;在设计的过程中,要建立清晰的类并正确使用相应的数据类型;在系统设计中要分析类与类之间的关系,将查找和排序的算法独立出来形成为单独的函数。

正确使用继承、重载和多态等技巧。

2、如果有数据交互的地方,要求对用户输入的数据都进行有效性验证,以保证程序的正常运行。

二、训练目的:1、加深对面向对象设计中基础理论和基本知识的理解,培养学生的实践能力,促进理论与实践的结合。

通过课程设计,让学生能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术。

2、通过程序设计,掌握面向对象程序设计语言C++,培养调查研究、查阅技术文献、资料、手册以及编写技术文献的能力指导等。

三、课程设计分组及考核办法本课程设计采用分组的方式进行,设计内容分为基础部分和发挥部分。

具体实施如下:1、每组3—5人,不得多于5人;2、共有18个设计题目,每个题目限3组可选;3、每组选1人参与课程设计答辩,限时15分钟,PPT内容包括:介绍本组每个成员的分工情况和设计过程(演示);或完成后,向教师演示程序的运行和回答教师的问题,老师对每位同学提问3次,时间大概5分钟。

4、每个人(或3人或4人合作完成,作为训练考核)都要交一份课程设计报告(3-5页左右),要有侧重点。

5、考核计分,总分为分课程成绩由小组答辩成绩和报告成绩组成,计算方法如下:(1)答辩成绩基础设计部分占60%和发挥部分占40%;(2)设计报告成绩根据格式和论述的完整性打分,分四个层次:优秀90分以上占20%,良好80-90分占30%,中60-70分占40%,差60一下分占10% ;(3)课程设计成绩=答辩成绩×50%+设计报告成绩×50%。

6、有效时间:从第周-第周,可利用上机时间向教师提交程序。

【学生】学生选课管理系统JAVA

【学生】学生选课管理系统JAVA

【关键字】学生1.设计的原始资料及依据查阅有关数据库设计、Java语言程序设计以及案例分析等资料,进一步熟悉面向对象程序设计基本理论以及基本思想。

本设计要求按照软件工程、数据库设计思想及设计步骤设计一个实用程序,并采用Java 开发该系统。

通过本设计可以加深对面向对象程序设计基本思想的理解,加强学生研发、调试程序的能力,培养学生分析、解决问题的能力,提高学生的科技写作能力。

2.设计的主要内容及要求(1)写出系统的需求分析。

(2)写出系统的数据库设计过程,包括概念结构设计、逻辑结构设计、物理结构设计。

(数据库应用程序管理系统类设计详细写,其它类设计可以略)(3)写出系统设计思路—工作原理、功能规划。

(4)详细设计—数据分析、算法思路、类设计、功能实现(包括程序流程图、主要代码及注释)、界面等。

(5)运行调试与分析讨论--给出运行屏幕截图,分析运行结果,有何改进等。

3.对设计说明书撰写内容、格式、字数的要求(1)学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。

课程设计说明书(论文)的结构及各部分内容要求参照《沈阳工程学院毕业设计(论文)撰写规范》执行。

应做到文理通顺,内容正确完整,书写工整,装订整齐。

(2)装订格式:封面、任务书、成绩评审意见表、中文摘要和关键词、目录、正文、结论、致谢、参考文献。

(3)课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。

4.设计完成后应提交成果的种类、数量、质量等方面的要求(1)每组提交一份课程设计报告。

(2)每组提交一份课程设计成品。

5.6.主要参考资料(文献)[1] 耿详义.JA V A2教程.北京:清华大学出版社,2004。

[2] 张仿彦.JA V A项目开发全程实录.北京:清华大学出版社,2007。

[3] 杨小虎.软件工程课程设计.浙江:浙江大学出版社,2007。

[4] 韩万江.软件工程案例教程.北京:机械工业出版社,2007。

C语言程序设计项目实训指导书

C语言程序设计项目实训指导书

C语言程序设计项目实训指导书指导教师:刘洁计算机技术系二〇一五年九月内容简介本实训项目为C语言程序项目开发实训,适用于计算机系各相关专业,在第一学年第一学期开设。

学生自己动手进行需求分析、项目设计、编码及测试,采用VC++6.0进行C程序的开发,以小组的形式完成。

通过综合实训培养学生综合运用所学的基础理论、基础知识、基本技能进行分析和解决实际问题的能力,加深对所学知识的理解和掌握,使学生受到C程序系统设计开发的综合训练,了解和掌握C应用程序开发基本模式,增强团队协作能力,提高职业技能和职业素质。

目录一.实训的目的与要求: (4)(一)实训目的 (4)(二)实训要求 (4)1、总体要求 (4)2、实训前的准备工作 (5)3、学生分组要求 (5)4、实训结果要求 (5)二.实训的前期准备(设备、用具与软件环境) (5)三.实训的题目 (6)四.实训的设计进度安排 (11)五.主要参考文献及资源 (11)一.实训的目的与要求:(一)实训目的课程设计环节是高职高专院校非常重要的一个教学环节,是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练。

通过课程设计,不仅能够使学生得到系统的技能训练,巩固和加强所学到的专业理论知识,而且能够培养学生工程意识、创新能力及团队精神等综合素质,培养学生的设计能力和解决实际问题的能力。

正如一句行话所说“C语言入门容易得道难”,对于多数学生来说,在学习了C语言之后,除了应付全国计算机等级考试之外,不知还有其他用途,对丰富的C函数所知甚少,因而对C语言兴趣不大。

因此,本课程设计环节从算法、数据结构、C语言丰富的函数以及程序设计等方面进行了精心考虑和组织,追求典型性、完整性、实用性和趣味性,希望不仅能够提高学生学习C语言的兴趣,更为开发程序打下坚实的基础。

(1) 加深对讲授内容的理解。

C语言程序设计课程中的一些语法规则和阶段性知识,只靠课堂讲授既枯燥无味又难以记忆,但它们都很重要,要想熟练掌握,必须经过大量实践加深对它们的理解与把握。

c程序设计学生选修课程系统

c程序设计学生选修课程系统

目录一、课程设计的题目和意义 (2)二、详细设计 (3)1、模块功能介绍 (3)2、程序流程图 (4)3、程序清单 (5)三、系统运行结果 (11)一、课程设计的题目和意义题目五:学生选修课程系统设计假定有n门课程,每门课程有:课程编号,课程名称,课程性质(公共课、必修课、选修课),总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。

试设计一选修课程系统,使之能提供以下功能:、系统以菜单方式工作1.2、课程信息录入功能(课程信息用文件保存)3、课程信息浏览功能4、课程信息查询功能查询方式按学分查询按课程性质查询5、学生选修课程 (可选项)通过课程设计的实践环节的教学,可以加深学生对课堂所学基础知识的掌握与理解,提高学生对所学内容的综合运用能力;同时也可以通过查询相关资料,培养学生自学能力、接受新知识的能力,提高学习兴趣;增强学生程序设计能力,掌握编程技巧,并可培养学生实际上机调试程序的能力。

“理论与实践”相结合,使学生得到很好的锻炼,为以后学习、工作打下坚实的基础。

二、详细设计1、模块功能介绍题目:学生选修课程系统设计:课程信息包括:课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等。

试设计一学生选课系统,使之能提供以下功能:选课信息录入功能(学生信息用文件保存)---输入选课信息浏览功能---输出查询功能---算法按学分查询按课程性质查询进入选课信息操作2、程序流程图学生选修课程系统设计课程信息录入查询、排序课程信息浏览课程信息的删除与修改统编学学按按计分时号性学质分查查询询3、程序清单#include<stdio.h>#include<stdlib.h>#include <string.h>struct course{int num;char name[20];char kind[10];int time;int ttime;int etime;int mark;int term;};struct student{int snum;int cnum;char cname[20];};/*课程信息录入*/void insert(){void main();FILE *fp;struct course c;int count;int i;if((fp=fopen(course.txt,a+))==NULL){printf(cannot open file\n);}printf(\请输入课程门数:\n);scanf(%d,&count);牰湩晴尨课程编号课程名称课程性质学分实验或上机学时授课学时总学时:\n); 开课学期for(i=0;i<count;i++){scanf(%d %s %s %d %d %d %d %d,&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark, &c.term);fprintf(fp,%d %s %s %d %d %d %d %d\n,c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term); }fclose(fp);main();}/*课程信息浏览*/void browser(){void main();FILE *fp;struct course c;int a;if((fp=fopen(course.txt,))==NULL){printf(\Cannot open course!\n);}牰湩晴尨课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n);for(;!feof(fp);){fscanf(fp,%d %s %s %d %d %d %d %d\n,&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.m ark,&c.term);printf(]_x0012_s%9s??ddd\n,c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}fclose(fp);printf(\1-返回主菜单;2-退出选课系统\n);scanf(%d,&a);if(a==1)main();elseexit(0);}/*课程信息查询*/void search(){void main();FILE *fp;struct course c;int score;char kind[10];int a;int b;printf(.按学分查询,2.按课程性质查询.\n);牰湩晴尨请选择查询方式,输入选项数字:);scanf(%d,&b);if(b==1){printf(\请输入您要查询的学分:\n);scanf(%d,&score);if((fp=fopen(course.txt,))==NULL){printf(\Cannot open course!\n);}牰湩晴尨课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n);for(;!feof(fp);){fscanf(fp,%d%s%s%d%d%d%d%d\n,&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark, &c.term);if(c.mark==score)printf(]_x0012_s%9s??ddd\n,c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}else if(b==2){printf(\请输入您要查询的课程性质:\n);scanf(%s,&kind);if((fp=fopen(course.txt,))==NULL){printf(\Cannot open course!\n);}牰湩晴尨课程编号课程名称课程性质总学时授课学时实验或上机学时学分开课学期:\n);for(;!feof(fp);){fscanf(fp,%d%s%s%d%d%d%d%d\n,&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.mark, &c.term);if(strcmp(c.kind,kind)==0)printf(]_x0012_s%9s??ddd\n,c.num,,c.kind,c.time,c.ttime,c.etime,c.mark,c.term);}}else{牰湩晴尨输入错误!);exit(1);}fclose(fp);printf(\1-返回主菜单;2-退出选课系统\n);scanf(%d,&a);if(a==1)main();else}/*统计选课情况*/void xuanke_information(){void main();int total=0;int a;FILE *fp;struct student s;if((fp=fopen(student.txt,))==NULL){printf(\Cannot open student!\n);}printf( 学号课程编号课程名称\n);for(;!feof(fp);){fscanf(fp,%d%d%s\n,&s.snum,&um,&ame);total++;printf(}?s\n,s.snum,um,ame);}printf(\选课学生总人数为:%d 人,total);fclose(fp);printf(\1-返回主菜单;2-退出选课系统\n);scanf(%d,&a);if(a==1)main();elseexit(0);}/*学生选修课程*/void xuan_ke(){void main();struct student s;struct course c;int a;printf(\请输入您的学号及您要选择的课程编号:);scanf(%d%d,&s.snum,&um);if((fp=fopen(course.txt,))==NULL){printf(\Cannot open course!\n);}for(;!feof(fp);){fscanf(fp,%d %s %s %d %d %d %d %d\n,&c.num,&,&c.kind,&c.time,&c.ttime,&c.etime,&c.m ark,&c.term);if(um==c.num)break;}fclose(fp);if((fp=fopen(student.txt,a+))==NULL){printf(\Cannot open student!\n);}fprintf(fp,%d %d %s\n,s.snum,um,);fclose(fp);printf(\1-返回主菜单;2-退出选课系统\n);scanf(%d,&a);if(a==1)main();elseexit(0);}*/主菜单/*void main(){int n,w=0;printf(***************************************************************************** ***\n);printf( 学生选课系统菜单\n);printf(***************************************************************************** ***\n);printf( 1-录入选课信息\n);printf( 2-浏览选课信息\n);printf( 3-查询选课信息\n);printf( 4-统计选课情况\n);printf( 5-进入选课操作\n);printf( 0-退出选课系统\n);printf(***************************************************************************** ***\n);printf( 请选择输入选项前数字:);scanf(%d,&n);do{if(n>5||n<0){printf(\输入错误!请重新输入!\n);scanf(%d,&n);}else w=1;}while(w==0);switch(n){case 1:insert();break;case 2:browser();break;case 3:search();break;case 4:xuanke_information();break;case 5:xuan_ke();break;case 0:exit(0);}return ;}4、系统运行结果主菜单功能选课信息录入选课信息查询选课学生统计进入选课操作。

选课系统设计报告

选课系统设计报告

目录第一章、摘要、关键词 (2)第二章、课程设计任务内容与思路 (3)第三章、程序功能划分及流程图 (3)第四章、程序运行结果 (5)第五章、设计心得 (9)第六章、小组分工 (10)第七章、参考文献 (11)第一章、摘要与关键词:1、摘要:近年来,随着学校和扩招规模的不断扩大,在校学生的数量也相应的增加,有关学生的各种信息量也成倍增加,面对着庞大的信息量,传统的人工方式管理会导致学生选课管理上的混乱,人力与物力过多浪费,学生管理费用的增加,从而使管理人员的负担过重,影响整个学生选课的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的学生选课系统,对学生以及课程进行集中统一的管理。

系统开发的总的设计目标是实现学生选课的系统化、规范化和自动化,实现对学生和课程的集中统一的管理。

2、关键词:选课系统、结构体、课程查询、跳转函数第二章、课程设计任务内容与思路 1、创建学生、课程结构体,课程查询功能 2、课程与学生信息录入,管理 3、学生选课功能的实现 第三章、程序功能划分及流程图 1、主函数2、选课函数开始输入要选择的课程的编号flag++Y N结束courses[j].c_num==nj=0;j<i;(i 初始化为0)flag==0没有找到对应课程YN选课成功j++开始start ()堆栈菜单、功能选项使用case 条件语句跳转函数goto 根据选择进入各函数3、查询课程函数开始输入要查询的课程的编号flag++Y N结束courses[j].c_num==nj=0;j<i-1;(i 初始化为0)flag==0没有找到对应课程YN打印相应的课程j++4、课程增加与删除开始输入要增加的课程的编号printf (“编号已使用过”)YN结束courses[j].c_num==nj=0;j<i-1;(i 初始化为0)j++frwrite 写入课程信息到文件开始输入要删除的课程的编号nYN结束courses[j].c_num==nj=0;j<i-1;(i 初始化为0)j++不存在相应课程k=0;k<j;frwrite 写入课程信息到文件k++k=j+1;k<i-1;k++第四章、程序运行结果 1、主界面2、录入课程信息3、课程信息管理4、录入学生信息5、学生信息管理6、学生选课7、系统信息查看及存储8、退出系统第五章、设计心得由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。

选课系统详细设计-数据库设计

选课系统详细设计-数据库设计

数据库原理课程设计——某高校学生选课系统课程:数据库原理学院:信息科学与技术学院专业:计算机科学与技术姓名:吴永明 2010508037赵涛 2010508002指导老师:于宝华日期: 2013年1月16日目录第一章引言 (1)1.1编写目的 (1)1.2背景 (1)1.3参考资料 (1)第二章可行性分析 (2)2.1技术可行性 (2)2.2管理可行性 (2)2.3操作可行性 (2)2.4经济可行性 (2)第三章需求分析 (3)3.1系统总体的功能需求 (3)3.2系统结构设计 (4)3.2.1主要功能模块介绍 (4)3.3系统详细设计 (5)3.3.1学生系统模块 (5)3.3.2教师系统模块 (7)3.3.3管理系统模块 (8)第四章系统UML建模 (9)4.1系统的流程图及类图 (9)4.2系统的时序图 (12)4.2.1管理员工作时序图 (12)4.2.2学生选课、退课时序图 (13)4.2.3学生选课、退课时序图 (14)4.2.4教师授课时序图 (15)第五章系统运行环境 (16)5.1开发环境 (16)5.2运行环境 (16)第一章引言学生选课系统是一个学校不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以它应该能够为用户提供充足的信息和快捷的查询手段。

相对传统的人工管理方式,这种管理方式存在着许多优点,如:效率高、保密性强,对与大量的文件和数据的查找、更新和维护都有很大的方便。

作为计算机应用的一部分,使用计算机对选课信息进行管理,有着手工无法比拟的有点。

1.1编写目的1.掌握SQL Server大型的数据库的使用方法。

2.学会使用某种开发工具。

3.培养相互合作的精神。

1.2背景当代社会,高科技的飞跃发展,计算机的大量普及,使得人们生活节奏越来越快。

因此对教育行业的多元信息进行有效的管理工作,也成为教育行业中的重中之重。

目前,学校工作繁杂、资料众多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。

学生选课管理系统设计

学生选课管理系统设计

学生选课管理系统设计课程设计选题考虑到学生选课这个时间与我们大学生活是如此贴近,兵器额在我们平时选课时也经常出现一些不足,所以我选择“学生选课管理系统”这个课题。

除了他比较贴近生活之外,这个项目也会让我对数据库有更新一步的认识与巩固,对身边的各种选课系统有一个更直观的了解。

项目背景随着科技的发展,高科技技术的不断开发,数据的处理在我们的生活中尤为重要。

教育的不断改革和素质教育的不断加强,学分制的实施,选修课在一个学生的培养计划中的比重越来越大。

现在我们选课以及成绩查询都是在网上进行的,这个对于学生来说更加的自主、便捷。

但是由于一般高校的学生比较多,因此就带来的诸多如信息管理等问题。

鉴于需要将学生信息、选课信息等信息数字化以便于维护管理,我们便想到了利用数据库更加准确的解决此类问题。

所以我决定设计一个适用于高校学生选课系统一共参考并且更进一步的了解高校选课的流程以及数据的保存。

课设报告编写目的无纸化办公的模式现在已经普遍存在,信息自动化处理以及网络式信息交互方式已经普及并且被人们广泛应用,计算机管理学生信息在各大高校都在积极进行,也是高校管理工作的重要内容之一。

网上选课与传统的选课方式相比更加的智能便捷并且节约资源,也增加了学生学习过程中的自主权。

学生选课系统无疑是一个比较现代化的教学技术,并且受到人们的重视,是学校管理中不可获取额的一部分。

有了学生选课可系统不仅方便了学生、教师,更重要的是学校在管理数据方面会更加的方便以及准确。

学生选课系统使选课管理工作规范化、系统化、程序化,避免数据丢失,提高信息处理的速度,能够准确及时的查询及更改学生的选课情况。

编写课设报告的目的就在于将学生选课管理系统的设计与实现以及管理维护等工作更加有条理的呈现出来,对开发设计学生选课系统的过程进行记录并且概括,帮助更好的理解、操作、运用学生选课系统。

课设报告的组织课设报告从学生选课系统的需求分析到数据库的设计,包括逻辑设计、物理设计等,在倒最后的实现与维护一一呈现出来,包括最初的设计理念,数据库具体觉得建立以及数据的输入、管理及更新。

学生选课管理信息系统课程设计信息管理系统课程设计

学生选课管理信息系统课程设计信息管理系统课程设计

管理信息系统课程设计学生选课管理信息系统课程设计题目机电工程学院教学院交通运输专业08级交通运输班班级姓名指导教师2010 年 6 月 18 日2010,2011学年第二学期管理信息系统课程设计课程设计任务书设计名称: 管理信息系统课程设计班级: 08交通运输地点: K1-CAD3 一、课程设计目的《管理信息系统》课程的学习,不仅需要理论上的深入探讨,而且需要通过实践上机,自己开发一个管理信息系统,才能真正理解书本知识,牢固掌握课堂教学内容。

因此,本课程设计的目的就是要通过一个实际的管理信息系统的分析设计和开发,提高学生应用所学知识分析问题,解决问题和实际动手的能力,更加熟练地掌握管理信息系统开发的基本方法和工作步骤,对管理信息系统开发实践有进一步体会。

要求:(1) 严格按照课程设计规定时间上机,不得无故缺席和调换;(2) 独立完成课程设计的所有工作,保质保量做完任务书规定的分析、设计任务;(3) 课程设计期间,在规定的上机时间外必须广泛查阅参考书籍,编写好各种程序,以充分利用有限的上机时间。

二、课程设计内容(含技术指标)课题一:库房信息管理系统的设计。

库房管理既是日常处理业务,也是物资管理的基础工作。

因此,做好库房信息管理工作意义重大。

要求完成如下功能:(1)能输入入库单、出库单,在输入过程中,能自动显示其名称、规格、单价,并自动计算金额,有出错提示。

(2)屏幕可显示物品明细台帐。

(3)能输出物品的超储或欠储报警。

(4)能显示目前的库存情况。

课题二:学校选课系统的设计随着学校的学生越来越多、开设的课程越来越丰富和多元化的情况下,考虑建立一个方便、快速、公平和符合学分制管理制度的选课平台和应用系统就显得至关重要了。

学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。

它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。

要求完成如下功能:(1)学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。

学生选课管理系统设计与实现

学生选课管理系统设计与实现

摘要“选课”是现在高校行政管理工作中一项很重要的课题。

而且是每个学期都必须要面对的问题。

选课工作做不好,学生不知道自己将要学习的课程,老师也不知道自己将要讲授的课程,教务处的排课计划、教室安排等其他调度工作也无从做起。

因此,如何解决高校教务管理中的选课工作便成为了如今各大高校面临的很实际的问题。

随着近几年高校的持续扩招,学生人数逐年增加。

为了满足广大学生的求学需要,各个高校的师资力量、硬件配置也随之增强。

这样一来,日常行政部门的工作也就越来越繁重,这一点在选课这块显得尤为突出。

而传统的手工操作,即费时又费力,而且容易出错,工作效率较低。

因此,拥有一套实用、高效、完善的在线选课系统就显得尤为重要,它可以提升高校的教育质量和教学管理质量,提高工作效率,降低行政成本。

大学期间总会有很多公共选修课,以往的选课方法是随堂报名。

这种方法虽然直接,但是造成选课的盲目性,有些课堂选课时人满为患,有些课堂无人选课。

原因是传统的选课方法没有预见性,大家没有事先协调好。

并且学生选课存在这样的特点:公选课较多,学生人数众多,学生可根据自己的专业及兴趣选择公选课程进行学习,而且学生对课程的要求有较大差异。

使用了网上选课系统以后,可以在开课前就在网上选课,每个学生的课程在开课前就确定好,学生通过本系统可以了解课题相关信息,进行自主选题,能够满足不同学生对不同题目的不同要求,有利于发挥学生的长处,而且能够充分利用学校的各类教学资源。

使用本系统有三个角色,即管理员、学生和教师用户。

管理员的权限最高,包括设置系统登陆信息, 用户基本信息、选课信息的录入、查看、修改、删除等,同时还具有查询各个模块的功能。

老师和学生可以实现基本信息查询和进行选课的相关操作,如添加选课信息,退选等。

关键词:选课模块高效管理目录第一章系统开发环境 (1)1.1开发工具 (1)1.2使用环境 (1)第二章系统需求分析 (2)2.1需求分析 (2)2.2可行性分析 (2)第三章系统总体设计 (3)3.1系统功能模块的设计 (4)3.2数据库设计 (4)第四章系统详细设计和实现 (6)4.1登陆页面的实现 (7)4.2学生选课功能 (8)4.3学生查询已选课程信息功能 (9)4.4学生个人信息修改功能 (9)第五章系统测试 (11)结论12第一章系统开发环境1.1开发工具硬件环境:CPU的主频在500MHZ以上,内存在128MB以上操作系统:Windows7数据库:Access编程语言及工具: JAVA使用系统:Windows 操作系统服务器:Microsoft Office,jdk1.61.2使用环境服务起端的最低配置是由建立站点所需要的软件来决定的,在最底配置的情况下,服务器的性能往往不进人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C++程序设计》课程设计报告学生选修课程系统设计一、需求分析计算机技术作为信息化的核心技术受到全社会的普遍重视。

如今,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。

深入掌握计算机专业知识、具有良好系统设计与分析能力的计算机高级专业人才在社会上深受欢迎。

而系统设计与分析能力的培养需要通过实践训练才能获得。

通过计算机对一些系统的管理已经成为一种系统、便捷的方式。

本课程设计就是用C++设计学生选课系统的问题,实现对学生选课的管理操作。

本课程设计的目的是设计一个学生选修课程系统的程序,用来实现对学生成绩的管理,其中包括学生信息的文件读入、添加、查询、保存、删除以及相应的课程信息管理。

程序设计了两个类,其中一个包含学生的学号、姓名、选课数以及选修总学分,另一个则包含了课程的信息,包括课程编号、课程名称、课程性质、课时等等。

然后通过数组、向量、集合等来实现学生选课信息的记录、保存,删除等相关操作从而达到管理学生选课的。

二、设计要求假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验学时、学分、开课学期等信息。

学生可以按要求(如每个学生总学分不得少于20、没学期不能超过3门课程,每门课程不得超过50个人,但不能少于10否则该课程不开设)自由选课。

使之能提供一些功能:1)课程信息录入功能2)课程信息浏览功能3)查询功能:(按课程性质查询、按课程学分查询,查询每个学生的选修信息、查询每门课程的选修信息等)4)学生选修课程5)修改课程或选课信息(根据课程编号或名称修改课程信息、根据学生姓名修改选课信息);6)删除课程或选课信息(根据课程编号或名称删除课程信息、根据学生姓名删除选课信息);三、总体设计我们设计一个程序对学生选课信息进行保存,对学生的选课信息进行可执行操作,如添加、删除、查询等等。

该程序包括以下功能模块:1)学生信息添加模块:能够输入学生基本信息并保存到文件中。

2)查看模块:显示所有可选修课程的信息。

3)查询:显示所有符合要求的课程信息。

4)选课:显示学生已选课程信息和选课,删除已选课程信息。

5)退出系统。

为了完善系统,我们还添加了一个登录界面。

考虑到添加课程信息的功能只适合老师,因此我们设置了添加课程的权限设置(必须输入密码)。

我们建立了两个文件用来保存学生信息和课程信息。

(student.txt和subject.txt)该系统功能说明:1)系统以菜单方式工作2)课程信息录入功能(课程信息用文件保存)--输入3)课程信息浏览功能--输出4)查询功能:(至少一种查询方式)--算法5)按学分查询6)按课程性质查询7)学生选修课程(可选项)四、详细设计该成序包含的主要函数功能说明:void XuanKeMenu(); // 选课主菜单函数int find(int no);void Save();void DL(); //登录界面的函数void MainMenu();void output();void Load(); //载入文件信息的函数void Load2();void quit();void add();void ChaXun();void chaxun1();void chaxun2();void xuanke();void tq1(); //提取选课编号的函数void tq2();void AddStuInfo(); //添加学生信息的函数void SaveStuInfo(); //保存学生信息到文件中void del(); //删除已选课程信息的函数五、程序代码#include<iostream>#include<vector>#include<set>#include<string>#include<conio.h>#define N 10using namespace std;int F;class subject //建立一个课程类,保存课程信息{public:int num;char name[30];char cha[20];int Time,time1,time2,xf;char kkxq[20];}S;class student //建立一个学生类,保存学生信息{public:char nam[10];char num[15];int zxf;int cnt;}Stu;vector <subject> v; //声明一个指向课程信息的向量vector <student> z; //声明一个指向学生信息的向量set <int> T; //建立一个集合vector <set<int> > TT; //建立一个向量集合set <int> ::iterator it; //建立一个迭代器void XuanKeMenu(); //声明一个选课主菜单函数int find(int no);void Save();void DL(); //声明一个登录界面的函数void MainMenu();void output();void Load(); //声明载入文件信息的函数void Load2();void quit();void add();void ChaXun();void chaxun1();void chaxun2();void xuanke();void tq1(); //声明提取信息的函数void tq2();void AddStuInfo(); //声明添加学生信息的函数void del();void AddStuInfo(){FILE *fp;fp=fopen("d:\\student.txt","a");fseek(fp,0,2); //打开学生信息文件system("cls");cout<<endl<<endl<<endl<<endl<<endl;cout<<"\t\t***************************************************"<<endl;cout<<"\t\t***************** 学生选课系统 ******************"<<endl;cout<<"\t\t***************************************************"<<endl<<endl ;cout<<"\t\t\t请输入学号:";cin>>Stu.num;cout<<"\t\t\t请输入姓名:";cin>>Stu.nam;t=Stu.zxf=0;fprintf(fp,"%s %s %d %d\n",Stu.num,Stu.nam,t,Stu.zxf); //存入文件z.push_back (Stu); T.clear(); TT.push_back(T); //用向量指向学生信息fclose(fp);}void add(){string password1,password2;char password[20];int _cnt=0;FILE *fp;fp=fopen("d:\\password","r");fscanf(fp,"%s",password); password2=password;fclose(fp);system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入密码:"; //对添加课程进行权限设置char ch;while(ch=getch()){if(ch==13) break;if(ch != 8) { putchar('*'); password1 += ch;_cnt++;}else{if(_cnt){password1.erase(password1.end()-1);_cnt--;system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入密码:";int x=_cnt;while(x--)cout<<"*";}}}if(password1 != password2){ cout<<"\n\n\t\t\t 密码错误";getch(); MainMenu(); }A: system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t\t\t请输入课程编号:";cin>>S.num;cout<<"\t\t\t请输入课程名称:";cin>>;cout<<"\t\t\t请输入课程性质:";cin>>S.cha;cout<<"\t\t\t请输入总课时:";cin>>S.Time;cout<<"\t\t\t请输入授课学时";cin>>S.time1;cout<<"\t\t\t请输入上机学时(实验学时):";cin>>S.time2;cout<<"\t\t\t请输入学分:";cin>>S.xf;cout<<"\t\t\t请输入开课学期:";cin>>S.kkxq;v.push_back(S);Save();cout<<endl<<"\t 是否继续添加[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') goto A;else MainMenu();}void Save() //保存已选的课程信息{FILE *fp;fp=fopen("d:\\subject.txt","w");for(int i=0;i<v.size();i++)fprintf(fp,"%d %s %s %d %d %d %d %s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);fclose(fp);}void SaveStuInfo() //保存学生信息{FILE *fp;fp=fopen("d:\\student.txt","w");for(int i=0;i<z.size();i++){fprintf(fp,"%s %s %d %d",z[i].num,z[i].nam,z[i].cnt,z[i].zxf);for(it=TT[i].begin(); it!=TT[i].end(); it++)fprintf(fp, " %d",*it);fprintf(fp,"\n");}fclose(fp);}void quit() //退出函数{exit(1);}void ChaXun() //查询主菜单函数{system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t\t\t\t请选择查询方式:\n\t\t\t\t[1]学分查询\n\t\t\t\t[2]课程性质查询\n\t\t\t\t[0]返回主菜单\n\n";cout<<"\t\t\t\t请选择[0-2]:";int choice;cin>>choice;if(choice>=0&&choice<3){if(choice==1) chaxun1();if(choice==2) chaxun2();if(choice==0) MainMenu();}else ChaXun();}void chaxun1() //按学分方式查询{system("cls");int cnt=0;cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入学分:";int key;cin>>key;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0;i<v.size();i++){if(cnt&&cnt%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}if(v[i].xf==key){cnt++;printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kk xq);}}cout<<endl<<"\t 是否继续查询[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') chaxun1();else MainMenu();}void chaxun2() //按课程性质查询{system("cls");int cnt=0;cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入课程性质:";char key[20];cin>>key;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0;i<v.size();i++){if(cnt&&cnt%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}if(!strcmp(v[i].cha,key)){cnt++;printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kk xq);}}cout<<endl<<"\t 是否继续查询[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') chaxun2();else MainMenu();}void tq1(char *str) //提取出选课时输入的课程编号{string t="";int i=0,cont=0;while(str[i]){if(isalnum(str[i])) t += str[i];else{int tmp=atoi(t.c_str());if(TT[F].find(tmp)!=TT[F].end()) {t="";i++; continue;}z[F].zxf += v[find(tmp)].xf;TT[F].insert(tmp); t="";cont++;}i++;//}int tmp=atoi(t.c_str());//cout<<t<<" ";system("pause");if(TT[F].find(tmp)==TT[F].end()){cont++;TT[F].insert(tmp);z[F].zxf += v[find(tmp)].xf;}z[F].cnt += cont;}void xuanke() //选课函数:执行选课功能{char str[100];system("cls");cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0; i<v.size(); i++){if(i&&i%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<endl<<"\t 请输入所选课程编号:"; gets(str);if(strcmp(str,"")) tq1(str);//,system("cls");cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kk xq);}cout<<endl<<"\t========================================================";cout<<endl<<"\t 请输入所选课程编号:"; gets(str);if(strcmp(str,"")) tq1(str);SaveStuInfo();if(z[F].zxf<60){cout<<"\t\t你所选课程的总学分少于60,是否继续选课![Y/N]";string x; cin>>x;if(x[0]=='y'||x[0]=='Y') xuanke();else XuanKeMenu();}else XuanKeMenu();}int find(int no) //寻找函数,找到想要的课程编号{for(int i=0;i<v.size();i++)if(v[i].num==no) return i;}void display(int i){printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kk xq);}void XuanKeMenu() //选课菜单函数{system("cls");int choice,l=0;cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 姓名:"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选 "<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(it=TT[F].begin();it!=TT[F].end();it++,l++){if(l&&l%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t [1 ]开始选课 [2] 删除已选课程 [3] 下一页 [0] 返回请选择[0/3]:"; cin>>choice; getchar();if(choice==1) xuanke();else if(choice==2) del();else if(choice==0) MainMenu();else if(choice==3) ;else XuanKeMenu();system("cls");cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 姓名:"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选 "<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}display(find(*it));}cout<<endl<<"\t========================================================"<< endl;cout<<"\t [1] 开始选课 [2] 删除已选课程 [0] 返回请选择[0/2]:"; cin>>choice; getchar();if(choice==1) xuanke();else if(choice==2) del();else if(choice==0) MainMenu();else XuanKeMenu();}void tq2(char *str) //提取函数:提前删除时输入的课程编号{string t="";int i=0,cont=0;while(str[i]){if(isalnum(str[i])) t += str[i];else{int tmp=atoi(t.c_str());set<int>::iterator _t=TT[F].find(tmp);if(_t!=TT[F].end()){t="";TT[F].erase(_t);z[F].cnt--;z[F].zxf-=v[find(tmp)].xf;}}i++;}int tmp=atoi(t.c_str());set<int>::iterator _t=TT[F].find(tmp);if(_t!=TT[F].end()){t="";TT[F].erase(_t);z[F].cnt--;z[F].zxf-=v[find(tmp)].xf;}}void del() //删除已选课程信息{int m,l=0,k=0;char str[100];system("cls");cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 姓名:"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选 "<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(it=TT[F].begin();it!=TT[F].end();it++,l++){if(l&&l%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t\t\t\t请输入要删除的课程的编号:";gets(str);if(strcmp(str,"")) tq2(str);system("cls");cout<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 姓名:"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选 "<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}display(find(*it));}cout<<"\t\t\t\t请输入要删除的课程的编号:";gets(str);if(strcmp(str,"")) tq2(str);SaveStuInfo();XuanKeMenu();}void Load() //载入函数:载入课程信息(文件此前已建立){FILE *fp1;bool f=1;fp1=fopen("d:\\subject.txt","r");if(fp1==NULL) f=0;while(f&&!feof(fp1)){fscanf(fp1,"%d%s%s%d%d%d%d%s",&S.num,,S.cha,&S.Time,&S.time1,&S.time2 ,&S.xf,S.kkxq);v.push_back(S);}fclose(fp1);}void Load2() //载入学生信息(文件此前已建立){FILE *fp;fp=fopen("d:\\student.txt","r");while(!feof(fp)){int x;fscanf(fp,"%s%s%d%d",Stu.num,&Stu.nam,&t,&Stu.zxf);z.push_back(Stu); T.clear();for(int j=0;j<t;j++)fscanf(fp,"%d",&x),T.insert(x);TT.push_back(T);}fclose(fp);}void output() //显示函数:将课程信息输出到屏幕{system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0; i<v.size(); i++){if(i&&i%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程 "<<"课程"<<" "<<" 总 "<<" "<<"授课"<<" "<<" 实验或 "<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称 "<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kk xq);。

相关文档
最新文档