课程设计报告撰写格式Word格式文档下载.docx
- 文档编号:3108382
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:36
- 大小:342.70KB
课程设计报告撰写格式Word格式文档下载.docx
《课程设计报告撰写格式Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《课程设计报告撰写格式Word格式文档下载.docx(36页珍藏版)》请在冰点文库上搜索。
intsum_year=0,i;
for(i=2000;
i<
year;
i++)
{
sum_year+=(365+fun(i));
}
returnsum_year;
intmain()
intyear,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("
Heisfishing.\n"
);
if(t==0||t==4)
Heisdryingnets.\n"
}
3.运行结果
4.设计体会与总结
二、文本文件单词的检索与计数
要求编程建立一个文本文件,每个单词不包含空格且不跨行,单词由字符序列构成且区分大小写;
统计给定单词在文本文件中出现的总次数;
检索输出某个单词出现在文本中的行号、在该行中出现的次数以及位置。
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扫描完为止,其实现算法如下:
intPartPosition(SStrings1,SStrings2,intk)
{
inti,j;
i=k-1;
j=0;
while(i<
s1.length&
j<
s2.length)
{
if(s1.ch[i]==s2.ch[j])
{
i++;
j++;
else
i=i-j+1;
j=0;
if(j>
=s2.length)
returni-s2.length;
else
return-1;
}
4.2检索单词出现在文本文件中的行号、次数及其位置
这个设计要求与上一个类似,但要相对复杂一些。
其实现过程描述如下:
(1)输入要检索的文本文件名,打开相应的文件;
(2)输入要检索统计的单词;
(3)行计数器置初值0;
(4)while
(不是文件结束)
读入一行到指定串中;
求出串长度;
行单词计数器置0;
调用模式匹配函数匹配单词定位、该行匹配单词计数;
行号计数器加1;
If
(行单词计数器!
=0)
输出行号、该行有匹配单词的个数以及相应的位置;
5.程序代码
stdio.(SStrings1,SStrings2,intk)
}函数结束
voidCreatTextFile()
SStringS;
charfname[10],yn;
FILE*fp;
printf("
输入要建立的文件名:
"
scanf("
%s"
fname);
fp=fopen(fname,"
w"
yn='
n'
;
输入结束标志初值
while(yn=='
||yn=='
N'
{
请输入一行文本:
gets(S.ch);
gets(S.ch);
S.length=strlen(S.ch);
fwrite(&
S,S.length,1,fp);
fprintf(fp,"
%c"
10);
是输入换行
结束输入吗?
yorn:
yn=getchar();
}
fclose(fp);
关闭文件
建立文件结束!
voidSubStrCount()
SStringS,T;
定义两个串变量
charfname[10];
inti=0,j,k;
printf("
输入文本文件名:
r"
输入要统计计数的单词:
cin>
>
T.ch;
T.length=strlen(T.ch);
while(!
feof(fp)){扫描整个文本文件
memset(S.ch,'
\0'
256);
fgets(S.ch,100,fp);
k=0;
初始化开始检索位置
while(k<
S.length-1)检索整个主串S
{
j=PartPosition(S,T,k);
调用串匹配函数
if(j<
0)break;
else
{
i++;
单词计数器加1
k=j+T.length;
继续下一字串的检索
}
}
\n单词%s在文本文件%s中共出现%d次\n"
T.ch,fname,i);
}统计单词出现的个数
voidSubStrind()
FILE*fp;
定义两个串变量
charfname[10];
inti,j,k,l,m;
intwz[20];
存放一行中字串匹配的多个位置
输入要检索的单词:
T.ch);
l=0;
行计数器置0
feof(fp))
扫描整个文本文件
fread(&
S,sizeof(S),1,fp);
读入一行文本
memset(S.ch,'
fgets(S.ch,256,fp);
l++;
行计数器自增1
初始化开始检索位置
i=0;
初始化单词计数器
while(k<
j=PartPosition(S,T,k);
调用串匹配函数
if(j<
0)break;
else{
i++;
wz[i]=j;
记录匹配单词位置
k=j+T.length;
继续下一字串检索
if(i>
0)
行号:
%d,次数:
%d,位置分别为:
l,i);
for(m=1;
m<
=i;
m++)
printf("
%4d"
wz[m]+1);
\n"
}检索单词出现在文本文件中的行号、次数及其位置
intmain()
voidCreatTextFile(),SubStrCount(),SubStrInd();
intxz;
do{
*************************\n"
*文本文件的检索、字串的统计及定位*\n"
*1.建立文本文件*\n"
*2.单词字串的计数*\n"
*3.单词字串的定位*\n"
*4.退出整个程序*\n"
************************\n"
请选择(1--4)"
%d"
xz);
switch(xz)
{
case1:
CreatTextFile();
break;
case2:
SubStrCount();
case3:
SubStrind();
case4:
default:
选择错误,重新选\n"
}while
(1);
6.运行结果与测试
1)建立文本文件
2)单词字串it的计数
3)单词字串meet的定位
7.设计体会与总结
三、飞机订票系统
假定航空公司共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间和一定的成员订额。
设计一个飞机订票系统,编写一个飞机订票系统程序,使该系统能够实现对航班信息的录入、浏览、查询、修改、删除以及订票、退票的功能。
设计一个航班订票系统,满足以下需求:
(1)航班信息录入功能(航班信息用文件保存)
包括航班号、起始站、终点站、机票数等;
(2)航班信息浏览功能
(3)查询航班信息:
1.按航班号查找;
2.按终点站查找;
3.按航线查找;
(4)删除航班信息:
1.按航班号删除;
2.按航线删除;
(5)修改航班信息:
1.按航班号修改;
2.按航线修改;
(6)承办订票和退票业务。
(1)主函数模块
本模块的主要功能是调用各子功能模块,实现系统功能。
开头定义结构体,相关头文件及宏定义。
通过switch语句进入界面函数,进而调用各功能函数。
(2)查找模块
search函数有按照航班号、终点站和航线三种查询方式,通过switch语句实现。
(3)删除模块
设置密码,登录密码正确,shanchu函数可按照航班号和航线两种方式删除。
航班信息被后面一组信息覆盖,以此实现删除。
(4)修改功能模块
定义xiu结构体,数据项为要添加的信息(no,name1[20],name2[20],time[20],count),通过strcpy语句完成修改功能。
(5)打印模块
设置密码,读取密码后,通过判断密码正确与否,若正确,则输入航班信息。
输入结束后,将结构体信息存盘。
飞机订票系统程序,共有以下功能选项:
voidinput();
输入航班信息
voidprint();
输出航班信息
voidsave();
保存航班信息
voidread();
读取航班信息
voidsearch();
查找航班信息
voidshanchu();
删除航班信息
voiddingpiao();
订票信息
voidtuipiao();
退票信息
voidxiugai();
修改信息
因为飞机订票系统含有各航班的各项信息,如航班号、起始站、终点站、时间、机票数等必要信息,所以就决定用结构体数组来存放航班的各项信息,根据题目要求定义如下结构体类型:
structair定义结构体数组
intnum;
charstart[20];
charover[20];
chartime[10];
intcount;
}s[N];
#include"
dpcx.()
intj;
★---您好,欢迎进入航空订票管理系统!
---★\n"
================================================================================\n"
do
☆1.输入航班信息☆\n\n"
"
☆2.浏览航班信息☆\n\n"
☆3.修改航班信息☆\n\n"
☆4.查找航班信息☆\n\n"
☆5.删除航班信息☆\n\n"
☆6.订票信息☆\n\n"
☆7.退票信息☆\n\n"
☆0.退出☆\n\n"
请在0-7中选择以回车键结束:
\n\n"
j);
switch(j)
case1:
input();
调用输入模块
break;
case2:
print();
调用打印模块
case3:
xiugai();
调用修改模块
case4:
search();
调用查找模块
case5:
shanchu();
调用删除模块
case6:
dingpiao();
调用订票模块
case7:
tuipiao();
调用退票模块
case0:
}while(j!
=0);
判定结束
谢谢使用,再见!
}主函数结束
voidinput()打印模块程序
charf[]="
2015china"
设置密码
inty;
请输入密码并以回车键结束:
f);
读取密码
if(strcmp(f,"
)==0)
请依次输入航班信息(机票数位0结束输入):
完成输入信息请键入w以回车键结束\n\n"
打印提示信息
--\n"
for(i=0;
N;
i++)
请输入航班号:
s[i].num);
读取航班号
请输入起始站:
s[i].start);
读取起始站
请输入终点站:
s[i].over);
读取终点站
请输入时间:
s[i].time);
读取时间
请输入机票数(机票数为0结束输入):
m);
s[i].count);
读取机票数
m++;
第%d个信息已经输完是否继续?
按任意键继续,按0结束"
y);
if(y==0)
save();
将结构体信息存盘
print();
输出输入的航班信息
else
输入密码错误!
请检查您的密码是否正确!
谢谢!
再见!
voidsave()保存模块程序
FILE*fp,*fp1;
定义文件指针
if((fp=fopen("
chen.txt"
"
wb"
))==NULL)打开文件并判定是否出错
创建文件失败!
打印出错提示
getchar();
return;
if((fp1=fopen("
m;
if(fwrite(&
s[i],sizeof(structair),1,fp)==0)向文件写入数据,并判定是否出错
向文件输入数据失败!
fprintf(fp1,"
fclose(fp);
fclose(fp1);
voidread()从文件读取信息模块
rb"
))==NULL)打开文件,并判定是否出错
出错,请检查文件是否存在,按任意键返回住菜单"
fscanf(fp1,"
m);
fread(&
s[i],sizeof(air),1,fp);
从文件中读取信息
voidprint()打印模块
charw[10];
read();
调用读取文件函数
航班号起始站终点站时间机票数\n"
printf(PRINT);
打印信息
请按任意键回车键结束返回上层菜单以:
w);
voidsearch()查询模块
charname1[20];
charname2[20];
charii[10];
intn,no;
do
请选择查找方式:
打印查询方式菜单
1.按航班号查找\n\n"
2.按终点站查找\n\n"
3.按航线查找\n\n"
0.返回\n\n"
请在0-3中选择:
按其他键以回车键结束返回主菜单:
n);
读取查找方式
if(n==0)
switch(n)
请输入航班号:
no);
航班号
请输入终点站名称:
name2);
请输入起始站名称:
name1);
终点站
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 撰写 格式
![提示](https://static.bingdoc.com/images/bang_tan.gif)