课程设计报告撰写格式
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(此文档为word格式,下载后您可任意编辑修改!)
学院:计算机工程学院
专业:计算机科学与技术
班级:12计1ZS
学号:
姓名:缪一帆
指导老师姓名:蔡秋茹
2015 年 03 月
《课程设计》报告要求
一、打渔晒网
1.问题陈述
中国有句俗语叫“三天打鱼两天晒网”。某人从2000年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是在“打渔”,还是在“晒网”?
2.程序代码
#include { if(a%4==0&&a%100!=0) return 1; if(a%400==0) return 1; return 0; } int sumday(int year,int month,int day) { int sum_day=0,a=0; if(month>2) if(fun(year)) a=1; if(month>=2) sum_day+=31; if(month>=3) sum_day+=28; if(month>=4) sum_day+=31; if(month>=5) sum_day+=30; if(month>=6) sum_day+=31; if(month>=7) sum_day+=30; if(month>=8) sum_day+=31; if(month>=9) sum_day+=31; if(month>=10) sum_day+=30; if(month>=11) sum_day+=31; if(month>=12) sum_day+=30; sum_day=sum_day+a+day; return sum_day; } int sumyear(int year) { int sum_year=0,i; for(i=2000;i { sum_year+=(365+fun(i)); } return sum_year; } int main() { int year,month,day,sum,t; while(scanf("%d-%d-%d",&year,&month,&day)!=EOF) { sum=sumday(year,month,day)+sumyear(year); t=sum%5; if(t==1||t==2||t==3) printf("He is fishing.\n"); if(t==0||t==4) printf("He is drying nets.\n"); } return 0; } 3.运行结果 4.设计体会与总结 二、文本文件单词的检索与计数 1.问题陈述 要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;统计给定单词在文本文件中出现的总次数;检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。 2.需求分析 该设计要求可分为三个部分实现:其一,建立文本文件,文件名由用户用键盘输入;其二,给定单词的计数,输入一个不含空格的单词,统计输出该单词在文本中的出现次数;其三,检索给定单词,输入一个单词,检索并输出该单词所在的行号、该行中出现的次数以及在该行中的相应位置。 (1)建立文本文件 (2)给定单词的计数 (3)检索单词出现在文本文件中的行号、次数及其位置 (4)主控菜单程序的结构 ①头文件包含 ②菜单选项包含:建立文件、单词定位、单词计数、退出程序 ③选择1-4执行相应的操作,其他字符为非法。 3.概要设计 3.1建立文本文件 建立文本文件的实现思路 (1)定义一个串变量 (2)定义文本文件 (3)输入文件名,打开该文件 (4)循环读入文本行,写入文本文件,其过程如下: While(不是文件输入结束) { 读入一文本行至串变量; 串变量写入文件; 输入是否结束输入标志; } (5)关闭文件 3.2给定单词的计数 该功能需要用到前一节中设计的模式匹配算法,逐行扫描文本文件。匹配一个,计数器加1,直到整个文件扫描结束;然后输出单词的次数。 3.3 检索单词出现在文本文件中的行号、次数及其位置 3.4 主控菜单程序的结构 (1)头文件包含 (2)菜单选择包括: 1、建立文件 2、单词计数 3、单词定位 4、退出程序 (3)选择1~4执行相应的操作,其他字符为非法 4.详细设计 4.1给定位置的串匹配算法 该算法要求从串S1(为顺序存储结构)中第k个字符起,求出首次与字符串S2相同的子串的起始位置。 该算法与上面介绍的模式匹配算法类似,只不过上述算法的要求是从主串的第一个字符开始,该算法是上述算法的另一种思路:从第k个元素开始扫描S1,当其元素值与S2的第一个元素的值相同时,判定它们之后的元素值是否依次相同,直到S2结束为止。若都相同,则返回当前位置值;否则继续上述过程,直至S1扫描完为止,其实现算法如下: