要求:
综合以前实验的功能,设计简易XX信息管理系统,如学生管理系统,则学生信息包括学号(关键字)、姓名、年龄等信息,设计功能主要包括:界面菜单,实现记录的插入、修改、删除、查询、排序等功能。

代码来之不易复制附待点赞可吗

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
struct fruits // 水果结构体
{ long int num; // 水果编号
char name[20]; //水果名称
char sort[20]; // 水果类别
long int count; // 水果库存量
long int price; // 水果单价
}fruits[200]; //最多 200 个商品
int k,n,i;
int main ()
{void input();  // 输入函数void sequence();  //排序函数void purchase(); //进货函数void sell();void addOrDele();void modifyInformation();void search(); // 查询函数 printf("---------------------------- 欢迎来到水果管理系统---------------------------\n"); printf("-                      ︵                                                   \n");printf("-     欢迎光临呀 (\"\\(●-●)                                                 \n");printf("-                 \\ /     0\\ \\           ∧ ∧                           \n");printf("-                  (        )\"          (。ω。)                           \n");printf("-                   \\__T__/            ノ/ /                              \n");printf("-                                     ノ ̄ゝ                                \n");printf("-\n-\n-\n-\n-\n    \n");                   printf("                             Welcome to the fruit management system         \n"); printf("----------------------------------------------------------------------------\n");printf("测试程序之前别忘啦先创建几个水果信息呀!\n"); printf("\n\n请按任意键继续");getch();system("cls");        /*清屏*/lp: for(i=0;i<1;i++)printf("\n\n——★—☆——★—☆——☆—★——☆—★——☆—☆——★—\n");printf("\n\t\t\t 水果管理系统主菜单 \t\n\n");printf( "           1 →输入水果信息 \n\n");printf( "           2 →排序商品信息 \n\n");printf( "           3 →输入进货信息 \n\n");printf( "           4 →输入销售信息 \n\n");printf( "           5 →增加/删除商品 \n\n");printf( "           6 →修改商品信息 \n\n");printf( "           7 →查询商品信息 \n\n");printf("——☆—★——☆—★——☆—☆——★—☆——★—☆——★—"); //菜单选择界面 printf("\n\n");printf("\t请选择您所要的操作 (或选择 (0)退出):");scanf("%d",&k);system("cls");switch(k){           //用switch语句实现功能选择 case 1: input();break;case 2: sequence();break;case 3: purchase();break;case 4: sell();break;case 5: addOrDele();break;case 6: modifyInformation();break;case 7: search();break;case 0: printf("\n\n\t ^_^  谢谢使用,欢迎再来,再见 O(∩_∩)O");exit(0); //退出系统 default: puts("输入错误 ,请按任意健返回主菜单: \n"); break;}system("cls"); /*清屏*/goto lp; /*返回主界面 */
} void input() { //功能1:输入水果信息 printf("\n 请输入需要建立新库存的水果种类数量 :");scanf("%d",&n);system("cls");printf("--------------------------------------------------------------------------------\n");for(i=0;i <n;i++) {     //用循环实现输入 n个水果的信息printf("\n\t 请输入水果的编号 :");scanf("%ld",&fruits[i].num);printf("\n\t 请输入水果的名称 :");scanf("%s",fruits[i].name);printf("\n\t 请输入水果的类别 :");scanf("%s",fruits[i].sort);printf("\n\t 请输入水果的数量 :");scanf("%d",&fruits[i].count);printf("\n\t 请输入水果的单价 :");scanf("%d",&fruits[i].price);printf("--------------------------------------------------------------------------------\n");}printf("\t请选择按钮继续操作:");getch();return;    //返回主界面
}void sequence() { //功能2:排序水果信息 long temp;char p1[30],p2[30];for(k=0;k<n-1;k++) //(1): 按编号排序 for(i=0;i <n-k-1;i++) //用起泡法排序 if (fruits[i].num>fruits[i+1].num) { //按编号由小到大排序 temp=fruits[i].num;fruits[i].num=fruits[i+1].num;fruits[i+1].num=temp;strcpy(p1,fruits[i].name);strcpy(fruits[i].name,fruits[i+1].name);strcpy(fruits[i+1].name,p1); strcpy(p2,fruits[i].sort);strcpy(fruits[i].sort,fruits[i+1].sort);strcpy(fruits[i+1].sort,p2);}printf("--------------------------------------------------------------------------------" );printf("\n\t\t按水果编号排序后的水果信息 \n\n");printf("\t水果编号      水果名称      水果类别      水果数量      水果单价\n"); /*输出排序后水果信息 */for(i=0;i<n;i++) {printf("\t %5ld       %5s       %5s         %5ld          %5ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}for(k=0;k<n-1;k++) /*(2): 按水果名称排序 */for(i=0;i <n-k-1;i++)if (strcmp(fruits[i].name,fruits[i+1].name)>0) {strcpy(p1,fruits[i].name);strcpy(fruits[i].name,fruits[i+1].name);strcpy(fruits[i+1].name,p1);temp=fruits[i].num;fruits[i].num=fruits[i+1].num;fruits[i+1].num=temp;strcpy(p2,fruits[i].sort);strcpy(fruits[i].sort,fruits[i+1].sort);strcpy(fruits[i+1].sort,p2);}printf("--------------------------------------------------------------------------------" );printf("\n\t\t按水果名称排序后的水果信息 \n");printf("\t水果名称      水果编号      水果类别      水果数量      水果单价\n"); /*输出排序后水果信息 */for(i=0;i<n;i++){printf("\t %5s       %5ld         %5s         %5ld        %5ld\n" ,fruits[i].name,fruits[i].num,fruits[i].sort,fruits[i].count,fruits[i].price);}for(k=0;k<n-1;k++) //(3): 按水果类别排序 for(i=0;i <n-k-1;i++) //用起泡法排序 if (strcmp(fruits[i].sort,fruits[i+1].sort)>0) { strcpy(p2,fruits[i].sort);strcpy(fruits[i].sort,fruits[i+1].sort);strcpy(fruits[i+1].sort,p2);temp=fruits[i].num;fruits[i].num=fruits[i+1].num;fruits[i+1].num=temp;strcpy(p1,fruits[i].name);strcpy(fruits[i].name,fruits[i+1].name);strcpy(fruits[i+1].name,p1);}printf("--------------------------------------------------------------------------------" );printf("\n\t\t按水果类别排序后的水果信息 \n\n");printf("\t水果类别      水果编号      水果名称      水果数量      水果单价\n"); /*输出排序后水果信息 */for(i=0;i<n;i++) {printf("\t %5s       %5ld         %5s         %5ld         %5ld\n" ,fruits[i].sort,fruits[i].num,fruits[i].name,fruits[i].count,fruits[i].price);}printf("--------------------------------------------------------------------------------\n" );printf("按任意键返回主菜单:");getch();return; //返回主界面
}void purchase() { //功能3:进货水果信息 long temp; //定义临时变量表示刚进货的水果编号 int j;printf("\n\t请输入刚进货的水果编号 :");scanf("%ld" ,& temp);printf("\n\t请输入刚进货的水果数量 :");scanf("%d",&j);printf("\t进货成功啦!\n");printf("\n\t请按任意键查看进货后的水果信息:");getch();system("cls"); //清屏*printf("\n\t输出进货后的水果信息: ");for(i=0;i<n;i++) //循环,寻找与进货相同的水果信息 if(temp==fruits[i].num)fruits[i].count=fruits[i].count+j; //自动更改水果数量 printf("\n\t水果编号 水果名 水果类别 水果数量 水果价格 \n");for(i=0;i<n;i++) {  //循环,输出进货后的水果信息 */printf("\t %4ld %8s %5s %8ld %8ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}printf("\n\n\t\t请按任意键返回主菜单:");getch(); //返回功能选择界面 return;
}void sell() {//功能4:销售水果信息 long temp; //定义临时变量 temp表示刚销售的水果编号 int j;printf("\n\t请输入刚销售的水果编号 :");scanf("%ld" ,&temp);printf("\n\t请输入刚销售的水果数量 :");scanf("%d",&j);printf("记入数据成功啦!\n");for(i=0;i <n;i++) {//循环,找到刚销售的水果信息 if(temp==fruits[i].num) {for(;j>fruits[i].count;) { //如果销售额大于库存量,则出现错误提示 printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入 :");scanf("%d",&j);}fruits[i].count=fruits[i].count-j; //完成自动更改水果数量的功能 }}printf("\n\t请按任意键查看销售后水果信息:");getch();system("cls"); /*清屏*/printf("\n\n *销售后水果信息");printf("\t水果编号 水果名称 水果类别 水果数量 水果单价\n"); //输出水果信息 for(i=0;i<n;i++) {printf("\t            %8ld   %8s  %5s   %8ld %8ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}printf("\n\t按任意键返回主菜单:");getch();return; //返回功能选择界面
}void addOrDele() { //功能5:添加或删除水果信息 void add(); //声明子函数 void dele();printf("\n\t请选择: 1.添加水果信息; 2.删除删除信息; ");printf("\t* 请输入 1或2 继续: ");scanf("%d",&k);switch(k) { //用switch语句实现功能选择 case 1: add();break;case 2: dele();break;}getch();return; //返回主菜单
}void add() { //添加水果信息 //定义子函数 */printf("\t* 请输入所添加水果的水果编号 :");scanf("%ld" ,& fruits[n].num);printf("\n\t请输入所添加水果的名称 :");scanf("%s",fruits[n].name);printf("\n\t请输入所添加水果的类别 :");scanf("%s",fruits[n].sort);printf("\n\t请输入所添加水果的数量 :");scanf("%d",&fruits[n].count);printf("\n\t请输入所添加水果的价格 :");scanf("%d",&fruits[n].price);n=n+1;printf("添加成功哦!\n");printf("按任意键返回主菜单:");getch();return; //返回主界面
}void dele() {//删除水果信息 //定义子函数 int temp; //定义局部变量 int j;for(i=0;i<n;i++) {printf("\n\t水果编号 水果名称 水果类别 水果数量 水果单价\n");printf("\t %4ld %8s %5s %8ld %8ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);printf("\n" ); }printf("\n");printf("\n* 请输入要删除的水果编号 :");scanf("%ld" ,& temp);printf("\n\n");for(i=0;i<n;i++) {if(temp==fruits[i].num) {for(j=i;j <n;j++) {fruits[j].num=fruits[j+1].num;strcpy(fruits[j].name,fruits[j+1].name);strcpy(fruits[j].sort,fruits[j+1].sort);fruits[j].count=fruits[j+1].count;fruits[j].price=fruits[j+1].price;}n=n-1; //水果总库存量减少 }}printf("\t删除成功啦!\n");printf("\n\t请按任意键查看当前水果:");getch();system("cls"); /*清屏*/ for(i=0;i<n;i++) {printf("当前水果菜单:\n");printf("\n\t水果编号 水果名称 水果类别 水果数量 水果单价\n");//输出删除后的水果信息 printf("\t %4ld %8s %5s %8ld %8ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);printf("\n");}printf("按任意键返回主菜单:");getch();return; //返回主界面
}void modifyInformation() {  //功能6:修改水果信息 long temp; //定义局部变量 printf("\n\t请输入要修改的水果的编号 :");scanf("%ld" ,&temp); //输入新的水果信息 printf("\n" );for(i=0;i<n;i++) { //保存新的水果信息 if (temp==fruits[i].num) { printf("\t请输入一个新的的商品编号 :");scanf("%ld" ,&fruits[i].num);printf("\n\t请输入新的商品的名称 :");scanf("%s",fruits[i].name);printf("\n\t请输入新的商品的类别 :");scanf("%s",fruits[i].sort);printf("\n\t请输入新的商品的数量 :");scanf("%d",&fruits[i].count);printf("\n\t请输入新的商品价格 :");scanf("%d",&fruits[i].price);printf("\n");}}printf("\t修改成功啦!"); for(i=0;i<n;i++) {printf("\n\t 新的水果名称 水果编号 水果类别 水果数量 水果单价 \n");printf("\t    %6ld   %8s   %5s %8ld %8ld\n" ,fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price); printf("\n" );}printf("按任意键返回主菜单:"); //返回功能选择界面 getch();return; //返回主菜单
}void search() {  //功能7:查询水果信息 int k;     //定义局部变量 long temp1;char temp2[30],temp3[20];printf("            1 →按水果编号查询数据\n            2 →按水果名查询数据\n            3 →按水果类别查询数据\n            4 →查询需要进货的水果名\n");printf("\n\n\n\t\t\t 请输入数字确定查询方式 :");scanf("%d",&k);switch(k) { //实现查询方式的选择 /*按水果编号查询数据 */case 1:{printf("\n\n\n\n\n\t\t请输入要查询的商品水果的编号 :"); scanf("%ld" ,&temp1);system("cls"); for(i=0;i<n;i++) {if(temp1==fruits[i].num) {printf("\n"); printf("\n\t水果编号 水果名 水果类别 水果数量 水果价格");printf("\n\t %4ld %8s %5s %8ld %8ld",fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}}}break;  //跳出switch语句/*按水果名查询数据 */case 2:{printf("\n\n\n\n\n\t\t请输入要查询的水果名 :"); scanf("%s",temp2);system("cls" );for(i=0;i<n;i++) {if (strcmp(temp2,fruits[i].name)==0) {printf("\n");printf("\n\t水果编号 水果名 水果类别 水果数量 水果价格");printf("\n\t %4ld %8s %5s %8ld %8ld",fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}}}break; //跳出switch语句/*按水果类别查询数据*/case 3:{printf("\n\n\n\n\n\t\t请输入要查询的水果类别 :"); scanf("%s",temp3);system("cls");for(i=0;i<n;i++) {if(strcmp(temp3,fruits[i].sort)==0) {printf("\n");printf("\n\t水果编号 水果名 水果类别 水果数量 水果价格"); printf("\n\t %4ld %8s %5s %8ld %8ld",fruits[i].num,fruits[i].name,fruits[i].sort,fruits[i].count,fruits[i].price);}}}break; //跳出switch语句/*查询需要进货的水果名 */case 4:{ int a=50;for(i=0;i<n;i++) {if(fruits[i].count<a)printf("\n\t\t 需 要 进 货 的 水 果 名 :%s 现 有 库 存 量:%ld\n",fruits[i].name,fruits[i].count);}}break; //跳出switch语句}printf("\n\n\t\t请按任意键返回主菜单:");getch();return; //返回主界面
}

