- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
语言程序设计报告
姓名:
班级:
学号:
指导教师:
课题:简单的行编辑器
简单的行编辑器
题目要求
设置一个简单的行编辑器,每行以回车结束。
数据以文件形式存储。
编辑器具有查找,替代,修改数据的功能。
需求分析
根据题目要求,数据以文件的形式存储,所以应提供文件的输入,输出等操作;还需要文件具有查找,替换,修改数据的功能。
总体设计
根据上面的需求分析,可以将这个系统的设计分为如下七大模块:
编辑,查找,修改,,删除,替换,保存,退出。
详细设计
主函数
为了各模块的独立性,主函数一般设计得比较简单,本系统主要用主函数打开上次保存的数据和进入主菜单函数
流程图
程序
/*********************************主函数**************************************/
main()
{FILE *pfile;
pfile=fopen(Linedit.txt,a+);
readfile(lines,pfile);
fclose(pfile);
menu(lines);
}
int readfile(char (*lines)[MAXC],FILE *pfile) {
int i=0;
while(!feof(pfile)){
fgets(lines[i],MAXC,pfile);
/*if(!strstr(lines[i],\n)) return 1;*/
i++;
}
return 0;
}
主菜单函数
流程图
程序
void menu(char (*lines)[MAXC]){
int selection;
do{
system(cls);
puts(\t\t***********************MUNU******************\n\n);
puts(\t\t1.Edit new line);
puts(\t\t2.Replace line);
puts(\t\t3.Delete line);
puts(\t\t4.Search line);
puts(\t\t5.Modify data);
puts(\t\t6.Save);
puts(\t\t0.Exit);
puts(\n\n\t\t********************************************\n);
printf(Please select a number:[ ]\b\b);
do{
scanf(%d,selection);
if(selection0||selection6) {
printf(Invalid selection!Please try again );
printf(and select a number:[]\b\b\n);
}
else break;
}while(true);
switch(selection)
{
case 1:edit(lines);break;
case 5:modify(lines);break;
case 3:mydelete(lines);break;
case 4:search(lines);break;
case 2:replace(lines);break;
case 6:savetofile(lines);break;
case 0:myexit(lines);
}
} while(true);
}
各功能模块设计
编辑模块
流程图
程序
/*****************************编辑*************************************/
void edit(char (*lines)[MAXC])
{
int i,index;
/*system(cls);*/
clrscr();
for(i=0,index=0;iMAXL;i++)
if(lines[i][0]!=0)
{
index++;
printf(%d: %s,index,lines[i]);
}
printf(\n\nPlease type a new line:\n);
fflush(stdin);
for(i=0;iMAXL;i++)
{
if(lines[i][0]==\0)
{ /*每行第一个字符作为标志位 空行可写入*/
fgets(lines[i],M
文档评论(0)