计算机软件基础实践作业答案,《计算机软件基础》强化实践能力培养实践部分考核作业(1).doc...

PAGE

PAGE 6

《计算机软件基础》强化实践能力培养实践部分考核作业

强化实践能力培养的考核要求:

要求学生通过对本课程中所学知识的归纳、总结,能够体会数据结构的思想和方法,考生发挥自主学习精神,能独立完成实验要求,并提交实验报告。

实验报告的基本要求如下:

(1)题目

(2)实验环境

(3)实验内容与完成情况:陈述程序设计的任务和程序所能够达到的功能,提交带有注释的源程序清单。

(4)调试分析:

1)调试过程中所遇到的问题及解决的方法;

2)算法的时间和空间复杂度分析(数据结构部分);

3)经验和体会:列出遇到的问题和解决办法及没有解决的问题。

(5)测试结果:列出使用典型的数据输入用例所产生的输出结果。

强化实践能力培养的考核内容:

(1) 编程实现计算器。(10分)

要求:输入:两个操作数和一个操作符的数学表达式.;

输出:输入的表达式和结果。

(2)利用栈的存储结构,编程实现任意表达式中各种括号(“(、)”,“[、]”,“{、}”)交叉使用时,语法的匹配是否合法判定。(10分)

(3)排序:实现冒泡排序、直接插入排序和直接选择排序的算法。(10分)

要求:手写。

山东大学《计算机软件基础》强化实践能力培养实践部分考核作业

课程名称: 试点学校名称(章):

学生姓名: 学生准考证号码:

实验一 计算器

1.实验环境:VC++6.0 ,WindowsXp

2.实验目的:熟悉VC++6.0环境;

掌握C语言编程基本思想;

掌握基本操作符的使用;

掌握基本输入输出语句;

3.程序清单:

#include "stdio.h"

main()

{

float a,b,output;

char op;

printf("please input two numbers and operator\n");

scanf("%f%f\n",&a,&b);

scanf("%c",&op);

switch(op)

{

case '+':output=a+b;break;

case '-':output=a-b;break;

case '*':output=a*b;break;

case '/':output=(float)a/b;break;

default:printf("wrong operator\n");

return 0;

}

printf("%5.2f%c%5.2f=%5.2f\n",a,op,b,output);

}

4.时间复杂度: O(n)

5.空间复杂度: O(1)

6.测试结果:

实验二 栈在判断括号匹配中的应用

1.实验环境:VC++6.0 ,WindowsXp

2.实验目的:1.掌握顺序栈的类型定义方法。。

2.掌握栈先进后出运算原则在解决实际问题中的应用

3.掌握使用栈的原理来解决表达式中的括号配对问题。

3.程序清单:

#include

#include

#include

#define MAX_STACK_SIZE 100

typedef struct SqStack{

char data;

struct SqStack *next;

}SqStack;//链元素

typedef struct Stack{

struct SqStack *base; //栈底指针

struct SqStack *top; //栈顶指针

}Stack;//栈

Stack S;

int a,Aj=0;//全局变量

char string[100];

typedef struct node{

char key;

}element_tr;//运算符栈

typedef struct Node{

int data;

}element_nd;//操作数元素

void creatstack(Stack &S)

{

S.top=S.base=NULL;

}//建立初始化链栈

void push(Stack &S,char e)

{

SqStack* Q;

Q=(SqStack*)malloc(sizeof(SqStack));

Q->next=S.top;

S.top=Q;

S.top->data=e;

++Aj;

}//左括号入栈

c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值