2024.4.1作业

本文详细介绍了如何在C语言中使用结构体实现顺序表,包括创建顺序表、插入数据、删除数据、遍历顺序表以及按下标进行插入、删除、修改和查询操作。

一、对顺序表的基本操作

1.1定义顺序表结构体

1.2创建一个顺序表

1.3从尾部操作
1)从尾部插入数据
2)从尾部删除数据
1.4遍历顺序表、

1.5按下标操作
1)按下标位置进行插入

2)按下标位置删除数据

3)按下标位置修改数据

4)按下标位置查询数据

#ifndef __SEQLIST_H                                                
#define __SEQLIST_H                                                
#define N 100                                                      
typedef  int dataType;                                             
typedef struct                                                     
{                                                                  
    dataType  arr[N];                                              
    int pos;                                                       
}SeqList;                                                          
                                                                   
SeqList * creat_seqList(void);                                     
void insert_seqlist(SeqList * sl,dataType data);                   
dataType  delete_seqlist(SeqList * sl);                            
void  show_seqlist(SeqList *sl);                                   
void insert_seqlistBy_index(SeqList * sl,int index,dataType date); 
dataType  delete_seqlistBy_index(SeqList * sl,int indexi);         
void amend_seqlistBy_index(SeqList * sl,int index,dataType date);  
void  inqyiry_seqlistBy_index(SeqList * sl,int index);             
                                                                   
#endif                                                             
 #include <stdio.h>                                      
 #include <stdlib.h>                                     
 #include  "./3_seqlist.h"                               
 int main(int argc, const char *argv[])                  
 {                                                       
     SeqList *sl=creat_seqList();                        
     insert_seqlist(sl,100);                             
     insert_seqlist(sl,90);                              
     insert_seqlist(sl,80);                              
     insert_seqlist(sl,70);                              
     insert_seqlist(sl,60);                              
     insert_seqlist(sl,50);                              
     show_seqlist(sl);                                   
     delete_seqlist(sl);                                 
     show_seqlist(sl);                                   
     insert_seqlistBy_index(sl,2,30);                    
     show_seqlist(sl);                                   
     dataType del=delete_seqlistBy_index(sl,3);          
     printf("下标删除数据是%d\n",del);                   
     show_seqlist(sl);                                   
     amend_seqlistBy_index(sl,4,88);                     
     show_seqlist(sl);                                   
     inqyiry_seqlistBy_index(sl,1);                 
                                               
     free(sl);                                           
     sl=NULL;                                            
     return 0;                                           
 }                                                       

/*
 * function:  //  创建顺序表  
 * @param [ in] 
 * @param [out] 
 * @return      
 */
#include <stdio.h>
#include <stdlib.h>
#include "./3_seqlist.h" 

SeqList * creat_seqList(void)
{
    SeqList *sl=(SeqList *)malloc(N*sizeof(SeqList));
    if(NULL==sl)
    {
        printf("malloc error\n");
        return NULL;
    }
    sl->pos=0;
    return sl;
}

/*
 * function:    //顺序表存入数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */
void insert_seqlist(SeqList * sl,dataType data)
{
    //判断顺序表是否为满
    if(sl->pos>=N)
    {
        printf("顺序表已满,数据存入失败!\n");
        return;
    }
    //存入数据
    sl->arr[sl->pos]=data;
    sl->pos++;
    return;
}


/*
 * function:    //顺序表删除数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */
dataType  delete_seqlist(SeqList * sl)
{
    //判断顺序表是否为空
    if(sl->pos<=0)
    {
        printf("顺序表为空,数据删除失败\n");
        return -1;
    }
    //pos--
    sl->pos--;
    return sl->arr[sl->pos];
}


/*
 * function:    \\顺序表查询数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */
void  show_seqlist(SeqList *sl)
{
    for(int i=0;i<sl->pos;i++)
        printf("%d\t",sl->arr[i]);
    putchar(10);
    return;
}

/*
 * function:    //按照下标插入保存数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */

void insert_seqlistBy_index(SeqList * sl,int index,dataType date)
{
    //判断顺序表是否为满
    if(sl->pos>=N)
    {
        printf("顺序列表已满,数据插入失败\n");
        return;
    }
    //判断下标是否合法
    if(index>sl->pos ||index<0)
    {
        printf("插入位置不合法,数据插入失败\n");
        return;
    }
    //插入数据
    for(int i=sl->pos;i>index;i--)
        sl->arr[i]=sl->arr[i-1];
    sl->arr[index]=date;
    //pos++
    sl->pos++;
    return ;
}

/*
 * function:    //按照下标位置删除数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */
dataType  delete_seqlistBy_index(SeqList * sl,int index)
{
    //判断顺序表是否为空
    if(sl->pos<=0)
    {
        printf("顺序列表已空,数据删除失败\n");
        return -1;
    }
    //判断下标是否合法
    if(index>sl->pos ||index<0)
    {
        printf("删除位置不合法,数据删除失败\n");
        return -1;
    }
    dataType  del=sl->arr[index];
    //删除数据
    for(int i=index;i<=sl->pos-2;i++)
        sl->arr[i]=sl->arr[i+1];
    //pos--
    sl->pos--;
    return del;
}

/*
 * function:    //通过下标修改数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */
void amend_seqlistBy_index(SeqList * sl,int index,dataType date)
{
    //判断下标是否合法
    if(index>=sl->pos ||index<0)
    {
        printf("修改位置不合法,数据修改失败\n");
        return;
    }
    //修改数据
    sl->arr[index]=date;
    return ;
}

/*
 * function:    //通过下标查询数据
 * @param [ in] 
 * @param [out] 
 * @return      
 */

void   inqyiry_seqlistBy_index(SeqList * sl,int index)
{
    //判断下标是否合法
    if(index>=sl->pos ||index<0)
    {
        printf("查询位置不合法,数据查询失败\n");
        return ;
    }
    //打印查询数据
    printf("查询数据为:%d\n", sl->arr[index])    ;

    return;
}

在 IntelliJ IDEA 2024.1.4 中制作购物系统作为大学作业,可以按照以下步骤来进行: 1. **项目初始化**: - 创建一个新的Java Web项目,选择Maven或Gradle作为构建工具。 - 添加Spring Boot作为基础框架,因为它提供了强大的依赖管理和整合能力。 2. **模块划分**: - 拆分模块:通常包括前端界面(UI层)、后端服务(业务逻辑层)和数据库访问(数据访问层)。 - UI层:可以使用Thymeleaf、Vue.js等技术搭建用户界面。 - 后端服务:创建Controller处理HTTP请求,Service负责业务逻辑,Repository用于数据库操作。 3. **设计实体与数据库**: - 设计商品、订单、用户等相关实体类,并创建对应的数据库表结构。 - 使用JPA或MyBatis等ORM库来操作数据库。 4. **添加用户认证**: - 实现基于Spring Security的用户登录注册功能,保护资源免受未授权访问。 5. **购物车与结算**: - 用户可以选择商品加入购物车,支持查看、修改和删除操作。 - 结算流程,计算总价,生成订单信息。 6. **支付集成**: - 考虑接入第三方支付平台如支付宝或微信支付,进行在线支付功能的实现。 7. **测试与调试**: - 编写单元测试和集成测试,确保每个功能正常工作。 - 使用IDEA内置的debugger进行问题排查。 8. **部署**: - 配置项目的打包和部署脚本,以便部署到服务器上供实际用户访问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值