c语言高级程序设计实验报告,高级C语言程序设计实验报告..doc

高级C语言程序设计实验报告.

XXXX大学XXXX学院

?

?

实 验 报 告

?

?

?

?

课程名称: 高级语言程序设计(C)

实验名称:循环、数组、函数和结构体程序设计

实验类型: 验证性□ 综合性√ 设计性□

实验室名称: 校计算中心

班级: 通信10-1班 学号:

姓名: 组别:

同组人: 成绩:

实验日期:

?

?

?

?

?

实验报告撰写要求

实验前用预习报告纸撰写预习报告,预习报告包括以下内容

实验目的

实验用仪器设备、器材或软件环境

实验原理、方案设计、程序框图、预编程序等

实验过程中需要记录的实验数据表格

实验过程中,要认真观察,仔细记录

完成实验后用实验报告纸撰写实验报告,包括以下内容

仪器设备型号及编号

实验器材或软件环境

实验步骤、程序调试方法

实验数据处理及结果分析

实验中存在的问题

体会及思考

报告撰写时,要求格式规范、书写整齐

预习报告成绩: 指导教师审核(签名): 年 月 日

预习报告

实验目的:

掌握结构体类型变量的定义和使用

掌握结构体类型变量的概念和使用

掌握用指针访问结构体的方法

掌握利用结构体进行函数参数的传递

实验软件环境:

Microsoft Visual C++ 6.0

三、1.实验原理:

利用结构体、函数的调用和指针的传输。

2.方案设计:

首先定义一个结构体,用来存储信息;定义一个主函数,用来输出各项结果;定义一个input函数用于输入各项信息;定义一个average函数用于求平均值和总分;定义一个maximum用于求总的平均值;

3.程序框图:

( 结构体 )

( 主函数 )

调用调用调用

函数(用于输入各项信息)函数(用于求平均值和总和)函数(用于求总的平均值)

4.预编程序:

#include

#define N 10

struct stu

{

int number,score1,score2,score3,total;

float average;

char name[10];

}students[N],stud[N],*p1;

float aver;

int a;

main()

{

input(students);

average(students);

maximum(students[N]);

printf(" No. name score1 score2 score3 total average\n");

for(p1=students;p1

printf("%5d%8s%10d%10d%10d%9d%11.2f\n",p1->number,p1->name,p1->score1,p1->score2/

,p1->score3,p1->total,p1->average);

printf("average=%0.2f",aver);

printf("\nThe highest score:%s,score total:%d\n",students[a].name,students[a].total);

}

input(struct stu *p1)

{

for(p1=students;p1

{

scanf("%d%d%d%d",&p1->number,&p1->score1,&p1->score2,&p1->score3);

gets(p1->name);

}

}

average(struct stu *p1)

{

float ave=0.0;

for(p1=students;p1

{

p1->total=p1->score1+p1->score2+p1->score3;

p1->average=p1->total/3.0;

}

for(p1=students;p1

ave+=(p1->average);

aver=ave/3.0;

}

maximum(struct stu *p2)

{int temp,i;

for(i=0;i

if(students[i].total>students[i+1].total)

{

temp=students[i].tota

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
西南交通大学;实验(大作业)题目:C语言文件操作;实验目的: (1) 掌握C语言字符文件读写方法; (2) 掌握C语言二进制文件读写方法。 实验要求: (1) 完成2个文件操作程序。 (2) 撰写实验报告:每个程序包括源程序代码;按要求描述关键算法或算法流程图;提供程序测试结果(至少两种不同输入,可屏幕截图)与结论。 实验内容: 1. 在字符文件b.txt中录入n个整数,录入整数的分隔符为空格、换行或TAB。若n=5,则b.txt的一种正确格式为 5 9 12 -15 30 -7 即b.txt的第一个数为n,后面是n个整数。 编写程序,从文件b.txt读出n值,建立长度为n的动态1维整型数组,然后继续从文件b.txt读入n个整数存于该数组,进行由小到大排序,最后将排序结果输出到字符文件c.txt中。 要求的输出格式是每个整数%6d,每输出5个整数换一行。 实验报告中要求给出该程序的流程图。 2. 1616点阵汉字的显示。从键盘输入一个汉字,从1616点阵汉字库文件HZK16.dat中毫读取汉字点阵信息,打印汉字到控制台屏幕上(构成汉字的每个点用输出字母O表示)。 输入输出示例: 请输入一个汉字:中 O O O O OOOOOOOOOOOOOO O O O O O O O O O O O O OOOOOOOOOOOOO O O O O O O O O O 提示1:16*16点阵字库文件HZK16.dat的存储格式。 以汉字“我”为例,16*16点阵构成的字形信息用二进制编码(1表示有点,0表示无点)形成32字节,每行2个字节,共16行,如下所示。这32个字节在文件中的存储顺序为:每行从左向右,行从上到下。 16*16点阵字库文件HZK16.dat中,每个汉字(32字节字形信息)按区位码由小到大的顺序存储。以汉字“啊”为例,它的区号为16,位号为1,故它的32字节字形信息在文件中的起始字节偏移量offset=((区号-1)*94+位号-1)*32。 0000010010000000 0x04,0x80 0000111010100000 0x0E,0xA0 0111100010010000 0x78,0x90 0000100010010000 0x08,0x90 0000100010000100 0x08,0x84 1111111111111110 0xFF,0xFE 0000100010000000 0x08,0x80 0000100010010000 0x08,0x90 0000101010010000 0x0A,0x90 0000110001100000 0x0C,0x60 0001100001000000 0x18,0x40 0110100010100000 0x68,0xA0 0000100100100000 0x09,0x20 0000101000010100 0x0A,0x14 0010100000010100 0x28,0x14 0001000000001100 0x10,0x0C 提示2:GB2312-80汉字内码 GB2312-80共收录约6700多个汉字以及其它符号,用一个94行*94列的表格表示(最多可表示94*94个汉字和符号)。某个汉字所在的行号(从1开始)称为“区号”,列号(从1开始)称为“位号”,形成区位码。 如:汉字“啊”在16行,第1列,故它的区位码为(16,1)。 在存储器中,为了与ASCII码区别,用内码表示一个汉字的编码,汉字的内码为一个2字节编码,第一字节=区号+160,第2字节=位号+160,故汉字“啊”的内码为(176,161)。 已知汉字内码,则在HZK16.dat中该汉字32字节字形信息首字节的存储位置为 offset=((内码第一字节-161)*94+(内码第二节字-161))*32

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值