程序设计训练

有多项式计算器,哈夫曼编码译码器,校园导游咨询的编程已经上传

c语言使用一些基础知识

1.文件

(1)fopen("路径”,"打开方式”):打开文件才能对文件进行操作;打开方式有r(以只读的方式打开,文件必须存在)r+(r的升级版,不仅可以进行读操作也可以进行写操作,注意r返回首指针,进行写操作的时候没有调整指针位置会覆盖原先的内容;文件依旧需要存在)w(以只写的方式打开,若文件不存在会自行创建一个文件)w+(以可读可写的方式进行创建文件,注意文件内容会清空重写)a(以只写的方式打开,返回末尾指针,这就可以在文数据的后面写入数据)a+(a的升级办版,可以进行读的操作);在ab,wb,rb则是对文件的二进制表示进行操作;

(2)fclose(fp):打开文件操作完后要关闭文件,提高运行速度;

(3)fgetc(fp):读取操作,读取fp所指位置的一个字符并返回值,注意只能一个字符;

(4)fputc(ch,fp):写入操作,写入一个字符到fp所指位置;

(5)fgets(str,n,fp):读取操作,读取fp位置后的n个字符到字符数组str[]中;(最后一个字符设定为截止信号\0,所以要取n个就要设定n+1);

(6)fputs(str,fp):将str(数组名)的字符串输入到文件fp位置后,str也可直接改为“字符串”;

(7)fscanf(fp,"%d%c%s",&a,&b,str):读操作,将fp后满足格式的内容依次赋值给a,b,str;fgets,fgetc的杂烩型;

(8)fprintf(fp,"%d%c%s",a,b,c):写入操作,这种写入十分方便,将各类型的量都输入到文件中,fgetc与fgets的杂烩型;

(9)rewind(fp):将指针fp重新定位到文件首端;

(10)fwrite(buffer,size,n,fp):意思是输出n个size大小buffer指针所指的数据到fp位置后;

(11)fread(buffer,size,n,fp):意思是读入fp后的n个size大小的数据到buffer;

(13)fseek(fp, size, a):a=0将文件指针fp移动到首开始数size大小位置;a=1,从指针位置开始数;a=2,文末位置;

2.字符串

(1)int strcmp(const char *s1, const char *s2):比较s1,s2,若相等则返回0;若s1>s2则返回大于0的数;若s1<s2则返回小于0的一个数;

(2)strcpy(s1,s2):将s2复制到s1;

(3)strcat(s1,s2):将s2连接到s1的末尾;

/int scanf(char *format[,argument,...]);

double pow(double x,double y)//求指数幂x的y次幂

fscanf读空格

feof()

%[^\r\n]

解决中文读取乱码

程序设计编程:

需要达到功能:

(1)一元稀疏多项式计算器(2)迷宫问题(3)关键字查找(4)哈夫曼编码/ / 译码器(5)校园导游咨询

菜单函数:

一级菜单:展示各选项,输入数字比较到对应的二级菜单;

二级菜单:(1)

(1)一元稀疏多项式函数:

实现功能:①输入一元稀疏多项式的单链表格式②实现多项式相加减函数③实现二项相乘,为第一个单链表的每个元素乘第二个单链表所有元素构造一个单链表并未这些单链表构造成数组;

需要函数:

void CreatPolyn (LinkList &P, int m );
void DestroyPolyn (LinkList &P );
void PrintPolyn (LinkList P );
void AddPolyn (LinkList &Pa, LinkList &Pb );
void SubtractPolyn (LinkList &Pa, LinkList &Pb );
void MultiplyPolyn (LinkList &Pa, LinkList &Pb );

(4)咍夫曼编码/译码器:

实现功能:①编辑文本(1重新写入文本2增加文本字符)②统计文本字符频率③构建咍夫曼树④为一段文字编码⑤为一段二进制译码;

void count(LinkList2 &L1);//将统计的字符频率存入L1表中;

(5)校园导游咨询

实现功能:①从文件中读入校园导游图信息(输出信息)②修改扩充功能:打开文件自行修改③查询任一景点相关信息(输入景点号码④任意两个顶点的最短路径

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

--

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值