导航:首页 > 编程知识 > 编程peek属于哪个类

编程peek属于哪个类

发布时间:2024-07-08 10:59:16

A. 编写程序设计一个类CStudent

|#include<iostream>
#include<fstream>
using namespace std;
class CStudent{
public:
int id,age;
char name[20];
char sex;
float score[3];
void operator <<(CStudent s){
cout<<s.id<<"-"<<s.name<<"-"<<s.sex;
cout<<"-"<<s.age<<"-"<<s.score[0]<<"-"<<s.score[1]<<"-"<<s.score[2]<<endl;
}
void input(char filename[]){
cout<<"请输入学生信息(id-name-sex-age-score[])"<<endl;
CStudent s;
cin>>s.id>>s.name>>s.sex>>s.age>>s.score[0]>>s.score[1]>>s.score[2];
ofstream outfile(filename,ios::out||ios::binary);
if(!outfile){
cout<<"open error!"<<endl;
exit(0);
}
outfile.write((char *)&s,sizeof(CStudent));
outfile.close();
cout<<endl;
}
void SearchById(char filename[],int sid){
cout<<"学号为"<<sid<<"的学生信息为:";

ifstream infile(filename,ios::in||ios::binary);
if(!infile){
cout<<"open error!"<<endl;
exit(0);
}
while(infile.peek()){
CStudent s;
infile.read((char *)&s,sizeof(CStudent));
if(s.id==sid){
*this<<s;
// cout<<s.id<<"-"<<s.name<<"-"<<s.sex<<"-"
// <<s.age<<"-"<<s.score[0]<<" "<<s.score[1]<<" "<<s.score[2];
break;
}
}
infile.close();
cout<<endl;
}

void SearchByName(char filename[],char sname[]){
cout<<"姓名为"<<sname<<"的学生信息为:";

fstream infile(filename,ios::in||ios::binary);
if(!infile){
cout<<"open error!"<<endl;
exit(0);
}
while(infile.peek()){
CStudent s;
infile.read((char *)&s,sizeof(CStudent));

if(!strcmp(s.name,sname)){
*this<<s;
// cout<<s.id<<"-"<<s.name<<"-"<<s.sex<<"-"
// <<s.age<<"-"<<s.score[0]<<" "<<s.score[1]<<" "<<s.score[2];
break;
}
}
infile.close();
cout<<endl;
}

void CalcById(char filename[],int sid){
CStudent s;
float total,average;
fstream infile(filename,ios::in||ios::binary);
if(!infile){
cout<<"open error!"<<endl;
exit(0);
}
while(infile.peek()){
infile.read((char *)&s,sizeof(CStudent));
if(s.id==sid){
total=s.score[0]+s.score[1]+s.score[2];
average=total/3;
//*this<<s;
cout<<"学号:"<<sid<<" 总成绩:"<<total<<" 平均成绩:"<<average<<endl;
break;
}
}
infile.close();
cout<<endl;
}

void List(char filename[]){ CStudent s;
float n,total;
char ssex;
cout<<"请输入要查询的最低成绩和性别"<<endl;
cin>>n>>ssex;
fstream infile(filename,ios::in||ios::binary);
if(!infile){
cout<<"open error!"<<endl;
exit(0);
}

while(infile.peek()){
s.score[0]=0;
s.score[1]=0;
s.score[2]=0;
infile.read((char *)&s,sizeof(CStudent));
total=s.score[0]+s.score[1]+s.score[2];
if(total>n && s.sex==ssex)
// *this<<s;
cout<<s.id<<"-"<<s.name<<"-"<<s.sex<<"-"<<s.age<<"-"<<s.score[0]<<" "<<s.score[1]<<" "<<s.score[2]<<endl;
}
infile.close();
cout<<endl;
}

};

int main(){
CStudent s0;
int n;
char filename[]="student.txt";
char sname[]="zhangsan";
char name[20]="zhangsan";
cout<<"strcmp"<<!strcmp(name,sname)<<endl;
cout<<"请输入学生人数"<<endl;
cin>>n;
for(int i=0;i<n;i++)
s0.input(filename);
s0.SearchById(filename,3);

s0.CalcById(filename,3);

s0.SearchByName(filename,sname);
s0.List(filename);
return 0;
}

B. 使用抓包软件分析抓包,怎样看广播帧哪些是广播帧我有wireshark和omnipeek软件。

广播是一台主机向网络中所有主机发送数据包,广播的目的地址不同于单播单一的地址。
广播有两类:定向广播和有限广播
1、定向广播是将数据包发送到向本网络之外的特定网络所有主机,定向广播的目的地址是定向网络的广播地址,如当前网络为192.168.0.0/24,要向192.168.1.0/24的网络发送定向广播,那么定向广播的目的地址是:192.168.1.255。可以配置路由器让其转发定向广播。
2、有限广播是将数据包发送到本地网络的所有主机,有限广播使用的目的地址是:255.255.255.255.路由器不转发此广播。

