电子万年历系统课程设计

  • 格式: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、该程序的不足: