当前位置:首页 » 编程软件 » 编程实验类型

编程实验类型

发布时间: 2022-10-10 09:58:01

❶ 谁能给我51单片机C语言编程实验报告

学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事。在众多单片机中 51 架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一。51 的编程语言常用的有二种,一种是汇编语言,一种是 C 语言。汇编语言的机器代码生成效率很高但可读性却并不强,复杂一点的程序就更是难读懂,而 C 语言在大多数情况下其机器代码生成效率和汇编语言相当,但可读性和可移植性却远远超过汇编语言,而且 C 语言还可以嵌入汇编来解决高时效性的代码编写问题。对于开发周期来说,中大型的软件编写用 C 语言的开发周期通常要小于汇编语言很多。

❷ 请教高手,C语言编程指针实验

void PrintMaxScoreAndNum(int TotalNum)
{
/* 断言,检测入参*/
Assert(40 >= TotalNum);

int i,MaxScore = 0;
int Score[TotalNum] = {0};
/* 输入成绩 */
for(i = 0; i < TotalNum; i++)
{
scanf("%d", &Score[i]);
}

int *p = NULL;
p = Score;
/* 得到最高分数 */
for(i = 0; i < TotalNum; i++,p++)
{
if(MaxScore < *p)
{
MaxScore = *p;
}
}
p = Score;
printf("本课程最高分为:%d\n", MaxScore);
printf("获得最高分的学号为:\n");
for(i = 0; i < TotalNum; i++,p++)
{
if(MaxScore == *p)
{
printf("%d\n", i);
}
}
return;
}
不知这样行否楼主?

❸ 数据结构上机实验(编程)(单链表的基本操作)

我们正在学数据结构,两星期前写好了线性表的所有基本操作,运行全部正确。包括InitList、DestoryList、ClearList、ListEmpty、ListLength、GetElem、LocateElem、PriorElem、NextElem、ListInsert、ListDelete、ListTraverse

我所编译的环境是VC++ 6.0,有三个文件linklist.h linklist.cpp main.cpp 至于怎样用你应该知道的,我就不多说了。

========================linklist.h============================
#include <iostream>
using namespace std;

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2

typedef int Status;
typedef int ElemType;

//线性表的单链表存储结构
typedef struct LNode
{
ElemType data;
int len;
struct LNode * next;
}LNode,*LinkList;

void CreateList_L(LinkList &L,int n);

int ListLength(LinkList L);

Status ListInsert(LinkList & L,int i,ElemType e);

Status ListDelete(LinkList & L,int i,ElemType & e);

ElemType GetElem(LinkList L,int i);

Status EmptyList_L(LinkList L);

int LocateElem(LinkList L,ElemType e);

Status PriorElem(LinkList L,ElemType curr_e,ElemType & e);

Status NextElem(LinkList L,ElemType curr_e,ElemType & e);

Status ListTraverse(LinkList L);

Status ClearList_L(LinkList & L);

void DestoryList_L(LinkList & L);

==========================linklist.cpp=======================
#include "linklist.h"

int LISTLEN = 0;

//逆序输入n个元素的值
//创建带有头结点的线性单链表
void CreateList_L(LinkList &L,int n)
{

L = (LinkList)malloc(sizeof(LNode));
L->len = 0;
L->next = NULL;

for(int i = n;i>0;--i)
{
LinkList p = (LinkList)malloc(sizeof(LNode));
cout<<"请输入元素的值(前插):";
cin>>p->data;
p->next = L->next; //插入到表头
L->next = p;
L->len++;
LISTLEN++;
}
}

//求表长
int ListLength(LinkList L)
{
int len1=0;
LinkList p = L->next;
while(p)
{
p = p->next;
len1++;
}
return len1;
//return L->len;

}

//在链表的第i位之前插入元素e
// i 的合法位置是:1 <= i <= ListLength(L)+1
Status ListInsert(LinkList & L,int i,ElemType e)
{
if(i<1 || i>ListLength(L)+1)
{
cout<<"插入失败! 访问越界..."<<endl;
return ERROR;
}
else
{
int j;
LinkList p = L;
for(j = 0;j<i-1;j++) //for循环结束后p将指向第i-1个元素,即应该在p后插入元素e
p = p->next;
LinkList s = (LinkList)malloc(sizeof(LNode));
s->data = e;
s->next = p->next;
p->next = s;

L->len++;
return TRUE;
}
}

