第五次实验报告张明娟Word格式.docx

上传人:b****2 文档编号:5763985 上传时间:2023-05-05 格式:DOCX 页数:35 大小:168.23KB
下载 相关 举报
第五次实验报告张明娟Word格式.docx_第1页
第1页 / 共35页
第五次实验报告张明娟Word格式.docx_第2页
第2页 / 共35页
第五次实验报告张明娟Word格式.docx_第3页
第3页 / 共35页
第五次实验报告张明娟Word格式.docx_第4页
第4页 / 共35页
第五次实验报告张明娟Word格式.docx_第5页
第5页 / 共35页
第五次实验报告张明娟Word格式.docx_第6页
第6页 / 共35页
第五次实验报告张明娟Word格式.docx_第7页
第7页 / 共35页
第五次实验报告张明娟Word格式.docx_第8页
第8页 / 共35页
第五次实验报告张明娟Word格式.docx_第9页
第9页 / 共35页
第五次实验报告张明娟Word格式.docx_第10页
第10页 / 共35页
第五次实验报告张明娟Word格式.docx_第11页
第11页 / 共35页
第五次实验报告张明娟Word格式.docx_第12页
第12页 / 共35页
第五次实验报告张明娟Word格式.docx_第13页
第13页 / 共35页
第五次实验报告张明娟Word格式.docx_第14页
第14页 / 共35页
第五次实验报告张明娟Word格式.docx_第15页
第15页 / 共35页
第五次实验报告张明娟Word格式.docx_第16页
第16页 / 共35页
第五次实验报告张明娟Word格式.docx_第17页
第17页 / 共35页
第五次实验报告张明娟Word格式.docx_第18页
第18页 / 共35页
第五次实验报告张明娟Word格式.docx_第19页
第19页 / 共35页
第五次实验报告张明娟Word格式.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第五次实验报告张明娟Word格式.docx

《第五次实验报告张明娟Word格式.docx》由会员分享,可在线阅读,更多相关《第五次实验报告张明娟Word格式.docx(35页珍藏版)》请在冰点文库上搜索。

第五次实验报告张明娟Word格式.docx

9、学习使用文件打开、文件关闭、读写文件等基本的文件操作函数。

实验内容和原理或涉及的知识点:

1、编写函数printArray,使用指针实现打印一维整型数组中所有元素的操作。

要求:

每行打印5个整数。

在main函数中定义一个整型数组并初始化,验证printArray函数。

2、编写函数swap,实现交换调用函数中两个整型变量值的操作。

使用形参为指针的函数swap完成交换功能。

3、编写函数strcat,实现两个字符串连接。

不允许调用C的字符串函数strcat。

主程序中从键盘输入一个字符串。

调用strcat函数实现字符串拷贝操作。

输出拷贝后字符串的内容。

4、编写函数strcmp,实现2个字符串的比较。

函数原型为:

intstrcmp(char*p1,char*p2)

5、编写函数sort,使用指针实现对一个整型数组从小到大进行排序。

6、从键盘输入4个学生的学号、姓名、语文、数学、英语信息,然后计算出每个学生的平均成绩,最后按平均成绩从高到低的顺序输出。

学生的信息包括学号、姓名、语文、数学、英语、平均成绩。

4个学生的成绩存放在一维数组中。

7、下面的程序,构造一个如图2所示的三个结点的链表,并顺序输出链表中结点的数据。

图2包含三个结点的链表

8、利用共用体输出一个float类型数据在计算机内部的二进制形式。

9、利用指向函数的指针作为参数,构造一个可以对字符串作不同处理的通用的函数。

通用字符串处理函数名是voidstringHandler(char*,void(*p)(char*)),写出两个具体的字符串处理函数:

voidfirstUpper(char*),将字符串中每个单词的首字母大写。

voidallUpper(char*),将字符串中所有字母大写。

然后分别使用stringHandler调用这两个具体处理函数,分别输出结果进行验证。

10、编写程序,从键盘输入某宿舍楼6家住户某月的水电消耗量及水费和电费标准,计算各户应交纳的水费和电费。

数据及要求如下:

(1)水费标准为:

1.5元/吨,电费标准为:

0.5元/度,6户人家的信息如下表:

住户地址

水耗(吨)

电耗(度)

101

5

150

201

90

301

120

401

3

78

501

60

601

105

