c语言天气查询系统

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h> 

char x_[20];
int x;

typedef struct {
    int bianhao;
    char Sweather[30];
    char data[30];
    float Htem; 
    float Ltem; 
    float avetem; 
} num;

typedef struct node {
    num hao; 
    char name[10];
    struct node *next;
} Node; 

typedef struct singlelist {
    Node *first;
    int n;
} SingleList;

typedef struct singlelist1 {
    Node *first;
    int n;
} SingleList1;

typedef struct {
    float pT;
    char tianqi[30];
    char riqi[30];
} chayue;
void initialList(SingleList *mylist);
void initialList1(SingleList1 *mylist1);
void inputList(SingleList *mylist);
void inputList1(SingleList1 *mylist1);
void writetofile(SingleList *mylist);
void writetofile1(SingleList1 *mylist1);
void readfromfile(SingleList *mylist);
void insertList(SingleList1 *mylist1, int x); 
Node *searchList(SingleList1 *mylist1, int x); 
void readfromfile1(SingleList1 *mylist1); 
void w(SingleList1 *mylist1); 
void w2(SingleList1 *mylist1); 
void w3(SingleList1 *mylist1); 
void w4(SingleList1 *mylist1);
void w5(SingleList1 *mylist1);
void w6(SingleList1 *mylist1);
void printList1(SingleList1 *mylist1) { 
 Node *ptr2;
 ptr2 = mylist1->first;
 while (ptr2) {
  printf("%d %s %.2f %.2f %.2f %s\n", ptr2->hao.bianhao, ptr2->hao.data, ptr2->hao.Htem, ptr2->hao.Ltem,ptr2->hao.avetem, ptr2->hao.Sweather);
  ptr2 = ptr2->next; 
 }
}

int  cmp(const void *a, const void *b) {
    return (*(int *)a - * (int *)b);
}
int cmp1(const void *a, const void *b) {
    const chayue *x = (const chayue *)a;
    const chayue *y = (const chayue *)b;
    if (x->pT > y->pT) {
        return 1;
    } else if (x->pT < y->pT) {
        return -1;
    } else {
        return 0;
    }
}
int main(void) {
    FILE *fp;
    Node *ptr;
    int d; 

    SingleList mylist;
    SingleList1 mylist1;
    initialList(&mylist);
    initialList1(&mylist1);

    int n1;//n:输入的号码
    n1 = 0;
    do {
        printf("城市天气信息档案管理系统\n");
         
        printf("请输入编号0~7\n");
        printf("……………………………………………………\n");
        printf("1---选择城市名称\n");
        printf("2---录入当日天气资料\n");
        printf("3---查询历年天气资料\n");
        printf("4---输出某年高温天气情况\n");
        printf("5---输出某年低温天气情况\n");
        printf("6---某年每月最高温度平均柱状图\n");
        printf("7---某年每月最低温度平均柱状图\n");
        printf("8---设置城市名称\n");
        printf("0---退出系统\n");
        printf("……………………………………………………\n");
        scanf("%d", &n1);
        switch (n1) {
            case 0:
                printf("感谢使用本软件!已正常退出,按任意键结束!");
                exit(0);
            case 1:
                readfromfile(&mylist);
                printf("请输入城市编号:\n");
                scanf("%d", &x);
                
                break;
            case 2:
                initialList1(&mylist1);
                readfromfile1(&mylist1);
                writetofile1(&mylist1);
                printf("已有的天气信息为:\n");
                printList1(&mylist1);
                printf("\n");
                printf("输入要插入的天气信息:"); 
                ptr=searchList(&mylist1,x);
                insertList(&mylist1, x);
                writetofile1(&mylist1);
                printf("添加后的信息:\n"); 
                printList1(&mylist1);
                printf("\n");break;
            case 3: {
                printf("选项1--查询历年某日天气情况\n选项2--查询历年某月天气情况\n");
                scanf("%d", &d);
                if (d == 1) {
                    w(&mylist1);
                } else if (d == 2) {
                    w2(&mylist1);
                }
                break;
            }

            case 4:
                w3(&mylist1);
                
                break;
            case 5:
                w4(&mylist1);
                break;
            case 6:
                w5(&mylist1); 
                break;
            case 7:
                w6(&mylist1); 
                break;
            case 8:
                inputList(&mylist);
                writetofile(&mylist);
                inputList1(&mylist1);
                writetofile1(&mylist1);
                break;
        }  
    } while (n1 >= 0 && n1 <= 8);
    return 0;
}


void initialList(SingleList *mylist) { 
    mylist->first = NULL;
    mylist->n = 0;
}

void initialList1(SingleList1 *mylist1) { 
    mylist1->first = NULL;
    mylist1->n = 0;
}

void inputList(SingleList *mylist) { 
    int j;
    char temp[10];
    Node *ptr, *ptr2, *ptr3;
    while (scanf("%d%s", &j, temp) && j != -1) {
        ptr = (Node *)malloc(sizeof(Node));
        ptr->hao.bianhao = j; 
        strcpy(ptr->name, temp); 
        if (mylist->n == 0) {
            mylist->first &#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值