实验六

Posted 202283300588t

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验六相关的知识,希望对你有一定的参考价值。

实验任务4
程序源码
#include <stdio.h> #include <string.h> #define N 100 typedef struct char num[10]; // 学号 int s1; // 期末成绩 int s2; // 平时成绩 double sum; // 总评 char level[10]; // 等级 STU; int fun(STU a[], int n, STU h[]); // 函数声明 int main() STU s[N] = "GA05", 85, 76, "GA03", 76, 90, "GA02", 69, 90, "GA04", 85, 56, "GA01", 91, 95, "GA07", 72, 80, "GA08", 64, 45, "GA06", 87, 98, "GA015", 85, 86, "GA013", 91, 97; // 原始学生成绩记录 STU h[N]; // 保存均分以上学生记录 int i, k, n = 10; // 调用fun对学生成绩记录进行处理 k = fun(s, n, h); // 输出均分以上学生记录 printf("There are :\\n"); for (i = 0; i < k; i++) printf("%s %d %d %.2f %s\\n", h[i].num, h[i].s1, h[i].s2, h[i].sum, h[i].level); return 0; // 函数定义 // 功能:对包含n条学生成绩记录的数组a进行处理: // 计算总评成绩,统计等级为"均分以上"的学生记录保存到数组h中,并返回其人数 int fun(STU a[], int n, STU h[]) double ave=0; for(int i=0;i<n;i++) ave+=a[i].sum=a[i].s1*0.7+a[i].s2*0.3; ave/=n; int cnt=0; for(int i=0;i<n;i++) if(ave<a[i].sum) // for(int j=0;j<10;j++) h[cnt].num[j]=a[i].num[j]; strcpy(h[cnt].num, a[i].num); strcpy(h[cnt].level, "均分以上"); h[cnt].sum=a[i].sum; h[cnt].s1=a[i].s1; h[cnt++].s2=a[i].s2; return cnt;

程序运行截图

实验任务5

程序源码

#include <stdio.h>
#include <string.h>
#define N 5
typedef struct student

    char name[10];
    int num;
    int maths;
    int computer;
    int english;
    int sum;
    char level[10];
 STU;
void fun(STU a[], int n); // 函数声明
int main()

    STU s[6 * N] = "A001", 1, 34, 67, 80,
                    "B003", 3, 78, 87, 90,
                    "A002", 2, 90, 98, 99,
                    "B002", 4, 56, 78, 98,
                    "A005", 5, 35, 67, 79;
    int i;
    fun(s, N);
    for (i = 0; i < N; i++)
        printf("%s %d %d %d %d %d %s\\n", s[i].name, s[i].num, s[i].maths,
               s[i].computer, s[i].english, s[i].sum, s[i].level);
    return 0;

// 函数定义
// 功能:对包含n条学生成绩记录的数组a进行处理:
// 计算三门课程总分、总分最大值、总分最小值,并设置等级:
// 总分与总分最大值相等的同学的等级设置为优秀
// 总分与总分最小值相等的同学的等级设置为不及格
// 其余同学的等级设置为合格
void fun(STU a[], int n)

    int min_sum=1000;
    int max_sum=-1;
    for(int i=0;i<n;i++)
        a[i].sum=a[i].maths+a[i].computer+a[i].english;
        if(a[i].sum>max_sum)
            max_sum=a[i].sum;
        
        if(a[i].sum<min_sum)
            min_sum=a[i].sum;
        
    
    for(int i=0;i<n;i++)
        if(a[i].sum==max_sum)
            strcpy(a[i].level, "优秀");
        
        else if(a[i].sum==min_sum)
            strcpy(a[i].level, "不及格");
        
        else
            strcpy(a[i].level, "合格");
        
    
    return;

程序运行截图

实验任务6

程序源码

#include <stdio.h>
#define N 5
// 定义结构体类型struct student, 并定义STU为其别名
typedef struct student

    long no;
    char name[20];
    int score;
 STU;
// 函数声明
void input(STU s[], int n);
int find_min_list(STU s[], STU t[], int n);
void output(STU s[], int n);
int main()

    STU stu[N], min_list[N];
    int count;
    printf("录入%d个学生信息\\n", N);
    input(stu, N);
    printf("\\n统计最低分人数和学生信息...\\n");
    count = find_min_list(stu, min_list, N);
    printf("\\n一共有%d个最低分,信息如下:\\n", count);
    output(min_list, count);
    return 0;

// 输入n个学生信息,存放在结构体数组s中
void input(STU s[], int n)

    for(int i=0;i<n;i++)
        scanf("%ld %s %d",&s[i].no,s[i].name,&s[i].score);
    
    return;

