web前端实验5

news2024/11/13 8:44:59

实 验 报 告
课 程 Web前端应用开发 实验项目 Jquery AJAX编程 成 绩
专业班级 班内序号 指导教师
姓 名 学 号 实验日期
实验目的及要求:
(1) 理解和掌握Jquery AJAX的get方式请求
(2) 理解和掌握Jquery AJAX的post方式提交
(3) 理解和掌握vue axios的前后端数据交互请求

服务器接口测试地址:
http://114.67.241.121:8088/swagger-ui.html

接口使用说明:

点开“用户管理”下“用户登录”,“try it out”

输入接口参数 username:admin password:123456。点击execute

查看返回结果,token为当前用户的身份令牌

复制身份令牌,点击页面右上角的“Authorization”,粘贴后点击按钮“Authorize”

点击“Close”关闭弹窗。
测试其他接口,输入相关参数,点击“execute”即可正常运行。

实验内容:
1、设计登录界面,输入账号、密码(测试账号:admin 密码:123456)后调用服务端Api接口进行身份验证验证。登录成功记录所返回的身份令牌,登录失败给出相应反馈提示。
 接口地址:http:// 114.67.241.121:8088/user/login
 请求方式:post
 接口参数

 返回数据

运行截图

代码:

2.登录成功进入学生管理界面,调用Api接口获取所有学生信息,并设计界面加载显示数据。
 接口地址:http:// 114.67.241.121:8088/stu/list
 请求方式:get
 请求头:
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌
 接口参数:无
 返回数据
请求头未携带登录成功所返回的token

请求头中携带当前登录用户的token身份令牌

运行截图

代码:

3.点击“添加”按钮进入添加界面,完成相关信息输入后,调用Api接口保存数据信息。
 接口地址:http:// 114.67.241.121:8088/stu/add
 请求方式:post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌

 接口参数

 返回结果

运行截图

代码:

4.点击“修改”按钮进入修改界面,读取当前学生信息,输入修改后数据后保存完成数据信息更新。
 接口地址:http:// 114.67.241.121:8088/stu/edit
 请求方式:post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌

 接口参数

 返回结果

运行截图

代码:

5.点击“删除”按钮请求服务端删除数据接口,在服务端数据成功删除后,移除表格中数据行。
 接口地址:http:// 114.67.241.121:8088/stu/del
 请求方式:Post
 请求头
header请求头携带变量:Authorization
header请求头携带变量的值:登录成功所记录下的token身份令牌
 接口参数

 返回结果

运行截图

代码:

此次实验年利用了jquery、ajax以及bootstrap,项目目录结构如下:
在这里插入图片描述
登录页面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01登录界面</title>
    <link rel="stylesheet" href="bootstrap.min.css">
    <script src="jquery.min.js"></script>
    <style>
        .login {
            width: 600px;
            margin: 120px auto;
        }
    </style>

    <script>
        $(function () {
            // 登录
            login()

            function login() {
                $('#formLogin').on('submit', function (e) {
                    e.preventDefault()
                    const data = $(this).serialize()
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/user/login',
                        data: data,
                        success: function (reg) {
                            console.log(reg)
                            if (reg.code === 200) {
                                // console.log(reg.data.token)
                                location.href = './02学生管理界面.html'
                                localStorage.setItem('token', reg.data.token)
                                return reg.data.token//登录成功返回身份令牌

                            } else {
                                alert('登录失败!')
                                return null


                            }
                        }
                    })
                })
            }
        })


    </script>
</head>

<body>

    <div class="login">
        <div class="panel panel-primary">
            <div class="panel-heading">
                <h3 class="panel-title">用户登录</h3>
            </div>
            <form class="panel-body" id="formLogin">
                <div class="input-group">
                    <div class="input-group-addon">账号</div>
                    <input type="text" class="form-control" name="username" placeholder="请输入账号">
                </div>
                <div class="input-group">
                    <div class="input-group-addon">密码</div>
                    <input type="password" class="form-control" name="password" placeholder="请输入密码">
                </div>
                <button type="submit" class="btn btn-primary">登录</button>

            </form>
        </div>
    </div>


</body>

</html>