将表中信息按下面格式组织在文件input.dat中:

1.50.5

1015150

201490

3014120

401378

501560

6016105

要求程序从文件input.dat中读取上述数据。

(2)分别计算每户应交纳的电费、水费以及电费水费的总和。

●汇总全部住户水费、电费的总和;

●将计算结果按下面格式写入文件charge.dat中。

表格线不必输出,第一行内容可使用英文或拼音码表示。

水费(元)

电费(元)

合计(元)

7.5

75

82.5

45

51

66

4.5

39

43.5

30

37.5

9

52.5

61.5

total

27

40.5

603

301.5

342

实验条件:

1、装有Windows操作系统的微型计算机;

2、CodeBlocks软件。

实验设计方案:

1、分析问题。

2、画出程序的流程图。

3、实现程序。

实验数据和实验结果记录

1.解:

#include<

stdio.h>

intprintArray(int*m,intn)

{

inti;

for(i=0;

i<

n;

i++)

{

printf("

%d"

*(m+i));

if(((i+1)%5)==0)

\n"

);

}

}

intmain()

inta[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

printArray(a,15);

2.解:

#include<

intswap(int*m,int*n)

intp;

p=*m;

*m=*n;

*n=p;

inta,b;

int*pointer1,*pointer2;

scanf("

%d,%d"

&

a,&

b);

pointer1=&

a;

pointer2=&

b;

swap(pointer1,pointer2);

a,b);

3.解:

voidstrca(char*a,char*b)

for(;

*a!

='

\0'

;

a++);

*b!

a++,b++)

*a=*b;

*a='

voidmain()

chara[]="

Hello"

charb[]="

world!

"

strca(a,b);

puts(a);

4.解:

intstrcmp(char*p1,char*p2);

charstr1[30],str2[30];

printf("

\npleaseinputstring1:

gets(str1);

\npleaseinputstring2:

gets(str2);

\t%d\n"

strcmp(str1,str2));

inti=0;

while(*(p1+i)==*(p2+i))

if(*(p1+i++)=='

)//全部字符相同时返回结果0

return0;

return(*(p1+i)-(*(p2+i)));

//不同时返回结果为第一对不同字符的ASCII码的差值

5.解:

#defineN10

voidsort(int*p,intn)

inti,j,k,t;

n-1;

k=i;

for(j=i+1;

j<

j++)

if(*(p+j)<

*(p+k))

k=j;

if(k!

=i)

t=*(p+i);

*(p+i)=*(p+k);

*(p+k)=t;

inti,a[N];

PleaseenterNintegernumbers:

N;

a[i]);

sort(a,N);

Fromsmalltolargetosort:

a[i]);

解:

6.解

#defineN4

structStduent

intnum;

charname[20];

floatscore[3];

floataver;

};

structStduentstu[N],*p=stu,t;

voidinput(structStduentstu[])

请输入N名学生的信息:

学号、姓名、3名成绩:

%d%s%f%f%f"

stu[i].num,stu[i].name,&

stu[i].score[0],&

stu[i].score[1],&

stu[i].score[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/(3.0);

structStduentaverage(structStduentstu[])

inti,j,k;

N-1;

if(stu[k].aver<

stu[j].aver)

t=stu[i];

stu[i]=stu[k];

stu[k]=t;

voidprint(structStduentstu[])

\n按平均成绩从高到低依次为:

%d%s%f%f%f%f\n"

stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);

input(p);

average(p);

print(p);

7.解:

#include<

structStudent

intnumber;

structStudent*next;

structStudenta,b,c,*head,*p;

a.number=10;

b.number=20;

c.number=30;

head=&

a.next=&

b.next=&

c;

c.next=NULL;

p=head;

do

%d\n"

p->

number);

p=p->

next;

}while(p!

=NULL);

8.解:

#defineN1000000

unionFF

floatf;

}a;

intx[100];

请输入任意一个含有六位小数的float型的浮点数(如3.333333):

%f"

a.f);

intn=a.f;

intnn=a.f;

inti=0,j;

while(n!

=0)

x[i]=n%2;

n/=2;

i++;

for(j=i-1;

j>

=0;

j--)

%d"

x[j]);

."

intm=(int)(a.f*N)%N;

intl=0,y[100];

while

(1)

m*=2;

intmm=m/N;

y[l]=mm;

