C++课程设计课程报告(2012--2013年度第二学期)学生学籍管理系统程序设计专业计算机科学与技术学生姓名班级学号指导教师完成日期2013年7月5日学生学籍管理系统程序设计目录1概述.........................................................11.1课程设计目的..................................................11.2课程设计内容..................................................12系统总体设计....................................................22.1系统目标......................................................22.2主体功能......................................................22.3系统流程......................................................32.4开发环境......................................................53系统详细设计....................................................53.1系统主界面设计................................................53.2输入模块设计..................................................63.3输出模块设计..................................................63.4查询模块设计..................................................63.5更改模块设计..................................................63.6统计模块设计..................................................63.7保存退出模块设计..............................................64测试............................................................74.1测试方案......................................................74.2测试结果......................................................75小结...........................................................11参考文献.........................................................13附录..........................................................14附录1源程序清单.................................................14附录1.1主函数源程序............................................14附录1.2输入模块源程序..........................................15附录1.3查询模块源程序..........................................17附录1.4删除模块源程序.........................................18附录1.5添加模块源程序.........................................19附录1.6排序模块源程序.........................................20C++课程设计报告(2013)1学生学籍管理系统程序的设计与实现1概述1.1课程设计目的1、巩固并加深学生对C++语言程序设计知识的理解;2、培养学生面向对象的程序设计思想,使学生认识面向过程和面向对象两种设计方法的区别;3、进一步掌握和应用VC++6.0集成开发环境;4、提高运用C++语言解决实际问题的能力;5、初步掌握开发小型实用软件的基本方法,能独立设计、实现具有实际功能的小系统;6、掌握书写程序设计开发文档的能力(书写课程设计实验报告)。1.2课程设计要求1、根据分组情况对规定的课程设计题目要求进行分析、设计;2、利用VisualC++独立编写程序代码,并调试程序使其能正确运行;3、源程序要有适当的注释,使程序容易阅读;4、设计完成的软件要便于操作和使用,采用模块化设计方法,可以根据实际情况选择SDI、MDI或Dialog-Based方式实现系统;5、要求系统的用户界面尽量简单、合理,鼓励学生自动增加新功能模块(视情况可另行加分);6、完成并提交课程设计报告,具体要求见相关说明文档。1.3课程设计内容课题名称:学籍管理系统说明:学生学籍记录以下信息:姓名、家庭住址、学号,成绩、性别等。可以用能表示学生学籍信息的类存储数据。要求:1)具备对学籍的管理功能(添加、删除、排序)2)具备按姓名、学号查询学生学籍的功能。3)给定某个班级的班号,显示该班所有学生的作业完成情况;4)给定某位学生的学号,修改该学生的作业完成信息;5)给定某位学生的学号,删除该学生的信息;6)提供一些统计各类信息的功能。学生学籍管理系统程序设计22系统总体设计2.1系统目标(1)根据查询条件实现学生的作业的完成情况查询(2)学生的作业完成信息的增加、删除、修改(3)方便各任课教师记录,统计所带班学生的在作业完成情况,提高工作效率,减轻负担;总结经验,提高教学质量(4)为教务处管理人员提供各学期、各班级学生的作业完成情况,以作为其进行作业分数的汇总,分析和总结评比的依据。2.2主体功能据需求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。把这些模块结合起来组成一个整体。逐一实现各个功能。图2-1系统功能模块图学生学籍管理系统输入模块输出模块更改模块查询模块统计模块保存退出排序学生成绩退出模块按姓名查询按学号查询退出模块添加学生学籍信息删除学生学籍信息修改学生学籍信息退出模块C++课程设计报告(2013)32.3系统流程学生学籍管理系统程序设计4图3-1数据的录入:如录入学生的基本信息开始输入学生a学籍信息判断学生a学籍信息输入模块输出模块查询模块更新模块排序模块退出模块输要更新的值输要查询的值输要排序的值判断a的值判断a的值判断a的值分数排序退出模块修改模块删除模块退出模块添加模块按学号查询按姓名查询退出模块C++课程设计报告(2013)5数据的修改:如修改指定学号、或者指定姓名的学生信息,数据的插入:插入某个学生信息;数据的查询:如按学号查询、按姓名查询等;数据的删除:如删除指定学号、或者指定姓名的学生;列出不及格学生清单(学号、姓名、不及格的课程和成绩)。用文件把数据保存起来2.4开发环境系统开发环境:MicrosoftVisualC++6.0系统开发语言:C语言3系统详细设计3.1系统主界面设计由主函数界面分成留个子模块图4-1主函数界面输入学生信息修改学生学籍信息删除学生学籍信息查询学生学籍信息排序学生成绩保存退出学生学籍管理系统程序设计63.2输入模块设计数据的录入:录入学生的基本信息,如姓名、学号3.3输出模块设计两部分:1.按总分名次输出2.按学号顺序输出3.4查询模块设计查询信息:本功能实现是调用structstu*findnum(void)函数查找该条信息的地址,然后再采用for循环进行信息的输出,本功能的实现比较简单,难点在于对函数的调用的灵活运用。3.5更改模块设计信息的修改:本系统采用的是按学号查找信息,系统采用一个由判断语句和循环语句构成的查询函数structstu*findnum(void)来提供信息存储地址;再按照地址来进行修改,其中采用switch语句和循环语句来控制使系统能够提供选择修改的功能。在这一功能的设计中,作者感到课程信息的修改中的添加课程信息功能是一个难点,解决方案是按插入方案来进行设计。增加信息:本系统采用的是按学号顺序来进行插入的,在这一功能的设计中,首先在开辟一个结构体空间将插入学生的信息存储于其中,在采用判断语句和循环语句来查找该条信息应该插入位置的地址,将上一结点的下行指针指向本结点,再将该节点的下行指针指向下一个结点从而达到插入信息的目的。在这一功能的设计中作者感到插入的具体算法是个难点,本系统采用的教材书本上的方法。删除信息:系统采用按学号删除的方案,在这一功能的设计中我没有采用直接调用structstu*findnum(void)函数,而是又重写查找地址程序,这是出于考虑系统功能的更好实现而采用的举措。具体删除算法采用该节点上一个结点的下行指针直接指向该结点下一个结点从而达到删除该结点的目的。在此功能的设计中,本作者感到难点不在于算法而在于思维设计的是否缜密。3.6统计模块设计排序学生成绩:通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果。首先要读文件。3.7保存退出模块设计每次执行完修改信息包括添加、录入、修改、删除等都需要保存信息。当然在每个修改函数最后都需要调用一下保存函数。C++课程设计报告(2013)74测试4.1测试方案测试方案一:登录学生作业完成管理系统测试方案二:录入学生信息测试方案三:显示学生信息测试方案四:查找学生作业完成情况的信息测试方案五:修改学生作业完成情况的信息测试方案六:删除学生信息测试结果七:添加学生信息测试结果八:保存退出4.2测试结果测试结果一:图6-1学生学籍管理系统程序设计8测试结果二:测试方案三:图7-1测试结果三:图7-2C++课程设计报告(2013)9测试结果四:图8-1测试结果五:图8-2学生学籍管理系统程序设计10测试结果六:图9-1测试结果七:图9-2C++课程设计报告(2013)11测试结果八:图10-15小结为期两周的课程设计结束了,在老师和同学的帮助下,我基本完成系统的设计。我按照系统工程软件设计的要求,从需求分析,概念设计,总体设计,详细设计,系统测试等各个步骤,分步完成系统的各项任务,实现了系统中的学生作业完成情况的查询,学生信息更新,学生信息添加等模块的功能。在这两个星期里我收获如下:1、巩固和加深了对C++的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。根据我在课程设计中遇到的问题,我将在以后的学习当中注意以下几点:1、认真上好专业实验课,多在实践中锻炼自己。2、写程序的过程中要考虑周到,严密。3、在做设计的时候要有信心,有耐心,切勿浮躁。学生学籍管理系统程序设计124、认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。5、在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。C++课程设计报告(2013)13参考文献[1]谭浩强.C++程序设计(第二版)[M].北京:清华大学出版社,2012.[2]谭浩强.C++程序设计题解与上机指导(第二版)[M].北京:清华大学出版社,2012.J,学生学籍管理系统程序设计14附录附录1源程序清单附录1.1主函