学生管理页面:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>02学生管理界面</title>
    <link rel="stylesheet" href="bootstrap.min.css">
    <script src="jquery.min.js"></script>
    <script src="bootstrap.min.js"></script>
    <style>
        th,
        td {
            text-align: center;
        }
    </style>
    <script>
        $(function () {
            // 渲染页面
            getStuList()

            // 获取身份令牌
            const token = localStorage.getItem('token')


            // 点击添加学生(模态框这里用的有问题!!!)
            $('#btnAdd').on('click', function () {
                $('#myModalAdd').modal()
                //获取表单数据(新增学生信息data)
                $('#formAdd').on('submit', function (e) {
                    e.preventDefault()
                    // 还可以对用户的输入进行限制(不能为空等)
                    const data = {
                        stuaddess: $('#formAdd input[name=stuaddess]').val(),
                        stugender: $('#formAdd input[name=stugender]').val(),
                        stugrade: $('#formAdd input[name=stugrade]').val(),
                        stumajor: $('#formAdd input[name=stumajor]').val(),
                        stuname: $('#formAdd input[name=stuname]').val(),
                        stunative: $('#formAdd input[name=stunative]').val(),
                        stuno: $('#formAdd input[name=stuno]').val(),
                        stuphone: $('#formAdd input[name=stuphone]').val(),
                    }//data这时是JS对象
                    // 要转成JSON字符串
                    const t = JSON.stringify(data)
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/stu/add',
                        contentType: 'application/json',
                        headers: {
                            Authorization: token
                        },
                        data: t,//JSON格式
                        success: function (reg) {
                            if (reg.code === 200) {
                                console.log('添加成功!');
                            } else {
                                return alert('添加失败!')
                            }
                            // 重新渲染界面
                            getStuList()
                            // 表单清空
                            $('#formAdd')[0].reset()
                            $('#chadiao').click()
                        }
                    })
                })


            })
            $('#btnAddoff').on('click', function () {
                $('#formAdd')[0].reset()
                $('#myModalAdd #chadiao').click()
            })




            // 获取所有学生信息,渲染在页面上
            function getStuList() {
                const token = localStorage.getItem('token')
                $.ajax({
                    type: 'GET',
                    url: 'http://114.67.241.121:8088/stu/list',
                    // header请求头携带变量:Authorization???!!!
                    headers: {
                        'Authorization': token
                    },
                    data: {},
                    success: function (reg) {
                        // console.log(reg.data)
                        if (reg.code === 200) {//请求成功
                            // 先清空原来渲染的
                            $('tbody').empty()
                            $.each(reg.data, function (i, ele) {
                                // 再一一渲染在页面上
                                const tr = $(`
                            <tr>
                                <td>${ele.stuid}</td>
                                <td>${ele.stuno}</td>
                                <td>${ele.stuname}</td>
                                <td>${ele.stugender}</td>
                                <td>${ele.stugrade}</td>
                                <td>${ele.stumajor}</td>
                                <td>${ele.stuphone}</td>
                                <td>${ele.stuaddess}</td>
                                <td>${ele.stunative}</td>
                                <td><a href="javascript:;" data-idModify=${ele.stuid} id='modify'>修改</a></td>
                                <td><a href="javascript:;" data-id=${ele.stuid} id='move'>删除</a></td>
                            </tr>
                            `)
                                $('tbody').append(tr)
                            })
                        } else {
                            return alert('数据获取失败!')
                        }


                    }
                })
            }

            // 删除(删除完之后重新渲染)
            $('tbody').on('click', '#move', function () {
                const stuId = $(this).attr('data-id')
                $.ajax({
                    type: 'POST',
                    url: 'http://114.67.241.121:8088/stu/del?stuid=' + stuId,
                    contentType: 'application/json; charset=utf-8',
                    headers: {
                        Authorization: token
                    },
                    // data: stuId,
                    success: function (reg) {
                        if (reg.code === 200) {//删除成功
                            getStuList()
                        } else {
                            return alert('删除失败!')
                        }
                    }
                })

            })

            // 修改
            $('tbody').on('click', '#modify', function () {
                const stuId = $(this).attr('data-idModify')
                console.log(stuId);
                $('#myModalModify').modal()
                $('#formModify').on('submit', function (e) {
                    e.preventDefault()
                    // 还可以对用户的输入进行限制(不能为空等)
                    const data = {
                        stuaddess: $('#formModify input[name=stuaddess]').val(),
                        stugender: $('#formModify input[name=stugender]').val(),
                        stugrade: $('#formModify input[name=stugrade]').val(),
                        stumajor: $('#formModify input[name=stumajor]').val(),
                        stuname: $('#formModify input[name=stuname]').val(),
                        stunative: $('#formModify input[name=stunative]').val(),
                        stuno: $('#formModify input[name=stuno]').val(),
                        stuphone: $('#formModify input[name=stuphone]').val(),
                    }//data这时是JS对象
                    // 要转成JSON字符串
                    const t = JSON.stringify(data)
                    $.ajax({
                        type: 'POST',
                        url: 'http://114.67.241.121:8088/stu/edit',
                        contentType: 'application/json',
                        headers: {
                            Authorization: token
                        },
                        data: t,//JSON格式
                        success: function (reg) {
                            console.log(reg)
                            if (reg.code === 200) {
                                console.log('修改成功!');
                            } else {
                                return alert('修改失败!')
                            }
                            // 重新渲染界面
                            getStuList()
                            // 表单清空
                            $('#formModify')[0].reset()
                            $('#myModalModify #chadiao').click()
                        }
                    })
                })
            })

        })
    </script>
