最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)天氣信息管理系統(tǒng)

 更新時(shí)間:2020年06月16日 15:14:21   作者:Sixology.  
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)天氣信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)天氣信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
#include<time.h>
#include<unistd.h>

#define TRUE 1
#define FALSE 0
#define OK  1
#define ERROR 0
#define OVERFLOW -1
typedef int Status;
typedef int ElemType;


typedef struct
{
 char Sweather[10];   //天氣狀況
 double Htem;     //最高溫度 
 double Ltem;  //最低溫度 
 double Stem;     //溫度
 double Shum;     //濕度
}area;
typedef struct node
{
 int num;      //城市編號(hào)
 area weather;     //地區(qū)天氣
 char name[5];      //地名
 struct node *next;    
 
}*LinkList,LNode;   //定義結(jié)構(gòu)體


int NUM=0;     //全局變量 計(jì)算節(jié)點(diǎn)數(shù)目 

Status CreatList_L(LinkList &L,int n);      //信息錄入 
void Print_LinkList( LinkList H);       //查看信息 
int login();            //登錄
Status Delete_LinkList(LinkList &H);      //刪除節(jié)點(diǎn) 
Status GetElem_L(LinkList &L);       //查找 
Status changeElem_L(LinkList &L);      //修改 
int Clearlist(LinkList &L);       //整表刪除,

void welcome(LinkList &L);       //welcome   
void menu2(LinkList &L);        //管理員菜單 
void menu1(LinkList &L);        //用戶菜單 
void printf_node(node*p);        //輸出節(jié)點(diǎn) 
void my_return(LinkList &L);       //return 
void clothes(node *p);        //穿衣指數(shù) 
void save_node(LinkList &L,int i);     //保存節(jié)點(diǎn)到文件
void read_node(LinkList &L) ;      //從文件讀取 
int Register();          //注冊(cè) 
int signin();          //登錄 




void read_node(LinkList &L)       //從文件讀取 
{ 
 LNode *p,*pr;
 int i,n;
 pr=L;
 
 FILE *fp;
 if((fp=fopen("weatherinformation.txt","r"))==NULL)
 {
 printf("打開(kāi)文件失敗");
 exit(0);
 }

 fscanf(fp,"%d",&n); //從文件讀出節(jié)點(diǎn)數(shù)目 
 
 for(i=1;i<=n;i++)
 {
 p=(LinkList)malloc(sizeof(LNode));
  fscanf(fp,"%d",&p->num);
 fscanf(fp,"%s",p->name);
 fscanf(fp,"%s",p->weather.Sweather);
 fscanf(fp,"%lf%lf",&p->weather.Ltem,&p->weather.Htem);
 p->weather.Stem=(p->weather.Htem+p->weather.Ltem)/2;
 fscanf(fp,"%lf",&p->weather.Shum);
  p->next=NULL;

 while(pr->next!=NULL){
  pr=pr->next;
 } 

 p->next=pr->next;
 pr->next=p;
 pr=pr->next;
  NUM++;
 }
 fclose(fp);
}


void save_node(LinkList &L)      //保存到文件 
{ 
 
 LNode *p,*pr;
 pr=L; 
 FILE *fp;
 if((fp=fopen("weatherinformation.txt","w"))==NULL)
 {
 printf("打開(kāi)文件失敗");
 exit(0);
 }
 fprintf(fp,"%d\n",NUM);
 while(pr->next!=NULL)
 {
 p=pr->next;
 fprintf(fp,"%d ",p->num);
  fprintf(fp,"%s ",p->name);
 fprintf(fp,"%s ",p->weather.Sweather);
 fprintf(fp,"%lf %lf ",p->weather.Ltem,p->weather.Htem);
 fprintf(fp,"%lf\n",p->weather.Shum);
 pr=pr->next;  
 }
 printf("保存成功?。?!"); 
 fclose(fp);
}



