这个作业属于哪个课程 |
https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018 |
这个作业要求在哪里 |
https://edu.cnblogs.com/campus/zswxy/computer-science-class1-2018/homework/11877 |
这个作业的目标 |
使自己的c语言编程能力更强,学会一些简单的gitte相关操作 |
学号 |
20188402 |
1.Gitee仓库地址
https://gitee.com/hyx1793979463/project-c/tree/master/
2.代码规则
https://gitee.com/hyx1793979463/project-c/commit/1ad16ddce8f0678905abbc3e1230d7e69adf143e
3.代码实现
1.统计字符数,统计单词数
代码
# include <stdio.h>
int i,z=0,s=0,q=0;
int count=0,word=0;
void f1(char str[100],char str1[100],char str2[100],char str3[100]);
int main (void)
{
char str[100],str1[100],str2[100],str3[100];
printf ("输入所求字符串:\n");
gets(str);
f1(str,str1,str2,str3);
printf ("单词数: %d %s\n",count,str1);
printf ("数字数:%d %s\n",s,str2);
printf ("字符数:%d %s\n",q,str3);
return 0;
}
void f1(char str[100],char str1[100],char str2[100],char str3[100])
{
for (i=0; str[i] != '\0'; i++)
if ((str[i] >= 'A') && (str[i] <= 'Z') || (str[i] >= 'a') && (str[i] <= 'z'))
{
if(str[i]==' ')
while((str[i]=getchar())!='\n')
word=0;
else if(word==0)
{
word=1;
count++;
}
str1[z++] = str[i];
}
else if (str[i] >= '0' && str[i] <= '9')
{
str2[s++] = str[i];
}
else
{
str3[q++] = str[i];
} str1[z] = '\0';
str2[s] = '\0';
str3[q] = '\0';
}
设计思路
三个if语句第一个if把大写英文字母ascii码值在'A''Z'和小写英文字母ascii码值在'a''z'挑出来,第二个if把数字如ascii码值在'0'~'9'挑出来,剩下的就是字符了,统计计数就行了,分别输出对应的个数就行了,比较亮眼的地方就是用了三个一维数组分别储存所对应的三类字符串,最后会把你输入的字符串输出按个数和个数所对应的字符串输出,比较好看,但是缺点:字符数中的空格它不会显示出来。
运行截图
3.统计文本文件中出现次数最多的前10的单词及其词频
代码
#include<stdio.h>
#include<string.h>
struct
{
char str[100];
int n;
}a[99]={"",0},t;
int main()
{
FILE *fp;
unsigned i,j,times=0;
fp=fopen("test.txt","r");
if(fp==NULL)return 1;
for(i=0;i<99;i++)
{
fscanf(fp,"%s",a[i].str);
a[i].n++;
for(j=0;j<i;j++)
if(strcmp(a[i].str,a[j].str)==0)
{
if(a[j].n!=0)a[j].n++;
a[i].n=0;
}
times++;
if(fgetc(fp)==EOF)break;
}
for(i=0;i<times-1;i++)
for(j=0;j<times-1-i;j++)
if(a[j].n<a[j+1].n)
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(i=0;i<10;i++)
printf("%s %d\n",a[i].str,a[i].n);
return 0;
}
运行截图
4.psp表格
PSP2.1 |
Personal Software Process Stages |
预估耗时(小时) |
实际耗时(小时) |
Planning |
计划 |
48 |
72 |
? Estimate |
估计这个任务需要的时间 |
48 |
72 |
Development |
开发 |
1 |
1 |
? Analysis |
需求分析(包括学习新技术) |
2 |
2.5 |
Design Spec |
生成设计文档 |
3 |
3.5 |
? Coding |
设计复审 |
2 |
2 |
? Code Review |
代码复审 |
1 |
2 |
? Code Standard |
代码规范 |
3 |
3.5 |
Design |
具体设计 |
4 |
5 |
Coding |
具体编码 |
5 |
6 |
? Test |
测试 |
0.5 |
0.5 |
Reporting |
报告 |
5 |
6 |
? Test Repor |
测试报告 |
1 |
1 |
? Size Measurement |
计算工作量 |
5 |
5 |
? Postmortem & Process Improvement Plan |
事后总结并提出改进计划 |
4 |
6 |
|
合计 |
40.5 |
50 |
5.计算模块部分异常处理说明
开始统计统计的是字母数个数,并不是单词个数,后面改了,修改了第一个if语句那里加了一段单词的判定
6.计算模块部分单元测试展示
安装gcov和搭建lcov环境后
7.学习心得
https://gitee.com/hyx1793979463/project-c/tree/master/
我用c语言写的我难道要dev-c++连远程仓库吗,看我朋友好像使用的是vision studio连接的远程仓库,我准备下它了,慢慢提升,厚积薄发,总的还说自己还远远不够,别急稳住心态,相信自己,未来一片光明。
本文暂时没有评论,来添加一个吧(●'◡'●)