项目案例报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
项目案例报告
课程名称:高级语言程序设计
院部:
学生姓名:
学号:
专业班级:
指导教师:周晏
2015年6月
案例一
【案例内容】
统计一个文件中的数字个数、字母个数、其他字符个数。
【案例分析】
利用函数,指针,和循环知识先判断是否为大写字母,是大写字母个数加1,若否,再看是否为小写字母,是小写字母个数加1,若否,再看是否为数字,是数字个数加1,若否,再看是否为空格,是空格个数加1,若否,则其他字符个数加1,如此循环判断即可。
【案例实现】
#include
int main()
{
void fun(char(*p)[10]); //fun函数声明
char a[4][10];
int i;
printf("输入共有4行,每行有10个字符的文章\n");
for(i=0;i<4;i++)
gets(a[i]);
fun(a);
return 0;
}
void fun(char(*p)[10]) //定义fun函数
{
int i,j,k,o,t,m,n;
n=m=k=t=o=0;
for(i=0;i<4;i++)
for(j=0;j<10;j++)
if(*(*(p+i)+j)>='A'&&*(*(p+i)+j)<='Z')
n++; //大写字母个数加1。
else if(*(*(p+i)+j)>='a'&&*(*(p+i)+j)<='z')
m++; //小写字母个数相应加1。
else if(*(*(p+i)+j)>='0'&&*(*(p+i)+j)<='9')
k++; //数字个数相应加1.
else if(*(*(p+i)+j)==' ')
o++; //空格字数相应加1,。
else
t++; //其他字符相应加1.
printf("大写字母个数为:%d\n小写字母个数为:%d\n数字个数为:%d\n空格个数为:%d\n其它字符个数为:%d\n",n,m,k,o,t);
}
【案例验证】
输入:I have 20
books. And
you?*****
I have one
输出:
大写字母个数为:3
小写字母个数为:21
数字个数为:2
空格个数为:7
其他字符个数为:7
图1 上机测试
【案例总结】
(1) 通过进行该项目我了解了函数和指针的定义和使用。
(2) 熟练地掌握了循环和判断语句的用法。
(3) 认识到一个程序在编写之前设计算法的重要性
(4) 认识到数学思想对程序设计的重要性。
案例二
【案例内容】
九、某公司由于人多,午餐分为多批次就餐,严格要求每批次就餐时间。并定期抽查就餐情况。请编写程序实现就餐抽查情况。要求实现函数:
void check_lunch(int num, int time,int input[], int output[])
【输入】int num,就餐总人数
int time,就餐分批数
char input[],就餐情况
【输出】char output[],违规就餐情况
【返回】无
说明:对就餐分3批的情况,12人就餐,正确的就餐情况应如下分布[1,2,3,1,2,3,1,2,3,1,2,3],不符合该分布的即是违规,输出时对相应位置0。
例:
1)输入:num = 12,time = 3,input =[1,2,3,3,1,3,1,1,1,1,2,3]
输出:output = [1,2,3,0,0,3,1,0,0,1,2,3]
2)输入:num = 11,time = 4,intput = [1,2,3,4,2,3,3,4,1,2,3]
输出:output = [1,2,3,4,0,0,3,4,1,2,3]
【案例分析】
对就餐分3批的情况,12人就餐,正确的就餐情况应如下分布[1,2,3,1,2,3,1,2,3,1,2,3],不符合该分布的即是违规,输出时对相应位置0。
对就餐分4批的情况,11人就餐,正确的就餐情况应如下分布[1,2,3,4,1,2,3,4,1,2,3],不符合该分布的即是违规,输出时对相应位置0。
【案例实现】
#include
int num;
int main()
{
void check_lunch(int num, int time,int input[], int output[]); //check lunch函数声明。
int input[100];
int num;
int output[100];
int time,i;
printf("请分别输入就餐人数num和分批次数time:\n");
scanf("%d%d",&num,&time);
printf("输入就餐情况(input[]):\n");
for(i=0;i scanf("%d",&input[i]); check_lunch(num,time,input,output); return 0; } void check_lunch(int num, int time,int input[], int output[]) //定义check lunch函数。{ int i,k=1; for(i=0;i { if(input[i]==k) output[i]=k; //符合该分布的即是正确,输出相应位置数字。 else output[i]=0; //不符合该分布的即是违规,输出时对相应位置为0。