</head>

<body>

    <div class="panel panel-primary">
        <div class="panel-heading">
            <h3 class="panel-title">学生管理</h3>
        </div>
        <div class="panel-body">
            <!-- 这里写个新增学生信息的模态框 -->
            <!-- 添加学生信息按钮 -->
            <button type="button" class="btn btn-success" id="btnAdd">添加</button>


            <!-- 这里是添加模态框 -->
            <div class="modal fade" id="myModalAdd" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <!-- 这里是模态框标题 -->
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                                    aria-hidden="true" id="chadiao">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">添加学生信息</h4>
                        </div>
                        <!-- 这里是模态框内表单内容 -->
                        <div class="modal-body">
                            <form id="formAdd">
                                <div class="input-group">
                                    <div class="input-group-addon">学号</div>
                                    <input type="text" class="form-control" placeholder="请输入学号" name="stuno">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">姓名</div>
                                    <input type="text" class="form-control" placeholder="请输入姓名" name="stuname">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">性别</div>
                                    <input type="text" class="form-control" placeholder="请输入性别" name="stugender">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">年级</div>
                                    <input type="text" class="form-control" placeholder="请输入年级" name="stugrade">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">专业</div>
                                    <input type="text" class="form-control" placeholder="请输入专业" name="stumajor">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">联系电话</div>
                                    <input type="text" class="form-control" placeholder="请输入联系电话" name="stuphone">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">住址</div>
                                    <input type="text" class="form-control" placeholder="请输入住址" name="stuaddess">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">户籍</div>
                                    <input type="text" class="form-control" placeholder="请输入户籍" name="stunative">
                                </div>
                                <!-- 这里是表单内关闭/保存按钮 -->
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-default" id="btnAddoff">关闭</button>
                                    <button type="submit" class="btn btn-primary" id="btnAddSave">保存</button>
                                </div>
                            </form>
                        </div>

                    </div>
                </div>
            </div>

            <!-- 这里是修改模态框 -->
            <div class="modal fade" id="myModalModify" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
                <div class="modal-dialog" role="document">
                    <div class="modal-content">
                        <!-- 这里是模态框标题 -->
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
                                    aria-hidden="true" id="chadiao">&times;</span></button>
                            <h4 class="modal-title" id="myModalLabel">修改学生信息</h4>
                        </div>
                        <!-- 这里是模态框内表单内容 -->
                        <div class="modal-body">
                            <form id="formModify">
                                <div class="input-group">
                                    <div class="input-group-addon">学号</div>
                                    <input type="text" class="form-control" placeholder="请输入学号" name="stuno">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">姓名</div>
                                    <input type="text" class="form-control" placeholder="请输入姓名" name="stuname">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">性别</div>
                                    <input type="text" class="form-control" placeholder="请输入性别" name="stugender">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">年级</div>
                                    <input type="text" class="form-control" placeholder="请输入年级" name="stugrade">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">专业</div>
                                    <input type="text" class="form-control" placeholder="请输入专业" name="stumajor">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">联系电话</div>
                                    <input type="text" class="form-control" placeholder="请输入联系电话" name="stuphone">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">住址</div>
                                    <input type="text" class="form-control" placeholder="请输入住址" name="stuaddess">
                                </div>
                                <div class="input-group">
                                    <div class="input-group-addon">户籍</div>
                                    <input type="text" class="form-control" placeholder="请输入户籍" name="stunative">
                                </div>
                                <!-- 这里是表单内关闭/保存按钮 -->
                                <div class="modal-footer">
                                    <button type="button" class="btn btn-default" id="btnModifyoff">关闭</button>
                                    <button type="submit" class="btn btn-primary" id="btnModifySave">保存</button>
                                </div>
                            </form>
                        </div>

                    </div>
                </div>
            </div>


            <!-- 这里再来个查询的输入框,做过滤查询(可能要用到浮动) -->

            <!-- table -->
            <table class="table table-bordered table-hover table-responsive">
                <thead>
                    <tr class="active">
                        <th>id</th>
                        <th>学号</th>
                        <th>姓名</th>
                        <th>性别</th>
                        <th>年级</th>
                        <th>专业</th>
                        <th>联系电话</th>
                        <th>住址</th>
                        <th>户籍</th>
                        <th colspan="2">操作</th>
                    </tr>
                </thead>
                <tbody>
                    <!-- <tr>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td></td>
                        <td><a href="javascript:;">修改</a></td>
                        <td><a href="javascript:;">删除</a></td>
                    </tr> -->
                </tbody>
            </table>
        </div>


    </div>



