2022-2023-1 20221425 《计算机基础与程序设计》课程总结
学期(如2022-2023-1) 学号(如:20221425) 《计算机基础与程序设计》第十五周课程总结
作业信息
这个作业属于哪个课程 | 2022-2023-1-计算机基础与程序设计) |
---|---|
这个作业要求在哪里 | 2022-2023-1计算机基础与程序设计第十五周作业 |
这个作业的目标 | <课程总结> |
作业正文 | https://www.cnblogs.com/luyuhang/p/16974384.html |
每周作业链接
第1周作业
1.简要内容:大概阅读书籍每章至少提出俩问题
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16651606.html
3.自我介绍:https://www.cnblogs.com/luyuhang/p/16650550.html
第2周作业
1.简要内容:了解数字化与信息安全
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16684560.html
3.师生关系:https://www.cnblogs.com/luyuhang/p/16664479.html
第3周作业
1.简要内容:数字分类与计数法、位置计数法、进制转换、模拟数据与数字数据、压缩与解压、数字化、信息安全
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16701908.html
第4周作业
1.简要内容:门电路
组合电路,逻辑电路
冯诺依曼结构
CPU,内存,IO管理
嵌入式系统,并行结构
物理安全
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16726563.html
第5周作业
1.简要内容:Pep/9虚拟机
机器语言与汇编语言
算法与伪代码
测试:黑盒,白盒
2.链接和二维码:.https://www.cnblogs.com/luyuhang/p/16741668.html
第6周作业
1.简要内容:Polya如何解决问题
简单类型与组合类型
复合数据结构
查找与排序算法
算法复杂度
递归
代码安全
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16770188.html
第7周作业
1.简要内容:数组与链表
基于数组和基于链表实现数据结构
无序表与有序表
树
图
子程序与参数
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16795238.html
第8周作业
1.简要内容:功能设计与面向对象设计
面向对象设计过程
面向对象语言三要素
汇编、编译、解释、执行
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16819119.html
第9周作业
1.简要内容:操作系统责任
内存与进程管理
分时系统
CPU调度
文件、文件系统
文件保护
磁盘调度
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16840952.html
第10周作业
1.简要内容:信息系统
数据库与SQL
人工智能与专家系统
人工神经网络
模拟与离散事件
排队系统
天气与地震模型
图形图像
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16861013.html
第11周作业
1.简要内容:计算机网络
网络拓扑
云计算
网络安全
Web
HTML,CSS,Javascript
XML
2.链接和二维码:ttps://www.cnblogs.com/luyuhang/p/16876618.html
第12周作业
1.简要内容:加入云班课,参考本周学习资源
自学教材
《C语言程序设计》第11章并完成云班课测试
2.链接和二维码:https://www.cnblogs.com/luyuhang/p/16905713.html
第13周作业
1.简要内容:自学教材
《C语言程序设计》第12章并完成云班课测试
第14周作业
1.简要内容:加入云班课,参考本周学习资源
自学教材
《C语言程序设计》第13章并完成云班课测试
2.链接和二维码:
实验报告汇总
实验一:通过熟悉操作系统基本命令,学会操作系统的使用
实验二:基本控制结构编程练习
计算机在教育中的应用常被称为计算机辅助教学(Computer-Assisted Instruction, CAI)。请编写一个程序来帮助小学生学习四则运算,按下列任务要求以循序渐进的方式编程。
点击查看代码
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
int main()
{
int num1,num2,x,a,n,counter,i=0,t,f;
char op;
do
{
for(counter=0; counter<10; counter++)
{
srand(time(NULL));
num1=rand()%10+1;
num2=rand()%10+1;
n=rand()%4;
t=rand()%4+1;
f=rand()%4+1;
switch(n)
{
case 0:
op='*';
x=num1*num2;
break;
case 1:
op='/';
x=num1/num2;
break;
case 2:
op='+';
x=num1+num2;
break;
case 3:
op='-';
x=num1-num2;
break;
}
printf("%d%c%d=",num1,op,num2);
scanf("%d",&a);//输入过快随机数不变
if(a!=x)
{
switch(f)
{
case 1:
printf("No. Please try again.\n");
break;
case 2:
printf("Wrong. Try once more.\n");
break;
case 3:
printf("Don’t give up!\n");
break;
case 4:
printf("Not correct. Keep trying.\n");
break;
}
}
else
{
switch(t)
{
case 1:
printf("Very good!\n");
break;
case 2:
printf("Excellent!\n");
break;
case 3:
printf("Nice work!\n");
break;
case 4:
printf("Keep up the good work!\n");
break;
}
i++;
}
}
printf("grades = %d,correct rate = %d%%\n",i*10,i*10);
}
while((i*10)<75);
return 0;
}
实验三:基本控制结构考试
实验四:函数与数组编程练习
1.学生成绩管理系统V1.0
某班有最多不超过40人(具体人数由键盘输入)参加某门课程的考试,用数组作函数参数编程实现如下学生成绩管理
点击查看代码
#include <stdio.h>
#define N 40
void Read( int ID[],int score[],int n);
int Sum(int score[],int n);
void ScoreSort(int ID[],int score[],int n);
void IDSort(int ID[],int score[],int n);
void InputID(int ID[],int score[],int n);
void Pencent(int score[],int n);
void Print(int ID[],int score[],int n);
void MENU();
int main()
{
int ID[N],n,score[N],sum,OP,i;
float ave;
printf("please input stduent's number:");
scanf("%d",&n);
while(1)
{
MENU();
printf("please choose your option:");
scanf("%d",&OP);
switch(OP)
{
case 1:
Read(ID,score,n);
break;
case 2:
sum=Sum(score,n);
ave=sum/n;
printf("The class sum is %d and average is %f\n",sum,ave);
break;
case 3:
ScoreSort(ID,score,n);
for(i=0; i<n; i++)
printf("%d\t%d\t%d\n",i+1,ID[i],score[i]);
break;
case 4:
IDSort(ID,score,n);
break;
case 5:
InputID(ID,score,n);
break;
case 6:
Pencent(score,n);
break;
case 7:
Print(ID,score,n);
break;
case 8:
printf("Program End!!!\n");
exit(0);
default:printf("Input error!\n");
}
}
return 0;
}
void Read(int ID[], int score[],int n)
{
int i;
for(i=0; i<n; i++)
{
printf("please input the student's ID and score:\n");
scanf("%d,%d",&ID[i],&score[i]);
}
}
int Sum(int score[],int n)
{
int sum=0,i;
for(i=0; i<n; i++)
{
sum+=score[i];
}
return sum;
}
void ScoreSort(int ID[],int score[],int n)
{
int i,j,temp,num;
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(score[j]>score[i])
{
temp=score[j];
score[j]=score[i];
score[i]=temp;
num=ID[j];
ID[j]=ID[i];
ID[i]=num;
}
}
}
}
void IDSort(int ID[],int score[],int n)
{
int i,j,temp;
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(ID[j]<ID[i])
{
temp=ID[j];
ID[j]=ID[i];
ID[i]=temp;
}
}
}
for(i=0; i<n; i++)
printf("%d\t%d\n",ID[i],score[i]);
}
void InputID(int ID[],int score[],int n)
{
int i,id;
printf("please input you want to seach ID:");
scanf("%d",&id);
ScoreSort(ID,score,n);
for(i=0; i<n; i++)
{
if(id==ID[i])
{
printf("ranking:%d,score:%d\n",i+1,score[i]);
break;
}
}
}
void Pencent(int score[],int n)
{
float a=0,b=0,c=0,d=0,e=0;//五类人个数
float a1,b1,c1,d1,e1;
int i;
for(i=0; i<n; i++)
{
if(score[i]<=100&&score[i]>=90)
{
a++;
a1=a/n;
}
if(score[i]>=80&&score[i]<=89)
{
b++;
b1=b/n;
}
if(score[i]>=70&&score[i]<=79)
{
c++;
c1=c/n;
}
if(score[i]>=60&&score[i]<=69)
{
d++;
d1=d/n;
}
if(score[i]<60&&score[i]>=0)
{
e++;
e1=e/n;
}
}
printf("优秀所占比例: %.2f%%\n",a1*100 );
printf("良好所占比例: %.2f%%\n",b1*100 );
printf("中等所占比例: %.2f%%\n",c1*100 );
printf("及格所占比例: %.2f%%\n",d1*100);
printf("不及格所占比例: %.2f%%\n",e1*100);
}
void Print(int ID[],int score[],int n)
{
int i,sum;
float ave;
for(i=0; i<n; i++)
{
printf("%d ",ID[i]);
printf("%d\n",score[i]);
}
sum=Sum(score,n);
ave=sum/n;
printf("The class sum is %d and average is %f\n",sum,ave);
}
void MENU()
{
printf("Management for Students' scores\n");
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");
}
实验五:函数与数组,指针考试
实验六:文件及结构体编程练习
1.学生成绩管理系统V2.0
学生成绩管理系统是一个非常实用的程序,如果能够把用户输入的数据存盘,下次运行时读出,就更有用了。
某班有最多不超过40人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。利用结构体编程实现如下菜单驱动的学生成绩管理系统
点击查看代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 40
typedef struct student
{
long ID;
char name[N];
int score[3];
} STUDENT;
void MENU()
{
printf("Management for Students' scores\n");
printf("1.Append record\n");
printf("2.Calculate total and average score of every student\n");
printf("3.Sort in ascending order by total score of every student\n");
printf("4.Sort in dictionary order by name\n");
printf("5.Search by name\n");
printf("6.Write to a file\n");
printf("7.Read from a file\n");
printf("8.Exit\n");
}
void Exchange(STUDENT stu[],int sum[],int i,int j)
{
long k;
int temp,x,y;
char num[N];
temp=sum[j];
sum[j]=sum[i];
sum[i]=temp;
k=stu[j].ID;
stu[j].ID=stu[i].ID;
stu[i].ID=k;
strcpy(num,stu[j].name);
strcpy(stu[j].name,stu[i].name);
strcpy(stu[i].name,num);
for(x=0; x<3; x++)
{
y=stu[j].score[x];
stu[j].score[x]=stu[i].score[x];
stu[i].score[x]=y;
}
}
void Input(STUDENT stu[],int n,int m)
{
int i,j;
printf("Every student's ID name and three class's score");
for(i=0; i<n; i++)
{
printf("Input record%d:\n",i+1);
scanf("%ld",&stu[i].ID);
scanf("%s",stu[i].name);
for(j=0; j<m; j++)
{
scanf("%d",&stu[i].score[j]);
}
}
}
void AverandSum(STUDENT stu[],float aver[],int sum[],int n,int m)
{
int i,j;
for(i=0; i<n; i++)
{
sum[i]=0;
for(j=0; j<m; j++)
{
sum[i]+=stu[i].score[j];
}
aver[i]=(float)sum[i]/m;
printf("this student's score average is%6.1f\n",aver[i]);
printf("this student's score sum is%d\n",sum[i]);
}
}
void TotalSort(STUDENT stu[],int sum[],int n)
{
int i,j;
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(sum[j]<sum[i])
{
Exchange(stu,sum,i,j);
}
}
}
}
void Namedictionary(STUDENT stu[],int sum[],int n,int m)
{
int i,j;
for(i=0; i<n-1; i++)
{
for(j=i+1; j<n; j++)
{
if(strcmp(stu[j].name,stu[i].name)<0)
{
Exchange(stu,sum,i,j);
}
}
}
}
void NameSearch(STUDENT stu[],int sum[],int n,int m)
{
int i;
char name1[N];
printf("please input your name\n");
scanf("%s",name1);
TotalSort(stu,sum,n);
for(i=0; i<n; i++)
{
if(strcmp(name1,stu[i].name)==0)
{
printf("ranking:%d score:%d %d %d\n",i+1,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
break;
}
}
}
void Writefile(STUDENT stu[],int sum[],float aver[],int n,int m)
{
FILE* fp;
int i,j;
if((fp=fopen("score.txt","w"))==NULL)
{
printf("Failure to open score.txt!\n");
exit(0);
}
fprintf(fp,"%d\t%d\n",n,m);
for(i=0; i<n; i++)
{
fprintf(fp,"%ld %s ",stu[i].ID,stu[i].name);
for(j=0; j<m; j++)
{
fprintf(fp,"%d ",stu[i].score[j]);
}
fprintf(fp,"%d %f",sum[i],aver[i]);
}
fclose(fp);
}
void Readfile(STUDENT stu[],int sum[],float aver[],int* n,int* m)
{
FILE*fp;
int i,j;
if((fp=fopen("score.txt","r"))==NULL)
{
printf("Failure to open score.txt!\n");
exit(0);
}
fscanf(fp,"%d\t%d",n,m);
for(i=0; i<*n; i++)
{
fscanf(fp,"%ld",&stu[i].ID);
fscanf(fp,"%s",stu[i].name);
for(j=0; j<*m; j++)
{
fscanf(fp,"%d",&stu[i].score[j]);
}
fscanf(fp,"%d",&sum[i]);
fscanf(fp,"%f",&aver[i]);
}
fclose(fp);
}
int main()
{
float aver[N];
int sum[N];
STUDENT stu[N];
int n,m=3,op,i,j;
printf("How many students in class?\n");
scanf("%d",&n);
while(1)
{
MENU();
printf("Please enter your choice:\n");
scanf("%d",&op);
switch(op)
{
case 1:
printf("************************************************\n");
Input(stu,n,m);
printf("************************************************\n");
break;
case 2:
printf("************************************************\n");
AverandSum(stu,aver,sum,n,m);
printf("************************************************\n");
break;
case 3://在进行第三步时务必先进行第二步将总分存入数组sum中;
printf("************************************************\n");
TotalSort(stu,sum,n);
for(i=0; i<n; i++)
{
printf("%d\t%s\t%ld\t%d\n",i+1,stu[i].name,stu[i].ID,sum[i]);
}
printf("************************************************\n");
break;
case 4:
printf("************************************************\n");
Namedictionary(stu,sum,n,m);
for(i=0; i<n; i++)
{
printf("%d\t%s\t%d\t%d %d %d\n",i+1,stu[i].name,sum[i],stu[i].score[0],stu[i].score[1],stu[i].score[2]);
}
printf("************************************************\n");
break;
case 5:
printf("************************************************\n");
NameSearch(stu,sum,n,m);
printf("************************************************\n");
break;
case 6:
printf("************************************************\n");
Writefile(stu,sum,aver,n,m);
printf("************************************************\n");
break;
case 7:
printf("************************************************\n");
Readfile(stu,sum,aver,&n,&m);
for(i=0; i<n; i++)
{
printf("%ld %s ",stu[i].ID,stu[i].name);
{
for(j=0; j<m; j++)
{
printf("%d ",stu[i].score[j]);
}
printf("%d %f\n",sum[i],aver[j]);
}
}
printf("************************************************\n");
break;
case 8:
exit(0);
default :
printf("Input error!\n");
}
}
return 0;
}
第1周作业中评价
现在想来有些惭愧,因为对于第一周所提出的问题,有些我已然解决,但仍然有部分我尚未解决或者一知半解或者存有疑问,当然也存在着一些无厘头的问题现将还存有问题的问题总结如下:
1.第九章 程序员学习哲学有什么好处?
2.第十三章 深度优先法和广度优先法为什么都会漏掉关键可能性?
3.第十三章 神经系统中权和元素是如何相互影响的?
4.第十五章 蓝牙存在的延迟效果是由于什么原因而产生的?
5.第十七章 在当今社会中我们有很多设备或者软件需要设很多个密码,那么如何设置安全性高且都可以记住的这些密码呢?
将这些问题罗列于此,希望可以老师同学们为我答疑解惑。
问卷调查
你平均每周投入到本课程多长时间?每天都会编写代码,一周下来24h
每周的学习效率有提高吗?可能和学习状态有关,由几周效率高,由几周相反
学习效果自己满意吗?及格
课程结束后会继续一周至少一篇博客吗?(如果能做到,毕业时我把你的博客给你集结成一本书送给你作纪念)尽量坚持
你觉得这门课老师应该继续做哪一件事情?每周安排测试
你觉得这门课老师应该停止做哪一件事情?无
你觉得这门课老师应该开始做什么新的事情?校外的c语言训练网站难度较高,难度偏低的题比较少
课程收获与不足
在从课程的学习中,我学习了基本的计算机科学概论及其相关知识,以及基于此基础上的一种程序设计语言c语言,俗话说的好,学好c语言走遍天下都不怕,作为编程中最为基础的语言,c语言结构清晰,功能强大可以解决生活中的哼多问题。我的不足是,因为之前没有接触过计算机,所以上手慢,反应迟,自学能力差,所以导致成绩一直不理想,在平时训练与考试中,总是反应迟缓,编写复杂。
一些建议
因为是新的培养方案,所以我们学弟学妹应该与我们一样会学习这本书,所以我在这还有些建议提给他们
首先,大学一定要增强自我学习能力,不能再像初高中一样,老师家长是管不到的;其次跟着老师走,多学多问多练,正如吗,梅西所说“这片绿茵并不缺乏天才,努力是唯一的入场券”,是的这个世界上有很多天才,但还是得勤勤苦苦的去练习c语言,他才能掌握c。最后,大学的生活很精彩,很丰富,尽情去享受这一生活,书写青春篇章。祝你们学习有成,天天开心!