内蒙古科技大学课程设计论文I内蒙古科技大学本科生课程设计论文题目:学生信息管理系统学生姓名:学号:专业:班级:指导教师:年月日内蒙古科技大学课程设计论文目录第1章需求分析................................................................................................................................1第2章总体设计................................................................................................................................1第3章抽象数据类型定义................................................................................................................23.1Student抽象数据类型的设计...............................................................................................23.2StuSystem抽象数据类型的设计..........................................................................................3第4章详细设计................................................................................................................................44.1工程视图................................................................................................................................44.2类图视图................................................................................................................................44.3函数的调用关系....................................................................................................................64.4主程序流程图........................................................................................................................64.5主要算法的流程图................................................................................................................7第5章测试........................................................................................................................................9第6章总结......................................................................................................................................14附录:程序代码...............................................................................................................................14内蒙古科技大学课程设计论文1一、需求分析学生信息管理系统要求综合运用《C++面向对象程序设计》和《数据结构》的知识来实现此题目。具体如下:设计人员基类,由其派生学生类人员基类中用虚函数(或纯虚函数)来统一标识类族相同操作,实现动态多态用顺序表来表示学生信息,相关存储结构要定义为类模板能对不同数据项进行查询,对有序数据项的查询要用折半查找算法实现对学生总成绩或单科成绩进行排序,至少用到一种先进的排序方法并设计主函数测试该类(或类模板)。二、总体设计系统功能添加信息删除信息排序修改信息查找保存按学号查找按姓名查找图2.1功能图内蒙古科技大学课程设计论文三、抽象数据类型定义(一)、Student抽象数据类型的设计ADTStudent{数据对象D:floatChinese,Math,English,totalScore;intflag;基本操作:voidAddStudent()操作结果:添加新的学生信息。voidEditStudent()初始条件:存在至少一条学生信息。操作结果:修改学生信息。voidEditScore()初始条件:存在至少一条学生信息,并且已录入了成绩。操作结果:修改学生成绩。voidSetChineseScore()voidSetMathScore()voidSetEnglishScore()初始条件:存在至少一条学生信息。操作结果:录入学生成绩。voidSetFlag()初始条件:存在至少一条学生信息,并且已录入了成绩。操作结果:flag=1。voidShowInfo()初始条件:存在至少一条学生信息。操作结果:显示学生各项信息。}ADTStudent内蒙古科技大学课程设计论文(二)、StuSystem抽象数据类型的设计ADTStuSystem{数据对象D:Studentstudent[500],student_same[500],student_sort[500],temp;基本操作:voidManage_Student()voidManage_Score()操作结果:菜单函数。voidEdit_DeleteStudent()初始条件:存在至少一条学生信息。操作结果:编辑或者删除此条信息。voidList()初始条件:存在至少一条学生信息。操作结果:显示全部学生信息。voidInputScore()初始条件:存在至少一条学生信息,且存在未录入成绩的学生。操作结果:录入学生成绩。voidEdit_Score()初始条件:存在至少一条学生信息,且存在已录入成绩的学生。操作结果:修改成绩。voidSort()初始条件:存在至少一条学生信息。操作结果:根据单科成绩或者总成绩降序排序。voidSearch()初始条件:存在至少一条学生信息。操作结果:分别按学号、姓名查询学生信息。voidSave()操作结果:保存信息到文件。voidRead()操作结果:读取文件信息。}ADTStuSystem内蒙古科技大学课程设计论文四、详细设计(一)、工程视图图4.1工程视图(二)、类图视图图4.2全局函数图4.3全局变量内蒙古科技大学课程设计论文图4.4Person类图4.5Student类图4.6StuSystem类内蒙古科技大学课程设计论文(三)、函数的调用关系如下图:主函数main()学籍管理函数Manage_Student();成绩管理函数Manage_Score();查找函数SearchStudent();文件读取函数Read();添加函数AddStudent();编辑函数Edit_DeleteStudent();显示成绩List();输入成绩InputScore();修改成绩Edit_Score();排序Sort();按学号查找SearchbyNum();按姓名查找SearchbyName();图4.7函数调用关系图(四)、主程序流程图主函数main()学籍管理函数Manage_Student();成绩管理函数Manage_Score();查找函数SearchStudent();文件读取函数Read();图4.8主程序流程图内蒙古科技大学课程设计论文(五)、主要算法的流程图1、折半查找开始输入”id”Low=highintk,id;Inthigh,low;high=k-1;或low=k+1;id==student[k].idk=(high+low)/2;结束YY图4.9折半查找算法的实现内蒙古科技大学课程设计论文2、快速排序low=0high=number-1lowhightemp=student_sort[low]pivotkey=student_sort[low].totalScorestudent_sort[high].totalScore=pivotkeyhigh--student_sort[low]=student_sort[high]student_sort[low].totalScore=pivotkeystudent_sort[high]=student_sort[low]low++student_sort[low]=temp;结束开始YYYN图4.10快速排序的实现内蒙古科技大学课程设计论文五、测试程序的运行结果截图。图4.11主函数界面图图4.12添加信息内蒙古科技大学课程设计论文图4.13修改信息图4.14删除内蒙古科技大学课程设计论文图4.15显示全部信息图4.16输入成绩内蒙古科技大学课程设计论文图4.17修改成绩图4.18排序并查看内蒙古科技大学课程设计论文图4.19按学号查找图4.20按姓名查找内蒙古科技大学课程设计论文六、总结附录:程序代码#includeiostream#includefstream#includeiomanip#includestring.h#includestdlib.h#includeconio.husingnamespacestd;intstudent_id=0;intnumber=0;intlab=0;classPerson{内蒙古科技大学课程设计论文public:intID;charname[20];voidSetID(intid);voidSetName(char*na);virtualvoidShowInfo();};class:virtualpublicPerson{public:intflag;floatChinese;floatMath;floatEnglish;floattotalScore;friendistream&operator(istream&in,Student&cp);friendostream&operator(ostream&out,Student&cp);Student(){flag=0;}voidSetFlag();voidShowInfo();voidAddStudent();voidEditStudent();voidEditScore();voidSetChineseScore();voidSetMathScore();voidSetEnglishScore();};templateclassTclassStuSystem{public:Ttemp;Tstudent[500];Tstudent_sort[500];Tstudent_same[500];voidManage_Student();voidManage_S