面向对象程序设计课程设计范例.docx

上传人:h**** 文档编号:26867661 上传时间:2022-07-20 格式:DOCX 页数:14 大小:16.94KB
返回 下载 相关 举报
面向对象程序设计课程设计范例.docx_第1页
第1页 / 共14页
面向对象程序设计课程设计范例.docx_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《面向对象程序设计课程设计范例.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计课程设计范例.docx(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、面向对象程序设计课程设计范例 面向对象程序设计课程设计 题目: 学号: 姓名: 专业班级: 指导教师:职称: 职称: 年月日 目录 1.系统需求分析 (1) 2.总体设计 (2) 3.详细设计 (3) 4.系统调试 (6) 5.结果分析 (7) 6.总结 (8) 7.附录:源程序清单 (9) 1.系统需求分析 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。试设计考勤管理系统,使之能提供以下功能: 1)录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数

2、据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期第几节课课程名称学生姓名缺课类型 每行一条纪录。 例如: 2022-04-29 2-4 中国近现代文学史李云龙迟到 2022-04-28 2-4 大学生社交礼仪马志鹏旷课 2)修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。 3)查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。 4)统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序; 5)统计某段时间内,有学生旷课的课程及旷课人

3、次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序; 6)系统以菜单方式工作。(所谓菜单指用户可以自由选择所要执行的功能。学生可以通过以上功能录入信息、修改信息、查询信息、整理统计出所要了解的信息,除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便,在使用的过程中保持一个愉快的心情。学生考勤管理系统有广大的用户群,这其中有老师、有教务处主任、有公司管理人员,也可以供给一般用户使用。总之该系统可以满足用户需求,实现对其管理的人员的考勤工作。 2. 总体设计 学生考勤管理系统包含五个大的功能,分别是:录入学生缺课信息、修改学 生缺课信息、查询某个学生的缺课情况、

4、统计某段时间内(以天为单位),旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。学生的缺课信息主要包含缺课日期,第几节课、课程名称,学生姓名,缺课类型。 在录入学生缺课信息时根据系统提示逐一输入。每输入完一条信息,系统会提示是否继续输入,用户可以选择继续或返回主菜单。 在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。如果系统中没有该学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。 在查询学生缺课信息时,用户先输入要查询的学生姓名

5、,系统检索判断是否存在该 学生的信息然后做出相应的提示。总之,用户可以方便的在系统提示下进行使用。 学生考勤管理系统中功能模块图: 修改某学生的缺课信息 查询某学生的缺课信息 统计某段时间内旷课学生姓名及旷课节数 统计某段时间内,有学生旷课 的课程及旷课 人次 录入学生的缺课信息 学生考勤管理系统 录入缺课学 生的姓名、缺课日期、缺课节次、缺课课程名称、缺课类型 修改某学生的缺课日期、缺课节次、缺课课程名称、缺课类型 查询某学生 的缺课日期、缺课节次、缺课课程名称、缺课类型 按时间升 序显示旷课学生姓 名及旷课 节数 按时间升序显示有学生旷课的课程及旷课人次 3. 详细设计 学生考勤管理系统中

6、四个类的类层次图为: 学生考勤管理系统中各功能模块的实现: 1、学生缺课信息录用功能模块: 图4 学生缺课信息录入的功能 2、修改某学生缺课信息功能的模块图 图5 学生考勤管理系统修改学生缺课信息功能图 3 查询某学生缺课信息功能图: 图6 学生考勤管理系统查询学生缺课信息功能图 4、统计某段时间内旷课学生姓名及旷课节数功能模块: 图7统计某段时间内旷课学生姓名及旷课节数功能图 5、统计某段时间内,有学生旷课的课程及旷课人次功能模块 输入要查询的学生姓名 修改某学生的缺课课程 修改某学生的缺课类型 学生缺课信息录用功能 录入学生缺课节次 录入学生缺课日期 录入学生缺课课程名称 录入缺课学生姓名

7、 录入学生缺课类型 修改某学生的缺课日期 统计某段时间内旷课学生姓名及旷课节数 显示某段时间内旷课学生姓名及 旷课节数 返回菜单 Time 类 Xinxi 类 qstu 类 qkechen 类 菜单 录入学生的缺课信息 查询某学生的缺课信息 修改某学生的缺课信息 统计某段时间内,有学生旷课的课程及旷课人次 统计某段时间内旷课学生姓名及旷课节数 修改某 学生缺课信息功能 修改某学生的缺课节次 查询某 学生缺课信息功能 统计某段时间内旷课学生姓名及旷课节数功能 显示要查询的学生缺课信息 继续查询或返回菜单 图表 3-1学生考勤管理系统中中四个类的类层次图 图表 3-2学生考勤管理系统中菜单函数的功

8、能图 统计某段时间内,有学生旷课的课程及旷课人次功能统计某段时间内,有学生旷课的课程及旷课人次 返回菜单 显示某段时间内,有学生旷课的课程及旷课人次 图8统计某段时间内,有学生旷课的课程及旷课人次功能图 图 9 学生考勤管理系统中四个类的UML 图 Tine -year:int -month:int -day:int +time() +time() Xinxi -name20:char -kechen10:char -jieci3:char - queke10:char -tm3:char -tiaoshu:int=0 +xinxi() +xinxi() +setname(n:char*):v

9、oid +settime(y:int, m:int,d:int):void +setqklx(qk: char*): void +setjieci(jc: char*):void +setkechen(kc: char*):void +getname():char* +getqklx():char* +getjieci():char* +getkechen():char* +gettime():int* qkechen -renci:int -kcshu:int=0 +qkechen() +qkechen() +getrc(st1:xinxi,n:int ,j:int):int +qkn20:

10、char qstu -jieshu:int -qst:int +qstu() +qstu() +print(st1:xinxi &):void +getjs( st1:xinxi,n:int, j:int):int +setjs(js:int=0):int +qstn20:char 基类 派生类 派生类 派生类 4.系统调试 程序编写完成后,我进行了程序调试。调试过程中,出现了以下问题:当录入学生缺课信息时,出现了无法退出录入函数的情况,主要原因是输入函数中while循环语句没有设置跳出循环的条件。除此之外,修改某学生缺课信息时,如果没有该学生的缺课信息,系统没有提示要用户没有该学生信息,也没

11、有建议用户重新输入要修改的学生姓名。由此我发现了该系统修改学生缺课信息的不足。于是,我对修改函数进行了修改和完善。在该函数中,我设置了if语句用来判断系统中是否存有用户要修改的学生缺课信息。如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在循环语句中改变循环进行的条件从而终止循环。至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的信息类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实

12、现显示功能。至于该系统的查询功能的实现,在调试时发现还有欠缺,当随便输入一个学生姓名时,系统没有显示该学生的缺课信息,也没有提示系统没有找到该学生的有关信息,经过在查询函数while循环中加入一个if条件语句后,系统实现了提示用户的功能,如果系统中没有你要查询的学生缺课信息,系统将会提示用户,用户可以继续输入要查询的学生姓名也可以通过按系统设置的退出键选择退出查询环节。至于两个统计功能至今没有完善,主要是特定时间学生缺课次数和课程的缺课人次的统计问题尚待解决,现如今只完成了一两条学生缺课信息的统计。主要问题是特定时间这个前提条件对我造成了一定的障碍。对系统中存储的信息进行查找和统计运用对象指针

13、比较方便,但我没有使用,也算有点遗憾。在调试过程中我出现的最严重的问题是函数形参引用对象数组,结果系统提示将近几十个错误,在我把函数形参改为对象数组后,错误一下减少了很多。还有比较突出的问题是整个程序不知哪掉了个号系统会提示有错,但就不懂那专业术语啥意思。还有就是我以为派生类公有继承的基类的保护成员在派生类内为公有成员,可编译时才发现是不对的。通过认真调试,我发现我有了收获。 5.结果分析 这次的课设,我写的程序也没有什么独到之处,我觉得唯一可以从我的程序可以看出的是数组用得比较多,反正是没啥特色,不仅如此,还写得功能不全,实在是惭愧。现在在这里也只能说说它的不足之处了。 类层次不够清晰,纵观

14、整个程序可以发现四个类之间的关系不甚恰当,我有这个感觉,但我不知如何改进。 函数参数设定不够完美,整个程序中对指针的运用比较少。对于指针的巧妙运用把握得不够。还有就是容易missing;或者是,这都是些应该改掉的毛病。 除此以外,我对于怎样用文件保存数据还没深入了解,但我将数据保存到文件后又因文件打不开而无法访问文件中的数据,对于动态链表,我不是很清晰,也就是说无法做到熟稔运用。在调试过程中我发现在主函数中把字符数组名name赋值给字符指针p即p=name;然后用cout 在调用系统的显示功能时,如果在getname()函数前加一个*号输出的只是一个字符,不加反而能输出所有字符。getname

15、()函数的返回值为指针类型,但前面说过利用函数返回指针类型的值并不能输出字符数组中所有的字符,为什么这里又可以呢?老天,这是为什么?我不知道这一知识,这也算我的程序的不足之处吧! 对于两个统计函数的功能不全,我感到无能为力,我为了这两函数苦思了两天,硬是没凑合来。到后来,脑子里都乱了,运行时屏幕上尽是些乱七八糟的东西。老师帮我看看,看有没有什么简单的方法一下搞定它。 结果不是很好,但过程够了就行。这也是自欺欺人的看法,让我再一次自责吧。 6.总结 这次的程序设计相对于上学期还是有了进步的。学生考勤管理系统要求至少要有四个类,在起初,对于定义哪四个类我是不清楚的,通过仔细的研读问题描叙终于在脑海

16、里确定了这四个类。既然是学生考勤管理系统,那由学生缺课信息中的日期我想到了时间类,这是一个很简单的类。从系统的几大功能我又想到了系统的基础就是缺课学生的缺课信息,于是我又想到了一个信息类,还有两个类是根据两个统计功能想到的,在现在看来似乎有些不妥。通过这次的课程设计我明白了学习程序设计语言必须要勤做实验,通过实验总结经验。平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻。比如指针和数组方面的知识,一旦没有弄清楚,在设计程序时就会吃亏。 这次的课设中,我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂得思考就不能真正的掌握一门

17、知识。这次的实验给以了我警示,它让我明白我所掌握的知识还很欠缺,对于继承和派生这一章的知识,我以为自己勉强掌握了,这次实验后我发现我掌握得还不够。基类的保护成员公有继承到派生类,类外是否可以通过对象来访问呢,原先我认为是可以的,经过这次程序设计,我知道我错了。 总之,我觉得做学问不应该马虎,对于所学一定要有深入的理解,这也是我这次课设得到的启示。 7.附录:源程序清单 #include #include #include using namespace std; /时间类 class time public: time(int y=0,int m=0,int d=0) year=y;month

18、=m;day=d; time() protected: int year,month,day; ; /信息类 class xinxi:public time public: xinxi() tiaoshu+; xinxi()tiaoshu-; void setname(char *n)strcpy(name,n); void settime(int y,int m,int d)year=y;month=m;day=d; void setqklx(char *qk)strcpy(queke,qk); void setjieci(char *jc)strcpy(jieci,jc); void se

19、tkechen(char *kc)strcpy(kechen,kc); char *getname()char *n;n=name;return n; char *getqklx()char *qk=queke;return qk; char *getjieci()char *jc;jc=jieci;return jc; char *getkechen()char *gk;gk=kechen;return gk; int *gettime(); private: char name20;/姓名 char jieci3,kechen10,queke10; int tm3; static int tiaoshu; ; int xinxi:tiaoshu=0; int *xinxi:gettime() int *t; t=tm; tm0=year; tm1=month;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com