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.链接和二维码:

实验报告汇总

实验一:通过熟悉操作系统基本命令,学会操作系统的使用

https://www.mosoteach.cn/web/index.php?c=interaction_homework&m=s_write&clazz_course_id=8B6570BC-1F5B-11ED-8539-1C34DA7B3F7C&id=E34E364B-C7E6-9244-FCEC-E2EB57270832&order_item=group&status=IN_PRGRS

实验二:基本控制结构编程练习

计算机在教育中的应用常被称为计算机辅助教学(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。最后,大学的生活很精彩,很丰富,尽情去享受这一生活,书写青春篇章。祝你们学习有成,天天开心!

总结的链接与二维码

https://www.cnblogs.com/luyuhang/p/16974384.html

posted @ 2022-12-11 21:39  陆宇航  阅读(123)  评论(0编辑  收藏  举报