【期末满分作业】C语言程序设计 实训1——奖学金评定系统的设计与实现(附带实验报告、源码以及解释)

news2024/11/16 9:31:31

大家好,各位努力奋斗的大学生小伙伴们!今天,我将带你们领略一项令人惊叹的程序设计奇迹——《奖学金评定系统》!是不是感到激动呢?别急,让我为你们揭开这个能让你在C语言程序设计中拿满分的秘密武器!

首先放成绩单cancan实力(bushi。。。

要求: 

一、系统设计
1.设计2022-2023-1学期,班级学生成绩管理系统的数据结构,着眼于实际需要和问题解决,设计合理的数据类型;
2.设计学号输入方式,保证学号格式规范,学号与专业、班级、入学年份匹配;
3.成绩输入按实际情况,出一门成绩,录入一次,并做好统计已录入成绩门次;
4.所有课程成绩录入完毕,并经确认无误之后才能进行计算均分、计算获得学分和奖学金评定;
5.设计修改功能,防止信息录入错误,无法修改,影响后续功能的完成;
6.以二维表格形式输出班级所有学生信息,表头使用中文名称;
7.根据业务课程综合成绩评选.一、二、三等奖学金,获奖信息输出准确,包括获奖学生的全部信息;
8.设计思路明确,采用自顶向下的程序设计,系统组织架构清晰,模块功能明确,
二、编程
1.格式书写规范(锯齿状);
2.鼓励采用函数式多文件结构;
3.减少使用全局变量;
4.代码通俗易懂;
5.程序运行流畅,交互友好、操作方便;
三、系统测试
1.所有功能均需符合实际应用情况,均需进行测试;
2.必须经过大量数据测试,保证运行结果的正确;
四、报告
1.内容部分:包括封面、目录、正文(系统设计、功能描述、总结);
2.封面部分:C语言程序设计实训1(黑体三号居中)、实训内容、班级、学号、姓名、完成日期(宋体四号居中);
3.正文部分:系统设计描述清晰,功能描述需要和截图匹配(截图大小每副运行截图12*8cm,居中显示);
4.总结部分:总结描述客观;
5.文件采用学号+姓名.doc格式
五、其他
1.独立完成;
2.按时完成;
3.在实训过程中,遵守职业操守,做有温度的人,写有温度的代码,切实提高自己综合应用开发能力,不断巩固职业素养。

一、简介

奖学金评定系统的整体功能都包括主菜单、子菜单、录入学生成绩、修改学生成绩、导出学生成绩、删除学生信息、对学生进行排名、评定奖学金、查看个人成绩、查看班级成绩、查看个人班级排名、查看不及格课程等功能,以下目录为程序的基本功能:

二、程序功能展现

1.主菜单功能

可以选择教师端或者学生端以实现不同功能

 2.子菜单功能

设计两个菜单,根据不同用户的需要可实现不同的功能

3.录入学生成绩功能(教师端)

以下为测试数据:

将学生信息导入,如果录入时学号相同或者成绩不符合规范将会提示错误并且重新输入成绩。

4.修改学生成绩功能(教师端)

可对录入的成绩进行修改,并对输入正确性进行检测,而且进行学分的修改,设计修改功能,防止信息录入错误,无法修改,影响后续功能的完成

5.导出学生成绩功能(教师端)

可以以二维表格形式输出班级所有学生信息,表头使用中文名称

6.删除学生信息功能(教师端)

可对输入学生的信息进行删除

7.对学生进行排名功能(教师端)

可实现依据总分对学生进行排名,并导出成绩单

8.评定奖学金功能(教师端)

可评出学分修满且成绩优异的三名学生,若有科目不及格将不会进行奖学金的评定

9.查看个人成绩功能(学生端)

可供学生输入学好查寻自己的成绩

10.查看班级成绩(学生端)

可供学生查看班级成绩单

11.查看个人班级排名功能(学生端)

可供学生查询自己在班级中的排名

12.查看不及格课程功能(学生端)

可供学生查询自己不及格的课程,若全部及格则输出无,否则则输出不及格的课程

 三、完整代码

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;

struct Node{
	char id[20];
	char name[10];
	double credit;
	double maths;
	double PE;
	double history;
	double introduction;
	double English;
	double design;  
	double sum;
	double score;
};
Node stu[100];
int num=0;

bool cmp(Node x,Node y){
	return x.sum>y.sum;
}

int serch(char ID[]){
	
    for(int i=1;i<=num;i++){
        if(strcmp(stu[i].id,ID)==0) {
            return i;
        }  
    }
    return -1; 
}

int serch1(char ID[]){
	
    for(int i=1;i<num;i++){
        if(strcmp(stu[i].id,ID)==0) {
            return i;
        }  
    }
    return -1; 
}

void input(){
	
	while(1){
		num++;	
		printf("请输入学号:");
		cin>>stu[num].id;
		while(serch1(stu[num].id)!=-1){
			printf("学号重复,请重新输入!!!\n");
			printf("请输入学号:");
			cin>>stu[num].id;
			getchar();
		}
		
			
		printf("请输入姓名:");
		scanf("%s",stu[num].name);
		getchar();
			
		printf("请输入高等数学成绩:");
		scanf("%lf",&stu[num].maths);
		while(stu[num].maths>100||stu[num].maths<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].maths);
		}
		if(stu[num].maths>=60){
			stu[num].score+=5;
		} 
		
		printf("请输入大学体育成绩:");
		scanf("%lf",&stu[num].PE);
		while(stu[num].PE>100||stu[num].PE<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].PE);
		}
		if(stu[num].PE>=60){
			stu[num].score+=1;
		} 
		
		printf("请输入中国近代史纲要成绩:");
		scanf("%lf",&stu[num].history);
		while(stu[num].history>100||stu[num].history<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].history);
		}
		if(stu[num].history>=60){
			stu[num].score+=2;
		}
		
		printf("请输入软件技术导论成绩:");
		scanf("%lf",&stu[num].introduction);
		while(stu[num].introduction>100||stu[num].introduction<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].introduction);
		}
		if(stu[num].introduction>=60){
			stu[num].score+=2;
		}
		
		printf("请输入大学英语成绩:");
		scanf("%lf",&stu[num].English);
		while(stu[num].English>100|stu[num].English<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].English);
		}
		if(stu[num].English>=60){
			stu[num].score+=4;
		}
		
		printf("请输入C语言程序设计成绩:");
		scanf("%lf",&stu[num].design);
		while(stu[num].design>100||stu[num].design<0){
			printf("输入错误,请重新输入!!!\n");
			scanf("%lf",&stu[num].design);
		}
		if(stu[num].design>=60){
			stu[num].score+=4;
		}
		
		stu[num].sum=stu[num].maths+stu[num].PE+stu[num].history+stu[num].introduction+stu[num].English+stu[num].design;
		
		string choice; 
		printf("是否继续输入?(是/否)\n");
		cin>>choice;
		system("cls");
		
        if(choice=="否"){
        	return;
		}
	}
}