所以看看是不是最后是255的就可以了

C. java编程实现堆栈出栈操作!

数组实现的堆栈:ArrayStack.java
public class ArrayStack {
Object[] m_elements;
int m_size;

public ArrayStack(int len) {
m_elements = new Object[len];
m_size = 0;
}

public ArrayStack() {
this(50);
}

// insert onto stack
public void push(Object element) {
m_elements[m_size] = element;
m_size++;
}

// return and remove the top element
public Object pop() {
if (!this.isEmpty()) {
Object obj = m_elements[m_size - 1];
m_elements[m_size - 1] = null;
m_size--;

return obj;
} else {
return null;
}
}

// return the top element
public Object top() {
if (!this.isEmpty()) {
return m_elements[m_size - 1];
} else {
return null;
}
}

// return 1 --> is empty
// return 0 --> is not empty
public boolean isEmpty() {
return this.size() == 0;
}

public int size() {
return m_size;
}
}

使用链表实现(单链表) :
public class Stacklist {
Node m_header;

int m_size;

public ListStack() {
m_header = null;
m_size = 0;
}

public void push(Object value) {

m_header = new Node(value, m_header);

}

public Object pop() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}

Object obj = m_header.element;

m_header = m_header.next;

return obj;
}

// return reference to most recently added elemenet
public Object peek() {
if (!this.isEmpty()) {
throw new RuntimeException("Stack underflow");
}

return m_header.element;
}

public boolean isEmpty() {
return this.size() == 0;
}

//return the number of the queue's elements;
public int size() {
return m_size;
}
}

链表的需要用到一个结点类 Node.java 代码如下
public class Node {
Object element;
Node next;

public Node(Object theElement) {
this(theElement, null);
}

public Node(Object theElement, Node n) {
element = theElement;
next = n;
}

public Object getElement() {
return element;
}

public void setElement(Object element) {
this.element = element;
}

public Node getNext() {
return next;
}

public void setNext(Node next) {
this.next = next;
}
}

D. Android开发,如何编程实现开启电话的免提功能

viewplain
voidcallPhone(){
Intentintent=newIntent(Intent.ACTION_CALL,Uri.parse("tel:110"));//不能调用呼叫
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
viewplain
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.CALL_PHONE"/>
<uses-permissionandroid:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permissionandroid:name="android.permission.CALL_PRIVILEGED"/>
viewplain
voidcallPhone(Stringnum){
Intentintent=newIntent("android.intent.action.CALL_PRIVILEGED",Uri.parse("tel:"+num));
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}


viewplain
{
booleancomingPhone=false;

@Override
publicvoidonCallStateChanged(intstate,StringincomingNumber){
switch(state){
caseTelephonyManager.CALL_STATE_IDLE:/*无任何状态*/
Log.d(tag,"phoneidle");
if(this.comingPhone){
this.comingPhone=false;
backMyApp();
setSpeekModle(false);
}
break;
caseTelephonyManager.CALL_STATE_OFFHOOK:/*接起电话*/
Log.d(tag,"phoneanswer");
this.comingPhone=true;
setSpeekModle(true);
break;
caseTelephonyManager.CALL_STATE_RINGING:/*电话进来*/
Log.d(tag,"phonecoming");
this.comingPhone=true;
setSpeekModle(true);
break;
}
}
}
viewplain
TelephonyManagertelManager=(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
TelListnerlistener=newTelListner();
telManager.listen(listener,PhoneStateListener.LISTEN_CALL_STATE);
viewplain
voidsetSpeekModle(booleanopen){
//audioManager.setMode(AudioManager.ROUTE_SPEAKER);
currVolume=audioManager.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
audioManager.setMode(AudioManager.MODE_IN_CALL);

if(!audioManager.isSpeakerphoneOn()&&true==open){
audioManager.setSpeakerphoneOn(true);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
audioManager.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL),
AudioManager.STREAM_VOICE_CALL);
}elseif(audioManager.isSpeakerphoneOn()&&false==open){
audioManager.setSpeakerphoneOn(false);
audioManager.setStreamVolume(AudioManager.STREAM_VOICE_CALL,currVolume,
AudioManager.STREAM_VOICE_CALL);
}
}
viewplain
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

E. java编程中,常提到的反射代码指的是什么

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法专;对于任意一属个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

所谓的反射代码,也就是实现java反射机制的代码。

F. vscode中vue文件下<style></style>样式不能注释怎么搞

