面向对象程序设计(高校学籍管理方案计划系统).doc
《面向对象程序设计(高校学籍管理方案计划系统).doc》由会员分享,可在线阅读,更多相关《面向对象程序设计(高校学籍管理方案计划系统).doc(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、!-课 程 设 计 报 告 课程名称 面向对象程序设计 课题名称 高校学籍管理系统一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完面向对象程序设计课程后进行的一次全面的综合练习。要求学生达到熟练掌握C+语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。2.课题题目高校学籍管理系统3设计要求:设计课题题目:每位同学根据自己学号除以4所得的余数加一选择相应题号的课题。换题者不记成绩。根据自己对应的课题完成以下主要工作:完成系统需求分析:主要包括系
2、统设计目的与意义;系统功能需求(系统框图);输入输出的要求等内容。完成系统总体设计:主要包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。完成系统详细设计:主要包括类层次图;界面设计与各功能模块实现等累人。完成系统调试:主要包括调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。使用说明书及编程体会:说明系统的使用和操作步骤,详细列出每一步的操作步骤。附录:关键源程序(带注释),可以只选取程序主要部分。按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。二、进度安排第17周 星期一 08时:00
3、分12时:00分 星期三 14时:00分18时:00分 星期四 14时:00分18时:00分课题2:高校学籍管理系统 (一)、课程设计题目:高校学籍管理系统(二)、目的与要求: 1、目的: (1)要求学生达到熟练掌握C+语言的基本知识和技能; (2)基本掌握面向对象程序设计的基本思路和方法; (3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。 2、基本要求: (1)要求利用面向对象的方法以及C+的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次; (3)在系统的设计中,至少要用到面向对象的一种机制。3、创新要求: 在基本要求达到后,可进行创新设计,如根据查
4、找结果进行修改的功能。 4、写出设计说明书 (三)、设计方法和基本原理: 1、问题描述(功能要求): (1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。(2)能够将指定的信息从文件中删除。(3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。(4)可以统计全部学生的总成绩,及其在班上的排名。(5)能够统计各科的平均成绩及及格率。(6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。(7)如果检索不到相应的信息应提示用户。(8)扩展要求:能先行设置本学期的科目 每个学生信息应该包括:姓名、学号、成绩成绩信息应该包括:科目数量、各科目名称、各科目成绩2、问
5、题的解决方案: 根据系统功能要求,可以将问题解决分为以下步骤: (1)写出需求分析(做什么);(2)分析系统中的各个实体之间的关系及其属性和行为; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述(包括属性和方法); (5)完成类中各个成员函数的定义; (6)用户界面的设计; (7)分析系统功能模块(系统流程图);(8)代码编写,功能调试;(9)完成系统总结报告以及系统使用说明书。目 录1.系统需求分析12.总体设计13.详细设计24.系统调试与使用说明45.结果分析216.总结22!-1. 系统需求分析1. 程序的功能这个程序的主要功能是能够从屏幕上读取一个学生的信息并
6、将其信息存入到数据文件中;能够将指定的信息从文件中删除;能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上;可以统计全部学生的总成绩,及其在班上的排名;能够统计各科的平均成绩及及格率;要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入,如果检索不到相应的信息应提示用户该信息不存在。 2、系统的设计目标 本系统要求工作人员输入并存储学生学籍的有关信息,如:学生的姓名、学号、性别、年龄、班级等信息。能够在查询学生信息的时候根据提示项输入所要查找的类型,再根据提示输入一项学生信息进行查找及修改,实现学生学籍的动态管理。2. 总体设计1. 系统功能分析这个程序是用来对学生的学籍资
7、料进行管理。主要功能包括:a.能够从屏幕上读取一个学生的信息并将其信息存入到数据文件中;b.能够将指定的信息从文件中删除;c.能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上;d.可以统计全部学生的总成绩,及其在班上的排名;e.能够统计各科的平均成绩及及格率;f.要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入,如果检索不到相应的信息应提示用户该信息不存在。2.系统功能模块划分与设计高校学籍管理系统main函数Stu类Student类 Student类进行学生基本信息的录入及保存,学生基本信息包括姓名、学号、年龄、性别、班级、各科成绩等。Stu类里定义了Student
8、类的子对象,不但继承了Student类的数据及函数,还能对信息进行进一步的加工。如:学生信息的录入、显示、修改、查询、删除以及对学生成绩进行统计,算出全部学生的总成绩、班上排名、各科平均分和及格率等,main函数贯穿全局,利用mune函数对程序的各部分进行掌控。 3. 详细设计Student类构造函数Student信息录入函数input信息显示函数showStu类由Student类定义其对象构造函数Stu信息录入函数insert信息显示函数Show信息检索函数search删除信息函数Delete修改信息函数update统计信息函数tongji菜单函数munemain函数文件的打开、创建及关闭关
9、闭函数mune的调用科目设置函数subjects该程序应用了2个类,Student类和Stu类,其UML图如下:Student类的UML图Student类# Tag: bool#name: char # num: int #sex: char #cname: char #age: int #mark: int #sum: double+Student( )+input( ) :void+show( ):voidStu类的UML图Stu类#count: int# s: Student+insert( ):void+Show( ):void+search( ):void+Delete( ):voi
10、d+update( ):void+tongji( ):void+mune( ):void4. 系统调试与使用说明4.1系统调试过程中遇到的问题及解决方法4.1.1信息显示时出错程序运行后出现以下界面设置好科目信息,录入学生信息后。选择3,本应将之前录入的信息显示出来的。但没有将所有的学生信息显示出来,而是只显示了最后一个同学的信息。经检查发现,show函数里没有使用循环,导致每输入一个学生信息时就会将前一个的学生信息覆盖,所以只能输入最后一个学生的信息。信息显示的原有程序为:void show() sum=0; cout姓名:nameendl;cout学号:numendl;cout性别:sex
11、endl;cout年龄ageendl;cout班级:cnameendl;for(int i=0;inumb;i+) sum+=marki;coutsbji成绩:markiendl; cout总分为:sumendl;在Stu类中再定义一个Show函数,使用循环,然后这个Show函数里调用Student类中的show函数,便可以将所有的学生信息显示出来。修改后的程序为:void Stu:Show() for(int i=0;icount;i+)if(si.Tag=true) si.show();coutendl; 若是退出程序再运行,上来选择3就应该将所有的信息显示出来,可是显示的是乱码。经检查后
12、发现,在录入信息后,保存信息时,没有成功把信息保存到文件中。导致程序再次运行时打开文件后找不到相应的学生信息,所以输出了乱码。原程序中使用了C+中二进制文件的保存方式,file.seekg(0,ios:end);file.write(char*)&stu,sizeof(Student);而却没有对该保存方式进行相应的函数声明,造成未能成功保存信息。后经老师帮忙修改才得以将信息保存到文件中。修改后的程序,上来选择3就可以将所有已录入的学生信息显示出来。4.1.2删除、修改、检索信息时出错因为在信息录入时,保存信息的不对,致使要对信息进行删除、修改或检索等操作时,都未能在打开的文件中找到相应的信息
13、,所以都不能对信息进行这些操作。后经老师修改,都能正常显示。在执行修改模块时还出现了不该有的错误。修改学号的时候选择“y”也不能修改就直接跳到下一步。经检查程序,发现将变量ch1写成了ch,导致不能识别输入的是否为“y”。原程序为:cout是否要修改学号?(y/n)ch1;if(ch=y|ch=Y)cout请输入新学号:以回车键结束si.num;修改后程序:cout是否要修改学号?(y/n)ch1;if(ch1=y|ch1=Y)cout请输入新学号:以回车键结束si.num;改正后的程序便可以对学号进行修改。4.1.3统计信息时出错在对已有的学生信息进行统计时出现了几个错误。1. 计算全部学生
14、总成绩时,未对all进行初始化,导致输出的是乱码。原程序为:void Stu:tongji() int i,j,t; float sbj; float cnum=0,pass=0; double all,aver; cout$1.全部学生总成绩,2.班上排名,3.各科平均成绩,4.及格率$endl; cout*请从14中选择*t; switch(t) case 1: /全部学生总成绩 for(j=0;jcount;j+) sj.sum=0; for(i=0;inumb;i+) sj.sum=sj.sum+sj.marki; coutsj.name的总成绩为:sj.sumendl; all =a
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 高校 学籍 管理 方案 计划 规划 系统
限制150内