void revise(){
	
	while(1){
        char ID[20];
        int index;
        printf("请输入要修改的学生的学号:");
        
        while(1){
         	scanf("%s",&ID);
            getchar();
         	index=serch(ID); 
         	if(index==-1){
              printf("该学生不存在,请重新输入!\n");
         	}else{
         		break;
			}
		}
		
		int choice;
        printf("请输入您要修改的学生信息:\n");
        printf("1.修改姓名\n");
        printf("2.修改高等数学成绩\n");
		printf("3.修改大学体育成绩\n");
		printf("4.修改中国近代史纲要成绩\n");
		printf("5.修改软件技术导论成绩\n");
		printf("6.修改大学英语成绩\n");
		printf("7.修改C语言程序设计成绩\n");
       	scanf("%d",&choice);
       	
		int f=0;
        switch(choice){
        	
        	case 1: printf("请输入姓名:");
			scanf("%s",stu[num].name);
			getchar();
			break;
            
            case 2:printf("请输入高等数学成绩:");
            
            if(stu[index].maths<60){
            	f=1;
			}
			scanf("%lf",&stu[index].maths);
			
			while(stu[index].maths>100||stu[index].maths<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%d",&stu[index].maths);
			}
			
			if(stu[index].maths>=60&&f==1){
				stu[index].score+=5;
			} 
			getchar();
            break;
			  
            case 3:	printf("请输入大学体育成绩:");
            
			if(stu[index].PE<60){
            	f=1;
			}
			
			scanf("%lf",&stu[index].PE);
			
			while(stu[index].PE>100||stu[index].PE<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%lf",&stu[index].PE);
			}
			
			if(stu[index].PE>=60&&f==1){
				stu[index].score+=1;
			} 
			getchar();
 			break;
			   
            case 4:	printf("请输入中国近代史纲要成绩:");
			
			if(stu[index].history<60){
            	f=1;
			}
			
			scanf("%lf",&stu[index].history);
			while(stu[index].history>100||stu[index].history<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%lf",&stu[index].history);
			}
			
			if(stu[index].history>=60&&f==1){
				stu[index].score+=2;
			}
			getchar();
            break;
			  
            case 5:printf("请输入软件技术导论成绩:");
			
			if(stu[index].introduction){
            	f=1;
			}
			
			scanf("%lf",&stu[index].introduction);
			while(stu[index].introduction>100||stu[index].introduction<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%lf",&stu[index].introduction);
			}
			
			if(stu[index].introduction>=60&&f==1){
				stu[index].score+=2;
			}
			getchar();
            break;
			  
            case 6:	printf("请输入大学英语成绩:");
		
			if(stu[index].English<60){
            	f=1;
			}
			
			scanf("%lf",&stu[index].English);
			
			while(stu[index].English>100|stu[index].English<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%lf",&stu[index].English);
			}
			
			if(stu[index].English>=60&&f==1){
				stu[index].score+=4;
			}
			getchar();
            break;
			  
            case 7:	printf("请输入C语言程序设计成绩:");
			
			if(stu[index].design<60){
            	f=1;
			}
			
			scanf("%lf",&stu[index].design);
			
			while(stu[index].design>100||stu[index].design<0){
				printf("输入错误,请重新输入!!!\n");
				scanf("%lf",&stu[index].design);
			}
			
			if(stu[index].design>=60&&f==1){
				stu[index].score+=4;
			}
			getchar();
        	break;
        	
		}   
		
		stu[index].sum=stu[index].maths+stu[index].PE+stu[index].history+stu[index].introduction+stu[index].English+stu[index].design;
		
		system("cls");
		string choice2;
        printf("是否继续修改?(是/否)\n");
		cin>>choice2;
        if(choice2=="否"){
        	return;
		}
		
    }

}