//删除链表的第i个元素,并用e返回值
//i的合法范围是:0<i<ListLength(L)+1
Status ListDelete(LinkList & L,int i,ElemType & e)
{
if(i<1 || i>ListLength(L))
{
cout<<"访问越界..."<<endl;
return ERROR;
}
else
{
LinkList p = L;
int j;
for(j = 0;j < i-1;j++) //for循环后指针p将指向要删除的元素的前驱结点
p = p->next;
e = p->next->data;
LinkList q = p->next;
p->next = q ->next;
L->len--;
free(q);

return TRUE;
}
}

//获取表中第i个元素
//i的合法取值范围是:0 < i < ListLength(L)+1
ElemType GetElem(LinkList L,int i)
{
if(i<1 || i>ListLength(L))
{
cout<<"取值非法! 链表中无此位序元素"<<endl;
return ERROR;
}
else
{
LinkList p = L;
int j;
for(j = 0;j<i;j++)
p = p->next;
return p->data;
}

}

//判断链表是否为空
Status EmptyList_L(LinkList L)
{
if(L->next == NULL)
return TRUE;
return ERROR;
}

//在链表中查找定位元素e的位序,并通过函数返回
int LocateElem(LinkList L,ElemType e)
{
int i = 0;
LinkList p = L;
while(p->next && p->next->data != e)
{
p = p->next;
i++;
}
if(p->next == NULL)
{
cout<<"在链表中找不到元素 "<<e<<endl;
return ERROR;
}

return (i+1);
}

//求当前元素curr_e的直接前驱元素,用e返回其值
Status PriorElem(LinkList L,ElemType curr_e,ElemType & e)
{
LinkList p = L;
while(p->next && curr_e != p->next->data)
p = p->next;
if(p->next == NULL)
{
cout<<"在链表中找不到元素 "<<curr_e<<" ,无法求其前驱元素!"<<endl;
return ERROR;
}
if(p == L)
{
cout<<"元素 "<<curr_e<<" 是链表中的首元元素,无前驱..."<<endl;
return ERROR;
}
e = p->data;
return OK;
}

/*
//求当前元素curr_e的直接后继元素,用e返回其值
Status NextElem(LinkList L,ElemType curr_e,ElemType & e)
{
LinkList p = L->next;
//cout<<curr_e<<endl;

//cout<<p->next->data<<endl;

if(p == NULL)
{
cout<<"链表是个空表!"<<endl;
return ERROR;
}

if(p->next == NULL)
{
cout<<"链表中只有一个元素,无后继..."<<endl;
return ERROR;
}

while(p->next && curr_e != p->data)
{
//cout<<"while"<<endl;
p = p->next;
}
cout<<"p->data = "<<p->data<<endl;

if(p->data != curr_e)
{
cout<<"111"<<endl;
cout<<"在链表中找不到元素 "<<curr_e<<" ,无法求其后继元素!"<<endl;
return ERROR;
}

if(p->next == NULL && curr_e == p->data)
{
cout<<"222"<<endl;
cout<<"元素 "<<curr_e<<" 是链表中的尾元元素,无后继..."<<endl;
return ERROR;
}
cout<<"333"<<endl;
e = p->data;
return OK;
}
*/

//求当前元素curr_e的直接后继元素,用e返回其值
Status NextElem(LinkList L,ElemType curr_e,ElemType & e)
{
LinkList p = L->next;
while(p && p->data != curr_e)
p = p->next;
if(p == L->next)
{
if(p == NULL)
{
cout<<"\n链表是一个空表,无法做取后继操作!"<<endl;
return ERROR;
}
else
{
cout<<"\n链表中只有一个元素,无法求其后继..."<<endl;
return ERROR;

}
}
if(p == NULL)
{
cout<<"\n在链表中未能找到元素: "<<curr_e<<endl;
return ERROR;
}
if(p->next == NULL)
{
cout<<"\n元素 "<<curr_e<<" 是链表的尾元元素,无法求其后继..."<<endl;
return ERROR;
}
e = p->next->data;
return OK;

}