1.主函数 main() 定义主函数为空类型 (void); 利用选择结构 (switch) 实现在在主函数中的调用各 个子函数,利用 goto 和子函数中的 return 语句实现返回主菜单的循环。
2.子函数
(1) void input() :< 输入函数 > 确定新的库存量 n,输入商品信息,用 for 循环语句直到输入商品种类等于 n, 结束输入;
(2) void sequence() :< 排序函数 > 对已有的商品进行排序,可按商品编号、名称、类别进行排序;采用起泡法排序算法
(3) void purchase() :< 进货函数 > 进货函数主要是针对已有库存的商品,在原来的商品数量再增加:
(4) void sale() :< 销售函数 > 要求用户输入所销售的编号,系统用 for 循环查询该商品是否存在,不存在要 求再进行输入,直到输入正确,输出销售商品:
(5) void addOrDele () :< 添加/ 删除商品 > 因为在进货函数已经实现对已有商品的数量的增加, 此模块函数主要实现对新商 品的添加或对旧商品的删除, 并自动处理数据, 可以在浏览中输出, 用选择语句 switch 进行俩者操作的选择
(6) void modifyInformation () :< 修改数据函数 > 对有错误信息商品进行修改,输入需要修改的商品编号,用 for 循环与 if 语句 找到此商品,重新输入该商品的新信息,并输出:
(7) void search() :< 查询函数 > 用 switch(k) 语句可分别按商品编号、 名称、类别或需要进货商品查询; 每个 case 选择中均用 for 语句查找要查询的商品,并输出查询结果。

