2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第九周学习总结

发布时间 2023-11-26 15:19:18作者: 王曦轶

2023-2024-1 20231321王曦轶 《计算机基础与程序设计》第九周学习总结

作业信息

这个作业属于哪个课程 <班级的链接>(如2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 <作业要求的链接>(如2022-2023-1计算机基础与程序设计第九周作业)
这个作业的目标 <计算机科学概论第10,11章 并完成云班课测试
《C语言程序设计》第8章并完成云班课测试>
作业正文 ... 本博客链接

教材学习内容总结

计算机科学概论

1.分区内存管理,最先匹配、最佳匹配、最差匹配。
2.进程状态,在创建阶段,在准备就绪状态,运行状态,等待状态,终止状态。
3.CPU调度,抢先调度,非抢先调度,周转周期,先到先服务,最短作业优先,循环调度

C语言程序设计

1.数组的定义,是一组具有相同类型的的变量的集合
2.数组的下标是从0开始的
3.定义数组时不能用变量定义数组的大小
4.二维数组,可以用行列来理解
5.数组的第二维长度永远不能省略
6.利用数组实现函数间参数的传递
7在实现查找和排序功能时,通过交换法,现将a存为temp,再赋值

教材学习中的问题和解决过程

  • 问题1:如何用代码来实现进程状态
  • 问题1解决方案:询问ai,得到回答:#include <stdio.h>

void drawProcessState(int running, int ready, int blocked, int waiting, int terminated) {
int i, j;
int total = running + ready + blocked + waiting + terminated;

printf("Process State\n");
printf("=============\n");

printf("Running: ");
for (i = 0; i < (int)((float)running / total * 50); i++) {
    printf("#");
}
printf("\n");

printf("Ready:   ");
for (i = 0; i < (int)((float)ready / total * 50); i++) {
    printf("#");
}
printf("\n");

printf("Blocked: ");
for (i = 0; i < (int)((float)blocked / total * 50); i++) {
    printf("#");
}
printf("\n");

printf("Waiting: ");
for (i = 0; i < (int)((float)waiting / total * 50); i++) {
    printf("#");
}
printf("\n");

printf("Terminated: ");
for (i = 0; i < (int)((float)terminated / total * 50); i++) {
    printf("#");
}
printf("\n");

printf("Legend:\n");
printf("# - 2%% of total processes\n");

}

int main() {
// Example process states (percentages)
int running = 30;
int ready = 20;
int blocked = 25;
int waiting = 10;
int terminated = 15;

drawProcessState(running, ready, blocked, waiting, terminated);

return 0;

}

  • 问题2:如何对一组数进行查找和排序
  • 问题2解决方案:看教材,使用交换法。

基于AI的学习







代码调试中的问题和解决过程

在做实验时,遇到了一些问题
问题1:如何使实验在不输入0的时候一直进行下去,可以实现菜单中的任意功能?
解决方案:利用一个while(1)循环,在不输入0的情况下一直进行下去,直到输入8,通过return 0直接结束。
问题2:学生的学号不是i怎么办?
解决方案:用一个数组来存放学号,输入学号。
问题3:如何打印百分号,一个百分号为什么不行?
解决方案:只有一个百分号,和常用的%d的意思一样,百分号通常用作格式说明符的起始标记,需要用两个百分号来打印百分号。
问题4:如果查找时没有找到学生成绩怎么办?
解决方案:在if语句外边增加一个提示语句。
问题5:在问题3的条件下,找到了也会输出提示语句,在if语句中加一个return,如果找到就退出函数。

上周考试错题总结

The filtering phase of object-oriented problem solving determines which of the possible classes generated during brainstorming are the core classes in the problem solution.
正确答案: 正确
你的作答: 错误
Modern compilers translate high-level language programs into the corresponding program in machine code.
正确答案: 正确
你的作答: 错误

其他(感悟、思考等,可选)

不积跬步,无以至千里;不积小流,无以成江海。”这一次的实验需要实现很多个功能,有很多步骤。但是通过模块化设计,将问题分为一个一个的函数,则可以一个功能一个功能的实现,有时候问题看似很多,但是将其细化拆分,逐个击破,问题便迎刃而解,每一个功能的实现是一个一个函数保证的,而每一个函数也是一点一滴敲出来的,编程要耐得住性子,敲好每一个代码,构造好每一个函数。
要多复习,多看课本。很多都是汪老师上课讲过的,但课上听一遍不一定全部听懂,更不可能全部掌握,课下应该巩固复习,加深印象,PPT和课本下课都还要再复习,一是加深记忆,而是查缺补漏,看看还有哪个地方是疏忽的,不会的,及时补上。这次的实验题,书上不光有思路和基本知识,还包括了部分功能的实现,有详细解释和常见问题,在编程中遇到问题,可以多向课本请教。
要增加编程的完备性,使程序更加的“健康”、“健壮”,很多时候不是非黑即白,一个ifelse语句就能解决这么简单,还要考虑多种情况,特别是实际运用的会出现的情况,比如学生的学号不一定就是i,就像我们的学号都是八位数字,所以可以通过一个数组来单独存放学号,还有就是如果在查找学生成绩的过程中,没有找到学生的成绩怎么办,第一次写好的代码肯定会有很多漏洞,程序完备性不强,于是写完后就要多测试,看看哪些地方不完备,不断改进程序,让程序实用性更强,更加“健壮”。

  • 计划学习时间:25小时

  • 实际学习时间:25小时

  • 改进情况:

(有空多看看现代软件工程 课件
软件工程师能力自我评价表
)

参考资料