C语言课程设计报告英文排版系统的实现二.docx
- 文档编号:30539942
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:17
- 大小:147.07KB
C语言课程设计报告英文排版系统的实现二.docx
《C语言课程设计报告英文排版系统的实现二.docx》由会员分享,可在线阅读,更多相关《C语言课程设计报告英文排版系统的实现二.docx(17页珍藏版)》请在冰豆网上搜索。
C语言课程设计报告英文排版系统的实现二
C
语
言
课
程
设
计
英文排版系统的实现
学号:
20071000697
班级:
055071--04
姓名:
黄露
指导老师:
刘文中
前言
一、C语言课程设计的目的:
高级语言课程设计是学习完《高级语言程序设计》课程后进行的一次全面的综合性上机实验。
其目的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼同学的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力。
二,要求一种简单的英文词典排版系统的实现
(1)能输入和显示打入的单词。
(2)能分辨出单词。
(3)对重复的单词和已经输入的单词能自动排除。
(4)能按A~Z的顺序排版。
(5)能将运行结果以文本形式存储。
(6)具有添加新单词并重新排版的能力。
三.构架
四。
流程图
五。
程序说明
程序第一次运行时,会创建一个“word.txt”(不包括引号)的文本文件,然后要求输入单词。
若要退出,请不要点DOS窗口的小叉叉,输入d即可。
因为程序在结束之前,对数组中的单词重新排序,并存储到文件中。
#include"stdio.h"---
#include"stdlib.h"---为exit()函数提供原型;
#include"string.h"---字符串处理函数原型;
#include"ctype.h"---字符处理函数原型;
#defineROWS256
#defineCOLS32---定义“字典”的大小:
可存放256个单词,每个单词的长度不超过31
staticFILE*fp;---定义文件指针:
内部链接,文件作用域;
staticchara[ROWS][COLS];---定义数组:
内部链接,文件作用域;该数组的作用是将文件的内容复制进来,并加以处理。
因为处理数组比处理文件方便。
charget_option(void);---接收用户的选项,防止误操作。
若输入“a;”(不包括引号),那么将视为选项a
intb(intcount);---完成选项b的作用--接收新单词;
voidc(char*pt[],intcount);---完成选项c的作用--通过指针对数组排序,实际数组元素位置未改变;
intcheck(chararr[],intcount);---对输入的单词进行分辨,若输入nihao,将视为单词ni,并且提示并剔除重复的单词;
voidstorage(char*pt[],intcount);---在程序结束之前重新排序存储数组中的单词到文件中。
六。
程序源代码。
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"ctype.h"
#defineROWS256
#defineCOLS32
staticFILE*fp;
staticchara[ROWS][COLS];
charget_option(void);
intb(intcount);
voidc(char*pt[],intcount);
intcheck(chararr[],intcount);
voidstorage(char*pt[],intcount);
intmain(void)
{
inti,count;
intstart;
char*pt[ROWS];
charch,len;
charinput;
if((fp=fopen("words.txt","a+"))==NULL)
{
fputs("不能打开或建立文件!
\n",stderr);
exit
(1);
}
fseek(fp,0L,SEEK_END);
start=(int)ftell(fp)/32;
count=start;
rewind(fp);
if(fread(a,32*sizeof(char),start,fp)==0)
{
i=0;
puts("开始创建词库");
puts("请输入单词(每行一个)");
puts("在新行输入END结束输入:
");
while(i { fflush(stdin); if(strncmp(a[i],"END",3)==0) { count+=i; break; } if(check(a[i],i)) continue; i++; } } puts("\t\t*********************欢迎使用字典排版系统*******************\n\n"); puts("MENU"); puts("您要做些什么? "); puts("a.显示已有的单词b.添加新单词"); puts("c.对已有的单词进行排序d.退出"); puts("\n\n\t\t**********************************************************\n"); while((input=get_option())! ='d') { if(input=='a') { puts("已有的单词: "); for(i=0;i { printf(""); puts(a[i]); } } if(input=='b') { puts("开始创建词库"); puts("请输入新的单词(每行一个)"); puts("在新行输入END结束输入: "); count=b(count); } if(input=='c') { puts("对单词进行排序: "); c(pt,count); for(i=0;i { printf(""); puts(pt[i]); } } puts("还要做些什么? "); } storage(pt,count); fclose(fp); puts("谢谢使用,再见! "); return0; } charget_option(void) { charch; while((ch=getchar())<'a'||ch>'d') { while((ch=getchar())! ='\n') ; puts("请输入a,b,c或者d."); } fflush(stdin); returnch; } intb(intcount) { inti; i=count; while(i { fflush(stdin); if(check(a[i],i)) continue; if(strncmp(a[i],"END",3)==0) { count=i; break; } i++; } returncount; } voidc(char*pt[],intcount) { inti,j; char*temp; for(i=0;i pt[i]=a[i]; for(i=0;i for(j=i+1;j { if(strcmp(pt[i],pt[j])>0) { temp=pt[i]; pt[i]=pt[j]; pt[j]=temp; } } } intcheck(chararr[],intcount) { inti; intflag=0; for(i=0;i if(isalpha(arr[i])==0) { printf("%s不是一个单词.\n",arr); flag=1; break; } for(i=0;i if(strncmp(a[i],a[count],strlen(a[count])+1)==0) { puts("重复的单词! "); flag=1; } returnflag; } voidstorage(char*pt[],intcount) { inti,j; charptr[ROWS][COLS]; c(pt,count); for(i=0;i for(j=0;pt[i][j]! ='\0';j++) ptr[i][j]=pt[i][j]; fp=fopen("words.txt","w+"); rewind(fp); fwrite(ptr,32*sizeof(char),count,fp); } 七.心得体会 这两星期一直在做程序设计,今天终于完成了,心里别提有多兴奋。 看着这两礼拜自己的劳动成果,这两个礼拜发生的种种历历在目。 还记得刚开始时,进展可以用一筹莫展来形容,当时真想放弃,可自身不轻易认输的性格支持着我。 同时,我也清楚地知道21世纪挑战与机遇并存,没有足够的知识储备必将被时代所抛弃。 C语言作为国际上广泛流行的通用程序设计语言,在计算机的研究和应用中已展现出强大的生命力。 C语言兼顾了诸多高级语言的特点,是一种典型的结构化程序设计语言,它处理能力强,使用灵活方便,应用面广,具有良好的可移植性。 虽然我们C语言已有四个月,但一直都重概念、轻实践,这次设计对我们来说是千载难逢的机会,无论如何都要好好把握。 心态一转变,整个人的精神状态都非同寻常,而且这种程序设计课比一般的课堂教学更具灵活性,它可以始终使人处于兴奋之中。 高中的教育模式化倾向太强,整齐划一的教育模式使学校变成“工厂”,学生成为统一式模子加工出来的“标准件”。 但大学的程序设计实践课促进我们的个性充分、健康地发展,最大限度地激发我们的学习热情和创造热情。 我可以说若你一一欣赏我们的设计,你一定会眼花缭乱,因为它们各种各样、各有千秋。 并且,它无形中促进我们自主学习,使我们对C语言有了更深刻地了解,对程序设计有了更高的操作水平。 通过这次实践我明白: 人是在与他人交往中认识世界,在交流中不断调整和修正自己的错误,从而使之更全面,更透彻。 这套运算器的程序都由我们自己互相帮助,经过无数次的修改而成,老师只是辅导。 我们知道老师不再是全知全能的权威,不再是知识的来源,他们只是学生的协作和促进者,只有我们才是学习的主人。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 英文 排版系统 实现