if(mm>

0)

m=m%N;

if(m==0)

break;

if(l>

10)

l++;

intll;

for(ll=0;

ll<

10;

ll++)

y[ll]);

此数小数部分转换过长,自动保存10位小数\n"

else

l+1;

9.解:

voidfirstUpper(char*M)

inti,word=0;

M[i]!

if(M[i]=='

'

word=0;

elseif(word==0)

word=1;

if(M[i]>

a'

&

M[i]<

z'

M[i]=M[i]-32;

voidallUpper(char*M)

voidstringHandler(char*M,void(*p)(char*M))

(*p)(M);

Thefinalstring:

puts(M);

chara[50];

intn;

Pleaseenterthestring:

gets(a);

Pleasechoose1or2:

n);

if(n==1)

stringHandler(a,firstUpper);

stringHandler(a,allUpper);

10.解:

stdlib.h>

#definesize7

structconsumer

//住户地址

intwaterc;

//水耗

floatwaterm;

//水费

intelec;

//电耗

floatelem;

//电费

floattotal;

//合计

}co[size];

FILE*fp1,*fp2;

inti,counter;

floata,b;

counter=size-1;

if((fp1=fopen("

E:

\\input.dat"

"

rb"

))==NULL)

cannotopenfile.\n"

exit

(1);

fscanf(fp1,"

%f%f\n"

//读电费、水费标准

%f,%f"

counter;

%d%d%d"

co[i].num,&

co[i].waterc,&

co[i].elec);

co[i].num,co[i].waterc,co[i].elec);

co[i].waterm=co[i].waterc*a;

co[i].elem=co[i].elec*b;

co[i].total=co[i].waterm+co[i].elem;

fclose(fp1);

if((fp2=fopen("

\\charge.dat"

wb"

cannotopenfile\n"

********************\n"

fprintf(fp2,"

地址水耗(吨)水费(元)电耗(度)电费(元)合计(元)\n"

%d%d%f%d%f%f\n"

co[i].num,co[i].waterc,co[i].waterm,co[i].elec,co[i].elem,co[i].total);

co[counter].waterc=0;

co[counter].waterm=0;

co[counter].elec=0;

co[counter].elem=0;

co[counter].total=0;

i++)//算总价

co[counter].waterc+=co[i].waterc;

co[counter].waterm+=co[i].waterm;

co[counter].elec+=co[i].elec;

co[counter].elem+=co[i].elem;

co[counter].total+=co[i].total;

total%d%f%d%f%f\n"

co[counter].waterc,co[counter].waterm,co[counter].elec,co[counter].elem,co[counter].total);

fclose(fp2);

记录成绩(涂改无效)

合格□

不合格□

【实验结果分析及心得】

1、认真分析程序结果,思考是否完成题目要求,是否还有其他的实现方案。

2、总结编程过程中遇到的问题及解决办法,记录各种编程技巧。

课程设计:

图书管理信息系统

#include<

string.h>

structbook

charno[10];

//书号

charname[10];

//书名

charpublishday[10];

//出版日期

charchapt[3];

//类别

charwriter[10];

//作者

charindex[20];

//借阅标记

intrepeat;

//借阅次数

charadd[20];

//备份

}a[50];

intmenu()//杨国林

*******************************************************\n"

*欢迎来到图书管理系统*\n"

**\n"

*主菜单*\n"

*●[1]图书信息输入*\n"

*●[2]图书信息显示*\n"

*●[3]图书信息查询*\n"

*●[4]图书信息插入*\n"

*●[5]图书信息删除*\n"

*●[6]图书信息保存*\n"

*●[7]图书信息读入*\n"

*●[8]图书信息排序*\n"

*●[9]图书信息修改*\n"

*●[10]图书信息退出*\n"

请输入您想选择的序号O(∩_∩)O:

i);

returni;

intmenu2()

*●[1]图书信息显示*\n"

*●[2]图书信息查询*\n"

*●[3]图书信息退出*\n"

intenter()//张明娟

intn,j;

要输入的图书数量:

书号/书名/出版日期/类别/作者/借阅标记/借阅次数/备份(请用空格分开)\n"

for(j=0;

%s%s%s%s%s%s%d%s"

a[j].no,a[j].name,a[j].publishday,a[j].chapt,a[j].writer,a[j].index,&

a[j].repeat,a[j].a

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2