<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了C語言實現自行車存放管理系統的具體程式碼,供大家參考,具體內容如下
系統包括以下內容
1.資料錄入:錄入系統基本資料,用陣列或連結串列組織;
2.資料儲存:用檔案的形式將錄入的資料儲存;
3.資料讀寫:對檔案中的資料可以進行讀寫操作;
4.資料修改:可以對已存在的舊資料進行修改操作;
5.資料插入:可以將新資料插入到任意指定的位置;
6.資料刪除:可以對已存在的舊資料進行刪除操作;
7.資料查詢:按要求對資料進行查詢,至少含兩項
簡單查詢以及一項組合查詢;
8.資料統計:按要求對資料進行統計
含簡單統計及綜合統計;
9.資料排序:按要求對資料進行排序
含升序排序及降序排序;
10.資料包表:按要求對資料列印報表,
依規定的報表格式對資料列印報表;
11.介面:設計總體選單介面。
附加專案:
登入、註冊部分;
(密碼設定密碼的隱式輸出、簡單的加密解密)
附程式碼:
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> struct bicycle{ char tele_num[12];//使用者的電話號碼 char name[13];//使用者的姓名 char sex[7];//使用者的性別 char bic_num[12];//自行車的編號 struct bicycle *next; }; int iCount=0; struct bicycle *pHead=NULL; void key(); void menu(); void create(); void print(); void insert(); void search(); void dele(); void modify(); void excheng(struct bicycle *pStra,struct bicycle *Midd); void sort(); int main(){ menu(); printf("123"); return 0; } //密碼管理頁面 void key(){ char key[20],m[20]; FILE *k; k=fopen("key.txt","r"); if(k==NULL) { k=fopen("key.txt","wt"); printf("請建立管理密碼:n"); scanf("%s",key); fprintf(k,"%s",key); fclose(k); printf("恭喜您建立成功!n"); getchar(); printf("按任意鍵繼續..."); getchar(); return ; } else { fscanf(k,"%s",m); fclose(k); printf("請輸入管理密碼:"); scanf("%s",key); if(strcmp(m,key)==0) { printf("密碼正確!n"); getchar(); printf("按任意鍵繼續..."); getchar(); return ; } else { printf("密碼錯誤!n"); getchar(); printf("按任意鍵繼續..."); getchar(); return ; } } } //顯示景點的資訊 void menu(){ key(); int select=-1; while(select!=0){ system("cls"); printf("nnttttttt==============歡迎使用自行車管理系統==============n"); printf("tttttttt=======請選擇功能列表=======n"); printf("tttttttt1.錄入自行車的資訊LV5n"); printf("tttttttt2.修改自行車的資訊LV5n"); printf("tttttttt3.刪除自行車的資訊LV5n"); printf("tttttttt4.查詢自行車的資訊LV5n"); printf("tttttttt5.列印自行車的資訊LV5n"); printf("tttttttt6.自行車資訊的排序LV5n"); printf("tttttttt7.插入自行車的資訊LV5n"); printf("tttttttt0.退 出 菜 單LV5n"); printf("n請選擇:"); scanf("%d",&select); switch(select){ case 1: create(); break; case 2: modify(); break; case 3: dele(); break; case 4: search(); break; case 5: print(); break; case 6: sort(); break; case 7: insert(); break; case 0:break; default: exit(1); break; } } } //建立連結串列函數 void create(){ //頁面優化 system("cls"); struct bicycle *pEnd,*pNew; struct bicycle *p; pEnd=pNew=(struct bicycle *)malloc(sizeof(struct bicycle)); printf("請輸入存放自行車的資訊(退出請按0):n"); //錄入自行車編號,編號不可以重複 int flag1=1,flag2,n; struct bicycle *pTemp; printf("n自行車的編號(退出請按0):"); scanf("%s",pNew->bic_num); while(flag1){ if(strcmp(pNew->bic_num,"0")==0) { flag1=1; break; } else{ pTemp=pHead; n=iCount; flag2=1; while(n&&flag2){ if(strcmp(pTemp->bic_num,pNew->bic_num)==0) flag2=0; pTemp=pTemp->next; n=n-1; } if(flag2==0){ printf("請重新輸入,自行車編號%s存在!(退出請按0):n",pNew->bic_num); printf("自行車的編號:"); scanf("%s",pNew->bic_num); flag1=1; } if(flag2==1) flag1=0; } } //錄入其他資訊,如果flag1=0,則表明要退出,那麼其他資訊不用再錄 if(flag1!=1){ printf("姓名:"); scanf("%s",pNew->name); //性別只能輸入female或male,否則是不規範的 while(1){ printf("性別(female或male):"); scanf("%s",pNew->sex); if(strcmp(pNew->sex,"female")==0||strcmp(pNew->sex,"male")==0) break; else printf("性別輸入不規範,請核對後重輸!n"); } //電話必須11位數,否則是不規範的 while(1){ printf("電話(11位數):"); scanf("%s",pNew->tele_num); if(strlen(pNew->tele_num)==11) break; else printf("電話輸入不規範,必須11位數!n"); } } while(strcmp(pNew->bic_num,"0")!=0) { iCount++; if(pHead==NULL){ pNew->next=NULL; pEnd=pNew; pHead=pNew; } else{ p=pHead; while(p&&p->next!=NULL) p=p->next; { p->next=pNew; pNew->next=NULL; } } pNew=(struct bicycle *)malloc(sizeof(struct bicycle)); printf("n自行車的編號(退出請按0):"); scanf("%s",pNew->bic_num); flag1=1;//每次迴圈結束flag1=1退出;flag1=0則繼續,所以要值0 while(flag1){ if(strcmp(pNew->bic_num,"0")==0){ flag1=1; break; } else{ pTemp=pHead; n=iCount; flag2=1; while(n&&flag2){ if(strcmp(pTemp->bic_num,pNew->bic_num)==0) flag2=0; pTemp=pTemp->next; n=n-1; } if(flag2==0) { printf("請重新輸入,自行車的編號%s存在!(退出請按0):n",pNew->bic_num); printf("自行車的編號:"); scanf("%s",pNew->bic_num); flag1=1; } if(flag2==1) flag1=0; } } //錄入其他資訊,如果flag1=0,則表明要退出,那麼其他資訊不用再錄 if(flag1!=1){ printf("姓名:"); scanf("%s",pNew->name); //性別只能輸入female或male,否則是不規範的 while(1){ printf("性別(female或male):"); scanf("%s",pNew->sex); if(strcmp(pNew->sex,"female")==0||strcmp(pNew->sex,"male")==0) break; else printf("性別輸入不規範,請核對後重輸!n"); } //電話必須11位數,否則是不規範的 while(1){ printf("電話(11位數):"); scanf("%s",pNew->tele_num); if(strlen(pNew->tele_num)==11) break; else printf("電話輸入不規範,必須11位數!n"); } } //22 } free(pNew); } //輸出連結串列自行車的資訊 void print(){ //頁面優化 system("cls"); printf("nntttt===================5.列印自行車的資訊===================n"); struct bicycle *pTemp; int iIndex=1; printf("**********本名單中共有%d個自行車資訊,所有的資訊如下:**********n",iCount); printf("序號 姓名 性別 電話 自行車編號 n"); pTemp=pHead; while(pTemp!=NULL){ printf("%d %s %s %s %sn",iIndex,pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); pTemp=pTemp->next; iIndex++; } printf("按任意鍵返回上一級"); getch(); } //插入自行車的資訊 void insert(){ //頁面優化 system("cls"); printf("nntttt===================7.插入自行車的資訊===================n"); printf("#n說明:插入任意位置都可以n#"); create(); printf("插入資訊成功,"); printf("按任意鍵返回上一級"); getch(); } //資訊查詢函數 void search(){ //頁面優化 printf("nntttt===================4.查詢自行車的資訊==================="); int select=-1; while(select!=0){ system("cls"); printf("ntt=======請選擇功能列表=======n"); printf("ttt1.按自行車的編號查詢(lv4)n"); printf("ttt2.按 姓 名 查 詢 (lv1)n"); printf("ttt0.退出此頁面(lv4)n"); printf("請選擇:"); scanf("%d",&select); int flag=1,flag1=1; char number[12]; char name[12]; struct bicycle *pTemp=pHead; //按自行車的編號查詢 if(select==1){ printf("請輸入你要查詢的自行車編號:"); scanf("%s",number); while(pTemp!=NULL&&flag) { if(strcmp(pTemp->bic_num,number)==0) { printf("%s找到了,具體資訊如下:nn",number); printf("t姓名 性別 電話 自行車編號 n"); printf("t%s %s %s %sn",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); printf("n"); flag=0; } pTemp=pTemp->next; } if(flag==1) printf("編號%s不存在!n",number); } //按姓名查詢 if(select==2){ printf("請輸入你要查詢的姓名:"); scanf("%s",name); while(pTemp!=NULL&&flag) { if(strcmp(pTemp->name,name)==0) { printf("%s找到了,具體資訊如下n",name); printf("t姓名 性別 電話 自行車編號 n"); printf("t%s %s %s %sn",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); printf("n"); flag=0; } pTemp=pTemp->next; } if(flag==1) printf("姓名%s不存在!",name); } printf("按任意鍵返回上一級"); getch(); } } //刪除資訊函數 void dele(){ //頁面優化 system("cls"); printf("nntttt===================3.刪除自行車的資訊(按編號)==================="); int select=-1; while(select!=0){ printf("ntt=======請選擇功能列表=======n"); printf("ttt1.按自行車的編號刪除(lv4)n"); printf("ttt2.按 姓 名 刪 除 (lv1)n"); printf("ttt0.退出此頁面(lv4)n"); printf("請選擇:"); scanf("%d",&select); if(select==0) return; else if(select==1||select==2) break; else printf("輸入有誤請重新輸入n"); } if(select==1){ if(iCount==0) printf("nn暫無資料無法進行此操作,按任意鍵退出!n"); else { //33 char number[12]; int i,flag=1; char option; struct bicycle *pTemp; struct bicycle *pPre; pTemp=pHead; int iIndex=0; printf("n請輸入要刪除自行車的編號:"); scanf("%s",number); while(pTemp!=NULL&&flag){ if(strcmp(pTemp->bic_num,number)==0){ printf("n%s找到了,將要刪除的資訊如下nn",number); //顯示將要刪除人的資訊 printf("t姓名 性別 電話 自行車編號 n"); printf("t%s %s %s %sn",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); printf("n"); flag=0; printf("確認刪除請輸1,否則按任意數位鍵退出n"); scanf("%d",&option); } pTemp=pTemp->next; iIndex++; } if(flag==1) {printf("編號%s不存在!",number); return;} if(option==1){ pTemp=pHead; pPre=pTemp;//可能多餘 //printf("----------刪除第%d個學生----------n",iIndex); if(iIndex!=1) { for(i=1;i<iIndex;i++) { pPre=pTemp; pTemp=pTemp->next; } pPre->next=pTemp->next; } if(iIndex==1) pHead=pTemp->next; free(pTemp); iCount--; printf("刪除成功按任意鍵退出!"); } else printf("刪除失敗按任意鍵退出!"); } //33 getch(); } else{ if(iCount==0) printf("nn暫無資料無法進行此操作,按任意鍵退出!n"); else { //33 char name[12]; int i,flag=1; char option; struct bicycle *pTemp; struct bicycle *pPre; pTemp=pHead; int iIndex=0; printf("n請輸入要刪除自行車對應戶主的姓名:"); scanf("%s",name); while(pTemp!=NULL&&flag){ if(strcmp(pTemp->name,name)==0){ printf("n%s找到了,將要刪除的資訊如下nn",name); //顯示將要刪除人的資訊 printf("t姓名 性別 電話 自行車編號 n"); printf("t%s %s %s %sn",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); printf("n"); flag=0; printf("確認刪除請輸1,否則按任意數位鍵退出n"); scanf("%d",&option); } pTemp=pTemp->next; iIndex++; } if(flag==1) {printf("姓名%s不存在!",name); return;} if(option==1){ pTemp=pHead; pPre=pTemp;//可能多餘 //printf("----------刪除第%d個學生----------n",iIndex); if(iIndex!=1) { for(i=1;i<iIndex;i++) { pPre=pTemp; pTemp=pTemp->next; } pPre->next=pTemp->next; } if(iIndex==1) pHead=pTemp->next; free(pTemp); iCount--; printf("刪除成功按任意鍵退出!"); } else printf("刪除失敗按任意鍵退出!"); } //33 getch(); } } //2.修改自行車的資訊 void modify(){ //頁面優化 system("cls"); printf("nntttt===================2.修改自行車的資訊==================="); int post; int flag=1,flag1; char number[12]; struct bicycle *pTemp=pHead,*pPre=pTemp; printf("n請輸入你要修改自行車資訊對應自行車的編號:"); scanf("%s",number); while(pTemp!=NULL&&flag) { if(strcmp(pTemp->bic_num,number)==0) { printf("將要修改的學號%s具體資訊如下n",number); printf("t姓名 性別 電話 自行車編號 n"); printf("t%s %s %s %sn",pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); printf("n"); flag=0; } pPre=pTemp;//儲存pTemp pTemp=pTemp->next; } if(flag==1) printf("你要修改的學號%s不存在!",number); else { printf("確認修改請按1,放棄請按任意數位鍵!n請選擇:"); scanf("%d",&post); while(post==1) { printf("請選擇你要修改的專案(1.姓名 2.性別 3.電話號碼 4.自行車的編號 5.修改全部)n"); scanf("%d",&flag1); if(flag1==1) { printf("新姓名:"); scanf("%s",pPre->name); printf("修改完成,按任意鍵退出!"); } else if(flag1==2) { printf("新性別:"); scanf("%s",pPre->sex); printf("修改完成,按任意鍵退出!"); } else if(flag1==3) { while(1){ printf("電話(11位數):"); scanf("%s",pPre->tele_num); if(strlen(pPre->tele_num)==11) break; else printf("電話輸入不規範,必須11位數!n"); } printf("修改完成,按任意鍵退出!"); } else if(flag1==4) { printf("新編號:"); scanf("%d",&pPre->bic_num); printf("修改完成,按任意鍵退出!"); } else{ printf("新姓名:"); scanf("%s",pPre->name); printf("新性別:"); scanf("%s",pPre->sex); while(1){ printf("電話(11位數):"); scanf("%s",pPre->tele_num); if(strlen(pPre->tele_num)==11) break; else printf("電話輸入不規範,必須11位數!n"); } printf("新編號:"); scanf("%s",pPre->bic_num); } break; } } printf("修改完成,按任意鍵退出"); getch(); } //交換函數 void excheng(struct bicycle *pStra,struct bicycle *pMidd){ int t; struct bicycle *pTemp; pTemp=(struct bicycle *)malloc(sizeof(struct bicycle)); strcpy(pTemp->tele_num,pStra->tele_num); strcpy(pStra->tele_num,pMidd->tele_num); strcpy(pMidd->tele_num,pTemp->tele_num); strcpy(pTemp->bic_num,pStra->bic_num); strcpy(pStra->bic_num,pMidd->bic_num); strcpy(pMidd->bic_num,pTemp->bic_num); strcpy(pTemp->name,pStra->name); strcpy(pStra->name,pMidd->name); strcpy(pMidd->name,pTemp->name); strcpy(pTemp->sex,pStra->sex); strcpy(pStra->sex,pMidd->sex); strcpy(pMidd->sex,pTemp->sex); free(pTemp); } //6.自行車資訊的排序 void sort(){ //頁面優化 printf("nntt===================4.排序系統==================="); int i,j; struct bicycle *pStra,*pMidd; int result; int select=-1; while(select!=0) { system("cls"); printf("nttt=======請選擇功能列表=======n"); printf("ttt1.按自行車編號升序排序(lv4)n"); printf("ttt2.按自行車編號降序排序(lv1)n"); printf("ttt3.按姓名升序排序(lv4)n"); printf("ttt4.按姓名降序排序(lv1)n"); printf("ttt0.退出此頁面(lv4)n"); printf("請選擇:"); scanf("%d",&select); result=select; if(select!=1&&select!=2&&select!=3&&select!=4) return; pStra=pHead; pMidd=pStra->next; for(i=0;i<iCount;i++) { pStra=pHead; pMidd=pStra->next; for(j=0;j<iCount-i-1&&pMidd!=NULL;j++) { if(result==1) {if(strcmp(pStra->bic_num,pMidd->bic_num)>0) excheng(pStra,pMidd);} else if(result==2) {if(strcmp(pStra->bic_num,pMidd->bic_num)<0) excheng(pStra,pMidd);} else if(result==3) {if(strcmp(pStra->name,pMidd->name)>0) excheng(pStra,pMidd);} else if(result==4) {if(strcmp(pStra->name,pMidd->name)<0) excheng(pStra,pMidd);} pStra=pMidd; pMidd=pMidd->next; } } printf("ttt5.顯示排完序後的結果為:nn"); printf("------------------------------------------------------"); struct bicycle *pTemp; int iIndex=1; printf("**********本名單中共有%d個自行車資訊,所有的資訊如下:**********n",iCount); printf("序號 姓名 性別 電話 自行車編號 n"); pTemp=pHead; while(pTemp!=NULL){ printf("%d %s %s %s %sn",iIndex,pTemp->name,pTemp->sex,pTemp->tele_num,pTemp->bic_num); pTemp=pTemp->next; iIndex++; } printf("------------------------------------------------------"); printf("nn排序成功,按任意鍵返回!"); getch(); } }
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45