#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include <windows.h>//用于改颜色
#define SIZE 80//方便改值
void color(short x)//此函数是为了在展示时有字体颜色的区别
{if(x>=0&&x<=15)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);elseSetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
}
typedef struct//定义一个结构体用来显示个人消费的数据
{char date[20];char name[20];int price;
} STU;
void input(STU *a,int *n)//通过此函数对数据进行输入
{STU *p;int i=1;system("cls");//清屏作用color(11);//引用改颜色的函数printf("\n请输入今天共有几项支出(1-80):");color(14);scanf("%d",n);color(11);printf("\n请输入消费信息: 时间\t消费种类\t价格:");for(p=a; p<a+(*n); p++){printf("\n%d:",i++);printf("\t\t");color(14);scanf("%s%s%d",p->date,p->name,&p->price);}printf("\n按任意键返回!!");getch();
}
void del(STU *a,int *n)//此函数起到了删除的作用
{int i,j,k=0;STU *p;char num[100];system("cls");color(11);printf("\n请输入要删除的消费种类:");scanf("%s",num);for(i=0,p=a; p<a+*n; i++){if(strcmp(num,(p+i)->name)==0)//用strcmp对输入的与程序中有的进行对比{k=1;//若能找到,则改变k的值for(j=i; j<*n-1; j++){*(a+j)=*(a+j+1);//将所删除的数据的后面整体向前移,起覆盖作用}(*n)--;color(11);printf("删除成功!\n");break;}}if(!k)//如果k不改变则代表找不到//color(11);printf("找不到要删除的消费种类!\n");color(11);printf("\n按任意键返回!\n");getch();
}
void find(STU *a,int n)//此函数作用为查寻消费
{int k=0;char m[100];STU *p;system("cls");color(11);printf("\n请输入要查询的消费种类:");color(14);scanf("%s",m);for(p=a; p<a+n; p++){if(strcmp(m,p->name)==0){k=1;//找到匹配项,则给k赋值为1color(11);printf("已找到,是:%s\t%s\t%d\n",p->date,p->name,p->price);break;}}if(k==0)//若k=0则代表查找不到//color(11);printf("找不到查询的消费种类!\n");color(11);printf("\n按任意键返回!");getch();
}
void sort(STU *a,int n)//通过消费的金额进行排序
{int i,j;STU t;system("cls");for(i=0; i<n-1; i++)//用到了冒泡排序{for(j=0; j<n-i-1; j++){if((a[j].price)>(a[j+1].price)){t=a[j];a[j]=a[j+1];a[j+1]=t;}}}color(11);printf("\n排序结果是:\n");for(i=0; i<n; i++)//通过for循环进行输出{printf("%s\t%s\t%d%\t",a[i].date,a[i].name,a[i].price);printf("\n");}color(11);printf("\n按任意键返回!");getch();
}
void  display(STU *a,int n)
{STU *p;system("cls");color(11);printf("\n请输入消费信息: 时间\t消费种类\t价格:\n");for(p=a; p<a+n; p++){color(14);printf("\t\t%s\t%s\t\t%d%\n",p->date,p->name,p->price);printf("\n");}color(11);printf("\n按任意键返回!");getch();
}
void sum(STU *a,int n)//对程序中剩余的进行计算总金额
{STU *p;system("cls");int k=0;color(11);printf("今天消费的总和为:");for(p=a; p<a+n; p++){k+=p->price;}color(14);printf("%d",k);color(11);printf("\n按任意键返回!");getch();
}
void menu()//建立一个菜单表示选项
{color(3);printf("\n\n\n\t\t\t欢迎使用学生成绩管理系统\n\n\n");color(9);printf("\t\t\t***************************\n");color(9);printf("\t\t\t**      主菜单           **\n");color(9);printf("\t\t\t***************************\n\n\n");color(11);printf("*\t\t\t1消费输入  2消费删除\n\n");color(11);printf("\t\t\t3消费查询  4消费排序\n\n");color(11);printf("\t\t\t5显示消费  6消费总和\n\n");color(11);printf("\t\t\t退出系统\n\n");color(14);printf("\t\t\t请选择[1/2/3/4/5/6/7]:\n");
}
int main()//主函数
{int j,num;STU stu[SIZE];//定义一个结构体while(1){system("cls");menu();scanf("%d",&j);switch(j)//选择作用{case 1:input(stu,&num);break;case 2:del(stu,&num);break;case 3:find(stu,num);break;case 4:sort(stu,num);break;case 5:display(stu,num);break;case 6:sum(stu,num);break;case 7:exit(0);color(11);default:printf("输入错误,请重新输入!\n");}}return 0;
}

个人消费管理系统(C语言)相关推荐

  1. 学生个人消费系统设计C语言,个人消费管理系统C语言课程设计毕业设计word格式.doc...

    个人消费管理系统C语言课程设计毕业设计word格式 目 录 TOC \o "1-3" \h \z HYPERLINK \l "_Toc256000000" 1 ...

  2. 学生个人消费管理系统C语言代码,学生个人消费管理系统

    #include #include #include #define LEN sizeof(struct scorenode) #define DEBUG #include struct scoren ...

  3. c语言实验报告管理系统,C语言实验报告-学生信息资管理系统.doc

    C语言实验报告-学生信息资管理系统 C语言实验报告 院系: 数学与计算科学学院 班级: 信息与计算科学2班 姓名: 学号: 2011年12月21日 一.问题描述 编写一个信息管理系统,包括姓名.性别. ...

  4. c语言程序设计家庭收支类,家庭支出管理系统—c语言程序设计

    家庭支出管理系统-c语言程序设计 (38页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 11.90 积分 程序设计报告( 2015 / 2016 学年 ...

  5. c语言编程员工信息排序,员工工资管理系统(c语言编程)

    <员工工资管理系统(c语言编程)>由会员分享,可在线阅读,更多相关<员工工资管理系统(c语言编程)(6页珍藏版)>请在人人文库网上搜索. 1.include #include# ...

  6. 用c语言编写图书成绩管理系统,学生成绩管理系统(c语言编写).doc

    学生成绩管理系统(c语言编写) C程序 学生管理系统 /* Note:Your choice is C IDE */ #include "stdio.h" #include&quo ...

  7. 管理系统模板c语言,管理系统c语言

    管理系统c语言Tag内容描述: 1.精品文档 作品名称 开发者 一 系统背景 本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化 可以使店主不失效率 ...

  8. 教师查询系统C语言,教师管理系统c语言版

    <教师管理系统c语言版>由会员分享,可在线阅读,更多相关<教师管理系统c语言版(7页珍藏版)>请在人人文库网上搜索. 1.include/头文件#include/字符处理头文件 ...

  9. c语言合同信息管理,合同管理系统C语言代码.doc

    合同管理系统C语言代码 /*合同管理系统*//******头文件(.h)***********/#include #include #include #include "ctype.h&qu ...

  10. 酒店管理系统c语言带注释,酒店管理系统--C语言版.pdf

    酒店管理系统...C语言版. // #include #include #include #include //成员变量的声明 int i,j,k,p 0; char temp[] "&qu ...

最新文章

  1. java动态加载配置文件
  2. 产品上线前会发生什么故事? | 每日趣闻
  3. php怎样弄成中文,php怎样替换中文字符
  4. 机器学习(MACHINE LEARNING)MATLAB蚁群算法解决TSP问题
  5. [译]RxJS文档04——Observer 观察者
  6. boost在DevC++中的安装过程
  7. OAF在打开的新页面中添加按钮,功能是关闭当前页面
  8. [转]Java 关闭线程的安全方法
  9. C语言的三种基本程序结构是什么
  10. easyUI 展开DataGrid里面的行显示详细信息
  11. 设计灵感|有趣优雅的弹窗消息设计!
  12. 12、箱形图和小提琴图的绘制
  13. Linux下iwconfig权限,Linux中用iwconfig配置wireless-tools
  14. 光缆弹性模量计算_OPGW光缆及规格参数.doc
  15. matlab中@的用法
  16. PredRNN++: Towards A Resolution of the Deep-in-Time Dilemma in Spatiotemporal Predictive Learning 翻译
  17. 2020李宏毅机器学习笔记-Convolution Netural Network
  18. jointjs与rapheal简单说明
  19. 利用webSocket实现扫码登录PC端
  20. 企业级区块链阶段性突破,新基建有了新“底座”

热门文章

  1. 支付宝蜻蜓刷脸支付——Android
  2. NILMTK-GPU版本(Tensorflow-gpu,pytorch-gpu,paddlepaddle-gpu类同)安装(显卡RTX系列)
  3. 软硬整合技术、智能硬件开发与顶层设计应用_课程
  4. 【Python语言概述】语言简介、语言规范、安装扩展库、库的导入与使用
  5. 如何将PC的屏幕作为树莓派的屏幕
  6. python的jax包的常用操作
  7. 阿尔巴尼的计算机科学,纽约州立大学阿尔巴尼分校毕业后好找工作吗?
  8. 2022年高压电工考试模拟100题及模拟考试
  9. docker run 挂载卷_使用Windows主机时如何挂载Docker卷?
  10. Vben Admin