int Register()        //注冊(cè) 
{
 FILE* fp;
 char name[10],passworld[10];
 
 if((fp=fopen("demo.txt","a"))==NULL)
 {
 printf("打開(kāi)文件失敗");
 exit(0); 
 }
 printf("請(qǐng)輸入用戶名:");
 scanf("%s",name);
 fprintf(fp,"%s ",name);
 printf("請(qǐng)輸入密碼:");
 scanf("%s",passworld);
 fprintf(fp,"%s\n",passworld);
 fclose(fp);
 printf("注冊(cè)成功!"); 
 return OK;
}
int signin()         //登錄 
{ FILE* fp;
 char name[10],passworld[10];    //用戶輸入的賬戶密碼 
 char name1[10],passworld1[10];   //從文件讀取的賬戶和密碼 
 int flag=0;
 
 if((fp=fopen("demo.txt","r"))==NULL)
 {
 printf("打開(kāi)文件失敗");
 exit(0);
 }
 
 printf("輸入用戶名:");
 scanf("%s",name);
 printf("輸入密碼:");
 scanf("%s",passworld); 
 
 while(!flag&&!feof(fp))
 { 
 fscanf(fp,"%s",name1);
 fscanf(fp,"%s",passworld1);
 if(strcmp(name,name1)==0&&strcmp(passworld,passworld1)==0)
 flag=1;
 }
 fclose(fp);
 
 return flag;
}
int login()            //login
{
 char f;
 int H;
 char a[10],ah[10],am[10];
 char b[10],bh[10],bm[10];
 FILE *fp;

 printf("1.注冊(cè)!\n");
 printf("2.登錄!\n");
 scanf("%d",&H);
 if(H==1)
 {
 Register();
 
 while(1){ 
 printf("是否登錄?y or n\n");
 getchar();
 scanf("%c",&f);
 system("cls");
 
 if(f=='n')
 exit(0);
 else if(f=='y')
 { 
 if(signin())
 {
  printf("登錄成功!\n");
  return OK;
 }
 else 
 printf("密碼或者用戶錯(cuò)誤!\n"); 
 }
 
 }
}
else if(H==2)
 while(1){
 
 if(signin())
 {
  printf("登錄成功!\n");
  return OK;
 }
 else
 printf("密碼或者用戶錯(cuò)誤!\n");
 
 } 
 return 0;
}
void clothes(node *p)          //穿衣指數(shù) 
{
 
 if(p->weather.Stem>=28)
 printf("夏季著裝:輕棉織物制作的短衣、短裙、薄短裙、短褲\n\n");
 else if(p->weather.Stem>=24&&p->weather.Stem<28)
 printf("夏季著裝:棉麻面料的襯衫、薄長(zhǎng)裙、薄T恤\n\n");
 else if(p->weather.Stem>=21&&p->weather.Stem<24)
 printf("春秋過(guò)渡裝:?jiǎn)螌用蘼槊媪系亩烫籽b、T恤衫、薄牛仔衫褲、休閑服、職業(yè)套裝\n\n");
 else if(p->weather.Stem>=18&&p->weather.Stem<21)
 printf("春秋過(guò)渡裝:套裝、夾衣、風(fēng)衣、休閑裝、夾克衫、西裝、薄毛衣\n\n");
 else if(p->weather.Stem>=15&&p->weather.Stem<18)
 printf("春秋著裝:風(fēng)衣、大衣、夾大衣、外套、毛衣、毛套裝、西裝、防寒服\n\n");
 else if(p->weather.Stem>=11&&p->weather.Stem<15)
 printf("秋冬著裝:毛衣、風(fēng)衣、毛套裝、西服套裝\n\n");
 else if(p->weather.Stem>=6&&p->weather.Stem<11)
 printf("冬季著裝:棉衣、冬大衣、皮夾克、厚呢外套、呢帽、手套、羽絨服、皮襖\n\n");
 else
 printf("冬季著裝:棉衣、冬大衣、皮夾克、厚呢外套、呢帽、手套、羽絨服、皮襖\n\n");

}
Status CreatList_L(LinkList &L)        /* 信息錄入 */
 {
 
 LNode *p,*pr;
 int i,n;
 printf("請(qǐng)輸入地區(qū)數(shù)");
 scanf("%d",&n);
 
 pr=L;
 for(i=n;i>0;i--)
 {
  p=(LinkList)malloc(sizeof(LNode));
  printf("請(qǐng)輸入城市編號(hào)\n");
 scanf("%d",&p->num);
 printf("請(qǐng)輸入地名\n");
  scanf("%s",p->name);
 printf("請(qǐng)輸入該地區(qū)的天氣情況\n");
 scanf("%s",p->weather.Sweather);
 printf("最低溫度和最高溫度\n"); 
 scanf("%lf%lf",&p->weather.Ltem,&p->weather.Htem);
 p->weather.Stem=(p->weather.Htem+p->weather.Ltem)/2;
 printf("相對(duì)濕度\n");
 scanf("%lf",&p->weather.Shum);
 p->next=NULL;
 while(pr->next!=NULL){
  pr=pr->next;
 } 

 p->next=pr->next;
 pr->next=p;
 pr=pr->next;
 NUM++; 
 }
 
 return OK;
 }
