C语言编写超市收银系统,要求使用链式存储结构,要有录入商品基本信息如名称,修改商品数量,退出系统的功能
2条回答 默认 最新
关注让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题解答: 链式存储结构可以用链表来实现,每个节点存储一个商品的基本信息,包括名称、数量、价格等。可以采用循环菜单的方式,实现录入商品信息、修改商品数量等功能,具体实现步骤如下: 1.定义商品节点结构体typedef struct node{ char name[50]; // 商品名称 int num; // 商品数量 float price; // 商品价格 struct node *next; // 指向下一个节点的指针 }Node;2.初始化链表
Node *head = (Node *)malloc(sizeof(Node)); // 创建头结点 head->next = NULL;3.录入商品信息
void input(Node *head){ Node *p = head; while(p->next){ p = p->next; // 移动到最后一个结点 } Node *newNode = (Node *)malloc(sizeof(Node)); // 创建新节点 printf("请输入商品名称:"); scanf("%s", newNode->name); printf("请输入商品数量:"); scanf("%d", &newNode->num); printf("请输入商品价格:"); scanf("%f", &newNode->price); newNode->next = NULL; p->next = newNode; // 插入到链表尾部 }4.修改商品数量
void modify(Node *head){ char name[50]; printf("请输入要修改的商品名称:"); scanf("%s", name); Node *p = head->next; while(p){ if(strcmp(p->name, name) == 0){ // 判断是否为要修改的商品 int num; printf("请输入新的商品数量:"); scanf("%d", &num); p->num = num; // 修改商品数量 printf("修改成功!\n"); return; } p = p->next; } printf("未找到该商品\n"); }5.退出系统
void quit(){ exit(0); }6.主函数实现循环菜单
int main(){ Node *head = (Node *)malloc(sizeof(Node)); head->next = NULL; // 初始化链表 int choice; while(1){ printf("1.录入商品信息\n"); printf("2.修改商品数量\n"); printf("3.退出系统\n"); scanf("%d", &choice); switch(choice){ case 1: input(head); // 录入商品信息 break; case 2: modify(head); // 修改商品数量 break; case 3: quit(); // 退出系统 break; default: printf("输入错误,请重新输入\n"); break; } } return 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报