//对链表进行遍历操作
Status ListTraverse(LinkList L)
{
LinkList p = L->next;

if(LISTLEN == 0)
{
cout<<"\n链表中除头结点以外的所有内容已被释放,是一个空表!"<<endl;
cout<<"\n遍历失败..."<<endl;
return ERROR;
}
if(LISTLEN == -1)
{
cout<<"\n所有内容已被释放,链表已被销毁!"<<endl;
cout<<"\n遍历失败..."<<endl;
return ERROR;
}
while(p != NULL)
{
cout<<p->data<<" ";
p = p->next;
}
cout<<"\n遍历成功!"<<endl;
return OK;
}

//清空链表的内容
//单链表的清空是指释放除头结点以外的内存空间
Status ClearList_L(LinkList & L)
{
LinkList p = L;
while(p->next)
{
LinkList m = p->next;
free(p);
p = m;
}
L->next = NULL;
LISTLEN = 0;
return OK;
}

//销毁链表
//单链表的释放是指释放链表的所有结点内存空间
void DestoryList_L(LinkList & L)
{
LinkList p = L;
while(p->next)
{
LinkList m = p->next;
free(p);
p = m;
}

//free (p);
//free (L);
LISTLEN = -1;
}

=========================main.cpp=======================
#include "linklist.h"

int main()
{
LinkList L;
ElemType e;
ElemType curr_e;
int n;
int status; //返回函数执行状态

cout<<"请输入所需创建的元素个数:";
cin>>n;
cout<<endl;

//创建单链表
CreateList_L(L,n);
cout<<endl;

//遍历
status = ListTraverse(L);

//返回链表表长
cout<<"\n单链表的长度是: "<<ListLength(L)<<endl;

//链表的插入操作
cout<<"\n请输入需要插入元素的位置: ";
cin>>n;
cout<<"\n请输入插入的元素值: ";
cin>>e;
status = ListInsert(L,n,e);
if(status)
cout<<"\n链表元素插入成功!"<<endl;
else
cout<<"\n链表元素插入失败!"<<endl;

status = ListTraverse(L);
cout<<endl;

//单链表的删除操作
cout<<"请输入需要删除的元素的位置: ";
cin>>n;
status = ListDelete(L,n,e);
if(status)
{
cout<<"\n删除成功!";
cout<<" 删除的元素是: "<<e<<endl;
}
else
cout<<"\n删除失败..."<<endl;

status = ListTraverse(L);
cout<<endl;

//获取单链表的元素
cout<<"请输入你想获取的元素在链表中的位置: ";
cin>>n;
e = GetElem(L,n);
if(n > 0 && n <= L->len)
cout<<"\n单链表第"<< n <<"个元素值是: "<<e<<endl;

//单链表判空操作
status = EmptyList_L(L);
if(status)
cout<<"\n单链表为空表!"<<endl;
else
cout<<"\n单链表非空,其中含有元素."<<endl;

//查找定位元素
cout<<"\n请输入所需查找的元素: ";
cin>>e;
n = LocateElem(L,e);
if(n)
cout<<"\n元素 "<<e<<" 在链表中的位置是: "<<n<<endl;

//前驱操作
cout<<"\n需要求其前驱的元素值: ";
cin>>curr_e;
status = PriorElem(L,curr_e,e);
if(status)
cout<<"\n元素 "<<curr_e<<" 的前驱是: "<<e<<endl;

//后继操作
cout<<"\n需要求其后继的元素值: ";
cin>>curr_e;
status = NextElem(L,curr_e,e);
if(status)
cout<<"\n元素 "<<curr_e<<" 的后继是: "<<e<<endl;

//单链表的清空操作
cout<<"\n调用清空链表函数";
status = ClearList_L(L);

cout<<endl;

status = ListTraverse(L);

//单链表的销毁操作
cout<<"\n调用链表销毁函数";
DestoryList_L(L);

cout<<endl;

status = ListTraverse(L);

cout<<endl;

return 0;
}

❹ 急 急 急 急 急 急 C语言编程实验报告

struct student
{
int num;
char name[10][10];
float score[3];
};
float ave[3], t[3]={0}, s=0, tv;
int main()
{
void input(struct student stu[], int n, int m);
void average(struct student stu[], int n, int m);
void print(struct student stu[], int n, int m);
void maximum(struct student stu[], int n, int m);
struct student stu[10];
input(stu, 10, 3);
average(stu, 10, 3);
print(stu, 10, 3);
maximum(stu, 10, 3);
return 0;
}

