C语言课程设计
《C语言课程设计》课程设计报告
安徽师范大学物理与电子信息学院
College of Physics and Electronic Information, Anhui Normal University
目录
一.课程设计与分析………………………………
1.1课题背景及意义
1.2目的要求
1.3课题要求
1.4设计目标
七.总结与心得……………………………………
一.课程设计与分析
1、课题背景及意义
伴随着信息化与自动化时代的到来,人类逐渐的将自己从体力,脑力等各方面得以解放,而人类则愈来愈追求智能化,因而利用程序实现智能成为一个人们必将面对的话题。而自动计数也是实现智能化
正
1) 统计英文文本文件中单词的个数;
2)统计某一个特定单词出现的频度。
4、设计目标
用数组接收文件的所有字符或直接从文件读取,然后通过循环计
数与比较分析。
二.设计概要
1、问题解决的思路概述
首先是确定结构化程序设计的流程图,并以此为依据编写结构
方便检验程序;
2、void count_word() //文本文件单词计数函数:统计所有单词的个数;
3、void wordcheck() //特定单词计数函数:对特定的单词在文本中进行核对并自动计数;
4、int main() //给予用户提示实现与用户的交互作用,并且声明各个函数并进行调用。
三.主程序的流程基函数调用说明1)、主程序的简要流程图:
四.详细函数模块算法介绍
1、文件生成的算法
在Turbo C环境中先创建文件名,接着以“读入”的方式向文件中写入文本,最终以*为文本输入结束标志。
程序如下:
void creat_text_file()
while((c=getchar())!='*')
fputc(c,fp);
fclose(fp);
}
2、文本单词计数算法
先将文本的所有字符读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,用过isalpha函数判断从数组中读入的字符是否为字母,若读取过程中出现下面这种情况:读入一个字符为字母,并且上一个字符不是字母,则计数器自动加一。就这样一直进行循环,直到读到数组的结
printf("cannot open the file");
exit(0);
}
for(i=0;!feof(q);i++)
fscanf(q,"%c",&s[i]);
fclose(q);
word=0;
for(i=0;(c=s[i])!=0;i++)
{
if(isalpha(c)==0) word=0;
3、特定单词计数算法
先初a=1,始化令将要匹配的那个单词读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,设置的大循环条件是存储单词的文件读完为止,小循环的判断条件是当
从文件中读入的字符与单词的数组的第一个元素相等的时候开始循环,并且数组与文件的地址均自动加一,一旦不相等,则立即跳出小循环,进而又进入大循环。
程序如下:
void wordcheck()
{
printf("cannot open the file");
exit(0);
}
while(!feof(p))
{
ch=fgetc(p);
a=1;
for(i=0;word[i]!='\0';i++)
{
}
五.用户使用说明与简单调试
1、将程序导入Visual C++ 6.0;通过VC运行后你会看到以下情
形:
此时输入:1
接着会要求用户输入要创建的文件名:
再输入检测文件内容:
此时需要用户自己进行选择是接着查询文本中单词的个数还是查询某个特定单词的个数;若选择查询文本中单词的个数则输入2运行结果如下:
若此时接着想查询某个特定单词的个数,则接着输入3并且这个特定单词是we,则运行结果如下
若这个特定单词是students,则运行结果是:
所有运行结果都是正确的,并且到现在为止还未出现过什么差错。
六.整体程序
整体程序如下:
#include
printf("cannot open this file");
exit(0);
}
printf("Enter the contents to be saved in the file \n");
while((c=getchar())!='*') fputc(c,fp);
fclose(fp);
}
}
for(i=0;!feof(q);i++)
fscanf(q,"%c",&s[i]);
fclose(q);
word=0;
for(i=0;(c=s[i])!=0;i++)
{
if(isalpha(c)==0) word=0;
else if(word==0)
{
void wordcheck()
{
int a,b=0,i;
char filename[20],word[30];
char ch;
FILE *p;
printf("zhe ge te ding de dan ci shi :\n"); scanf("%s",word);
for(i=0;word[i]!='\0';i++)
{
if(word[i]==ch)
ch=fgetc(p);
else{
a=0;
break;
}
}
creat_text_file(),count_word(),wordcheck();
int xz;
while(1) {
printf("************************************** *******************\n");
printf("******wen ben wen jian dan ci de ji shu yu jian suo******\n");
switch(xz) {
case 1: creat_text_file();break;
case 2: count_word();break;
case 3: wordcheck();break;
case 4: return 0;
default:printf("xuan the cuo wu,qing xhong xin xuan \n");
}
}
}
会分析,学会思考,在各个方向寻求突破口,其中,就会涉及很多知识。包括C语言、数据结构、英语,甚至暗含生活知识。让我深感编程的奥妙:你无法全部掌握,你需要永远学习。
参考文献:
【1】谭浩强著.C程序设计(第三版).北京:清华大学出版社,2005