您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 学生信息管理系统(C--)
1信息科学与工程学院C++课程设计报告起止日期:2013年06月17日至2013年07月05日学生姓名班级电气信息类学号指导教师2013年07月03号目录1引言…………………………………………………………………………………….321.1课题背景及意义……………………………………31.2课程设计的目的及内容……………………………42系统需求分析…………………………………………...52.1功能需求分析……………………………………..52.2系统总体结构设计…………………………………53详细设计…………………………………………………63.1数据结构设计……………………………………..63.2系统函数的组成、功能、参数说明、相互调用关系84设计测试流程……………………………………………105课程设计总结……………………………………………17参考文献………………………………………………….17附录………………………………………………………..171引言为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理3效率。使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名包括总分排名和各个科目的排名,学生可以更具自己的个人信息进行成绩查询,查询结果包括各个科目的分数、总分和平均分。通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。1.1课题背景及意义一直以来人们使用传统的人工方式管理学生成绩,在计算机尚未在学校广泛使用之前,学生成绩管理主要依靠手工。一个最典型的手工处理过程就是:当考试完后,老师就要把学生成绩登记到文档中,当老师或学生要查询成绩的时候要一个一个去找,总分、平均分都需要一个一个累加起来算,很麻烦,不过最麻烦的还是排名,不能一目了然。以上所描述的手工过程的不足之处显而易见,首先处理学生成绩的效率很低,其次处理能力比较低,一段时间内,所能服务的读者人数是有限的。利用计算机来处理这些流程无疑会极大程度地提高效率和处理能力。我们很清晰的看到自己的各个科目成绩和每个科目的排名和总分排名以及所有学生的成绩分布,而且还是零失误,所有的都是一目了然。极大的方便了学生和老师。为提高成绩管理效率,管理人员的工作负担,有必要开发一个小型成绩管理系统来对学生成绩实施有效管理。1.2课程设计的目的及内容目的:1、使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法;42、使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力;3、使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。内容:(一)小型学生成绩管理系统1、需要处理的基础数据学生基本信息:如班级、学号、姓名、性别、年龄、宿舍号码、电话号码等。学生选修课程的基本信息:课程编号、课程名称、考试成绩、平时成绩、综合成绩、学分、重修否等。2、系统的基本功能数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;数据的修改:如修改指定学号、或者指定姓名的学生信息,或者修改其选修课程信息;数据的插入:插入某个学生信息;数据的查询:如按学号查询、按姓名查询等;数据的删除:如删除指定学号、或者指定姓名的学生及其选修课程信息;平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;列出不及格学生清单(学号、姓名、不及格的课程和成绩)。考虑用文件把数据保存起来(可选)。52系统需求分析2.1功能需求分析0)录入数据:将学生的信息利用函数写入对象数组内。1)增加人员:增加学生,将学生的信息利用函数写入对象数组内。2)删除人员:删除学生信息和成绩。3)修改数据:修改学生成绩。4)按学号查询:根据学生学号,查询学生信息。5)按姓名查询:根据学生姓名,查询学生信息。6)输出所有学生成绩。7)按总平均分排名:按照总平均分从高到低排序。8)列出不及格学生:按照总平均分列出不及格学生信息。2.2系统总体结构设计对学生成绩进行管理的系统,主要划分为以下三个模块:1)操作:包括录入数据、增加人员、删除人员、修改数据。2)查询:包括按总成绩查询、按姓名查询、输出所有学生成绩。3)排名:按总分排名、按语文成绩排名、按数学成绩排名、按英语成绩排名根据需求分析的结果,总体结构如图2-1所示。学生成绩管理系统6图2.1系统总体结构3详细设计3.1数据结构设计(1)类的设计表3-1Stu类成员列表Stu类charname[20]charcla[20]intnumbercharsexintageinttelecharclass1[100]charclass2[100]charclass3[100]doubleC11doubleC12doubleC21doubleC22操作查询排序录入数据增加人员删除人员修改数据按学号查询按姓名查询输出全部数据按平均分排名列出不及格学生7doubleC31doubleC32doubleC1doubleC2doubleC3doublesumdoubleaverdoublegetsum();doublegetaver();(2)系统包含的类库#includeiostream输入输出流#includestringString类(2)各个变量的定义和作用charname[20];//姓名charcla[20];//班级intnumber;//学号charsex[20];//性别intage;//年龄inttele;//电话charclass1[100];//课程为字符串charclass2[100];charclass3[100];doubleC11;//C12的平时成绩doubleC12;//C11的考试成绩doubleC21;doubleC22;doubleC31;doubleC32;doubleC1;//为这门课的综合成绩doubleC2;doubleC3;doublesum;//总成绩doubleaver;//平均成绩Stu*s[50];对象数组记录学生成绩83.2系统函数的组成、功能、参数说明、相互调用关系主函数main()调用菜单操作函数handle_menu()实现菜单的输出和操作,调用index()打印首页。以及删除动态对象。菜单操作函数voidhandle_menu()这是一个无参的函数,通过调用菜单函数menu()实现菜单的输出,利用do-while()语句和switch()语句实现各函数的调用,系统根据输入的字符选项来调用相应的函数,进行相应的操作。菜单函数voidmenu()这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的十一大功能,根据每个功能前面的序号进行选择。打印首页函数voidindex()这是一个无参函数,主要功能是打印本系统的相关信息。默认构造函数Stu::Stu()这是Stu类中的一个默认构造函数,实现对象的初始化。。求总分函数doubleStu::getsum()这是一个无参函数,主要功能是将每个对象的语文、数学、英语三科成绩求和,返回总分sum。求平均分函数doubleStu::getaver()这是一个无参函数,调用doubleStu::getsum()平均分,返回平均分aver操作0数据录入函数voidoperate0()这是一个无参函数,是Stu类的一个友元函数,该函数可将用户输入的学生的信息在每一个对象数组内,输入完成后会提示用户是否要继续录入。操作1增加人员函数voidoperate1()这是一个无参函数,是Stu类的一个友元函数,该函数可以增加学生人数,提9示用户输入的学生的信息,输入完成后会提示用户是否要继续录入。操作2删除人员函数voidoperate2()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要删除学生的姓名,然后查找该学生,删除该学生数据,并将其后数组往前移动一位,最后提示用户是否继续删除。操作3修改数据函数voidoperate3()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要修改学生的姓名,该函数的功能是修改学生的成绩,防止了录入数据时的错误,保证了系统的完备性。操作4按总成绩查询函数voidoperate4()这是一个无参函数,是Stu类的一个友元函数,进入后系统会提示用户输入需要查询的总分,然后输出所有该分数的学生的成绩,并提示用户是否需要继续查询。操作5按姓名查询函数voidoperate5()这是一个无参函数,是Stu类的一个友元函数。进入后系统会提示用户输入需要查询的学生姓名,然后输出该学生的成绩,并提示用户是否需要继续查询。操作6输出所有学生的数据函数voidoperate6()这是一个无参函数,是Stu类的一个友元函数,进入后系统将自动输出该系统下所有学生的成绩,但并不排序,而是按照录入是的顺序输出,输出之后提示用户是否需要进行其它操作。操作7按平均分分排名函数voidoperate7()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照平均分分从高到低自动输出该系统下所有学生的成绩,输出之后提示用户是否需要进行其它操作。操作8按这平均分是否大于60列出不及格学生voidoperate8()这是一个无参函数,是Stu类的一个友元函数,进入后系统将按照总平均分是10否大于60列出不及格学生的成绩,输出之后提示用户是否需要进行其它操作。4设计测试流程1.进入系统,显示本系统相关信息。如图。2.根据系统提示,进入菜单界面。如图113.输入0,回车,按提示输入数据。如图124.回到菜单界面在输入1,回车,增加人员,按提示输入数据。如图5.回到菜单界面再输入6,回车,输出所有学生的数据,检测操作0和操作1。运行结果如图136.回到菜单界面再输入7,回车,测试按总分排名。运行结果如图7.回到菜单界面再输入3,回车,测试修改数据。修改完后,进入菜单,选择操作6输出所有学生数据。修改如图14运行结果如图8.运用修改后的数据,测排名159.列出不及格学生信息:10.回到菜单界面再输入4,测试按学号查询,运行结果如图1611.回到菜单界面再输入5,测试按姓名查询,运行结果如图12.测试完毕。输入n,退出系统。175结束语在本次课程设计过程中,老师从选题、构思、资料收集到最后定稿的各个环节给予细心指导,使我对软件工程有了更深刻的认识,在此表示衷心地感谢。在整个过程中,我查阅了大量的关于书籍借阅管理系统的资料和网站,在老师的指导和自己的努力下,终于完成了本次课程设计。在为期两周的课程设计过程中,使我熟悉了C++编程语言,但也体现了我的种种不足,希望在以后的学习生活当中能够改正。同时我还要感谢指导过我的老师,他们给了我很大的指导和帮助,还有在我陷入困境时帮助过我的同学们。参考文献[1]杨路明,C语言程序设计教程.北京:北京邮电大学出版社,2005(2009.7)[2]谭浩强,C++程序设计.北京:清华大学出版社,2004.6[3]杨路明,C语言程序设计上机指导与习题选解.北京:北京邮电大学出版社,2005附录设计源程序清单#includestring#includeiostreamusingnamespacestd;externintj=0;//定义全局变量/***********************声明Stu类***********************/classStu18{public:charname[20];charcla[20];intnumber;charsex[20];intage;inttele;charclass1[100];//课程为字符串charclass2[100];charclass3[100];doubleC11;//C12的平时成绩doubleC12;//C11的考试doubleC21;doubleC22;doubleC31
本文标题:学生信息管理系统(C--)
链接地址:https://www.777doc.com/doc-5189918 .html