学期(2022-2023-1) 学号(20221403) 《计算机基础与程序设计》第十一周学习总结
作业信息
这个作业属于哪个课程 | <班级的链接>(如2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | <作业要求的链接>(如2022-2023-1计算机基础与程序设计第十一周作业) |
这个作业的目标 | 计算机网络,网络拓扑,云计算,网络安全,Web,HTML,CSS,Javascript,XML |
作业正文 | ... 本博客链接 |
教材学习内容总结
- 计算机网络
- 是为了通信和共享资源而以各种方式连在一起的一组设备。
- 网络拓扑
- 网络本身就像蜘蛛网一样,解决两台计算机如何相互连接的问题。
(1)星形拓补
星型拓扑结构是用一个叫节点作为中心节点,其他节点直接于中心节点相连构成的网络,常见的 中心节点为集线器。 - 优点:
方便节点的添加和删除
节点出现问题时不影响整个网络的运行
便于故障的检测和网络的维护 - 缺点:
若中心出现故障则整个网络都将瘫痪
(2)总线拓补
总线:很多线在一起(一条粗线)
终结器:两端不是悬空
总线结构是之各工作站和服务器均挂在一条总线上,又叫广播式结构。
和星型很像,但是平等,无中心
优点:
通信线路长度较短,易于安装和布线
信道利用率高
便于扩充和删除
缺点:
维护难,分支节点故障查找难
连接长度和接入节点有一定的限制(要求通信线路短,否则信号会变弱)
(3)总线拓补
环形结构由网络中若干节点通过点到点的链路首尾相连形成一个闭合的环
(适用于实时控制的局域网,每台设备都要壁纸一个收发器)
优点:
每个节点的同i性能地位均平等
容易实现远距离的高速数据传输
电缆故障容易查找和排除
缺点:
节点不易扩充
可靠性较差,环路断开导致整个网络不能工作
- 云计算
云计算(Cloud Computing)是一种通过网络统一组织和灵活调用各种 ICT 信息资源,实现大规模计算的信息处理方式,它利用分布式计算和虚拟资源管理等技术,通过网络将分散的 ICT 资源(包括计算与存储、应用运行平台、软件等) 集中起来形成共享的资源池,并以动态按需和可度量的方式向用户提供服务。
参考原文云计算概述 - WEB
Web是World Wide Web的简称,Web提供了全新的信息发布和浏览模式,实际上Web是运行在Internet之上的所有Web服务器和所管理对象的集合,对象主要包括网页和程序。 - HTML
- 超文本标记语言,用于创建WEB页的语言。
- XML
可扩展标记语言,允许文档的创建者定义自己的标记集合。
代码调试中的问题和解决过程
点击查看代码
#include<stdio.h>
#include<stdlib.h>
#define N 40
void readscore(int score[], int n)//读成绩
{
int i;
for (i = 0; i < n; i++)
{
printf("input score:");
scanf("%d", &score[i]);
}
}
void readxuehao(int xuehao[], int n)//读学号
{
int i;
for (i = 0; i < n; i++)
{
printf("input xuehao:");
scanf("%d", &xuehao[i]);
}
}
void PXdy(int cj[][2], int n, int xuehao[], int score[])//按成绩排序并打印
{
int i, j, temp1, temp2;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j <= n - 1; j++)
{
if (score[j] > score[i])
{
temp1 = score[i];
temp2 = xuehao[i];
score[i] = score[j];
xuehao[i] = xuehao[j];
score[j] = temp1;
xuehao[j] = temp2;
}
}
}
for (i = 0; i < n; i++)
{
cj[i][0] = xuehao[i];
cj[i][1] = score[i];
}
for (i = 0; i < n; i++)
{
printf("%d", cj[i][0]);
printf(" %d\n", cj[i][1]);
}
}
void readcj(int cj[][2], int xuehao[], int score[], int n)//学生成绩表
{
int i, j;
for (i = 0; i < n; i++)
{
cj[i][0] = xuehao[i];
cj[i][1] = score[i];
}
/*for (i = 0; i < n; i++)
{
printf("%d", cj[i][0]);
printf(" %d\n", cj[i][1]);
}*/
}
void readxhcj(int cj[][2], int xuehao[], int score[], int n)//按学号排序并打印
{
int i, j, temp1, temp2;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j <= n - 1; j++)
{
if (xuehao[j] < xuehao[i])
{
temp1 = score[i];
temp2 = xuehao[i];
score[i] = score[j];
xuehao[i] = xuehao[j];
score[j] = temp1;
xuehao[j] = temp2;
}
}
}
for (i = 0; i < n; i++)
{
cj[i][0] = xuehao[i];
cj[i][1] = score[i];
}
for (i = 0; i < n; i++)
{
printf("%d", cj[i][0]);
printf(" %d\n", cj[i][1]);
}
}
void PX(int cj[][2], int n, int xuehao[], int score[])//按成绩排序
{
int i, j, temp1, temp2;
for (i = 0; i < n - 1; i++)
{
for (j = i + 1; j <= n - 1; j++)
{
if (score[j] > score[i])
{
temp1 = score[i];
temp2 = xuehao[i];
score[i] = score[j];
xuehao[i] = xuehao[j];
score[j] = temp1;
xuehao[j] = temp2;
}
}
}
}
void chaxun(int cj[][2], int xuehao[], int score[], int n)//查询学生排名及其考试成绩
{
int x, i, t = 0;
printf("input xiang yao xun zhao xuehao:");
scanf("%d", &x);
PX(cj, n, xuehao, score);
readcj(cj, xuehao, score, n);
for (i = 0; i < n; i++)
{
if (cj[i][0] == x)
{
printf("成绩:%d,排名:%d", cj[i][1], i + 1);
t = 1;
break;
}
}
if (t == 0)
printf("wu gai xue sheng");
}
void tongji(int score[], int n)
{
int yx = 0, lh = 0, zd = 0, jg = 0, bjg = 0;
double yxl = 0, lhl = 0, zdl = 0, jgl = 0, bjgl = 0;
int i;
for (i = 0; i < n; i++)
{
if (score[i] >= 90 && score[i] <= 100)
yx++;
else if (score[i] >= 80 && score[i] <= 89)
lh++;
else if (score[i] >= 70 && score[i] <= 79)
zd++;
else if (score[i] >= 60 && score[i] <= 69)
jg++;
else
bjg++;
}
yxl = (double)yx / n;
lhl = (double)lh / n;
zdl = (double)zd / n;
jgl = (double)jg / n;
bjgl = (double)bjg / n;
printf("优秀率:%lf%%\n", yxl * 100);
printf("良好率:%lf%%\n", lhl * 100);
printf("中等率:%lf%%\n", zdl * 100);
printf("及格率:%lf%%\n", jgl * 100);
printf("不及格率:%lf%%", bjgl * 100);
}
void Listrecord(int cj[][2], int xuehao[], int score[], int n)
{
int i, sum = 0, ave;
readcj(cj, xuehao, score, n);
printf("--------------\n");
for (i = 0; i < n; i++)
{
printf("%d", cj[i][0]);
printf(" %d\n", cj[i][1]);
}
for (i = 0; i < n; i++)
{
sum = sum + score[i];
}
ave = sum / n;
printf("--------------\n");
printf("总分为:%d,平均分为:%d", sum, ave);
}
int main(void)
{
int n, xuehao[N],a;
int i, sum = 0, ave;
int score[N];
int cj[N][2];
printf("菜单如下:");
printf("(1)Append record\n");
printf("(2)Calculate total and average score of course\n");
printf("(3)Sort in descending order by score\n");
printf("(4)Sort in ascending order by number\n");
printf("(5)Search by number\n");
printf("(6)Statistic analysis\n");
printf("(7)List record\n");
printf("(8)Exit\n");
printf("选择选项:\n");
scanf("%d",&a);
printf("input n(输入学生人数):\n");
scanf("%d", &n);
//printf("分别输入学生成绩:\n");
//readscore(score, n);
//printf("分别输入学生学号:\n");
//printf("--------------------\n");
//readxuehao(xuehao, n);
/*printf("按成绩打印成绩表\n");
PXdy(cj, n, xuehao, score);
printf("--------------------\n");
printf("按成绩打印成绩表\n");
readxhcj(cj, xuehao, score, n);*/
//readcj(cj, xuehao, score, n);
//printf("按学号查询学生排名及其考试成绩\n");
//chaxun(cj, xuehao, score, n);
//printf("统计每个类别的人数以及所占的百分比\n");
//tongji(score,n);
//printf("最终统计信息");
//Listrecord(cj, xuehao, score, n);
switch (a)
{
case 1:
printf("分别输入学生成绩:\n");
readscore(score, n);
printf("分别输入学生学号:\n");
readxuehao(xuehao, n);
break;
case 2:
printf("分别输入学生成绩:\n");
readscore(score, n);
//printf("分别输入学生学号:\n");
//readxuehao(xuehao, n);
for (i = 0; i < n; i++)
{
sum = sum + score[i];
}
ave = sum / n;
printf("--------------------\n");
printf("总分为:%d,平均分为:%d", sum, ave);
break;
case 3:
printf("分别输入学生成绩:\n");
readscore(score, n);
readxuehao(xuehao, n);
printf("--------------------\n");
PXdy(cj, n, xuehao, score);
break;
case 4:
printf("分别输入学生成绩:\n");
readscore(score, n);
printf("分别输入学生学号:\n");
readxuehao(xuehao, n);
printf("--------------------\n");
readxhcj(cj, xuehao, score, n);
break;
case 5:
printf("分别输入学生成绩:\n");
readscore(score, n);
printf("分别输入学生学号:\n");
readxuehao(xuehao, n);
chaxun(cj, xuehao, score, n);
break;
case 6:
printf("分别输入学生成绩:\n");
readscore(score, n);
printf("分别输入学生学号:\n");
readxuehao(xuehao, n);
tongji(score,n);
break;
case 7:
printf("分别输入学生成绩:\n");
readscore(score, n);
printf("分别输入学生学号:\n");
readxuehao(xuehao, n);
Listrecord(cj, xuehao, score, n);
break;
case 8:
printf("结束系统!\n");
break;
}
return 0;
}
(本周实验内容)
- 出现问题及解决过程:
- 在进行排序时第一次没想到在用成绩排序并交换后可以一起也将学号进行交换最终输出。
- 在定义一个二维数组后不会将先前定义的一维数组中的值进行使用(将一维数组中的值记到二维数组中)。在询问同学后了解到在函数后也要将一维数组定义为实参,才能进行使用。
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第十一周 | 300/1900 | 1/19 | 30/120 |