C语言课程设计.docx

上传人:b****8 文档编号:9239323 上传时间:2023-02-03 格式:DOCX 页数:17 大小:94.23KB
下载 相关 举报
C语言课程设计.docx_第1页
第1页 / 共17页
C语言课程设计.docx_第2页
第2页 / 共17页
C语言课程设计.docx_第3页
第3页 / 共17页
C语言课程设计.docx_第4页
第4页 / 共17页
C语言课程设计.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C语言课程设计.docx

《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(17页珍藏版)》请在冰豆网上搜索。

C语言课程设计.docx

C语言课程设计

《C语言课程设计》

课程设计报告

 

题目

字符文件处理

学号

14111305026

姓名

祁浩

年级专业

2014级自动化

指导教师

王元航

完成日期

2014

6

22

 

安徽师范大学物理与电子信息学院

CollegeofPhysicsandElectronicInformation,AnhuiNormalUniversity

1.课程设计与分析………………………………

1.1课题背景及意义

  1.2目的要求

1.3课题要求

    1.4设计目标

2.设计概要…………………………………………

   2.1问题解决的思路概

3.主程序设计流程图………………………………

   3.1主程序的简要流程图

4.详细函数体模块算法介绍……………………………

    4.1文件生成的算法

    4.2文本单词计数算法

    4.3特定单词计数算法

5.用户使用说明与简单调试……………………………………

6.整体程序…………………………………………

7.总结与心得……………………………………

一.课程设计与分析

1、课题背景及意义

伴随着信息化与自动化时代的到来,人类逐渐的将自己从体力,脑力等各方面得以解放,而人类则愈来愈追求智能化,因而利用程序实现智能成为一个人们必将面对的话题。

而自动计数也是实现智能化的必经之路,利用大一刚学习的C语言进行编程实现自动计数恰恰是在我们的能力范围之内,所以进行这一课程设计的学习与研究,正能检验我们学习这门课程的质量与对所学知识的创新与拓展。

2、目的要求:

在教师指导下,学生根据选定的课题,综合运用所学程序设计的知识,完成问题分析、模块设计、代码编写、程序调试和运行等训练任务。

通过课程设计,初步锻炼运用所学基础知识解决实际问题的能力,掌握软件开发的基本过程和基本方法以及良好的编程风格,培养在软件开发中相互合作的团队意识。

3、课题要求

1) 统计英文文本文件中单词的个数; 

2) 统计某一个特定单词出现的频度。

4、设计目标

用数组接收文件的所有字符或直接从文件读取,然后通过循环计数与比较分析。

二.设计概要

1、问题解决的思路概述

首先是确定结构化程序设计的流程图,并以此为依据编写结构函数体,由于文件知识方面的生疏,我不得不借助数组用来接收文件的所有字符。

此函数通过把主函数构造出利用switch的多通道性开发出具有选择功能的入口,分别将文件生成函数,文本单词计数函数,特定单词计数函数作为它的三个分支,并且这三个函数均无返回值,这样便实现了程序的简洁,有序和高效。

程序中加入了文件生成函数则便于程序的检测,并且使程序多出了创建文件的功能。

文本单词计数函数则将文件的所有字符读入数组,然后利用循环实现计数。

特定单词计数函数利用循环嵌套完成特定单词的匹配与自动计数。

2、本程序下定义的相关函数

1、voidcreat_text_file()//文件生成函数:

生成文本文件方便检验程序;

2、voidcount_word()//文本文件单词计数函数:

统计所有单词的个数;

3、voidwordcheck()//特定单词计数函数:

对特定的单词在文本中进行核对并自动计数;

4、intmain()//给予用户提示实现与用户的交互作用,并且声明各个函数并进行调用。

三.主程序的流程基函数调用说明

1)、主程序的简要流程图:

相应函数输出运算结果

四.详细函数模块算法介绍

1、文件生成的算法

在TurboC环境中先创建文件名,接着以“读入”的方式向文件中写入文本,最终以*为文本输入结束标志。

程序如下:

voidcreat_text_file()