</body>

</html>
文档: http://doc.wuguokai.cn/s/xPq1iNw_v
http://chat4.wuguokai.cn
79783435
https://blog.csdn.net/u010436243/article/details/130155724

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/449026.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

释放ChatGPT潜能:4款高效插件让你的AI助手更强大

你的ChatGPT页面是什么样的&#xff1f;是这样的吗&#xff1f; 今天我要向大家推荐四款「ChatGPT免费插件」。这些插件是我们在与GPT日常交流中&#xff0c;使用频率最高的四个工具。 一旦安装这些插件&#xff0c;你的GPT将立即变身为「超级ChatGPT」。使用起来更为流畅&am…

BEV+Transformer对无人驾驶硬件体系的巨大改变

摘要&#xff1a; BEVTransformer彻底终结了2D直视图CNN时代&#xff0c;BEVTransformer对智能驾驶硬件系统有着什么样的影响&#xff1f;背后的受益者又是谁&#xff1f; 图片来源&#xff1a;特斯拉 BEVTransformer是目前智能驾驶领域最火热的话题&#xff0c;没有之一&…

【大数据平台开发】【Web框架】001Django框架简介

【大数据平台开发】【Web框架】001Django框架简介 文章目录 【大数据平台开发】【Web框架】001Django框架简介一. Django简介与安装1.1 Django安装1.2 Django简介1.3 框架功能简介 二. Django框架的最小程序2.1 新建工程2.2 修改工程2.3 运行工程2.4 django-admin与manage.py2.…

(二)EalsticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana &#xff1f; Kibana 是一个针对Elasticsearch的开源分析及可视化平台&#xff0c;用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana&#xff0c;可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

Python高光谱遥感数据处理与机器学习

Python高光谱遥感数据处理与机器学习 第一章、高光谱基础 高光谱遥感简介 什么是高光谱遥感&#xff1f; 高光谱遥感为什么重要&#xff1f; 高光谱遥感与其他遥感技术的区别是什么&#xff1f; 高光谱遥感的历史和发展 高光谱传感器与数据获取 高光谱传感器类型 如何获…

RHCE第五次作业

目录 一、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间 1.创建脚本test1.sh 2.下载邮件服务并执行 3.测试 4.做计划 二、 判断web服务是否运行&#xff08;1、查看进程的方式判断该程序…

Node内置模块 【操作系统os模块】

文章目录 &#x1f31f;前言&#x1f31f;os模块&#x1f31f;使用&#x1f31f;属性&#x1f31f;方法&#x1f31f;获取操作系统临时目录&#x1f31f;获取操作系统主机名&#x1f31f;获取操作系统CPU架构&#x1f31f;识别操作系统平台&#x1f31f;获取操作系统发行版本&a…

MPLS VPN 实验

目录 MPLS VPN 实验 拓扑图 实验目的 基础配置 R2 R3 R4 公网部分配置IGP&#xff08;ospf&#xff09; R2 R3 R4 激活MPLS R2 R3 R4 VRF创建 R2 R4 将接口画入VRF空间 R2 R4 配置接口IP地址 R2 R4 站点1基本配置 站点2基本配置 通过静态路由在CE和…

【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

链式二叉树的查找,遍历(递归实现)等接口的实现