void printf_node(node*p)            //輸出一個(gè)節(jié)點(diǎn) 
{
  printf("%s的天氣為:%s\n",p->name,p->weather.Sweather);
 printf("最低溫度為:%.2lf度,最高溫度為:%.2lf度,平均溫度為:%.2lf度\n",p->weather.Ltem,p->weather.Htem,p->weather.Stem);
 printf("相對(duì)濕度為:%.1lf%%\n",p->weather.Shum);
 clothes(p); 
}
void my_return(LinkList &L,int n)         //my_return
{
 char f;
 while(1){

 printf("是否返回菜單? y or n\n");
 getchar();
 scanf("%c",&f);
 if((f=='y'||f=='Y'))
 {
  if(n==1)
  menu1(L);
  else if(n==2)
  menu2(L);
 }
  
 
 else if(f=='n'||f=='N')
 {
 printf("bye-bye");
 exit(0);
 }
 }
}
void Print_LinkList( LinkList H)  /* 輸出鏈?zhǔn)奖?*/
{
 LNode *p;
 p=H->next;
 if(p==NULL){
 printf("沒(méi)有存入數(shù)據(jù)\n");
 return ;
 }
 
 while(p!=NULL) 
 {
  printf_node(p);
 
 p=p->next;
 }
printf("\n");
 }

Status Delete_LinkList(LinkList &H) /* 刪除表序號(hào)為i的記錄 */
 {
 
 int i;
  int j=1;
  LNode *p,*pr;
  p=H;
  if(NUM==0){
 printf("沒(méi)有存入數(shù)據(jù)\n");
 return 0;
 }
  printf("請(qǐng)輸入城市編號(hào)\n");
  scanf("%d",&i);
  while(p&&i!=p->next->num)
  {
   p=p->next;
   
  }
  if(!p) {
  printf("沒(méi)有這個(gè)城市\(zhòng)n");
  return ERROR;}
  pr=p->next;
  p->next=pr->next;
  free(pr);
  printf("刪除成功!\n");
  NUM--;
  return OK;
  
}/* Delete_LinkList */

 
int Clearlist(LinkList &L)    //整表刪除,
 {
 LNode *p,*q;
 system("cls");
 printf("請(qǐng)確認(rèn)你是否已經(jīng)獲得最高權(quán)限?y or n\n");
 getchar();
 getchar();
 printf("ERROR!你沒(méi)有最高權(quán)限!");
 exit(0); 
 p=L->next;
 while(p)
 {
 q=p->next ;
 free(p);
 p=q;
 NUM--;
 }
 L->next=NULL;
 save_node(L); 
 return 1;
 } 