系统界面:

c语言水果系统程序设计源代码相关推荐

  1. c语言报表系统,C语言考试系统程序设计报告.doc

    C语言考试系统程序设计报告 <程序设计基础> 课程设计报告 考试系统 指导教师:任姚鹏 班 级:计科系1204班 学生姓名:丁晓荟 加雪梅 姚乐 张进 吕亚斌 完成日期:2013.11.2 ...

  2. c语言水果系统链表,CH3讲义.doc

    CH3讲义 本章知识点: 进程的顺序性和并发性 分析与时间有关的错误.(★) 进程同步与互斥的概念. 临界区及其调度.(★) 记录型信号量与PV操作.(★★★) 条件变量和管程.(★★) 进程通信种类 ...

  3. C语言通讯录系统程序设计

    文章目录 1.前言 2.设计步骤 前言 利用链表增.删.改.查功能以及文件来完成通讯录系统.通讯录中包含联系人的基本信息:姓名.联系电话.家庭住址以及电子邮件. 以下是设计该系统的步骤: 1.导出通讯 ...

  4. java计算机毕业设计水果购物商城源代码+数据库+系统+lw文档

    java计算机毕业设计水果购物商城源代码+数据库+系统+lw文档 java计算机毕业设计水果购物商城源代码+数据库+系统+lw文档 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开发软 ...

  5. JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告)

    毕业论文(设计)开题报告 论文题目: java考试系统 学生姓名: 年级(学号): 二级学院: 专业: 指导教师: 职称: 填表日期:20 年 月 日 学 院 教 务 处 制 一.选题依据(背景与意义 ...

  6. 大学生考勤系统C语言代码,C++学生考勤系统(含源代码)

    <C++学生考勤系统(含源代码)>由会员分享,可在线阅读,更多相关<C++学生考勤系统(含源代码)(26页珍藏版)>请在人人文库网上搜索. 1.C+吾言程序设计课程设计报告书题 ...

  7. 学生考勤系统设计c语言源程序文件的后缀是,C++学生考勤系统(含源代码).doc

    C++学生考勤系统(含源代码).doc /C语言程序设计课程设计报告书题目 班级 学号 姓名 指导教师 周期 以下由验收老师填写成绩 年 月 日一.课程设计的目的与要求 (一)课程设计目的与任务C作为 ...

  8. 列车时刻管理c语言程序设计,列车时刻管理系统C语言程序设计(源代码).doc

    列车时刻管理系统C语言程序设计(源代码) 问题分析 随着社会的不断发展,人们在交通方式的选择上有了不同以往的选择,以前的靠人力,畜力,以及摩托车,现在人们的选择更多的会放在了汽车,飞机还有列车上.每当 ...

  9. 51单片机c语言程序控制,51单片机C语言程序设计源代码

    <51单片机C语言程序设计源代码>由会员分享,可在线阅读,更多相关<51单片机C语言程序设计源代码(281页珍藏版)>请在人人文库网上搜索. 1.51 SCM c语言教程示例2 ...

最新文章

  1. python requests返回的json对象用json.loads()时转为字典时编码变为了unicode
  2. cas单点登录原理碎碎念
  3. Scala学习之路 (六)Scala的类、对象、继承、特质
  4. 关于memcached的收集
  5. 一步一步教你在CentOS6.0下安装NS2(ns-allinone-2.34.tar.gz)模拟仿真工具
  6. 计算机二级office高级应用教程,2015计算机二级Office高级应用上机试题及答案
  7. IOS 中的XML解析
  8. 使用iMazing创建配置文件时的几个重要首选项组
  9. python 赋值_关于 python 分片赋值
  10. 【彩蛋】小白入门学习 SQL 数据库基础视频教程(109个视频)
  11. 如何去除图片背景变透明?透明背景图片怎么做?
  12. eclipse svn SSL 错误
  13. 3d Max人物动画学习笔记(一) 骨骼创建
  14. 使用 Kprobes 调试内核
  15. JNI HelloWorld 亲测可以。
  16. SpringCloud五大常用组件
  17. 一种可以使身体吸收天道法则的电脑
  18. Android TimeoutException治理
  19. 基于Python实现的电梯进程及调度管理
  20. 计算机组成原理实验心得200字,2016年江西师范大学考研专业目录及考试科目

热门文章

  1. 走进Linux的世界,看这篇文章就够了
  2. 剑指 Offer 笔记: T58 - II. 左旋转字符串
  3. ubuntu20.04界面黑屏,有光标闪烁,解决方法
  4. 梦想总是要有的 - 工作20年程序员的2021年度总结
  5. 什么是命名空间,为什么要使用命名空间?
  6. React.forwardRef的使用说明
  7. React forwardRef的使用方法
  8. currentstyle 织梦_织梦channel标签currentstyle样式无效不起作用
  9. FFMPEG 摄像头 命令行参数 录像 直播 rtmp
  10. 基于通道注意力机制的图像压缩改进(zqb第三章)