void input(struct student stu[], int n, int m)
{
int i, j;
printf("NO name score1 score2 score3 \n");
for(i=0; i<n; i++)
{
scanf("%d", &stu[i].num);
scanf("%s", stu[i].name[i]);
for(j=0; j<m; j++)
{
scanf("%f", &stu[i].score[j]);
}
}
}

void average(struct student stu[], int n, int m)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
t[i]+=stu[i].score[j];
}
s+=t[i];
ave[i]=t[i]/n;
}
tv=s/n;
}
void print(struct student stu[], int n, int m)
{
int i, j;
printf("\n\n NO name score1 score2 score3 total average \n");
for(i=0; i<n; i++)
{
printf("%4d", stu[i].num);
printf("%4s", stu[i].name[i]);
for(j=0; j<m; j++)
{
printf("%.2f ", stu[i].score[j]);
}
printf("%.2f %.2f\n", t[i], ave[i]);
}
printf("\n\nt-v:%.2f", tv);
}
void maximum(struct student stu[], int n, int m)
{
int i, j;
float max;
max=ave[0];
for(i=1; i<n; i++)
if(max<ave[i]) max=ave[i];
printf("\n\n NO name score1 score2 score3 total average\n");
for(i=0; i<n; i++)
{
if(ave[i]==max)
{
printf("%4d", stu[i].num);
printf("%4s", stu[i].name[i]);
for(j=0; j<m; j++)
printf("%.2f ", stu[i].score[j]);
printf("%.2f %.2f\n", t[i], ave[i]);
}
}
}
运行情况符合你的要求,我就不写了,太费事
流程图也太费事了,没时间了

❺ 求高手帮忙下Linux系统的Shell编程,我们的一个实验课课题,详见问题补充,谢谢

#!/bin/bash
dir_source="/home/hnsd/workdata/"

yyyymmdd=`date +%Y%m%d`

data_time=`date +%p`

if [ "${data_time}" = "AM" ]; then
workdata=workdata1
dir_back="/home/hnsd/disk1backup/"
else
workdata=workdata2
dir_back="/dev/disk2backup/"
fi

tar zcvf ${dir_back}${yyyymmdd}_${workdata}.tar.gz ${dir_source}*

crontab 写法为

* 12 * * * 脚本绝对路径
30 17 * * * 脚本绝对路径

java编程实验,类与对象,设计学生类,每个学生有两门课程,

可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  • java 编程
  • 对象

  • 学生 类

❼ vb编程实验题

PrivateSubCommand1_Click()
DimHAsInteger,LAsInteger,nAsInteger
n=0
Cls
Print"符合情况的条件有:"
Fori=1To35
Forj=1To35
If4*i+j*2=100Then
Print"兔子的数量是"&i&"只,鸡的数量是"&j&"只"
n=n+1
EndIf
Nextj
Nexti
Print

Print"这样的情况一共有"&n&"种"
EndSub

❽ C语言函数编程实验

像这种题比较长,虽说是基础题但是也要花点时间。很少有人会给完整的回答的。
建议找个人单独给你回答,同时还可以带你复习一下,怎么自己写出来。

❾ c++编程实验题求助




min和max这个其实在某个头文件有的。等等!啥头文件?!忘了。。。。。。那。。。。。。用万能头吧!

程序若有错,请提醒!




#include<bits/stdc++.h>

using namespace std;

long long n,a[10000009];

double ans=0;

int main() {

cin>>n;

for(int i=0;i<n;i++)cin>>a[i];

cout<<*max_element(a,a+n)<<endl<<*min_element(a,a+n)<<endl;

for(int i=0;i<n;i++) {

if(i==max_element(a,a+n)||i!=max_element(a,a+n))continue;

ans+=a[i];

}

cout<<fixed<<setprecision(2)<<ans;

return 0;

}






输出样例#1:输出样例#1:

44

1 2 3 4 1

2.50


输出样例#2:输出样例#2:

55

1 3 2 5 41

3.33


输出样例#3:输出样例#3:

10 100

1 2 3 1 2 7 3 4 100 9 1

3.97










望采纳!!!

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:376
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:941
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:739
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:802
网卡访问 发布:2025-05-18 03:35:04 浏览:510
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:371