Status GetElem_L(LinkList &L)    //查找
{
 int num;
 char a[5]; 
 int j=1;
 printf("請(qǐng)輸入城市名稱(chēng)\n");
 scanf("%s",&a); 
 LinkList p;
 p=L->next;
 while(p&&strcmp(p->name,a)!=0)
 {
  p=p->next;
  
 }
 if(!p){
  printf("沒(méi)有這個(gè)城市!");
 return ERROR; 
 }
 
 printf_node(p);
 return OK;
}
Status changeElem_L(LinkList &L)           //修改 
{
 int num;
 int j=1;
 printf("請(qǐng)輸入城市編號(hào)\n");
 scanf("%d",&num); 
 LinkList p;
 p=L->next;
 while(p&&num!=p->num)
 {
  p=p->next;
  
 }
 if(!p){printf("沒(méi)有這個(gè)城市!\n");
 return ERROR;
 }
 printf_node(p);
 
  printf("請(qǐng)修改:\n");
 printf("請(qǐng)輸入地名\n");
  scanf("%s",p->name);
  printf("請(qǐng)輸入城市編號(hào)\n");
 scanf("%d",&p->num);
 printf("請(qǐng)輸入該地區(qū)的天氣情況\n");
 scanf("%s",p->weather.Sweather);
 printf("最高溫度和最低溫度\n"); 
 scanf("%lf%lf",&p->weather.Htem,&p->weather.Ltem);
 p->weather.Stem=(p->weather.Htem+p->weather.Ltem)/2;
 printf("相對(duì)濕度\n");
 scanf("%lf",&p->weather.Shum);
 
 printf("修改后的信息為:\n");
 printf_node(p);
 return OK;
}
void menu1(LinkList &L)            //用戶菜單
{
 int choose;
 system("cls");
       
 printf("\n\n");
 printf("\t\t\t****************用戶菜單****************\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t*   祝您使用愉快    *\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t* 查找信息請(qǐng)按 1 -- 全覽請(qǐng)按 2  *\n");
 printf("\t\t\t*   退出請(qǐng)按 3    *\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t****************************************\n");
 printf("\n\t\t\t\t 進(jìn)入管理員菜單請(qǐng)按0\n");
 scanf("%d",&choose);

 switch(choose)
 {
 case 0:menu2(L);break;
 case 1:GetElem_L(L); my_return(L,1);break;
 case 2:Print_LinkList(L); my_return(L,1);break;
 case 3:exit(0) ;break; 
 default:menu1(L);  
 }
}
void menu2(LinkList &L)             //管理員菜單 
{
 int choose;
 system("cls");
 
 printf("\n\n");
 printf("\t\t\t****************管理員菜單****************\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t*  信息錄入請(qǐng)按 1 -- 刪除信息請(qǐng)按 2 *\n");
 printf("\t\t\t*  信息查找請(qǐng)按 3 -- 信息修改請(qǐng)按 4 *\n");
 printf("\t\t\t*  查看信息請(qǐng)按 5 -- 保存并退出按 6 *\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t*  清除所有數(shù)據(jù)按8     *\n");
 printf("\t\t\t*          *\n");
 printf("\t\t\t******************************************\n");
 printf("\n\t\t\t\t 進(jìn)入用戶菜單請(qǐng)按0\n");
 scanf("%d",&choose);

 switch(choose)
 {
  case 0:menu1(L);break;
 case 1:CreatList_L(L) ;my_return(L,2);break;
 case 2:Delete_LinkList(L) ;my_return(L,2);break;
 case 3:GetElem_L(L) ;my_return(L,2);break;
 case 4:changeElem_L(L); my_return(L,2);break;
 case 5:Print_LinkList(L); my_return(L,2);break;
 case 6:save_node(L);exit(0);
 case 8:Clearlist(L);break;
 default :menu2(L);
 }
}
void welcome(LinkList &L)            //welcome
{ 
 int a;
 login();
 printf("用戶登錄請(qǐng)按1\n");
 printf("管理員登錄請(qǐng)按2\n");
 while(3>2)
 {
 scanf("%d",&a);
 if(a==1)
 { menu1(L);
 break;
 }
 else if(a==2)
 {
 menu2(L);
 break;
 }
 else
 {
 printf("輸入錯(cuò)誤!請(qǐng)重新輸入\n");
 continue;
 }
 }
}