目录 前言: 一&#xff1a;二叉树的建立 (1)本文采用的二叉树表示方法 (2)手动建立一颗二叉树 二&#xff1a;二叉树的遍历 (1)二叉树的三种遍历方式 (2)分治思想 (3)前序遍历 (4)中序遍历 (5)后序遍历 三&#xff1a;求二叉树的节点和高度(深度) (1)求二叉树节点 ①…

python+vue 餐饮食品安全监管投诉平台

系统主要包括个人中心、用户管理、餐饮类型管理、餐饮企业管理、案例类型管理、案例展示管理、法规分类管理、法律法规管理、在线投诉管理、查处信息管理、系统管理等功能模块。 绪论 网站的开发背景&#xff0c;意义和系统状况等&#xff0c;详细讲述了系统的用处&#xff0c;…

基于构效关系模型的药物设计(QSAR)

基于构效关系模型的药物设计&#xff08;QSAR&#xff09; 定量构效关系&#xff08;QSAR&#xff0c;Quantitative Structure-Activity Relationship&#xff09;分析是指利用理论计算和统计分析工具来研究系列化合物结构&#xff08;包括二维分子结构、三维分子结构和电子结…

Latex数学公式排版

文章目录 Latex使用最佳方式&#xff1a;读官方文档Latex中的字符数学公式排版1.引入宏包:2.公式排版基础3.数学符号(1).希腊字母(2).指数,上下标,导数(3).分式和根式(4).关系符(5).算符(6).巨算符(7).箭头 Latex使用 最佳方式&#xff1a;读官方文档 The not so short intro…

案例分析:真实案例对“引用类型”的思考

在一个风和日丽的早上&#xff0c;我刚坐到工位上&#xff0c;正准备美美的享受早餐时&#xff0c;我的测试小兄弟杨过火急火燎的来找我说&#xff1a;“小米&#xff0c;不好了&#xff0c;运营童鞋反馈&#xff0c;咱们商城小程序金刚区的新店专区&#xff0c;新开的店铺无法…

mac上 qt与mysql的连接问题

经过两天的折磨和挣扎&#xff0c;将Mac上QT与mysql数据库链接问题的解决做一个梳理&#xff0c;以防忘记&#xff0c;并供他人借鉴&#xff1b; 环境版本&#xff1a;Mac10.14&#xff0c;MySQL5.7.24&#xff0c;Qt5.14.2 首先我重新下载安装了Qt&#xff08;安装了源码&am…

Hadoop课程笔记

Hadoop笔记 nn和sn的区别 nn有inprogress&#xff0c;sn没有&#xff0c;隔一段时间sn会拉取nn上的fsi和edits进行合并然后返回给nnnn和dn 序列化和反序列化 当需要将内存中对象从一个服务器传输到另一个服务器的时候&#xff0c;将内存中的对象写进磁盘&#xff08;序列化&am…

python知识点总结(国家一级假勤奋大学生整理)

python知识点总结 0. 持续更新~1. print不加end自动加回车自动换行2. eval()提取值3. 三双引号字符串中可以包含换行符&#xff0c;制表符以及其他特殊字符4. 字符串不能修改5. 用in 或 not in判断字串是否在母串中6. 网上做题print慎用‘&#xff0c;’会产生不该有的空格7. i…

职场规则实录(不要成全别人,恶心自己)

即使我们因为做出某种决定失去了某些东西,但这并不一定意味着这个决定是错误的。相反,很多时候,即使我们面临诸多风险,我们也要冒险去做出决定,因为在这种风险中可能存在着丰富的机会和收获。就像投资一样,就算我们的投资并没有获得预期的收益,但这并不代表这个投资是错…

Linux 性能优化大全!

性能指标 高并发和响应快对应着性能优化的两个核心指标&#xff1a;吞吐和延时 应用负载角度&#xff1a;直接影响了产品终端的用户体验 系统资源角度&#xff1a;资源使用率、饱和度等 性能问题的本质就是系统资源已经到达瓶颈&#xff0c;但请求的处理还不够快&#xff0…

【超算/先进计算学习】日报5

目录 今日已完成任务列表遇到的问题及解决方案任务完成详细笔记程序性能分析程序流程分析程序静态分析工具 understand程序性能动态分析工具 gprof-使用方式程序性能动态分析工具 gprof-输出结果详解程序性能动态分析工具 gropf-函数调用关系图程序动态分支辅助方式-计时函数其…