课程设计选题管理系统 课程设计报告.doc
信息科学与技术学院程序设计基础课程设计报告题目名称: 课程设计选题管理系统 学生姓名: 司杨涛 学 号: 2011508034 专业班级: 计算机科学与技术11级02班 指导教师: 高攀 2012年 06 月 30 日目 录1 课程设计题目与要求3设计题目3设计要求32 总体设计43 详细设计6类设计6主模块设计64 运行结果95 课程设计总结15参考文献151 课程设计题目与要求1.1设计题目课程选题管理系统主要包括下列模块:1)新增、修改、删除课程设计题目2)新增、修改、删除学生信息3)查询课程设计内容4)课程设计选题1.2设计要求根据系统功能要求,可以将问题解决分为以下步骤:1)分析系统中的各个实体之间的关系及其属性和行为;2)根据问题描述,设计系统的类层次;3)完成类层次中各个类的描述(包括属性和方法);4)完成类中各个成员函数的定义;5)完成系统的应用模块;6)功能调试;7)完成系统总结报告及系统使用说明书。其他要求:1)只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读2)至少采用文本菜单界面(如果能采用图形菜单界面更好)3)学生可自动增加新功能模块2 总体设计课程设计选题管理系统退出系统选课删除查询修改添加图2主函数中各模块的主要功能为 1. 添加模块 系统将提示用户输入新添加的学生以及课程设计题目的信息插入在链表中 2. 显示模块 显示模块将输出所有课程设计题目的主要资料 。 3. 修改模块 首先由用户输入要修改的学生姓名以及课程设计题目,然后系统用修改函数查找,显示该名学生以及该课程设计题目的资料,然后系统提示用户输入需要修改的学生和课程设计题目的资料。 4. 选课模块 首先由用户输入要选择的课程设计的题目,然后系统会自动提示你输入所要选课的学生的学号,姓名,已选课程设计.如果此课程设计的所选人数在限定人数之内,才系统会提示你选课成功,如果超出了此课程设计限定,则系统会自动提示你,所选课程超过了限定,不能再选择,并退出系统. 5. 删除模块 首先由用户输入要删除的课程设计题目,然后调用删除函数,删除该课程设计的资料,删除前系统会自动显示此课程设计的所有资料并提示你删除成功,当你需要删除某个学生的资料时,系统会自动提示你输入该学生的姓名,然后显示该学生的所有资料并提示你删除成功.3 详细设计3.1类设计class Studentlong num;char name20;char subject30;Student *Next; Student *Head;public:int Creat();int Newstudent();int Modify();int Del();class Subjectint serial_number;char subject30; int peoples;int people;char description100;Subject *next;Subject *head;public: int Chosesubject();int creat();int newsubject();int modify();int del();int demand();1.学生类:存储一个学生的基本信息,包括姓名,学生证号,所选课程设计题目等;2.课程设计题目类:存储课程设计题目,包括课程设计题目,选课号,限定人数,已选人数,以及本课程设计的描述。开始定义课程类对象a及学生类对象b,字符型变量choice从键盘得到一个字符choice判断Choice=?结束若为0,退出系统若为1,调用课程类函数newsubject()若为2,调用课程类函数del()若为6,调用学生类函数Modify()若为5,调用学生类函数Del()若为4,调用学生类函数Newstudent()若为3,调用课程类函数modify()若为8,调用课程类函数Chosesubject()否则,输出"输入错误请重新输入您的选择"若为7,调用课程类函数demand()3.2主模块设计图3从主函数中输入变量chioce,通过对该变量的判断执行相应的函数,实现对学生信息,课程设计信息的修改,增删等功能。具体调用的函数如图3所示。开始输出提示信息:“请输入你要添加的信息”输入学号,姓名,所选的课程结束图4此流程图是学生类和课程类中增加函数的流程图,当主函数中得到1或4命令时,函数会转到newsubject()或Newstudent()函数中,然后根据提示输入相应的数据,存入原文件,以实现增加学生信息或课程题目信息的功能。开始输入想要修改的姓名或题目Namer=p->name? p->next否是输出将要修改的信息输入修改后的信息结束图5此流程图是学生类和课程类中修改函数的流程图,当主函数中得到3或6命令时,函数会转到modify()或Modify()函数中,函数会根据输入的信息在文件中找到相应的那个数据信息,并将该信息的相关内容输出来,然后根据提示输入修改后的数据,存入原文件,以实现修改学生信息或课程题目信息的功能。开始输入想要删除的姓名或题目sub=p->subject? p->next否是输出将要删除的信息输出提示语句结束图6图6此流程图是学生类和课程类中删除函数的流程图,当主函数中得到2或5命令时,函数会转到del()或Del()函数中,函数会根据输入的信息在文件中找到相应的那个数据信息,并将该信息的相关内容输出来,然后删除该信息的所有数据,把剩余的数据存入原文件,以实现删除学生信息或课程题目信息的功能。开始输入想要查看的题目Sub=p->subject? p->next否是输出题目有关信息结束图7此流程图是课程类中查看信息的函数流程图,当主函数中得到7命令时,函数会转到demand()函数中,函数会根据输入的信息在文件中找到相应的那个数据信息,并将该信息的相关内容输出来,若没有找到课程设计题目,则输出相应的错误信息,以实现查看课程设计题目信息的功能。4 运行结果测试一:进入界面,并进行选择测试结果如图9所示:图9测试结果分析:根据选择确定该结果运行无误.测试二:选择1,添加新的科目:测试结果如图10所示:图10测试结果分析:根据选择添加新的科目.根据提示输入新的课程设计题目,以及此题目人数的限定,对此增加题目的描述,以及此题目的已选人数结果正确测试三:删除所选内容:测试结果如图11所示:图11测试结果分析:根据所选删除课程设计题目的内容运行结果正确测试四:修改课程设计信息测试结果如图12所示:图12测试结果分析:根据提示输入所要修改的课程设计的题目,并根据提示输入修改后的课程设计的题目序号,修改后的题目,修改后的人数限定,修改后的题目描述,修改后题目的已选人数运行后正确测试五:添加新的学生的相关信息测试结果如图13所示:图13测试结果分析:根据提示输入新的学生的学号,姓名,已选课程设计的题目,经运行结果准确测试六:删除学生记录测试结果如图14所示:图14测试结果分析:首先根据提示输入要删除的学生的姓名,系统会自动显示所要删除的学生的姓名,学号,所选题目,按任意键后会提示你删除此信息成功经运行结果准确测试七:修改学生信息测试结果如图15所示:图15测试结果分析:根据提示输入要修改的学生的姓名,系统会自动显示该学生的相关信息,然后会提示你输入修改后的学生的姓名,学号,以及所选题目,经运行结果准确测试八:查询课程设计内容测试结果如图16图17所示:图16图17测试结果分析:根据要求系统会自动显示全部课程设计的序号以及题目,并提示你输入你想要知道的题目的描述,输入你想要知道的课程设计名称,系统会自动输出此题目的描述,经运行结果准确测试九:进行课程设计选课测试结果如图18所示:图18测试结果分析:经提示输入你想要选择的题目然后系统会提示你输入选课学生的学号,姓名,以及已选课程设计的题目,然后按任意键后会自动提示你选题成功,经运行后结果准确测试十:退出系统测试结果如图19所示:图19测试结果分析:根据选择,系统自动退出5 课程设计总结经过这几周的课程设计周,我发现自己还存在许多不足的地方,例如不能很好的使用文件进行编辑,不能熟练的使用C+文件语言,自己的C+语言程序设计编程基础也不是很牢固。暑假期间,我会多多的学习这门语言,把这门语言学通了之后,学习其他语言时才能的心应手。还有就是若能很好的利用链表和指针的功能,就会给编程带来很大的方便,所以我会尽自己最大的努力学习好这两种语言用法。编程过程中有很多的困难,有时会在一个点想不通,然而一旦想明白了就会懂了,所以我明白做任何事都一定要有坚持不懈的恒心,这样才能取得最后的成功。参考文献2 杜茂康等.C+面向对象程序设计3 李济鹏.C+语言程序设计上机指导(二级)