int main()  //main
{
 int i=0;
 LinkList L;
 L=(LNode*)malloc(sizeof(LNode));
 L->next=NULL;
 printf("\n\n\n\n\t\t\t正在從文件中讀取數(shù)據(jù)請(qǐng)稍后");
 read_node(L);
 while(i<3)
 { printf(".");
 sleep(1);
 i++;
 }
 printf("\n\n\t\t\t讀取成功??!\n");
 system("pause"); 
 system("cls");
 welcome(L);
 return 0;
}

更多學(xué)習(xí)資料請(qǐng)關(guān)注專(zhuān)題《管理系統(tǒng)開(kāi)發(fā)》。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • STL中的string你了解嗎

    STL中的string你了解嗎

    這篇文章主要為大家詳細(xì)介紹了STL中的string,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Opencv使用Stitcher類(lèi)圖像拼接生成全景圖像

    Opencv使用Stitcher類(lèi)圖像拼接生成全景圖像

    這篇文章主要為大家詳細(xì)介紹了Opencv使用Stitcher類(lèi)圖像拼接生成全景圖像,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C/C++實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別的示例詳解

    C/C++實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別的示例詳解

    這篇文章主要為大家詳細(xì)介紹了如何使用C/C++實(shí)現(xiàn)手寫(xiě)數(shù)字識(shí)別,分別處理 32*32 文本數(shù)據(jù)集和mnist 28*28 png數(shù)據(jù)集,感興趣的小伙伴可以跟隨小編一起了解一下
    2023-10-10
  • C++與Java分別解決活動(dòng)選擇問(wèn)題和帶權(quán)活動(dòng)選擇問(wèn)題

    C++與Java分別解決活動(dòng)選擇問(wèn)題和帶權(quán)活動(dòng)選擇問(wèn)題

    這篇文章介紹了C++與Java分別解決活動(dòng)選擇問(wèn)題和帶權(quán)活動(dòng)選擇問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • C語(yǔ)言實(shí)現(xiàn)稀疏矩陣

    C語(yǔ)言實(shí)現(xiàn)稀疏矩陣

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)稀疏矩陣的代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能(2)

    詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能(2)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++實(shí)現(xiàn)LeetCode(676.實(shí)現(xiàn)神奇字典)

    C++實(shí)現(xiàn)LeetCode(676.實(shí)現(xiàn)神奇字典)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(676.實(shí)現(xiàn)神奇字典),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言 風(fēng)靡一時(shí)的黃金礦工游戲?qū)崿F(xiàn)流程詳解

    C語(yǔ)言 風(fēng)靡一時(shí)的黃金礦工游戲?qū)崿F(xiàn)流程詳解

    《黃金礦工》是一款非常經(jīng)典的游戲。在游戲中,玩家通過(guò)不斷挖礦,獲取金子,最終能夠闖入下一關(guān)。在這個(gè)過(guò)程中,會(huì)不斷有巖石、煙霧、老鼠來(lái)?yè)v亂,甚至還會(huì)出現(xiàn)扛著炸藥包的小老鼠,玩家必須戰(zhàn)勝它們,才能進(jìn)入更深的礦坑
    2021-11-11
  • C語(yǔ)言實(shí)現(xiàn)獲取文件MD5值

    C語(yǔ)言實(shí)現(xiàn)獲取文件MD5值

    MD5(Message?Digest?Algorithm?5)是一種常用的哈希函數(shù)算法,這篇文章主要介紹了C語(yǔ)言如何獲取文件MD5值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-08-08
  • C++實(shí)現(xiàn)聊天小程序

    C++實(shí)現(xiàn)聊天小程序

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)聊天小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評(píng)論

岳阳市| 平乡县| 定边县| 台前县| 扬中市| 东港市| 新乐市| 分宜县| 泌阳县| 顺义区| 彰武县| 嘉善县| 凌云县| 项城市| 遵义市| 德保县| 江西省| 交口县| 昌都县| 元阳县| 湘潭市| 临潭县| 日喀则市| 康乐县| 慈利县| 黄平县| 清水河县| 盐亭县| 丰台区| 泗水县| 玛纳斯县| 定兴县| 高淳县| 桂林市| 涿州市| 旌德县| 舒城县| 寿宁县| 崇明县| 阜宁县| 长汀县|