// 输出结构体s中n个元素信息
void output(STU s[], int n)

    for(int i=0;i<n;i++)
        printf("%ld %s %d\\n",s[i].no,s[i].name,s[i].score);
    
    return;

// 在结构体数组s中,查找最低分学生的记录,将其存入结构体数组t中
// 形参n是结构体数组s中元素个数
// 函数返回最低分的学生人数
int find_min_list(STU s[], STU t[], int n)

    int min_score=1000;
    int cnt=0;
    for(int i=0;i<n;i++)
        if(min_score>s[i].score) min_score=s[i].score;
    
    for(int i=0;i<n;i++)
        if(min_score==s[i].score)
            for(int j=0;j<20;j++)
                t[cnt].name[j]=s[i].name[j];
            
            t[cnt].score=s[i].score;
            t[cnt++].no=s[i].no;
        
    
    return cnt;

程序运行截图

 

区块链技术与应用实验报告(实验六)

文章目录

区块链技术与应用实验报告(实验六)

关于作者

  • 作者介绍


    🍊 博客主页作者主页
    🍊 简介:云计算领域优质创作者🏆、在校期间参与众多计算机相关的省赛、国赛,斩获系列荣誉。考取华为资深工程师、红帽工程师等系列认证。

    🍊 关注我简历模板、学习资料、文档下载、技术支持 都可以私信我哦!
    让生命像一团热烈燃烧的火,直到死亡才能使它熄灭


一、实验目的

  • 实验目的

    # 掌握区块链钱包的概念及分类。
    # 体验比特币靓号生成、冷钱包和脑钱包的制作过程,感受比特币钱包的奥妙所在。
    

二、实验原理简介

  • 实验原理

    # 与普通钱包类似,作为数字货币,某些区块链也有“钱包”。只不过,区块链钱包中放的并不是现金,而是用户地址的私钥。换言之,区块链钱包和普通钱包都用来存放相应的货币系统中个人用户最重要、最害怕丢失的物件。
    #  区块链钱包常按照下面几种方法分类:按照节点数据是否存储完整,可分为全节点钱包(完整存储区块链所有交易数据)和轻节点钱包(只保存了区块链钱包的基本功能);按照区块链钱包是否联网,可分为冷钱包(私钥在本地存储,不联网)和热钱包(联网);
    
    # 按用户是否自行持有私钥,可分为中心化钱包(第三方机构代管用户私钥)和去中心化钱包(用户自行持有钱包的私钥);按是否支持多种币种,可分为单币种钱包、多币种钱包、全币种钱包。
    
    

三、实验环境

  • 实验环境

    # 实验环境
    本实验在PC机上即可进行,操作系统可以是Windows10或Linux。注意,在Linux系统中实验的部署方法类似甚至更方便,增加了对于-daemon命令(后台运行)的支持。
    
    # 这里使用 windows 平台做演示
    windows 10 专业版
    

四、实验步骤

1.访问 bitaddress.org,等待网页跳转完毕

  • 在链接的最后输入“?testnet=true” ,回车后进行访问。随意滑动鼠标,直到显示生成地址的进度为 100%。

2. 生成两对地址和私钥

  • 将网页 bitaddress.org(测试网络)另存为网页文件,断开网络,在本地再访问一次。
  • 单击网页菜单的“Brain Wallet” ,选中“Enter Passphrase”并输入“View”,这时可以用自己随机想到的一句话或几个单词。此过程重复一遍,就可以生成两对地址和私钥。

3. 生成一对新的地址和私钥

  • 单击网页菜单的“Vanity Wallet”,复制在步骤(2)中生成的两个私钥(不用复制地址)到网页的两个输入框;然后选择“Multiply”,单击生成按钮“Calculate Vanity Wallet” ,再单击“Show”下的“View”按钮,生成一对新的地址和私钥

4.访问测试

  • 使用浏览器访问 faucet网站,输入在步骤(3)中生成的地址,获取小额的测试代币,记录下交易 ID。如果领取成功,那么网页将显示交易信息。

思考题

成功领取测试代币后,这是否是一笔 UTXO?如果想要花费它,需要提供哪些信息?请具体列举,寻找合适的区块链浏览器,查询此笔交易并记录。

以上是关于实验六的主要内容,如果未能解决你的问题,请参考以下文章

区块链技术与应用实验报告(实验六)

区块链技术与应用实验报告(实验六)

哈工大 计算机系统 实验六

实验六 进程基础

实验六

实验六 进程基础