当前位置:文档之家› 实验三 综合程序设计

实验三 综合程序设计

测试用例:
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
实验体会
实验过程评价:碰到什么问题?如何解决? 1.第二次做指针的实验,明显比第一次熟练了,不过细节上的小错误还是很多。 2.三个数比大小调试用例的时候,发现最小的数总在中间不会跑到最后面去,然后发现要一 共比较三次大小才行,交换后的第一第二个数需要重新再比较一次大小才能保证三个数一定 是降序排列。在编写天数中,虽然不报错但是发现结果也不对,跟同学仔细看程序了好几遍 才发现,case 46911 月的天数也不小心写成了 31 天 还有 case 2:days+=isLeap(y)?29:28;中间 的“+”没有加上,导致统计天数老是不能到三位数。编程还是要非常细心的。最后一题统 计用电量中间,客户编号这行语下面的数据总是对不齐,老师说过“\t”是制表符自动空行 的,实在没有办法改第一列的空行,所以只能手动的敲打了几个空格,让它手动的对齐了。
}
void exchange(int *pa, int *pb)
{
int temp;
temp=*pa; *pa=*pb; *pb=temp;
}
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
测试用例:
任务三 日期换算 ex02_11.cpp
打开程序文件 ex02_11.cpp #include <stdio.h> int isLeap(int year); void getDate(int y,int days,int*pm,int *pd); int getDays(int y,int m,int d);
int main (void) {
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
return 0; }
//编写子函数求某天是该年的几月几日
void getDate(int y,int days,int*pm,int *pd)
/*y 为年份,days 为该年的某天,pm 指向主调函数中存放某天的月值变量, */
int a=10,b=20; swap(a,b); printf("a=%d,b=%d\n",a,b);
return 0; }
void swap(int *pa,int *pb) {int t;
t=pa,pa=pb,pb=t; }
#include<stdio.h> void swap(int *pa,int *pb); int main() {
}
while(!feof(fin)) { fscanf(fin,"%d",&w); m=getmoney(w); fprintf(fout,"电费=%d",m); } fclose(fin); fclose(fout); return 0; }
int getmoney(int w) {
int money; if(w<=300)
{printf("can not open file !");
return -1;
}
if( (fout=fopen("用电费用.txt","w"))==NULL )
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
{printf("can not open file 用电费用.txt!"); return -1;
//编写子函数求某天是该年的几月几日
void getDate(int y,int days,int *pm,int *pd)
/*y 为年份,days 为该年的某天,pm 指向主调函数中存放某天的月值变量, */
/*
pd 指向主调函数中存放某天的日值变量*/
{int m,d,i;
int day;
for(i=1;i<=12;i++)
} //编写子函数判断闰年。 int isLeap(int year) {
} 1.要求: (1)编写子函数判断闰年:int isLeap(int year) (2)编写子函数求某天是该年的几月几日: (3)编写子函数求某年某月某日是该年的第几天 (4)main 函数中设计步骤验证函数的正确性 2.提示 (1)求某年某月某日是该年的第几天 思路:累计从 1 月到该日期的前一月的每月天数再加上该日期的天数。2 月份的天数要判断 闰年。累计可使用循环完成也可利用 switch 语句无 break 的特性完成。 (2)求某天是该年的几月几日
上海建桥学院
程序设计基础 C 语言(本科) 实验报告
模块名称: 实验类型: 实验环境:
院别: 专业: 学号: 学生姓名: 指导老师: 学期:
第一模块 简单 C 程序设计 综合型
( 415 )机房 VC++6.0 机电学院
电科 B13-1 1121486 周鹏飞 成长生
2015 年-2016 第一学期
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
}
if(days<=day)
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
break; else
days=days-day; } m= i; /* m:某天计算后的月值 */ d= days; /* d:某天计算后的日值 */ *pm= m ; *pd= d ; }
//编写子函数求某年某月某日是该年的第几天 int getDays(int y,int m,int d) {
void main()
{
int a, b, c;
printf("input a b c:");
scanf("%d %d %d",&a,&b,&c);
if(c>b)
exchange(&c,&b);
if(b>a)
exchange(&b,&a);
if(c>b)
exchange(&c,&b);
printf("%d %d %d\n",a,b,c);
任务二 3 个数排序
利用指针实现输入 a,b,c 共 3 个整数,按大小顺序输出。要求:编写 exchange 函数,功能
是交换两个数的值。在 main 函数中输入 3 个数,调用 exchange 函数实现 3 个数按大小顺序
输出。
源程序清单:
#include <stdio.h>
void exchange(int *pa, int *pb);
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
思路:循环 i 从 1 月开始如果天数 days 比第 i 月的天数大则天数 days 减去第 i 月的天数否则 结束循环。i 即为所求月份,days 的值为所求日数。每月的天数仍需区分处理。 3.源程序清单: #include <stdio.h> int isLeap(int year); void getDate(int y,int days,int *pm,int *pd); int getDays(int y,int m,int d);
int a=10,b=20; swap(&a,&b); printf("a=%d,b=%d\n",a,b);
return 0; }
学号: 1121486
姓名: 周鹏飞
专业班级:( 电科 )(1 )班
void swap(int *pa,int *pb) {int t;
t=*pa;*pa=*pb;*pb=t; }
void main () { int y,m,d,days;
int *pm,*pd; printf("输入年份和天数:"); scanf("%d%d",&y,&d); getDate(y,d, &m, &d); printf("这天是%d 年的%d 月%d 日\n",y,m,d); printf("输入年月日:"); scanf("%d%d%d",&y,&m,&d); days=getDays(y,m,d); printf("这天是%d 年的第%d 天\n",y,days); }
打开程序文件 error02_04.cpp 改正程序中的错误。Swap 函数的功能是交换两个数的值,在 main 函数中指定两个数的大小,调用 swap 函数交换两个数的值输出。 正确的程序输出: a=20,b=10
#include<stdio.h> void swap(int *pa,int *pb); int main() {
/*
pd 指向主调函数中存放某天的日值变量*/
{inபைடு நூலகம் m,d,i;
int day;
m= ; /* m:某天计算后的月值 */ d= ; /* d:某天计算后的日值 */
*pm= ; *pd= ; }
//编写子函数求某年某月某日是该年的第几天 int getDays(int y,int m,int d) {
money=9*w; else
if(w<=600) money=300*9+8*(w-300);
else if (w<=1000) money=300*9+300*8+6*(w-600); else money=300*9+300*8+400*6+3*(w-1000);
相关主题