语法使用错了。

css内应该使用如下的注释:

<style>

.container {

width: 100%;

/* background-color: red; */

/*

height: 100%;

font-size: 2rem;

*/

}

</style>


<!--注释-->这是HTML的注释,如:

<div>

<!--<div>内容</div>-->

</div>

G. 如何看待go语言泛型的最新设计

Go 由于不支持泛型而臭名昭著,但最近,泛型已接近成为现实。Go 团队实施了一个看起来比较稳定的设计草案,并且正以源到源翻译器原型的形式获得关注。本文讲述的是泛型的最新设计,以及如何自己尝试泛型。

例子

FIFO Stack

假设你要创建一个先进先出堆栈。没有泛型,你可能会这样实现:

type Stack []interface{}func (s Stack) Peek() interface{} {

 

return s[len(s)-1]

}

func (s *Stack) Pop() {

 *s = (*s)[:

len(*s)-1]

}

func (s *Stack) Push(value interface{}) {

 *s = 

append(*s, value)

}

但是,这里存在一个问题:每当你 Peek 项时,都必须使用类型断言将其从 interface{} 转换为你需要的类型。如果你的堆栈是 *MyObject 的堆栈,则意味着很多 s.Peek().(*MyObject)这样的代码。这不仅让人眼花缭乱,而且还可能引发错误。比如忘记 * 怎么办?或者如果您输入错误的类型怎么办?s.Push(MyObject{})` 可以顺利编译,而且你可能不会发现到自己的错误,直到它影响到你的整个服务为止。

通常,使用 interface{} 是相对危险的。使用更多受限制的类型总是更安全,因为可以在编译时而不是运行时发现问题。

泛型通过允许类型具有类型参数来解决此问题:

type Stack(type T) []Tfunc (s Stack(T)) Peek() T {

 

return s[len(s)-1]

}

func (s *Stack(T)) Pop() {

 *s = (*s)[:

len(*s)-1]

}

func (s *Stack(T)) Push(value T) {

 *s = 

append(*s, value)

}

这会向 Stack 添加一个类型参数,从而完全不需要 interface{}。现在,当你使用 Peek() 时,返回的值已经是原始类型,并且没有机会返回错误的值类型。这种方式更安全,更容易使用。(译注:就是看起来更丑陋,^-^)

此外,泛型代码通常更易于编译器优化,从而获得更好的性能(以二进制大小为代价)。如果我们对上面的非泛型代码和泛型代码进行基准测试,我们可以看到区别:

type MyObject struct {

    X 

int

}

var sink MyObjectfunc BenchmarkGo1(b *testing.B) {

 

for i := 0; i < b.N; i++ {

  

var s Stack

  s.Push(MyObject{})

  s.Push(MyObject{})

  s.Pop()

  sink = s.Peek().(MyObject)

 }

}

func BenchmarkGo2(b *testing.B) {

 

for i := 0; i < b.N; i++ {

  

var s Stack(MyObject)

  s.Push(MyObject{})

  s.Push(MyObject{})

  s.Pop()

  sink = s.Peek()

 }

}

结果:

BenchmarkGo1BenchmarkGo1-16     12837528         87.0 ns/op       48 B/op        2 allocs/opBenchmarkGo2BenchmarkGo2-16     28406479         41.9 ns/op       24 B/op        2 allocs/op

在这种情况下,我们分配更少的内存,同时泛型的速度是非泛型的两倍。

合约(Contracts)

上面的堆栈示例适用于任何类型。但是,在许多情况下,你需要编写仅适用于具有某些特征的类型的代码。例如,你可能希望堆栈要求类型实现 String() 函数

阅读全文

与编程peek属于哪个类相关的资料

热点内容
博途编程如何设置停止键 浏览:409
python3删除文件内容 浏览:754
如何优化seo数据分析 浏览:132
64位win7下部分32位程序不能运行 浏览:206
dnf90版本剑魂钝器流 浏览:649
陌秀直播苹果怎么下载ipad 浏览:732
简述网络直接市场调查方式有哪些 浏览:683
怎么连接移动网络设置 浏览:781
电脑网卡怎么连接网络连接不上网吗 浏览:838
刷子公司网站怎么做 浏览:272
86版本艾尔文测试 浏览:714
深宫曲文件夹是哪个 浏览:618
苹果u盘修复工具哪个好用 浏览:124
微信动态表情包搞笑 浏览:436
可以去哪里找编程老师问问题 浏览:608
win10lol全屏 浏览:25
qq图片动态动漫少女 浏览:122
sai绘图教程视频 浏览:519
如何分析加载减速法数据 浏览:672
手机怎么免费转换pdf文件格式 浏览:668

友情链接