#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//统计成绩 { printf("数学新成绩:"); scanf("%f",&stu[a].sco.math); printf("英语新成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机新成绩:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改学生资料 { printf("学号:%d----修改为:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改为:",stu[a].name); gets(stu[a].name); printf("数学成绩:%.2f----修改为:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英语成绩:%.2f----修改为:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("计算机成绩:%.2f----修改为:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此学生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//删除总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否删除此条记录?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("记录已删除!\n"); } } void delete_student2(int a,int b)//删除学生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查询总函数 { printf("1、按学号查询\n2、按平均分最高查询\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜单调度总函数 { print_menu(); choosemenu(); } void sort_student1(void)//排序总函数 { printf("1、按数学成绩排序\n2、按英语成绩排序\n3、按计算机成绩排序\n4、按平均成绩排序\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//显示全部学生资料 { printf("本班所有学生具体信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//显示学生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//显示表头 { printf(" 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\n"); } void input_student4(int a,int b)//覆盖原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判断学号是否重复 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此学号代表的学生已录入\n1、覆盖原信息\n2、重新输入\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替换!\n"); break; } case 2: { printf("请重新输入学生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//输出菜单 { printf("======欢迎来到学生信息管理系统======\n"); printf(" 1、输入学生资料\n"); printf(" 2、删除学生资料\n"); printf(" 3、查询学生资料\n"); printf(" 4、修改学生资料\n"); printf(" 5、显示学生资料\n"); printf(" 6、统计学生成绩\n"); printf(" 7、排序学生成绩\n"); printf(" 8、保存学生资料\n"); printf(" 9、获取帮助信息\n"); printf(" 10、退出系统\n"); printf("====================================\n"); printf("请选择:"); } void input_student2(void)//输入总函数 { char end; printf("请输入学生信息(在最后一个学生信息录入完成后以“/”结束录入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//输入学生信息 { printf("学号:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("数学成绩:"); scanf("%f",&stu[a].sco.math); printf("英语成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机成绩:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//计算学生平均成绩 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查询并输出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照数学成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英语成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照计算机成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照学号查找学生并输出 { int num; int c; printf("请输入要查询的学号:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此学生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜单选择 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 运行结果: 源文件下载地址: http://115.com/file/clnq138g#一个简单的学生成绩管理系统.rar (请将此地址复制到浏览器地址栏中访问下载页面)
标签: 成绩查询系统
上传时间: 2019-06-08
上传用户:啊的撒旦
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!\n"); stu[c].average=input_score2(c); } void input_score3(int a)//统计成绩 { printf("数学新成绩:"); scanf("%f",&stu[a].sco.math); printf("英语新成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机新成绩:"); scanf("%f",&stu[a].sco.computer); } void change_student2(int a)//修改学生资料 { printf("学号:%d----修改为:",stu[a].number); scanf("%d",&stu[a].number); getchar(); printf("姓名:%s----修改为:",stu[a].name); gets(stu[a].name); printf("数学成绩:%.2f----修改为:",stu[a].sco.math); scanf("%f",&stu[a].sco.math); printf("英语成绩:%.2f----修改为:",stu[a].sco.english); scanf("%f",&stu[a].sco.english); printf("计算机成绩:%.2f----修改为:",stu[a].sco.computer); scanf("%f",&stu[a].sco.computer); } void change_student1(void)//修改总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否要修改此学生信息?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { change_student2(c); stu[c].average=input_score2(c); printf("信息修改成功!\n"); } } void delete_student1(void)//删除总函数 { int c; c=search_student2(iNumOfStu); getchar(); printf("是否删除此条记录?(“y”代表是)"); char d; scanf("%c",&d); if(d=='y'||d=='Y') { delete_student2(c,iNumOfStu); printf("记录已删除!\n"); } } void delete_student2(int a,int b)//删除学生信息 { for(int i=a;i<b-1;i++) { stu[i]=stu[i+1]; } --iNumOfStu; } void search_student1(void)//查询总函数 { printf("1、按学号查询\n2、按平均分最高查询\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { search_student2(iNumOfStu); break; } case 2: { search_student3(iNumOfStu); break; } default: break; } } void menu(void)//菜单调度总函数 { print_menu(); choosemenu(); } void sort_student1(void)//排序总函数 { printf("1、按数学成绩排序\n2、按英语成绩排序\n3、按计算机成绩排序\n4、按平均成绩排序\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { sort_student2(stu,iNumOfStu); break; } case 2: { sort_student3(stu,iNumOfStu); break; } case 3: { sort_student4(stu,iNumOfStu); break; } case 4: { sort_student5(stu,iNumOfStu); break; } default: break; } } void print_student1(int a)//显示全部学生资料 { printf("本班所有学生具体信息如下\n"); print_student2(); for(int i=0;i<a;i++) { print_student3(i); } } void print_student3(int a)//显示学生信息 { printf("%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average); } void print_student2(void)//显示表头 { printf(" 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\n"); } void input_student4(int a,int b)//覆盖原信息 { stu[a]=stu[b-1]; --iNumOfStu; } void input_student3(int &a,int b)//判断学号是否重复 { if(a!=0) { int i=0; do { if(stu[a].number==stu[i].number) { printf("此学号代表的学生已录入\n1、覆盖原信息\n2、重新输入\n请选择:"); int c; scanf("%d",&c); switch(c) { case 1: { input_student4(i,iNumOfStu); a=iNumOfStu-1; printf("信息已替换!\n"); break; } case 2: { printf("请重新输入学生信息:\n"); input_student1(iNumOfStu-1); break; } default: break; } break; } ++i; } while(i<b-1); } } void print_menu(void)//输出菜单 { printf("======欢迎来到学生信息管理系统======\n"); printf(" 1、输入学生资料\n"); printf(" 2、删除学生资料\n"); printf(" 3、查询学生资料\n"); printf(" 4、修改学生资料\n"); printf(" 5、显示学生资料\n"); printf(" 6、统计学生成绩\n"); printf(" 7、排序学生成绩\n"); printf(" 8、保存学生资料\n"); printf(" 9、获取帮助信息\n"); printf(" 10、退出系统\n"); printf("====================================\n"); printf("请选择:"); } void input_student2(void)//输入总函数 { char end; printf("请输入学生信息(在最后一个学生信息录入完成后以“/”结束录入):\n"); for(int i=0;(end=getchar())!='/';i++) { input_student1(i); ++iNumOfStu; input_student3(i,iNumOfStu); } for(int j=0;j<iNumOfStu;j++) { stu[j].average=input_score2(j); } } void input_student1(int a)//输入学生信息 { printf("学号:"); scanf("%d",&stu[a].number); getchar(); printf("姓名:"); gets(stu[a].name); printf("数学成绩:"); scanf("%f",&stu[a].sco.math); printf("英语成绩:"); scanf("%f",&stu[a].sco.english); printf("计算机成绩:"); scanf("%f",&stu[a].sco.computer); } float input_score2(int a)//计算学生平均成绩 { return (stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3; } void search_student3(int a)//按平均分最高查询并输出 { int max=0; for(int i=0;i<a;i++) { if(stu[max].average<stu[i].average) { max=i; } } print_student2(); print_student3(max); } void sort_student2(student s[],int a)//按照数学成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.math>stu[max].sco.math) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student3(student s[],int a)//按照英语成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.english>stu[max].sco.english) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student4(student s[],int a)//按照计算机成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].sco.computer>stu[max].sco.computer) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } void sort_student5(student s[],int a)//按照平均成绩排序 { struct student temp; for(int i=0;i<a-1;i++) { int max=i; for(int j=i+1;j<a;j++) if(stu[j].average>stu[max].average) { max=j; } if(max!=i) { temp=stu[max]; stu[max]=stu[i]; stu[i]=temp; } } print_student2(); for(int k=0;k<a;k++) { print_student3(k); } } int search_student2(int a)//按照学号查找学生并输出 { int num; int c; printf("请输入要查询的学号:"); scanf("%d",&num); for(int i=0;i<a;i++) { if(num==stu[i].number) { c=i; } } printf("此学生的信息是:\n"); print_student2(); print_student3(c); return c; } void choosemenu(void)//菜单选择 { int i; scanf("%d",&i); switch(i) { case 1: { input_student2(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 2: { delete_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 3: { search_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 4: { change_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 5: { print_student1(iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 6: { input_score1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 7: { sort_student1(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 8: { save_student(stu,iNumOfStu); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 9: { print_help(); printf("按回车键返回主菜单"); getchar(); getchar(); menu(); break; } case 10: { exit_student(); } default: break; } } 运行结果: 源文件下载地址: http://115.com/file/clnq138g#一个简单的学生成绩管理系统.rar (请将此地址复制到浏览器地址栏中访问下载页面) #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100 int iNumOfStu=0; struct score { float math; float english; float computer; }; struct student { int number; char name[20]; struct score sco; float average; }; struct student stu[N]; void print_menu(void);//输出菜单 void choosemenu(void);//菜单选择 void input_student1(int);//输入学生信息 void input_student2(void);//输入总函数 void input_student3(int &,int);//判断学号是否重复 void input_student4(int,int);//覆盖原信息 void sort_student3(student s[],int);//按照英语成绩排序 void sort_student4(student s[],int);//按照计算机成绩排序 void sort_student2(student s[],int);//按照数学成绩排序 void sort_student5(student s[],int);//按照平均成绩排序 float input_score2(int);//计算学生平均成绩 void print_student2(void);//显示表头 void print_student3(int);//显示学生信息 void print_student1(int);//显示全部学生资料 void sort_student1(void);//排序总函数 void menu(void);//菜单调度总函数 int search_student2(int);//按学号查询学生信息并输出 void search_student3(int);//按平均分最高查询并输出 void search_student1(void);//查询总函数 void delete_student2(int,int);//删除学生信息 void delete_student1(void);//删除总函数 void change_student2(int);//修改学生资料 void change_student1(void);//修改总函数 void input_score3(int);//统计成绩 void input_score1(void);//统计成绩总函数 void print_help(void);//输出帮助信息 void exit_student(void);//退出系统 void save_student(student *,int);//保存学生信息 void main() { menu(); } void save_student(student *s,int a)//保存学生信息 { FILE *fp; if((fp=fopen("d:\\学生信息.txt","wb"))==NULL) { printf("不能打开文件!\n"); } else { printf("保存信息到D盘\n"); fprintf(fp,"本班所有学生具体信息如下:\r\n"); fprintf(fp," 学号 姓名 数学成绩 英语成绩 计算机成绩 平均成绩\r\n"); for(int i=0;i<a;i++) { fprintf(fp,"%8d%12s%14.2f%14.2f%14.2f%14.2f\n",stu[i].number,stu[i].name,stu[i].sco.math,stu[i].sco.english,stu[i].sco.computer,stu[i].average); fprintf(fp,"\r\n"); } fclose(fp); printf("信息保存成功!\n"); } } void exit_student(void)//退出系统 { exit(1); } void print_help(void)//输出帮助信息 { printf("本系统所能容纳的最大学生数为%d人\n学生信息保存在D盘根目录下,保存文件为“学生信息.txt”。\n感谢使用!\n",N); } void input_score1(void)//统计成绩总函数 { int c; c=search_student2(iNumOfStu); printf("学号:%d\n",stu[c].number); printf("姓名:%s\n",stu[c].name); input_score3(c); printf("新成绩录入成功!
标签: c语言
上传时间: 2019-06-09
上传用户:啊的撒旦
function [R,k,b] = msc(A) % 多元散射校正 % 输入待处理矩阵,通过多元散射校正,求得校正后的矩阵 %% 获得矩阵行列数 [m,n] = size(A); %% 求平均光谱 M = mean(A,2); %% 利用最小二乘法求每一列的斜率k和截距b for i = 1:n a = polyfit(M,A(:,i),1); if i == 1 k = a(1); b = a(2); else k = [k,a(1)]; b = [b,a(2)]; end end %% 求得结果 for i = 1:n Ai = (A(:,i)-b(i))/k(i); if i == 1 R = Ai; else R = [R,Ai]; end end
上传时间: 2020-03-12
上传用户:15275387185
1.优点 取消了离合器,能够根据发动机负荷和车速等情况自动变换传动比,使汽车获得良好的动力 性和燃料经济性,并减少发动机排放污染. 换档平滑、无冲击、振动,噪音小.在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 操纵轻便,在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 传动效率高,能防止发动机过载.第一章2.分类 1.按齿轮变速系统的控制方式分为:a.液控液动自动变速器:在手控制阀选定位置后, 由反映节气门开度的节气门阀和反映车速的调 速器阀把节气门开度和车速转变为液压信号.在 换档点,这些液压信号直接控制换挡阀进行换 b.电控液动自动变速器:在手控制阀选定位置后,由反映节气门开度的节气 门位置传感器和反映车速的车速传感器把节气门开度和 车速3.自动变速器操纵手柄的使用 操纵手柄只改变自动变速器
标签: 汽车变速器
上传时间: 2021-10-17
上传用户:XuVshu
产品型号:VK2C21A/B/C/D 产品品牌:永嘉微电/VINKA 封装形式:SOP28/24/20/16 产品年份:新年份 联 系 人:陈先生 联 系 QQ:3618885898 联系手机:18824662436 原厂直销,工程服务,技术支持,价格最具优势! VK2C21A/B/C/D概述: VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4 ★ COM周期(DUTY)可配置为1/4、1/8 ★ 内置显示RAM为20x4位、16x8位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式20x4、16x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<VDD) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系陈先生索取! —————————————————————————————————— 产品型号:VK2C22A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP52/48 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C22A/B概述: VK2C22A/B是一个点阵式存储映射的LCD驱动器,可支持最大176点(44SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/2、1/3 ★ COM周期(DUTY)为1/4 ★ 内置显示RAM为44x4位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式44x4 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系陈先生索取! —————————————————————————————————— 产品型号:VK2C23A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP64/48 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C23A/B概述: VK2C23A/B是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4 ★ COM周期(DUTY)可配置为1/4、1/8 ★ 内置显示RAM为56x4位、52x8位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式56x4、52x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系陈先生索取! —————————————————————————————————— 产品型号:VK2C24A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP80/64 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C24A/B概述: VK2C24A/B是一个点阵式存储映射的LCD驱动器,可支持最大288点(72SEGx4COM)或者最大544点(68SEGx8COM)或者最大960点(60SEGx16COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4、1/5 ★ COM周期(DUTY)可配置为1/4、1/8、1/16 ★ 内置显示RAM为72x4位、68x8位、60x16位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式72x4、68x8、60x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系陈先生索取! ——————————————————————————————————
上传时间: 2021-11-22
上传用户:15218646864
产品型号:VK2C21A/B/C/D 产品品牌:永嘉微电/VINKA 封装形式:SOP28/24/20/16 产品年份:新年份 联系人:陈先生 联系手机:188& 2466& 2436 (加V) 企鹅号:361& 888& 5898 E-mail:crh_chip@163.com 原厂直销,工程服务,技术支持,价格最具优势! VK2C21A/B/C/D概述: VK2C21是一个点阵式存储映射的LCD驱动器,可支持最大80点(20SEGx4COM)或者最大128点(16SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4 ★ COM周期(DUTY)可配置为1/4、1/8 ★ 内置显示RAM为20x4位、16x8位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式20x4、16x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<VDD) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 —————————————————————————————————— 产品型号:VK2C22A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP52/48 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C22A/B概述: VK2C22A/B是一个点阵式存储映射的LCD驱动器,可支持最大176点(44SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/2、1/3 ★ COM周期(DUTY)为1/4 ★ 内置显示RAM为44x4位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式44x4 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 —————————————————————————————————— 产品型号:VK2C23A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP64/48 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C23A/B概述: VK2C23A/B是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4 ★ COM周期(DUTY)可配置为1/4、1/8 ★ 内置显示RAM为56x4位、52x8位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式56x4、52x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 —————————————————————————————————— 产品型号:VK2C24A/B 产品品牌:永嘉微电/VINKA 封装形式:LQFP80/64 产品年份:新年份 原厂直销,工程服务,技术支持,价格最具优势! VK2C24A/B概述: VK2C24A/B是一个点阵式存储映射的LCD驱动器,可支持最大288点(72SEGx4COM)或者最大544点(68SEGx8COM)或者最大960点(60SEGx16COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/3、1/4、1/5 ★ COM周期(DUTY)可配置为1/4、1/8、1/16 ★ 内置显示RAM为72x4位、68x8位、60x16位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)��� ★ I2C通信接口 ★ 显示模式72x4、68x8、60x8 ★ 3种显示整体闪烁频率 ★ 软件配置LCD显示参数 ★ 读写显示数据地址自动加1 ★ VLCD脚提供LCD驱动电压源(<5.5V) ★ 内置16级LCD驱动电压调整电路 ★ 内置上电复位电路(POR) ★ 低功耗、高抗干扰 ★ 此篇产品叙述为功能简介,如需要完整产品PDF资料可以联系陈先生索取! —————————————————————————————————— LCD/LED液晶控制器及驱动器系列芯片简介如下: RAM映射LCD控制器和驱动器系列: VK1024B 2.4V~5.2V 6seg*4com 6*3 6*2 偏置电压1/2 1/3 S0P-16 VK1056B 2.4V~5.2V 14seg*4com 14*3 14*2 偏置电压1/2 1/3 SOP-24/SSOP-24 VK1072B 2.4V~5.2V 18seg*4com 18*3 18*2 偏置电压1/2 1/3 SOP-28 VK1072C 2.4V~5.2V 18seg*4com 18*3 18*2 偏置电压1/2 1/3 SOP-28 VK1088B 2.4V~5.2V 22seg*4com 22*3 偏置电压1/2 1/3 QFN-32L(4MM*4MM) VK0192 2.4V~5.2V 24seg*8com 偏置电压1/4 LQFP-44 VK0256 2.4V~5.2V 32seg*8com 偏置电压1/4 QFP-64 VK0256B 2.4V~5.2V 32seg*8com 偏置电压1/4 LQFP-64 VK0256C 2.4V~5.2V 32seg*8com 偏置电压1/4 LQFP-52 VK1621 2.4V~5.2V 32*4 32*3 32*2 偏置电压1/2 1/3 LQFP44/48/SSOP48/SKY28/DICE裸片 VK1622 2.7V~5.5V 32seg*8com 偏置电压1/4 LQFP44/48/52/64/QFP64/DICE裸片 VK1623 2.4V~5.2V 48seg*8com 偏置电压1/4 LQFP-100/QFP-100/DICE裸片 VK1625 2.4V~5.2V 64seg*8com 偏置电压1/4 LQFP-100/QFP-100/DICE VK1626 2.4V~5.2V 48seg*16com 偏置电压1/5 LQFP-100/QFP-100/DICE (高品质 高性价比:液晶显示驱动IC 原厂直销 工程技术支持! 高抗干扰LCD液晶控制器及驱动系列: VK2C21A 2.4~5.5V 20seg*4com 16*8 偏置电压1/3 1/4 I2C通讯接口 SOP-28 VK2C21B 2.4~5.5V 16seg*4com 12*8 偏置电压1/3 1/4 I2C通讯接口 SOP-24 VK2C21C 2.4~5.5V 12seg*4com 8*8 偏置电压1/3 1/4 I2C通讯接口 SOP-20 VK2C21D 2.4~5.5V 8seg*4com 4*8 偏置电压1/3 1/4 I2C通讯接口 SOP-16 VK2C22A 2.4~5.5V 44seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-52 VK2C22B 2.4~5.5V 40seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-48 VK2C23A 2.4~5.5V 56seg*4com 52*8 偏置电压1/3 1/4 I2C通讯接口 LQFP-64 VK2C23B 2.4~5.5V 36seg*8com 偏置电压1/31/4 I2C通讯接口 LQFP-48 VK2C24 2.4~5.5V 72seg*4com 68*8 60*16 偏置电压1/3 1/4 1/5 I2C通讯接口 LQFP-80 超低功耗LCD液晶控制器及驱动系列: VKL060 2.5~5.5V 15seg*4com 偏置电压1/2 1/3 I2C通讯接口 SSOP-24 VKL128 2.5~5.5V 32seg*4com 偏置电压1/2 1/3 I2C通讯接口 LQFP-44 VKL144A 2.5~5.5V 36seg*4com 偏置电压1/2 1/3 I2C通讯接口 TSSOP-48 VKL144B 2.5~5.5V 36seg*4com 偏置电压1/2 1/3 I2C通讯接口 QFN48L (6MM*6MM) 静态显示LCD液晶控制器及驱动系列: VKS118 2.4~5.2V 118seg*2com 偏置电压 -- 4线通讯接口 LQFP-128 VKS232 2.4~5.2V 116seg*2com 偏置电压1/1 1/2 4线通讯接口 LQFP-128 永嘉微电/VINKA原厂直销,工程服务技术支持,主营LCD/LED驱动IC/触摸IC __________________________________________________________________________________________________ 内存映射的LED控制器及驱动器: VK1628 --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:70/52 共阴驱动:10段7位/13段4位 共阳驱动:7段10位 按键:10x2 封装SOP28 VK1638--- VK1S38A--- VK1629 --- 通讯接口:STB/CLK/DIN/DOUT 电源电压:5V(4.5~5.5V) 驱动点阵:128共阴驱动:16段8位 共阳驱动:8段16位 按键:8x4 封装QFP44 VK1629A --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:128共阴驱动:16段8位 共阳驱动:8段16位 按键:--- 封装SOP32 VK1629B --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:112 共阴驱动:14段8位 共阳驱动:8段14位 按键:8x2 封装SOP32 VK1629C --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:120 共阴驱动:15段8位 共阳驱动:8段15位 按键:8x1 封装SOP32 VK1629D --- 通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:96 共阴驱动:12段8位 共阳驱动:8段12位 按键:8x4 封装SOP32 VK1640 --- 通讯接口: CLK/DIN 电源电压:5V(4.5~5.5V) 驱动点阵:128共阴驱动:8段16位 共阳驱动:16段8位 按键:--- 封装SOP28 VK1650 --- 通讯接口: SCL/SDA 电源电压:5V(3.0~5.5V) 驱动点阵:8x16共阴驱动:8段4位 共阳驱动:4段8位 按键:7x4 封装SOP16/DIP16 VK1668 ---通讯接口:STB/CLK/DIO 电源电压:5V(4.5~5.5V) 驱动点阵:70/52共阴驱动:10段7位/13段4位 共阳驱动:7段10位 按键:10x2 封装SOP24 VK6932 --- 通讯接口:STB/CLK/DIN 电源电压:5V(4.5~5.5V) 驱动点阵:128共阴驱动:8段16位17.5/140mA 共阳驱动:16段8位 按键:--- 封装SOP32 VK16K33 --- 通讯接口:SCL/SDA 电源电压:5V(4.5V~5.5V) 驱动点阵:128/96/64 共阴驱动:16段8位/12段8位/8段8位 共阳驱动:8段16位/8段12位/8段8位按键:13x3 10x3 8x3 封装SOP20/SOP24/SOP2 永嘉微电/VINKA原厂直销,工程服务技术支持,主营LCD/LED驱动IC/触摸IC 触摸触控IC系列简介如下: 标准触控IC-电池供电系列: VKD223EB --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯接口 最长响应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD223B --- 工作电压/电流:2.0V-5.5V/5uA-3V 感应通道数:1 通讯接口 最长响应时间快速模式60mS,低功耗模式220ms 封装:SOT23-6 VKD233DB --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DH ---工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 有效键最长时间检测16S VKD233DS --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DR --- 工作电压/电流:2.4V-5.5V/1.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流1.5uA-3V VKD233DG --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 1感应按键 封装:DFN6(2*2超小封装) 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流2.5uA-3V VKD233DQ --- 工作电压/电流:2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 通讯接口:直接输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD233DM --- 工作电压/电流:2.4V-5.5V/5uA-3V 1感应按键 封装:SOT23-6 (开漏输出) 通讯接口:开漏输出,锁存(toggle)输出 低功耗模式电流5uA-3V VKD232C --- 工作电压/电流:2.4V-5.5V/2.5uA-3V 感应通道数:2 封装:SOT23-6 通讯接口:直接输出,低电平有效 固定为多键输出模式,內建稳压电路 MTP触摸IC——VK36N系列抗电源辐射及手机干扰: VK3601L --- 工作电压/电流:2.4V-5.5V/4UA-3V3 感应通道数:1 1对1直接输出 待机电流小,抗电源及手机干扰,可通过CAP调节灵敏 封装:SOT23-6 VK36N1D --- 工作电压/电流:2.2V-5.5V/7UA-3V3 感应通道数:1 1对1直接输出 触摸积水仍可操作,抗电源及手机干扰,可通过CAP调节灵敏封装:SOT23-6 VK36N2P --- 工作电压/电流:2.2V-5.5V/7UA-3V3 &n
上传时间: 2021-11-25
上传用户:15218646864
产品型号:VK2C22A/B 产品品牌:VINKA/永嘉微/永嘉微电 封装形式:LQFP52/48 产品年份:新年份 联 系 人:许先生 原厂直销,工程服务,技术支持,价格最具优势!QT247 VK2C22A/B概述: VK2C22A/B是一个点阵式存储映射的LCD驱动器,可支持最大176点(44SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/2、1/3 ★ COM周期(DUTY)为1/4 ★ 内置显示RAM为44x4位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)
标签: VK2C 22 LCD 抗干扰 应用于 单相电表 液晶驱动 电表
上传时间: 2022-02-19
上传用户:2937735731
产品型号:VK2C22A/B 产品品牌:VINKA/永嘉微/永嘉微电 封装形式:LQFP52/48 产品年份:新年份 联 系 人:许先生 Q Q:191 888 5898 联系手机:18898582398(信) 原厂直销,工程服务,技术支持,价格最具优势!QT262 VK2C22A/B概述: VK2C22A/B是一个点阵式存储映射的LCD驱动器,可支持最大176点(44SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,也可通过指令进入省电模式。其高抗干扰,低功耗的特性适用于水电气表以及工控仪表类产品。 特点: ★ 工作电压 2.4-5.5V ★ 内置32 kHz RC振荡器 ★ 偏置电压(BIAS)可配置为1/2、1/3 ★ COM周期(DUTY)为1/4 ★ 内置显示RAM为44x4位 ★ 帧频可配置为80Hz、160Hz ★ 省电模式(通过关显示和关振荡器进入)
标签: C22 ESD LCD VK2 VK 2C 22 抗噪声 防护 数字式
上传时间: 2022-02-23
上传用户:2937735731
摘要: 智能机器人仿真系统,由于智能机器人受到自身多传感器信息融合和控制多样性等因素的影响,仿真系统设计主要都 是以数学建模的形式化仿真为主,无法实现数学建模与场景实现协调仿真。为此,首先分析两轮移动机器人数学运动模型, 然后设计与机器人控制系统相关的传感器数据采集分析、机器人智能自动控制和人工控制等模块,以实现机器人控制的真 实场景。仿真系统利用 LabVIEW 设计控制界面,并结合 Robotics 工具包的建模、计算和控制功能。仿真结果表明设计的平 台更适合教学和实验室研究,并可为实际的物理过程提供数据参考和决策建议。 关键词: 机器人; 虚拟; 系统仿真 中图分类号: TP242 文献标识码: B1 引言 随着测控技术的发展,虚拟仪器技术已成为工业控制和 自动化测试等领域的新生力量[1]。而机器人作为一种新型 的生产工具,应用范围已经越来越广泛,几乎渗透到各个领 域,是一项多学科理论与技术集成的机电一体化技术。目前 机器人仿真系统主要集中在复杂的机器人数学模型构建与 形式化仿真,无法实现分析机器人运动控制的静态和动态特 性,更加无法实现控制的真实场景[2]。为了改善专业控制软 件在硬件开发周期较长的缺点,本文拟建立一个基于通用软 件的实时仿真和控制平台,以更适合教学和实验室研究。本 文以通用仿真软件 LabVIEW 和 Robotics [3]为实时仿真与控 制平台,采用 LabVIEW 搭建控制界面,利用 Robotics 在后台 进行系统模型和优化控制算法计算,使其完成机器人控制系 统应有的静态和动态性能分析,不同环境下传感器变化模拟 显示以及目标路径形成等功能。 2 系统构成 仿真系统的构成主要包括了仿真界面、主控制界面、障 碍检测、智能控制和人工控制模块。其中主要对人工控制和 智能控制进行程序设计。仿真运行时,障碍检测一直存在, 主要是为了在智能控制模式下的智能决策提供原始数据。 在人工控制模式下,障碍检测依然存在,只不过对机器人行 动不产生影响,目的是把环境信息直观
标签: 智能机器人
上传时间: 2022-03-11
上传用户:
高通(Qualcomm)蓝牙芯片QCC5144_硬件设计详细指导书(官方内部培训手册)其内容是针对硬件设计、部分重要元器件选择(ESD,Filter)及走线注意事项的详细说明。2 Power management 2.1 SMPS 2.1.1 Components specification 2.1.2 Input power supply selection 92.1.3 Minimize SMPS EMI emissions 2.1.4 Internal LDOs and digital core decoupling 2.1.5 Powering external components 2.2 Charger 2.2.1 Charger connections.2.2.2 General charger operation2.2.3 Temperature measurement during charging 2.3 SYS_CTRL 3 Bluetooth radio3.1 RF PSU component choice 3.2 RF band-pass filter3.3 Layout (天线 走线的注意事项)4 Audio4.1 Audio bypass capacitors 4.2 Earphone speaker output4.3 Line/Mic input 4.4 Headphone output optimizition5 LED pads 5.1 LED driver 5.2 Digital/Button input 5.3 Analog input5.4 Disabled 6 Reset pin (Reset#)7 USB interfaces7.1 USB device port7.1.1 USB device port7.1.2 Layout notes 7.1.3 USB charger detectionA QCC5144 VFBGA example schematic and BOM B Recommended SMPS components specificationB.1 Inductor specifition B.2 Recommended inductors B.3 SMPS capacitor specifition
上传时间: 2022-04-07
上传用户:默默