1、万年历课程设计报告面向对象课程设计 题 目 万年历程序设计 系 部 商学系 专 业 信息管理与信息系统 班 级 信息N122 学 号 学生姓名 指导教师 编写日期 2015.01.15 第一章 需求分析 如今的社会是一个信息的时代,随着电脑等科技产品在人们生活中占据着越来越重要的地位,人们就会越加的善加利用,这为我们的生活带来了极大的效率,同时计算机的普及更可以看出它所占的地位。 万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便 ,是一种比较实用的小工具。我们每个人都可以在自己的
2、个人电脑上进行制作,一方面不仅可以加强巩固我们对C#语言的学习,还可以通过自主的编程找到自身的缺点。这对培养我们自身的创新能力和动手能力具有很大的作用。 第二章 概要设计 1.设计要求 程序完成运行时,能过正确的表达出所输入年份的万年历。2.总体设计 实现操作流程图 程序设计流程图 第三章 详细设计与编码源代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.
3、Linq;using System.Windows.Forms;using System.Globalization;namespace AllAgesCalendar public partial class Form1 : Form public Form1() InitializeComponent(); private void Form1_Load(object sender, EventArgs e) string intmonth = monthCalendar1.TodayDate.Month.ToString(); string intdaty = monthCalendar
4、1.TodayDate.Day.ToString(); if (monthCalendar1.TodayDate.Month 10) intmonth = 0 + monthCalendar1.TodayDate.Month.ToString(); if (monthCalendar1.TodayDate.Day 0); return sb.ToString(); private static string ChineseNumber = 一二三四五六七八九; public string GetMonth(DateTime time) int month = calendar.GetMonth
5、(time); int year = calendar.GetYear(time); int leap = 0; for (int i = 3; i 0) month-; return (leap = month + 1 ? 闰 : ) + ChineseMonthNamemonth - 1; public static readonly string ChineseMonthName = new string 正, 二, 三, 四, 五, 六, 七, 八, 九, 十, 十一, 十二 ; public string GetDay(DateTime time) return ChineseDay
6、Namecalendar.GetDayOfMonth(time) - 1; public static readonly string ChineseDayName = new string 初一,初二,初三,初四,初五,初六,初七,初八?,初九,初十, 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十, 廿一,廿二,廿三,廿四,廿五,廿六,廿七,廿八,廿九,三十; public string GetStemBranch(DateTime time) int sexagenaryYear = calendar.GetSexagenaryYear(time); string stemB
7、ranch = CelestialStem.Substring(calendar.GetCelestialStem(sexagenaryYear) - 1, 1) + TerrestrialBranch.Substring(calendar.GetTerrestrialBranch(sexagenaryYear) - 1, 1); return stemBranch; public const string CelestialStem = 甲乙丙丁戊己庚辛壬癸; public const string TerrestrialBranch = 子丑寅卯辰巳午未申酉戌亥; public strin
8、g getReturnYear(DateTime time) int sexagenaryYear = calendar.GetSexagenaryYear(time); string Tree = TreeYear.Substring(calendar.GetTerrestrialBranch(sexagenaryYear) - 1, 1); return Tree; public const string TreeYear = 鼠牛虎兔龙蛇马羊猴鸡狗猪; private void monthCalendar1_DateSelected(object sender, DateRangeEve
9、ntArgs e) string strYesr = String.Format(0年1月2, GetStemBranch(monthCalendar1.SelectionStart), GetMonth(monthCalendar1.SelectionStart), GetDay(monthCalendar1.SelectionStart); toolTip1.ToolTipTitle = monthCalendar1.SelectionStart.ToShortDateString(); toolTip1.Show(strYesr + + getReturnYear(monthCalend
10、ar1.SelectionStart) + 年, monthCalendar1, monthCalendar1.Location, 5000); 第四章 调试分析 程序运行测试 进入程序界面: (进入程序的第一步) 输入所查年份: (例上输入所查年月2010-2019) 现实所查年份万年历: (以上就是完整的输出结果) 第五章 用户使用说明 这是一个简单的万年历编程,用户可以通过键入所查的年份,便可以轻松快速的查询这一年的万年历,使用用户在运行程序后,可以通过界面的指示键入所查的年份。 第六章 设计心得通过几天的不懈努力,这一份面向对象的课程设计终于在自己的努力与同学的帮助下顺利的完成了。前期可能是自己的一些方面薄弱,并没有完全的理解一些代码,从而设计出来的程序编译出错,还好在一些知识能力强的同学下进行了合理的改正才有了现在的这个完整的程序。设计一个万年历的程序之前,可能都是有自己大概的一点想法,也许看上去简单,但通过实际的操作我便发现,各种细小的错误都可能会出现,这便让我意识到个人平时的动手操作还是有欠缺的。所以还是如老师讲的那般,以电脑软件的检验来通过不断的练习完善自己的薄弱点。
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2