福建农林大学计算机与信息学院。
计算机类。课程设计报告。
2011 年 6月 16 日。
福建农林大学计算机与信息学院计算机类。
课程设计报告结果评定。
目录。1设计的目的和要求4
2 设计要求4
3 设计地点4
4主要仪器设备(实验用的软硬件环境4
5 设计内容4
5.1 将字符型输入转换为整型4
5.2 将整型转换为字符型输出5
6 问题讨论与分析6
6.1 将字符型输入转换为整型6
6.2 将整型转换为字符型输出7
6.3 其他各个部分的调试由各个成员一起调试7
7 结束语8
参考文献8日期类的实现。
1. 设计的目的和任务。
熟悉和掌握运用面向对象程序设计的方法,实现新的数据类型及其运算的定义。本人主要编写。
frinend bool datetostr(date &,char *)日期转换成字符串函数。
friend bool strtodate(char *,date &)字符串转换成日期函数。
两个函数,以及后期的调试和试验。
2. 设计要求。
设计一个能处理包含年、月、日信息的日期数据的自定义类型。实现日期数据的多种运算。诸如:
日期的初始化(整数或字符串)、日期数据字符串的相互转换、日期的加、减运算、某日期从记元以来的天数、记元以来的天数对应的日期等。并编写主函数测试日期类。
3. 设计地点。
福建农林大学南区宿舍楼。
4. 主要仪器设备(实验用的软硬件环境)
电脑32位台式主装机,采用visual studio 2010编程环境。
5. 设计内容。
5.1 将字符型输入转换为整型。
这个函数表面上看与整个要求的日期类的实现毫无关系,实际上是这个日期类的忠良砥柱,起着举足轻重的作用。首先需要输入两个参数,第一个是存储字符类型的数组指针,第二个是日期类提供里面的成员变量年月日等。先设置一个变量j来记录字符数组总共有多少个字符输入 while来判断实现此功能!
设置一个i变量来记录循环。一般正常输入的情况下字符数组为10个字符循环用result来记录字符转换为整型的数据,分别循环提取年,月,日的整型,result=result*10+(int)(a-48)来提取的总公式,刚开始总是提示编译不成功,我以为是公式有问题,后来发现时没有强制类型转换。提取完年就要把result置为0,月日雷同。
本函数的返回值为bool类型,故判断的条件很重要,首先日期类不能为空并且字符数组的输入一定要正确,接下来就可以判断,如果成功实现转换就返回1,否则就返回0。**如下:
bool strtodate(char *s,date &da)
int i,j=0;int result=0;char a;
while(s[j]!=null)
j++;if((&da!=null)&&j==10))
result=0;
for(i=5;i<7;i++)
result=0;
for(i=8;i<10;i++)
return 1;
else return 0;
5.2 将整型转换为字符型输出。
刚开始我以为这个函数和字符型输入转换为整型的是类似的,可后来发现不是。想了很多公式去循环,可后来发现不用循环来实现太麻烦了,于是就一个一个去实现它还是先用result来记录年月日,先从年开始转换,年一定是四位数,result/1000来提取他的最大位数,以此类推。可是编译没问题到运行时候就出现了乱码,搞得我一头雾水,仔细想想乱码出现的个个原因,排除,最后发现原来是数组的最后一个null没有给他赋值,于是加入s[10]=null。
该函数返回值也要求为bool类型的,故判断数组是否为空若不为空则转换成功,若s!=null则返回1否则返回0。**如下:
bool datetostr(date &da,char *s)
int result=0;
if(s!=null)
else return 0;
6. 问题讨论与分析。
6.1 将字符型输入转换为整型:
刚开始编写时候想一个个的转换但是那样程序显得繁琐和冗长,于是想到用循环,从年月日三个分别循环。故使用循环变量i来记录,又想到要用一个变量来记录转换完得年月日的值,故使用变量result。因为题目要求该函数为bool类型,故要判断数组有没有输错,想到用到变量j来记录数组的存储长度。
刚开始编译时总是出错,根据提示result应该是整型,于是发现result里面的a-48应该强制类型转换。运行时候发现该函数总是返回0于是想到判断条件可能出错,da!=null应该改为&da!
=null,照理说j的值应该为9(从0-9有10个数)但是该函数总是返回0,于是看while语句果然当s[j]!=null而s[j+1]==null时候j++后才停止循环,故j=10时候停止循环了,故判断条件应改为j==10而不是j==9。运行发现还是错误了,字符转换为整型出现一些莫名其妙的数字。
看循环部分发现第一次年没有问题而月日就有问题,于是判断是循环的时候数组的指针不对。第一次i到4停止,第二次i应该从5循环才是正确的而我写成从4开始循环,日的循环也不对i应该8开始循环,为了安全起见每次循环完我都把result置为0。改正完函数正常运行了。
正常的提示如下,因为该函数的调用只在输入时候用到。
数组越界时候的错误界面如下:
输入成功时候的界面如下:
6.2 将整型转换为字符型输出。
刚开始想通过循环来实现转换,但是总是理不出个所以然。后面一想一个一个的实现转换还更快一点。有了将字符型转换为整型的经验于是很快就编写了整型转换为字符型,出现了数组越界等问题稍微调试一下就成功了。
6.3 其他各个部分的调试由各个成员一起调试。
7. 结束语。
通过本次课程设计,我学到了很多,编程序需要耐心和细心以及恒心。想要当好一个好的编程人员必须要经过千锤百炼。
参考文献。
C 课程设计
自动走迷宫小游戏。根据课堂讲授内容,做相应的自主练习,消化课堂所讲解的内容 通过调试典型例题或习题积累调试c 程序的经验 通过完成辅导教材中的编程题,逐渐培养学生的编程能力 用计算机解决实际问题的能力。同时在设计的过程中发现自己的不足之处,对以前所学过的知识理解的更加深刻,掌握得更加牢固。迷宫生成。...
c 课程设计
哈尔滨 课程设计报告。课程 c 学号 姓名 班级 教师 1.管理系统的功能说明。课程信息管理 能够增加数据,删除数据,显示数据,修改数据,按姓名和首字母查询数据和一些基本的程序功能。2.存储数据的描述。coursenumber 课程号coursename 课程名subject 所属专业xingzhi...
C课程设计
面向对象程序设计课程设计。一 设计要求。1 课程设计以3 4人为一组,每人一个模块 2 课程设计时间为1周 在处理系统的时候,要从分析系统的需求入手,根据系统需求进行详细分析,明确系统功能,然后设计系统整体架构以及划分系统模块,按照模块分配小组中每个组员的具体任务,完成设计。二 系统设计规范。1 命...