电子万年历系统课程设计
- 格式:doc
- 大小:180.50 KB
- 文档页数:25
计算机学院信息管理与信息系统专业
《管理信息系统课程设计》报告
(2010/2011学年 第一学期)
学生姓名:
学生班级:
学生学号:
指导教师:
2011年 1 月 15 日
I 目录
第一章 课程设计目的和要求 .............................................. 1
1.1课程设计主要目的 ................................................ 1
1.2本课程设计主要目标 .............................................. 1
1.3课程设计要求 .................................................... 1
第二章 课程设计任务背景与内容 .......................................... 2
2.1任务背景介绍 .................................................... 2
2.2任务内容 ........................................................ 2
第三章 详细设计说明 .................................................... 3
3.1总体模块图 ...................................................... 3
3.11程序设计组成框图................................................3
3.12程序流程图......................................................4
第四章 程序运行及调试 .................................................. 8
4.1 调试与测试 ...................................................8
4.2 分析及结论.....................................................9
4.3 程序运行调试图................................................10
第五章 课程设计心得与体会 ............................................. 13
附录1 参考文献 ....................................................... 14
附录2 程序 ........................................................... 15
程序设计综合课程设计
1 电子万年历系统
第一章 课程设计目的和要求
1.1课程设计的目的
C++语言程序设计的主要目的是要求我们遵循软件开发过程的基本规范,运用结构化程序设计的方法,按照课程设计的题目要求,分析、设计、编写、调试和测试C++语言程序及编写设计报告。根据自己学习到的内容,在设计的过程中充分的将老师所教和课本固有充分发挥出来。使得理论和实践联系起来,同时也培养综合运用C++程序设计的素质。培养用C++编写程序的能力,和养成良好的编写程序的习惯。
通过本次实践学习,可以使自身对所学知识进一步消化,理解并掌握,锻炼和提高综合运用所学知识解决实际问题的能力,熟悉编译工具的使用方法和环境。
1.2课程设计的目标
本课程设计的目标:
1. 巩固和加深学生对C++语言课程的基本知识的理解和掌握;
2. 掌握C++语言编程和程序调试的基本技能;
3. 掌握利用C++语言进行软件设计的方法;
4. 提高书写程序设计说明文档的能力;
5. 提高运用C++语言解决实际问题的能力。
1.3课程设计要求基本要求:
1. 分析课程设计题目的要求;
2. 对系统功能模块进行分析,写出详细设计说明文档;
3. 编写程序代码,调试程序使其能正确运行;
4. 设计完成的软件要便于操作和使用;
5. 设计完成后提交课程设计报告。 程序设计综合课程设计
2 第二章 课程设计任务内容
2.1背景
随着高科技时代的到来,人们越来越享受着电子信息技术给人生活带来的便捷与高效。人们也渐渐不能满足于传统的挂式日历。传统挂式日历得使用方式较为繁琐,而且每天都要去手动翻页。因此电子万年历渐渐地兴起了。
2.2任务内容
下面是本程序的具体功能要求:
1、输入年(本程序要求年份为1990以上)月份检验输入日期是否合法,如若正确显示本月的万年历
2、对该月的日期以万年历的形式显示,其中包含本月的天数并且根据星期列表有序的对日期进行排列
3、输入本月的任意日期进行该天的星座查询
4、显示该天星座
程序设计综合课程设计
3 第三章 模版设计说明
3.1 模块
3.1.1程序设计组成框图
图1
电子万年历系统
1
检验输入日期是否合法 2 计算每月第一天是星期几
3 计算年的每个月多少天
4 输出万年历可进行星座查询5退出系统 程序设计综合课程设计
4 3.1.2程序流程图
Y
N
图2
图2 输入 year
输入日期合法? 提示:The year must be
at least 1990
输入mouth Y N 开始
计算星期几
计算天数
输出万年历
是否查看星座
结束 输入日
计算星座
输出星座 程序设计综合课程设计
5
图3
开始
判断输入日期是否合输出 返回重新出入
结束 Y N 程序设计综合课程设计
6
图4
开始
输入月份
按条件计算星期几
结束 程序设计综合课程设计
7
图5
开始
计算年的每个月有多少天
输入所要查询的年、月、日
系统自动查询所对应的星座
判断是否正确
退出系统
结束 N Y 程序设计综合课程设计
8 第四章 程序运行及调试
4.1调试与测试
1.调试方法:
打开Microsoft Visual C++ 6.0,先将各个功能函数的的内容清空,只保留主函数main(),然后编译检验main()函数中是否有错,如果没有错误,再连接、运行。确认main()函数一切无误后,然后加入功能函数menu()函数与f1()函数,由于menu()函数比较简单,所以与f1()函数一起进行调试,f1()函数中主要注意读取文件,与写入文件,这都是二进制的形式。若menu()函数与f1()函数编译、连接、运行没问题,继续加入f2()函数,就这样的方法依次检查调试f3()函数、f4()函数。当所有的功能函数都加上且正确无误时,就可以进入下一个环节—程序的测试。
2.测试方法:
运行程序,然后进入销售管理系统的界面,在这里需要做的就是把自己当成一个公司的程序使用者,来对该程序进行使用,看该程序有哪些方面用着不够爽,把这些问题依次整理出来,再对源程序进行修改,在这个过程中也需要对程序进行调试,不过不必将各个功能函数的的内容清空再进行如上述的调试方法,而是,改一部份运行一次,看是否有无。
如f1()函数有误,则先修改f1()函数,一块一块的进行修改,就是遵循C++语言的模块化设计原理,若所有的都改过来了,且运行无误,那就大功告成了。
3.在调试中遇到的问题:
在调试过程中,我们遇到诸多小问题,但都在我们共同讨论后解决了。
(1)、问题:标点符号在输入的时候,使用的是中文输入法,这种错误一般都难以发现,让修改的时候找不到目标。
解决方法: 用“替换”。如果程序中的error很多,不管error是什么,将标点替换成英文的标点。
(2)、问题:调试时,有的时候编译后没什么问题,就是在点击连接link时出现了错误。而且,这种错误让我们不知道怎么修改。但是我们的程序的确正确。 程序设计综合课程设计
9
解决方法: 将源程序保存(save),然后关掉Microsoft Visual C++ 6.0,重新启动Microsoft Visual C++ 6.0,
4.2分析及结论
1、在设计中我们实现了设计目标的所有内容
即:1)、根据输入的年月显示日期显示的形式。
2)、按照每月的天数进行计算,有序的按星期显示日期
3)、输入要查询星座的日期
4)、输出万年历以及星座
2、其中遇到了以下问题:
1) 数据输入文件的形式:
原本用”>>”以ASCLL码的形式输入.txt文件中,这样对实现“数据的输入是否正确的判断语句” 的编写很困难,而且ASCLL码的形式输入.txt文件保密性差,不方便公司对文件的保密管理。
解决方案:
采用”>>”函数的二进制形式输入.dat数据文件中解决了以上问题,使“数据的输入是否正确的判断语句”
2)文件的创建方案及命名形式:
文件应在用户计算数据时自动创建;文件创建时的扩展名.dat的添加困难。
解决方案:
用strcat(fname,".dat");将扩展名的.dat字符加到fname后面,令实现了文件的命名,如1月的数据文件,在使用者输入1时就实现了文件.dat的创建。
3)输入出错的常见问题:
输入时,cin()函数中出现非地址项,某变量未进行类型定义,以及语句末尾缺少分号等常见的低等错误。
根据Microsoft Visual C++ 6.0的错误提示(error)与警告(warning)回到源程序中,逐一对错误或警告进行修改,每修改一条就编译一次。
3、该程序的不足: