C/S(Client/Server,客户端/服务器)结构和 B/S(Browser/Server,浏览 器/服务器)结构是大家熟知的也是现在市面上使用最多的两种软件 体系结构。随着信息技术与网络技术的发展,WEB技术的日益成熟, C/S结构有逐渐被 B/S结构取代的趋势。
上传时间: 2014-01-21
上传用户:zsjinju
ADS-B机场场面监视技术研究对机场场面监视中ADS-B系统的应用方式方法进行了分析了论证。
上传时间: 2017-06-13
上传用户:mhwang1973
#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
上传用户:啊的撒旦
全国大学生电子设计竞赛2020年TI杯模拟电子系统设计专题邀请赛多种幅度调制信号发生电路(B 题)
上传时间: 2021-07-08
上传用户:st-15180703380
1.优点 取消了离合器,能够根据发动机负荷和车速等情况自动变换传动比,使汽车获得良好的动力 性和燃料经济性,并减少发动机排放污染. 换档平滑、无冲击、振动,噪音小.在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 操纵轻便,在车辆拥挤时,可大大提高车辆行驶的安全性及可靠性. 传动效率高,能防止发动机过载.第一章2.分类 1.按齿轮变速系统的控制方式分为:a.液控液动自动变速器:在手控制阀选定位置后, 由反映节气门开度的节气门阀和反映车速的调 速器阀把节气门开度和车速转变为液压信号.在 换档点,这些液压信号直接控制换挡阀进行换 b.电控液动自动变速器:在手控制阀选定位置后,由反映节气门开度的节气 门位置传感器和反映车速的车速传感器把节气门开度和 车速3.自动变速器操纵手柄的使用 操纵手柄只改变自动变速器
标签: 汽车变速器
上传时间: 2021-10-17
上传用户:XuVshu
基于J2EE的B2C电子商务系统开发(论文+系统+开题报告+文献综述+任务书+答辩PPT+中期报表+外文文献+说明书):摘要当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定义:电子商务是通过电子信息网络进行的生产、营销、销售和流通等活动。全球电子商务涉及世界各国,也为我国企业带来了新的发展机遇。所以本次毕业设计的选题就是一个电子商务系统的开发。我们的系统主要应该实现的功能有用户的注册、登陆、密码找回、修改密码、浏览商品、购买商品以及系统的添加商品、商品展示、新闻发布等功能。系统设计中主要采用的技术为:JSP、Servlet、J2EE、B/S。我主要负责的是新闻发布和系统管理子系统。关键词: JSP B2C Servlet J2EE B/S正文1.系统概述1.1选题来源及意义以下为我们要进行B2C的电子商务的理由:全世界大约有几千万人可访问World Wide Web(WWW),不管你是做什么买卖的,你都不能小觑这几千万人。要想加入这个圈子,并在其中表现出你有兴趣为他们提供服务,你就需要踏上WWW。你该知道,你的对手们是会这样干的[1]。 建立人际关系网络:做生意当中的许多周折无非就是跟他人取得联系。精明的商人都知道,重要的不是你知道什么,而是你认识谁。如果你向几千个,甚至几百万个潜在客户和合作伙伴递出名片,并说这就是我所从事的工作,如果你需要我的服务,可以通过它跟我联系,这样将会产生何等效果也就可想而知了。在WWW上,你每天24小时都可以轻而易举地这样做。
上传时间: 2021-10-25
上传用户:kingwide
摘要: 智能机器人仿真系统,由于智能机器人受到自身多传感器信息融合和控制多样性等因素的影响,仿真系统设计主要都 是以数学建模的形式化仿真为主,无法实现数学建模与场景实现协调仿真。为此,首先分析两轮移动机器人数学运动模型, 然后设计与机器人控制系统相关的传感器数据采集分析、机器人智能自动控制和人工控制等模块,以实现机器人控制的真 实场景。仿真系统利用 LabVIEW 设计控制界面,并结合 Robotics 工具包的建模、计算和控制功能。仿真结果表明设计的平 台更适合教学和实验室研究,并可为实际的物理过程提供数据参考和决策建议。 关键词: 机器人; 虚拟; 系统仿真 中图分类号: TP242 文献标识码: B1 引言 随着测控技术的发展,虚拟仪器技术已成为工业控制和 自动化测试等领域的新生力量[1]。而机器人作为一种新型 的生产工具,应用范围已经越来越广泛,几乎渗透到各个领 域,是一项多学科理论与技术集成的机电一体化技术。目前 机器人仿真系统主要集中在复杂的机器人数学模型构建与 形式化仿真,无法实现分析机器人运动控制的静态和动态特 性,更加无法实现控制的真实场景[2]。为了改善专业控制软 件在硬件开发周期较长的缺点,本文拟建立一个基于通用软 件的实时仿真和控制平台,以更适合教学和实验室研究。本 文以通用仿真软件 LabVIEW 和 Robotics [3]为实时仿真与控 制平台,采用 LabVIEW 搭建控制界面,利用 Robotics 在后台 进行系统模型和优化控制算法计算,使其完成机器人控制系 统应有的静态和动态性能分析,不同环境下传感器变化模拟 显示以及目标路径形成等功能。 2 系统构成 仿真系统的构成主要包括了仿真界面、主控制界面、障 碍检测、智能控制和人工控制模块。其中主要对人工控制和 智能控制进行程序设计。仿真运行时,障碍检测一直存在, 主要是为了在智能控制模式下的智能决策提供原始数据。 在人工控制模式下,障碍检测依然存在,只不过对机器人行 动不产生影响,目的是把环境信息直观
标签: 智能机器人
上传时间: 2022-03-11
上传用户:
随着汽车电子技术的发展,汽车作为一种融合了当代多种高新技术的交通工具,需要采用越来越多的电子控制系统,这些复杂的系统控制需要检测及交换大量数据,传统的点对点控制方式不但布线复杂、昂贵,而且可靠性差、重量大维护成本高,已经无法满足现代汽车的通信要求,为了解决上面这些问题,德国BOSCH公司的CAN总线控制应运而生,且日前得到了广泛应用。为了应对当前某些整车厂对车载CAN总线控制系统应用的需求,以及解决由于没有一个开放的CAN应用层协议,使不同配套厂的设备之间不能互操作的问题论文以基于SAEJ939协议的汽车CAN总线控制系统设计与测试作为研究课题制定了基于SAEJ939协议的CAN应用层协议并设计开发了CAN总线控制模块结合项目组已有的技术基础,论文首先研究了CAN总线协议特点和实现该技术的要求,并研究分析了CAN总线的应用层协议规范SAE939,在此基础上,根据某整车厂需求,分别从网络拓扑结构的总体设计、模块的信号定义、信息发送周期选择、报文优先级分配以及节点地址定义等几个方面设计制定了一套具有良好扩展性的汽车CAN应用层协议。此外,课题还完成了CAN总线控制模块的全部硬件设计,通过软件开发实现了所制定的CAN应用层协议以及各控制模块的功能为了验证CAN总线系统设计方案和所制定的CAN应用层协议的可行性,以及测试网络性能,课题对CAN总线控制模块和CAN网络系统进行CAN模块的致性测试,CAN控制模块通信功能测试,以及应用cAN总线开发工具 CANoe进行的CAN总线仿真实验和整个系统平台测试。通过研究这些实验和测试的结果验证了CAN总线控制系统的实时性、可靠性和稳定性,证明了课题设计方案可行此外,误题的研究也为实现具有自主知识产权的汽车CAN总线控制技术的产品化积累了经验,课题也因此具备继续研究开发的意义和良好的经济的前景
标签: 汽车CAN总线
上传时间: 2022-03-23
上传用户:fliang
经过数十年技术演进,目前发动机控制、底盘控制、车身电子控制 等传统汽车电子控制技术已极为成熟,车辆信息服务系统、定位导航系 统、电子娱乐系统等车载电子装置网络化、智能化发展不断深入,汽车电 子的内涵和外延得到了不断扩展丰富。预测显示到2020年每辆汽车上各类 电子装置将超过200个,在实现各类电子装置实时可靠传输数据、提供信 息化服务的同时,汽车电子网络安全防护的理念、方法、技术、政策、标 准等也必须跟上需求发展的步伐。如何建立更为安全可靠的汽车电子系统 架构,满足开放式网络互联环境下的安全需求,部署有效措施防范安全风 险,并形成切实可落地的标准,这一系列难点问题都值得我们加紧研究、 持续关注
上传时间: 2022-05-07
上传用户:
本书是自适应信号处理领域的一本经典教材。全书共17章,内容包括:自适应LMS横向滤波器、自适应格型滤波器、自适应递归滤波器、频域和子带自适应滤波器、盲自适应滤波器、神经网络、非线性自适应滤波器等及其在通信与信息系统中的应用。目录背景与预览第1章 随机过程与模型第2章 维纳滤波器第3章 线性预测第4章 最速下降算法第5章 最小均方自适应滤波器第6章 归一化最小均方自适应滤波器第7章 频域和子带自适应滤波器第8章 最小二乘法第9章 递归最小二乘自适应滤波器第10章 卡尔曼滤波器第11章 平方根自适应滤波器第12章 阶递归自适应滤波器第13章 有限精度效应第14章 时变系统的跟踪第15章 无限脉冲响应自适应滤波器第16章 盲反卷积第17章 反向传播学习后记附录A 复变量附录B 对向量微分附录C 拉格朗日乘子法附录D 估计理论附录E 特征分析附录F 旋转和映射附录G 复数Wishart分布术语参考文献 现在网上流传的技术类书籍好多都是预览版本,此书为全本,非常难得,现在分享给大家,希望对大家有所帮助。
标签: 自适应滤波器
上传时间: 2022-05-14
上传用户:默默