zoukankan      html  css  js  c++  java
  • CashBox

    程设课的一个小玩具。

      1 /**
      2  * Copyright 2017 Neopolitan
      3  */
      4 
      5 #include <cstdio>
      6 #include <algorithm>
      7 
      8 using namespace std;
      9 
     10 #define SIZE 100
     11 #define CASH sizeof(cash)
     12 
     13 struct cash{
     14     int date;
     15     int entry_or_expenditure;
     16 };
     17 
     18 cash list[SIZE];
     19 int tail;
     20 
     21 bool cmp(cash a, cash b){
     22     return a.date < b.date;
     23 }
     24 
     25 void cash_insert(){
     26     if (tail >= SIZE){
     27         printf("Failed to insert. The storage is full.
    ");
     28         return;
     29     }
     30     printf("Date:
    ");
     31     scanf("%d", &list[tail].date);
     32     printf("Entry(+) or Expenditure(-):
    ");
     33     scanf("%d", &list[tail].entry_or_expenditure);
     34     tail += 1;
     35     sort(list, list + tail, cmp);
     36     printf("Successfully inserted.
    ");
     37 }
     38 
     39 void cash_search(int id){
     40     if (id >= tail){
     41         printf("Not found.
    ");
     42         return;
     43     }
     44     int balance = 0;
     45     printf("ID: %d
    ", id);
     46     printf("Date: %08d
    ", list[id].date);
     47     printf("Entry(+) or Expenditure(-): %d
    ", list[id].entry_or_expenditure);
     48     for (int i = 0; i <= id; i++)
     49         balance += list[i].entry_or_expenditure;
     50     printf("Balance: %d
    ", balance);
     51 }
     52 
     53 void cash_delete(int id){
     54     if (id >= tail){
     55         printf("Not found.
    ");
     56         return;
     57     }
     58     tail -= 1;
     59     for (int i = id; i < tail; i++){
     60         list[i].date = list[i + 1].date;
     61         list[i].entry_or_expenditure = list[i + 1].entry_or_expenditure;
     62     }
     63     printf("Successfully deleted.
    ");
     64 }
     65 
     66 void cash_change(int id){
     67     if (id >= tail){
     68         printf("Not found.
    ");
     69         return;
     70     }
     71     printf("Date:
    ");
     72     scanf("%d", &list[id].date);
     73     printf("Entry(+) or Expenditure(-):
    ");
     74     scanf("%d", &list[id].entry_or_expenditure);
     75     sort(list, list + tail, cmp);
     76     printf("Successfully changed.
    ");
     77 }
     78 
     79 void cash_print(){
     80     for (int i = 0; i < tail; i++)
     81         cash_search(i);
     82 }
     83 
     84 int main(){
     85     int i = 0;
     86     cash file_input;
     87     FILE *fp = fopen("cashbox.neo", "ab+");
     88     if (fp == nullptr){
     89         printf("Failed to open the file.");
     90         exit(0);
     91     }
     92     while (fread(&list[i], CASH, 1, fp) != 0)
     93         i += 1;
     94     sort(list, list + i, cmp);
     95     tail = i;
     96     int input, id;
     97     while (printf("1: Insert; 2:Search; 3:Delete; 4:Change; 5:Print; 0:Exit
    "), scanf("%d", &input), input != 0){
     98         switch (input){
     99             case 1:
    100                 cash_insert();
    101                 break;
    102             case 2:
    103                 printf("ID:
    ");
    104                 scanf("%d", &id);
    105                 cash_search(id);
    106                 break;
    107             case 3:
    108                 printf("ID:
    ");
    109                 scanf("%d", &id);
    110                 cash_delete(id);
    111                 break;
    112             case 4:
    113                 printf("ID:
    ");
    114                 scanf("%d", &id);
    115                 cash_change(id);
    116                 break;
    117             case 5:
    118                 cash_print();
    119                 break;
    120             default:
    121                 printf("Input error.");
    122                 break;
    123         }
    124     }
    125     if (fclose(fp)){
    126         printf("Failed to close the file.");
    127         exit(0);
    128     }
    129     fp = fopen("cashbox.neo", "wb+");
    130     fwrite(list, CASH, tail, fp);
    131     if (fclose(fp)){
    132         printf("Failed to close the file.");
    133         exit(0);
    134     }
    135     return 0;
    136 }
  • 相关阅读:
    acceptorThreadCount
    spring boot tomcat 线程数 修改初始线程数 统计性能 每百次请求耗时
    java 获取当前进程id 线程id
    Linux操作系统中打开文件数量的查看方法
    java.io.IOException: Too many open files
    随机采样 算法
    Spring Boot
    您好,python的请求es的http库是urllib3, 一个请求到贵司的es节点,想了解下,中间有哪些网关啊?冒昧推测,贵司的部分公共网关与python-urllib3的对接存在异常?
    运行状态:锁定中(实例空间满自动锁)
    。。。。。。不带http https : 不报错 spring boot elasticsearch rest
  • 原文地址:https://www.cnblogs.com/neopolitan/p/7875092.html
Copyright © 2011-2022 走看看