void inquire(){
	char ID[20];
    int index;
    printf("请输入要查找的学生的学号:");
        
    while(1){
       	scanf("%s",&ID);
        getchar();
        index=serch(ID); 
        if(index==-1){
             printf("该学生不存在,请重新输入!\n");
        }else{
         	break;
		}
	}
	printf("-------------------------------------------------------------------------------------------------------------------\n");
    printf("|%s|    %s    | %s |%s|%s|%s|%s|%s|%s| %s |%s|\n","序号","学号","姓名","高等数学","大学体育","中国近代史纲要","软件技术导论","大学英语","C语言程序设计","总分","实际获得学分");
    printf("|----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
	printf("|%4d|%12s|%6s|%8.1lf|%8.1lf|%14.1lf|%12.1lf|%8.1lf|%13.1lf|%6.1lf|%12.1f|\n",index,stu[index].id,stu[index].name,stu[index].maths,stu[index].PE,stu[index].history,stu[index].introduction,stu[index].English,stu[index].design,stu[index].sum,stu[index].score);
    printf("-------------------------------------------------------------------------------------------------------------------\n");
	system("pause");
	system("cls");	
}

void output(){
	printf("-------------------------------------------------------------------------------------------------------------------\n");
    printf("|%s|    %s    | %s |%s|%s|%s|%s|%s|%s| %s |%s|\n","序号","学号","姓名","高等数学","大学体育","中国近代史纲要","软件技术导论","大学英语","C语言程序设计","总分","实际获得学分");
    printf("|----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
    
	for(int i=1;i<=num;i++){
        printf("|%4d|%12s|%6s|%8.1lf|%8.1lf|%14.1lf|%12.1lf|%8.1lf|%13.1lf|%6.1lf|%12.1f|\n",i,stu[i].id,stu[i].name,stu[i].maths,stu[i].PE,stu[i].history,stu[i].introduction,stu[i].English,stu[i].design,stu[i].sum,stu[i].score);
    	if(i!=num){
    		 printf("|----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
		}else{
			printf("-------------------------------------------------------------------------------------------------------------------\n");
		}
	}
	system("pause");
	system("cls");
}

void remove(){

    while(1){
        char ID[20];
        int index;
        printf("请输入要删除的学生的学号:");
        scanf("%s",&ID);
        getchar();
        index=serch(ID);  
        
        while(index==-1){
        	printf("学生不存在,请重新输入!\n");
        	scanf("%s",&ID);
        	index=serch(ID); 
		}
		string choice1;
        printf("是否确认删除?(是/否)\n");
		cin>>choice1;
		
        if(choice1=="否"){
        	printf("请重新输入。\n"); 
        	system("pause");
			system("cls");
        	continue;
		}else{
            for(int i=index;i<num;i++){
            	stu[i]=stu[i+1];
            }
            num--;
        }
        
        getchar();
        printf("恭喜你删除成功!!!\n");
		 
        string choice2;
        printf("是否继续删除?(是/否)\n");
		cin>>choice2;
		if(choice2=="否"){
        	return;
		}
    }
	system("pause");
	system("cls");
}

void rank(){
	sort(stu+1,stu+num+1,cmp);
	printf("-------------------------------------------------------------------------------------------------------------------\n");
    printf("|%s|    %s    | %s |%s|%s|%s|%s|%s|%s| %s |%s|\n","序号","学号","姓名","高等数学","大学体育","中国近代史纲要","软件技术导论","大学英语","C语言程序设计","总分","实际获得学分");
    printf("|----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
    
	for(int i=1;i<=num;i++){
        printf("|%4d|%12s|%6s|%8.1lf|%8.1lf|%14.1lf|%12.1lf|%8.1lf|%13.1lf|%6.1lf|%12.1f|\n",i,stu[i].id,stu[i].name,stu[i].maths,stu[i].PE,stu[i].history,stu[i].introduction,stu[i].English,stu[i].design,stu[i].sum,stu[i].score);
    	if(i!=num){
    		 printf("|----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
		}else{
			printf("-------------------------------------------------------------------------------------------------------------------\n");
		}
	}
	system("pause");
	system("cls");
}

void judge(){
	sort(stu+1,stu+num+1,cmp);
	int cnt=0;
	int i=1;
	printf("--------------------------------------------------------------------------------------------------------------------\n");
	printf("|%5s|    %s    | %s |%s|%s|%s|%s|%s|%s| %s |%s|\n","奖项","学号","姓名","高等数学","大学体育","中国近代史纲要","软件技术导论","大学英语","C语言程序设计","总分","实际获得学分");
	printf("|-----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
	    
	for(i=1;i<=num;i++){
			
		if(stu[i].score!=18){
			continue;
		}
		cnt++;
	        
		printf("|%d等奖|%12s|%6s|%8.1lf|%8.1lf|%14.1lf|%12.1lf|%8.1lf|%13.1lf|%6.1lf|%12.1f|\n",cnt,stu[i].id,stu[i].name,stu[i].maths,stu[i].PE,stu[i].history,stu[i].introduction,stu[i].English,stu[i].design,stu[i].sum,stu[i].score);
	    if(cnt==3||i!=num){
	    	printf("--------------------------------------------------------------------------------------------------------------------\n");
	    	 
		}else{
			printf("|-----|------------|------|--------|--------|--------------|------------|--------|-------------|------|------------|\n");
		}
		
		if(cnt==3||i==num){
			break;
		}
	}
	
	system("pause");
	system("cls");
}

void checkrank(){
	char ID[20];
    int index;
    printf("请输入要查找的学生的学号:");
    scanf("%s",&ID);
    getchar();
    index=serch(ID);  
        
    while(index==-1){
	    printf("学生不存在,请重新输入!\n");
	    scanf("%s",&ID);
	    index=serch(ID); 
	}
	printf("您在班级的排名为%d名!",index); 
	
	system("pause");
	system("cls");
}

void checkfail(){
	char ID[20];
    int index,n=0;
    printf("请输入要查找的学生的学号:");
    scanf("%s",&ID);
    getchar();
    index=serch(ID);  
        
    while(index==-1){
	    printf("学生不存在,请重新输入!\n");
	    scanf("%s",&ID);
	    index=serch(ID); 
	}
	printf("不及格的科目有:");

	if(stu[index].maths<60){
		printf("高等数学 ");
		n++;
	} 
		
	if(stu[index].PE<60){
		printf("大学体育 ");
		n++;
	} 
	
	if(stu[index].history<60){
		printf("中国近代史纲要 ");
		n++;
	}
		
	if(stu[index].introduction<60){
		printf("软件技术导论 ");
		n++;
	}
		
	if(stu[index].English<60){
		printf("大学英语 ");
		n++;
	}
		
	if(stu[index].design<60){
		printf("C语言程序设计 ");
		n++;
	}
	
	if(n==0){
		printf("无!!!");
	}
	system("pause");
	system("cls");
}

void meno1(){
	int choice1;
	
    while(1){
		printf("        教师端  \n ");   
		printf("******************\n");
		printf("      功能菜单 \n"); 
		printf("姓名:     \n"); 
		printf("==================\n"); 
		printf("1.录入学生成绩         \n");
		printf("2.修改学生成绩         \n"); 
		printf("3.查询学生成绩         \n"); 
		printf("4.导出学生成绩         \n"); 
		printf("5.删除学生信息         \n"); 
		printf("6.对学生进行排名       \n"); 
		printf("7.评定奖学金           \n");  
	    printf("0.退出程序             \n");
		printf("==================\n");
		printf("请输入您的选择:");
		scanf("%d",&choice1);
		system("cls");
		
		switch(choice1){
			case 1: input();	break;
			case 2:	revise();   break;
			case 3: inquire();  break;
			case 4: output();   break;
			case 5: remove();   break;
			case 6: rank();     break;
			case 7: judge();    break;
	    	case 0: printf("欢迎你再次使用,再见!\n");    return;
			default: printf("对不起,您的选择有误,请重新输入!!!\n");	
			system("pause");
			system("cls");
		} 
	}
}

void meno2(){
	int choice2;
	
    while(1){
		printf("        学生端         \n");
		printf(" ********************\n");
		printf("      功能菜单 \n"); 
		printf("姓名:     \n"); 
		printf("==================\n"); 
		printf("1.查看个人成绩          \n"); 
		printf("2.查看班级成绩        \n"); 
		printf("3.查看个人班级排名    \n"); 
		printf("4.查看不及格课程     \n");
		printf("0.结束程序             \n");
		printf("==================\n ");
	 	printf("请输入您的选择:"); 
		scanf("%d",&choice2);
		system("cls");
		
		switch(choice2){
			case 1: inquire();    break; 
			case 2: output();     break;       
			case 3: checkrank();  break;
			case 4: checkfail();  break;
			case 0: printf("欢迎你再次使用,再见!\n");    return;
			default:printf("对不起,您的选择有误,请重新输入!!!\n");	
			system("pause");
			system("cls");
		} 
	}
} 

int main(){
	int choice;
	
    while(1){
    	printf("	  主菜单			\n");
    	printf("*****************************\n");
    	printf("	1.教师端        	\n");
    	printf("	2.学生端        	\n");
		printf("	0.结束程序	        \n"); 
		printf("*****************************\n");
		printf("请输入您的选择:");
		scanf("%d",&choice);
		system("cls");
		
		switch(choice){
       		case 1: meno1();break;
      		case 2: meno2();break;
       		case 0: printf("欢迎您再次使用,再见!\n");exit(0);
	   		default:printf("对不起,您的选择有误,请重新输入!!!\n");
	   		system("pause");
			system("cls");
	    }
	}
	return 0;
}

四、实验报告 (附带实验报告、源码以及解释)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/656984.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ASP.NET Core MVC 从入门到精通之Identity入门

随着技术的发展&#xff0c;ASP.NET Core MVC也推出了好长时间&#xff0c;经过不断的版本更新迭代&#xff0c;已经越来越完善&#xff0c;本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容&#xff0c;适用于初学者&#xff0c;在校毕业生&#xff0c…

pikache靶场通关——XSS漏洞

文章目录 前言环境第一关、反射型xss(get)Step.1、输入特殊字符测试Step.2、输入js语句Step.3、在URL中输入js语句 第二关、反射性xss(post)Step.1、输入获取cookie的js语句 第三关、存储型xssStep.1、输入获取cookie的js语句Step.2、查看页面源码Step.3、感受危害性 第四关、D…

1 君正IPC芯片方案介绍

专栏特色 1、所有源码严格遵守统一的编码规范。 2、手把手教学&#xff0c;让你从零开始&#xff0c;深入了解君正方案IPC库的方方面面。 3、纯C接口&#xff0c;接口封装严谨&#xff0c;接口功能丰富&#xff0c;应用层调用简单便捷。 4、近二十年行业经验和技术积累打造的高…

风电光伏iEEE33节点蒙特卡洛概率潮流计算

基于蒙特卡洛法的概率潮流 以IEEE33节点的电网为研究对象 建立了光伏和风电的概率出力模型 采用蒙特卡洛法进行随机抽样 之后基于抽样序列进行概率潮流计算 最后得到电网的电压概率出力曲线

使用数字钥匙技术的车辆有多安全?

首发微信公众号网络研究院&#xff0c;关注获取更多。 虽然有几种不同的方法来实现汽车使用的数字钥匙&#xff0c;但安全的数字钥匙标准应该利用近场通信 (NFC) 和超宽带 (UWB) 结合蓝牙低功耗 (BLE) 来访问车辆&#xff0c;开始引擎&#xff0c;固定车辆&#xff0c;或授权各…

云原生之使用Docker部署Dashy个人导航页

云原生之使用Docker部署Dashy个人导航页 一、Dashy介绍1.1 Dashy简介1.2 Dashy特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、部署前准备工作4.1下载Dashy源码包4.2 查看D…

vue基础-ref (!)

&#xff01;1、ref 引用 在父组件中直接去调 子组件中的方法&#xff0c;使用ref 很简单&#xff0c;比父子传值 简单很多 1、使用ref引用DOM元素 第一步&#xff1a;给标签里 写 ref“xxx” 第二步&#xff1a;就可以用this.$refs.xxx 来拿到这个元素 使用 ! 2、使用ref引…

Spring - Bean的6种作用域

1、Bean作用域问题2、作用域定义2.1、Bean的6种作用域singleton 单例模式prototype 原型作用域request 请求作用域session 会话作用域application 全局作用域&#xff08;了解&#xff09;websocket 单例作用域 vs 全局作用域 2.设置作用域 1、Bean作用域问题 通过一个案例来看…

[工业互联-10]:PLC入门简介

目录 前言 PLC的用途 PLC的特点 PLC的分类 1、按PLC的控制规模分类 2、按PLC的控制性能分类 3、按PLC的结构分类 PLC的技术指标 1、硬件指标 2、软件指标 3、主要性能指标介绍 1) 存储容量 2) 输入/输出&#xff08;I/O&#xff09;点数 3) 扫描速度 4) 指令的功…

【Redis】五种数据结构

在内存种种存储形式如下&#xff1a;

练习2:逻辑回归

练习2&#xff1a;逻辑回归 介绍 在本练习中&#xff0c;您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法&#xff0c;来提高算法的鲁棒性&#xff0c;并用更复杂的情形来测试模型算法。 在开始练习前&#xff0c;需要下载如下的文件进行数据上…

90后程序员回家卖羊粪,月销售额120万!

不得不说&#xff0c;程序员是一个勤奋而又善于思考的群体。他们不只是代码写得好&#xff0c;善于逻辑思维&#xff0c;即使有一天不做程序员&#xff0c;转行其他岗位了&#xff0c;也能在新的岗位上面玩出花样。 早在2013年的时候&#xff0c;就有一位新浪的PHP程序员转行卖…

单点登录:CAS使用springboot main方法启动cas-server

1.下载demo git clone https://gitee.com/pelin0963/cas-server.git2.使用eclipse导入maven项目。此次我是用的spring tool suite 4导入的。 导入时会用较长时间&#xff0c;10分钟吧。需要下载很多资源。 3.报错&#xff0c;提示缺少jar包 Missing artifact net.shibbolet…

【java】使用 BeanUtils.copyProperties 11个坑(注意事项)

文章目录 背景第1个坑&#xff1a; 类型不匹配第2个坑: BeanUtils.copyProperties是浅拷贝第3个坑&#xff1a;属性名称不一致第4个坑&#xff1a;Null 值覆盖第5个坑&#xff1a;注意引入的包第6个坑&#xff1a;Boolean类型数据is属性开头的坑第7个坑&#xff1a;查找不到字段…

C语言strlen函数的缺陷与实现,strcpy函数的缺陷与实现,strcat函数的缺陷与实现,strcmp的实现。

1.strlen 函数原型&#xff1a; size_t strlen( const char *string );size_t 是无符号整型&#xff0c;相当于unsigned intconst char *string 是目标字符串 函数作用&#xff1a; 计算字符串的长度。 函数的模拟实现&#xff1a; size_t _strlen(const char * str) {ass…

地址解析省市区详细地址

项目代码源地址在我的github&#xff1a;https://github.com/weitw/address-analyzer 一、项目介绍 1、解析规则 将一个用户输入的地址&#xff0c;解析成省、市、区、详细地址的形式。 如果用户输入的不是标准的地址&#xff0c;则需要推测标准地址。例如用户输入&#xff…

【AIGC】16、Vision-Language 模型在视觉任务中的调研

文章目录 一、简介二、基础知识2.1 视觉任务的训练策略2.2 VLM 基础2.2.1 网络结构2.2.2 预训练目标函数2.2.3 评估和下游任务 2.3 数据集 三、迁移学习3.1 使用 prompt tuning 实现迁移学习3.2 通过特征适应来进行迁移学习 四、VLM 的知识蒸馏4.1 目标检测的知识蒸馏4.2 语义分…

用雪花 id 和 uuid 做 MySQL 主键,被领导怼了

在MySQL中设计表的时候&#xff0c;MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一)&#xff0c;而是推荐连续自增的主键id&#xff0c;官方的推荐是auto_increment&#xff0c;那么为什么不建议采用uuid&#xff0c;使用uuid究竟有什么坏处&#xff1f;本篇…

打造专属封面!这两款神器必备

无论你是图文博主还是视频博主&#xff0c;做封面都是必不可少的。谈及可制作封面的工具&#xff0c;种类是极其繁多的&#xff0c;比如黄油相机、美图秀秀、美易等。虽然这些工具各有千秋&#xff0c;但我不建议使用&#xff0c;因为它们的某个功能可能做得不错&#xff0c;但…

【MySQL数据库 | 第十九篇】SQL性能分析工具

目录 前言&#xff1a; SQL执行频率&#xff1a; 慢查询日志&#xff1a; profile&#xff1a; profile各个指令&#xff1a; 总结&#xff1a; 前言&#xff1a; 本篇我们将为大家讲解SQL性能的分析工具&#xff0c;而只有熟练的掌握了性能分析的工具&#xff0c;才可以更…