{

FILE*fp;

charc,file[13];

printf("Enterthefilenametobecreated:

");

scanf("%s",file);

if((fp=fopen(file,"w"))==NULL)

{

printf("cannotopenthisfile");

exit(0);

}

printf("Enterthecontentstobesavedinthefile\n");

while((c=getchar())!

='*')

fputc(c,fp);

fclose(fp);

}

2、文本单词计数算法

先将文本的所有字符读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,用过isalpha函数判断从数组中读入的字符是否为字母,若读取过程中出现下面这种情况:

读入一个字符为字母,并且上一个字符不是字母,则计数器自动加一。

就这样一直进行循环,直到读到数组的结束再显示所有单词的个数。

程序如下:

voidcount_word()

{

inti,word,num=0;

charc;

FILE*q;

charfilename[20],s[800];

printf("thenameofthefile:

");

scanf("%s",filename);

if((q=fopen(filename,"r"))==NULL)

{

printf("cannotopenthefile");

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;

elseif(word==0)

{

word=1;

num++;

}

}

num=num-1;

printf("The%schuxianguo%dci\n",filename,num);

}

 

3、特定单词计数算法

先初a=1,始化令将要匹配的那个单词读入一个数组之中,在将数组中的每一个元素拿出来进行比较判断,设置的大循环条件是存储单词的文件读完为止,小循环的判断条件是当从文件中读入的字符与单词的数组的第一个元素相等的时候开始循环,并且数组与文件的地址均自动加一,一旦不相等,则立即跳出小循环,进而又进入大循环。

程序如下:

voidwordcheck()

{

inta,b=0,i;

charfilename[20],word[30];

charch;

FILE*p;

printf("zhegetedingdedancishi:

\n");

scanf("%s",word);

 

printf("thenameofthefile:

");

scanf("%s",filename);

if((p=fopen(filename,"r"))==NULL)

{

printf("cannotopenthefile");

exit(0);

}

while(!

feof(p))

{

ch=fgetc(p);

a=1;

for(i=0;word[i]!

='\0';i++)

{

if(word[i]==ch)

ch=fgetc(p);

else{

a=0;

break;

}

}

if(a==0);

elseif(a==1)b++;

}

printf("Zhegedancichuxianle%dci\n",b);

}

 

五.用户使用说明与简单调试

1、将程序导入VisualC++6.0;通过VC运行后你会看到以下情形:

此时输入:

1

接着会要求用户输入要创建的文件名:

再输入检测文件内容:

此时需要用户自己进行选择是接着查询文本中单词的个数还是查询某个特定单词的个数;若选择查询文本中单词的个数则输入2运行结果如下:

若此时接着想查询某个特定单词的个数,则接着输入3并且这个特定单词是we,则运行结果如下

若这个特定单词是students,则运行结果是:

所有运行结果都是正确的,并且到现在为止还未出现过什么差错。

六.整体程序

整体程序如下:

#include

#include

#include

#include

voidcreat_text_file()

{

FILE*fp;

charc,file[13];

printf("Enterthefilenametobecreated:

");

scanf("%s",file);

if((fp=fopen(file,"w"))==NULL)

{

printf("cannotopenthisfile");

exit(0);

}

printf("Enterthecontentstobesavedinthefile\n");

while((c=getchar())!

='*')

fputc(c,fp);

fclose(fp);

}

voidcount_word()

{

inti,word,num=0;

charc;

FILE*q;

charfilename[20],s[800];

printf("thenameofthefile:

");

scanf("%s",filename);

if((q=fopen(filename,"r"))==NULL)

{

printf("cannotopenthefile");

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;

elseif(word==0)

{

word=1;

num++;

}

}

num=num-1;

printf("The%schuxianguo%dci\n",filename,num);

}

 

voidwordcheck()

{

inta,b=0,i;

charfilename[20],word[30];

charch;

FILE*p;

printf("zhegetedingdedancishi:

\n");

scanf("%s",word);

 

printf("thenameofthefile:

");

scanf("%s",filename);

if((p=fopen(filename,"r"))==NULL)

{

printf("cannotopenthefile");

exit(0);

}

while(!

feof(p))

{

ch=fgetc(p);

a=1;

for(i=0;word[i]!

='\0';i++)

{

if(word[i]==ch)

ch=fgetc(p);

else{

a=0;

break;

}

}

if(a==0);

elseif(a==1)b++;

}

printf("Zhegedancichuxianle%dci\n",b);

}

 

intmain()

{

voidcreat_text_file(),count_word(),wordcheck();

intxz;

while

(1){

printf("*********************************************************\n");

printf("******wenbenwenjiandancidejishuyujiansuo******\n");

printf("*********************************************************\n");

printf("***********1.jianliwenbenwendang*******************\n");

printf("***********2.wenbendancihuizong*******************\n");

printf("***********3.tedingdancijishu*******************\n");

printf("***********4.tuichu*******************\n");

printf("qingxuanzhe:

");

scanf("%d",&xz);

switch(xz){

case1:

creat_text_file();break;

case2:

count_word();break;

case3:

wordcheck();break;

case4:

return0;

default:

printf("xuanthecuowu,qingxhongxinxuan\n");

}

}

}

七.总结与心得

“文件管理”是计算机程序设计的重要理论技术基础,想学好这门课不仅仅只停留在课本上的理论知识,更需要长期的编程实践。

在做本课程设计中,前前后后花了近三个星期的时间,算法越琢磨越明白,看问题也越来越透彻。

期间,还做了好几次较大规模的修改,特别是调试程序的时候,反反复复做了许多的工作,如果没有前面C语言的基础,光是调试程序的工作量就是不可想象的。

通过这次设计,让我更加熟悉C语言程序设计,以及更深刻地了解到程序设计与数据结构是密不可分的,即使是追求同一个结果,你也可以走不同的道路存储操作数,你可以用数组,用指针,用字符串等等。

编程时,你会遇到各种困难需要你去解决。

你要学会观察,学会分析,学会思考,在各个方向寻求突破口,其中,就会涉及很多知识。

包括C语言、数据结构、英语,甚至暗含生活知识。

让我深感编程的奥妙:

你无法全部掌握,你需要永远学习。

参考文献:

【1】谭浩强著.C程序设计(第三版).北京:

清华大学出版社,2005

【2】GaryJ.Bronson著。

标准C语言基础教程(第四版)。

电子工业出版社

物理与电子信息学院课程设计评定意见

指导教师评语

主要内容包括:

设计报告内容的完整性和完成情况、报告格式的规范性、通过课程设计取得的收获等。

成绩:

签名:

年 月 日

注:

本页与上一页用A3纸套印成封面和封底,课程设计报告正文用A4纸打印然后装订

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1