幫助學習作業系統的 一些資料 我需要獲得3的 積分 請有興趣者可看
標簽: struct
上傳時間: 2016-06-14
上傳用戶:fp4397251
#include <malloc.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #define NULL 0 #define MaxSize 30 typedef struct athletestruct /*運動員*/ { char name[20]; int score; /*分數*/ int range; /**/ int item; /*項目*/ }ATH; typedef struct schoolstruct /*學校*/ { int count; /*編號*/ int serial; /**/ int menscore; /*男選手分數*/ int womenscore; /*女選手分數*/ int totalscore; /*總分*/ ATH athlete[MaxSize]; /**/ struct schoolstruct *next; }SCH; int nsc,msp,wsp; int ntsp; int i,j; int overgame; int serial,range; int n; SCH *head,*pfirst,*psecond; int *phead=NULL,*pafirst=NULL,*pasecond=NULL; void create(); void input () { char answer; head = (SCH *)malloc(sizeof(SCH)); /**/ head->next = NULL; pfirst = head; answer = 'y'; while ( answer == 'y' ) { Is_Game_DoMain: printf("\nGET Top 5 when odd\nGET Top 3 when even"); printf("\n輸入運動項目序號 (x<=%d):",ntsp); scanf("%d",pafirst); overgame = *pafirst; if ( pafirst != phead ) { for ( pasecond = phead ; pasecond < pafirst ; pasecond ++ ) { if ( overgame == *pasecond ) { printf("\n這個項目已經存在請選擇其他的數字\n"); goto Is_Game_DoMain; } } } pafirst = pafirst + 1; if ( overgame > ntsp ) { printf("\n項目不存在"); printf("\n請重新輸入"); goto Is_Game_DoMain; } switch ( overgame%2 ) { case 0: n = 3;break; case 1: n = 5;break; } for ( i = 1 ; i <= n ; i++ ) { Is_Serial_DoMain: printf("\n輸入序號 of the NO.%d (0<x<=%d): ",i,nsc); scanf("%d",&serial); if ( serial > nsc ) { printf("\n超過學校數目,請重新輸入"); goto Is_Serial_DoMain; } if ( head->next == NULL ) { create(); } psecond = head->next ; while ( psecond != NULL ) { if ( psecond->serial == serial ) { pfirst = psecond; pfirst->count = pfirst->count + 1; goto Store_Data; } else { psecond = psecond->next; } } create(); Store_Data: pfirst->athlete[pfirst->count].item = overgame; pfirst->athlete[pfirst->count].range = i; pfirst->serial = serial; printf("Input name:) : "); scanf("%s",pfirst->athlete[pfirst->count].name); } printf("\n繼續輸入運動項目(y&n)?"); answer = getchar(); printf("\n"); } } void calculate() /**/ { pfirst = head->next; while ( pfirst->next != NULL ) { for (i=1;i<=pfirst->count;i++) { if ( pfirst->athlete[i].item % 2 == 0 ) { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 5;break; case 2:pfirst->athlete[i].score = 3;break; case 3:pfirst->athlete[i].score = 2;break; } } else { switch (pfirst->athlete[i].range) { case 1:pfirst->athlete[i].score = 7;break; case 2:pfirst->athlete[i].score = 5;break; case 3:pfirst->athlete[i].score = 3;break; case 4:pfirst->athlete[i].score = 2;break; case 5:pfirst->athlete[i].score = 1;break; } } if ( pfirst->athlete[i].item <=msp ) { pfirst->menscore = pfirst->menscore + pfirst->athlete[i].score; } else { pfirst->womenscore = pfirst->womenscore + pfirst->athlete[i].score; } } pfirst->totalscore = pfirst->menscore + pfirst->womenscore; pfirst = pfirst->next; } } void output() { pfirst = head->next; psecond = head->next; while ( pfirst->next != NULL ) { // clrscr(); printf("\n第%d號學校的結果成績:",pfirst->serial); printf("\n\n項目的數目\t學校的名字\t分數"); for (i=1;i<=ntsp;i++) { for (j=1;j<=pfirst->count;j++) { if ( pfirst->athlete[j].item == i ) { printf("\n %d\t\t\t\t\t\t%s\n %d",i,pfirst->athlete[j].name,pfirst->athlete[j].score);break; } } } printf("\n\n\n\t\t\t\t\t\t按任意建 進入下一頁"); getchar(); pfirst = pfirst->next; } // clrscr(); printf("\n運動會結果:\n\n學校編號\t男運動員成績\t女運動員成績\t總分"); pfirst = head->next; while ( pfirst->next != NULL ) { printf("\n %d\t\t %d\t\t %d\t\t %d",pfirst->serial,pfirst->menscore,pfirst->womenscore,pfirst->totalscore); pfirst = pfirst->next; } printf("\n\n\n\t\t\t\t\t\t\t按任意建結束"); getchar(); } void create() { pfirst = (struct schoolstruct *)malloc(sizeof(struct schoolstruct)); pfirst->next = head->next ; head->next = pfirst ; pfirst->count = 1; pfirst->menscore = 0; pfirst->womenscore = 0; pfirst->totalscore = 0; } void Save() {FILE *fp; if((fp = fopen("school.dat","wb"))==NULL) {printf("can't open school.dat\n"); fclose(fp); return; } fwrite(pfirst,sizeof(SCH),10,fp); fclose(fp); printf("文件已經成功保存\n"); } void main() { system("cls"); printf("\n\t\t\t 運動會分數統計\n"); printf("輸入學校數目 (x>= 5):"); scanf("%d",&nsc); printf("輸入男選手的項目(x<=20):"); scanf("%d",&msp); printf("輸入女選手項目(<=20):"); scanf("%d",&wsp); ntsp = msp + wsp; phead = (int *)calloc(ntsp,sizeof(int)); pafirst = phead; pasecond = phead; input(); calculate(); output(); Save(); }
標簽: 源代碼
上傳時間: 2016-12-28
上傳用戶:150501
#include<stdio.h> #define TREEMAX 100 typedef struct BT { char data; BT *lchild; BT *rchild; }BT; BT *CreateTree(); void Preorder(BT *T); void Postorder(BT *T); void Inorder(BT *T); void Leafnum(BT *T); void Nodenum(BT *T); int TreeDepth(BT *T); int count=0; void main() { BT *T=NULL; char ch1,ch2,a; ch1='y'; while(ch1=='y'||ch1=='y') { printf("\n"); printf("\n\t\t 二叉樹子系統"); printf("\n\t\t*****************************************"); printf("\n\t\t 1---------建二叉樹 "); printf("\n\t\t 2---------先序遍歷 "); printf("\n\t\t 3---------中序遍歷 "); printf("\n\t\t 4---------后序遍歷 "); printf("\n\t\t 5---------求葉子數 "); printf("\n\t\t 6---------求結點數 "); printf("\n\t\t 7---------求樹深度 "); printf("\n\t\t 0---------返 回 "); printf("\n\t\t*****************************************"); printf("\n\t\t 請選擇菜單號 (0--7)"); scanf("%c",&ch2); getchar(); printf("\n"); switch(ch2) { case'1': printf("\n\t\t請按先序序列輸入二叉樹的結點:\n"); printf("\n\t\t說明:輸入結點(‘0’代表后繼結點為空)后按回車。\n"); printf("\n\t\t請輸入根結點:"); T=CreateTree(); printf("\n\t\t二叉樹成功建立!\n");break; case'2': printf("\n\t\t該二叉樹的先序遍歷序列為:"); Preorder(T);break; case'3': printf("\n\t\t該二叉樹的中序遍歷序列為:"); Inorder(T);break; case'4': printf("\n\t\t該二叉樹的后序遍歷序列為:"); Postorder(T);break; case'5': count=0;Leafnum(T); printf("\n\t\t該二叉樹有%d個葉子。\n",count);break; case'6': count=0;Nodenum(T); printf("\n\t\t該二叉樹總共有%d個結點。\n",count);break; case'7': printf("\n\t\t該樹的深度為:%d",TreeDepth(T)); break; case'0': ch1='n';break; default: printf("\n\t\t***請注意:輸入有誤!***"); } if(ch2!='0') { printf("\n\n\t\t按【Enter】鍵繼續,按任意鍵返回主菜單!\n"); a=getchar(); if(a!='\xA') { getchar(); ch1='n'; } } } } BT *CreateTree() { BT *t; char x; scanf("%c",&x); getchar(); if(x=='0') t=NULL; else { t=new BT; t->data=x; printf("\n\t\t請輸入%c結點的左子結點:",t->data); t->lchild=CreateTree(); printf("\n\t\t請輸入%c結點的右子結點:",t->data); t->rchild=CreateTree(); } return t; } void Preorder(BT *T) { if(T) { printf("%3c",T->data); Preorder(T->lchild); Preorder(T->rchild); } } void Inorder(BT *T) { if(T) { Inorder(T->lchild); printf("%3c",T->data); Inorder(T->rchild); } } void Postorder(BT *T) { if(T) { Postorder(T->lchild); Postorder(T->rchild); printf("%3c",T->data); } } void Leafnum(BT *T) { if(T) { if(T->lchild==NULL&&T->rchild==NULL) count++; Leafnum(T->lchild); Leafnum(T->rchild); } } void Nodenum(BT *T) { if(T) { count++; Nodenum(T->lchild); Nodenum(T->rchild); } } int TreeDepth(BT *T) { int ldep,rdep; if(T==NULL) return 0; else { ldep=TreeDepth(T->lchild); rdep=TreeDepth(T->rchild); if(ldep>rdep) return ldep+1; else return rdep+1; } }
上傳時間: 2020-06-11
上傳用戶:ccccy
#include <stdio.h> #include <stdlib.h> #define SMAX 100 typedef struct SPNode { int i,j,v; }SPNode; struct sparmatrix { int rows,cols,terms; SPNode data [SMAX]; }; sparmatrix CreateSparmatrix() { sparmatrix A; printf("\n\t\t請輸入稀疏矩陣的行數,列數和非零元素個數(用逗號隔開):"); scanf("%d,%d,%d",&A.cols,&A.terms); for(int n=0;n<=A.terms-1;n++) { printf("\n\t\t輸入非零元素值(格式:行號,列號,值):"); scanf("%d,%d,%d",&A.data[n].i,&A.data[n].j,&A.data[n].v); } return A; } void ShowSparmatrix(sparmatrix A) { int k; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { k=0; for(int n=0;n<=A.terms-1;n++) { if((A.data[n].i-1==x)&&(A.data[n].j-1==y)) { printf("%8d",A.data[n].v); k=1; } } if(k==0) printf("%8d",k); } printf("\n\t\t"); } } void sumsparmatrix(sparmatrix A) { SPNode *p; p=(SPNode*)malloc(sizeof(SPNode)); p->v=0; int k; k=0; printf("\n\t\t"); for(int x=0;x<=A.rows-1;x++) { for(int y=0;y<=A.cols-1;y++) { for(int n=0;n<=A.terms;n++) { if((A.data[n].i==x)&&(A.data[n].j==y)&&(x==y)) { p->v=p->v+A.data[n].v; k=1; } } } printf("\n\t\t"); } if(k==1) printf("\n\t\t對角線元素的和::%d\n",p->v); else printf("\n\t\t對角線元素的和為::0"); } int main() { int ch=1,choice; struct sparmatrix A; A.terms=0; while(ch) { printf("\n"); printf("\n\t\t 稀疏矩陣的三元組系統 "); printf("\n\t\t*********************************"); printf("\n\t\t 1------------創建 "); printf("\n\t\t 2------------顯示 "); printf("\n\t\t 3------------求對角線元素和"); printf("\n\t\t 4------------返回 "); printf("\n\t\t*********************************"); printf("\n\t\t請選擇菜單號(0-3):"); scanf("%d",&choice); switch(choice) { case 1: A=CreateSparmatrix(); break; case 2: ShowSparmatrix(A); break; case 3: SumSparmatrix(A); break; default: system("cls"); printf("\n\t\t輸入錯誤!請重新輸入!\n"); break; } if (choice==1||choice==2||choice==3) { printf("\n\t\t"); system("pause"); system("cls"); } else system("cls"); } }
上傳時間: 2020-06-11
上傳用戶:ccccy
這份 資 安 事 件 應 變 小抄,專給想要 調查安全事件的 網 管 人 員 。 記?。好鎸κ录r, 跟著 資 安 事 件 應 變 方 法 的流程,記下記錄不要驚慌。如果需要請立刻聯絡臺
上傳時間: 2020-10-13
上傳用戶:
隨著電力電子技術的飛速發展,高頻開關電源由于其諸多優點已經廣泛深入到國防、工業、民用等各個領域,與人們的工作、生活密切相關,由此引發的電網諧波污染也越來越受到人們的重視,對其性能,體積,效率,功率密度等的要求也越來越高。因此,研究具有高功率因數、高效率的ACDC變換技術,對于抑制諧波污染、節釣能源及實現綠色電能變換具有重要意義通過分析目前功率因數校正PFC)技術與直流變換(DcDC)技術的研究現狀,采用了具有兩級結構的AcDc變換技術,對PFC控制技術,直流變換軟開關實現等內容進行了研究。前級PFC部分采用先進的單周期控制技術,通過對其應用原理、穩定性與優勢性能的研究,實璄了主電路及控電路的參數設計與優化,簡化了PFC控制電路結構、根據控制電路特點與系統環路穩性要求,完成了電流環路與整個控制環路設計,確保了系統穩定性,提高了系統動態響應。通過建立電路閉環仿真模型,驗證了單周期控制抑制輸入電壓與負載擾動的優勢性能及連續功率因數校正的優點,優化了電路參數后級直流變換主電路采用LLC諧振拓撲,通過變頻控制使直流變換環節具有軾開關特性。分析了不同開關頻率范圍內電路工作原理,并建立了基波等效電路,采用基波分析法對VLc需城電路的電反增益性,輸入阻抗持性進行了研究,確定了電路軟開關工作范圖。以基波分析結果為基礎進行了合理的電路參數優化設計,保證了直流變換環節在全輸入電壓范圍、全負載范圍內能實現橋臂開關管零電壓開通zVS},較大范圍內邊整流二極管零電流關斷區CS),并將諧振電路中的電壓電流應力降到最小,極大的提高了系統效率同時,為了提高系統功率密度,選擇了優化的磁性元器件結構,實現了諧振感性元件與變壓器的磁性器件集成,大大減小了變換電路的體積在理論研究與參數設計的基礎上,搭建了實驗樣機,分別對PFC部分和DcDC部分進行了實驗驗證與結果分析。經實驗驗證ACDc變換電路功率因數在0.988以上,直瓿變換電路能實現全范圖軟開關,實現了高效率AcDC變換。關鍵詞:ACDC變換:功率因數校正:;高效率;LLC諧振電路:單周期控制
上傳時間: 2022-03-24
上傳用戶:
主要內容介紹 Allegro 如何載入 Netlist,進而認識新式轉法和舊式轉法有何不同及優缺點的分析,透過本章學習可以對 Allegro 和 Capture 之間的互動關係,同時也能體驗出 Allegro 和 Capture 同步變更屬性等強大功能。Netlist 是連接線路圖和 Allegro Layout 圖檔的橋樑。在這裏所介紹的 Netlist 資料的轉入動作只是針對由 Capture(線路圖部分)產生的 Netlist 轉入 Allegro(Layout部分)1. 在 OrCAD Capture 中設計好線路圖。2. 然後由 OrCAD Capture 產生 Netlist(annotate 是在進行線路圖根據第五步產生的資料進行編改)。 3. 把產生的 Netlist 轉入 Allegro(layout 工作系統)。 4. 在 Allegro 中進行 PCB 的 layout。 5. 把在 Allegro 中產生的 back annotate(Logic)轉出(在實際 layout 時可能對原有的 Netlist 有改動過),並轉入 OrCAD Capture 裏進行回編。
上傳時間: 2022-04-28
上傳用戶:kingwide
新版本無人機.刷機用借助此實際應用程序,管理無人機的所有區域,例如電動機,GPS,傳感器,陀螺儀,接收器,端口和固件INAV-Chrome 的配置器中的新功能:修復了導致加速度計校準失敗的錯誤支持DJI FPV系統配置輸出選項卡中的怠速節氣門和馬達極現在可以在“混合器”選項卡中選擇“漫遊者”和“船用”平臺。 固件方面的支持仍然有限!閱讀完整的變更日誌 在過去的幾年中,無人駕駛飛機取得了相當大的進步,越來越多的人能夠獲取和使用無人機。 不用說,無人機可以基於特定固件在一組命令上運行。 在這方面, 用於Chrome的INAV-Configurator隨附的工具可幫助您輕鬆配置無人機的各個方面。支持多種硬件配置首先要提到的一件事是,要求Google Chrome瀏覽器能夠訪問INAV-Chrome的配置器功能。 儘管它已集成到Chrome中,但它可以作為獨立應用程序運行,甚至可以脫機使用,而與瀏覽器無關。 您甚至可以從Google Apps菜單為其創建桌面快捷方式。不用說,另一個要求是實際的飛行裝置。 該應用程序支持所有支持INAV的硬件配置,例如Sirius AIR3,SPRacingF3,Vortex,Sparky,DoDo,CC3D / EVO,Flip32 / + / Deluxe,DragonFly32,CJMCU Microquad,Chebuzz F3,STM32F3Discovery,Hermit ,Naze32 Tricopter框架和Skyline32。該窗口非常直觀,並提供各種令人印象深刻的提示和文檔。 在上方的工具欄上,您可以找到連接選項,這些選項可以通過COM端口,手動選擇或無線模式進行。 您也可以選擇自動連接。 連接後,您可以在上方的工具欄中查看設備的功能,並在側面板中輕鬆瀏覽配置選項。管理傳感器,電機,端口和固件本。
標簽: configurator 無人機
上傳時間: 2022-06-09
上傳用戶:
摘要:研究基于移動存儲介質的低成本、高性能車栽影音系統,結合FreeRTOS操作系統調度的實時性和VisualState狀態機機制控制流程,該系統實時性強,并且性能穩定,具有廣闊的市場前景,關鍵詞:車載影音;碟片:USB/SD:FreeRTOS;VisualState狀態機引言隨著車載影音娛樂系統的普及,要求車載影音系統方案具有更高的穩定性、操作簡便性,也對成本控制提出了更大的挑戰。新一代車載影音系統省去了碟片攜帶不方便且成本較高的光驅控制部分,用現代存儲設備(如U盤、SD卡)為載體,借助高科技解碼技術,可將網上下載的多種格式的影音文件進行播放的車載影音娛樂系統進行升級,同時還整合了收音機、藍牙免提式接打電話、AUX輸入音頻等功能。整個系統使用FreeRTOS操作系統,實時響應各種中斷服務,同時采用狀態機控制機制,使整個流程控制更加清晰、穩定。1硬件電路設計硬件MCU采用集成了USB/SD接口的STM32F103系列、電源管理芯片、AUX輸入檢測電路、藍牙模塊、調諧收音芯片TEFG621、鍵盤及顯示段碼屏,系統框架如圖1所示。為了滿足低功耗設計,各個模塊都有獨立1/0去控制對應電源。
上傳時間: 2022-06-26
上傳用戶:
VIP專區-嵌入式/單片機編程源碼精選合集系列(26)資源包含以下內容:1. ATMEL MP3 源代碼.2. ATMEL MP3電路圖.3. 利用RTOS機制實現機械系統中的質量.4. 這是利用RTOS去實現機械系統.5. YAFFS和YASFF2文件系統的源代碼。.6. SP2339驅動.7. 電子元件基礎教程.8. 數字濾波器的文檔.9. 汽車記錄儀元代碼.10. IIC讀寫的例子.11. 串口讀寫.12. 自制硬盤mp3播放器.13. 使用SST89C58控制單片電子硬盤的軟硬件.14. full package of jaffs file system.15. sle4442邏輯加密卡讀寫程序---c語言編寫(轉貼).16. msp430開發c語言例程.17. 6b595 24co2 12887應用程序(c源程序).18. AD TLC0831 DA TLC5620應用程序(c源程序).19. pwm發生器(原理圖,pcb.20. evc編程,使用數據庫軟件.21. 常用3極管資料,值得收藏.22. 紅外發射接收芯片HT12A,HT12D.23. 18f458實驗程序。 簡單輸入輸出.24. 對NAND FLASH的讀寫操作.25. NAND FLASH 的讀寫操作程序.26. 把BMP文件的格式進行處理.27. 儀表溫度控制程序.28. 無線耳機通訊用CPLD的VHDL源碼.29. 英文點陣字庫,嵌入式系統必備.30. 12點陣漢字字庫chs12,嵌入式系統必備.31. 16點陣漢字字庫chs16,嵌入式系統必備.32. 在44B0板子上添加IIC鍵盤.33. 44b0的BOOTLOAD微機通訊程序.34. PSD813F2的FLASH區操作的一個很有用的程序.35. 使用DataFlash自動引導U-boot的程序源碼.36. RAM掉電保護電路.37. fat32文件C語言的實現13.38. PLC程序集成開發平臺.39. 嵌入式操作系統Tornador中函數庫的參考.40. 數碼管顯示時鐘數碼管顯示時鐘數碼管顯示時鐘數碼管顯示時鐘數碼管顯示時鐘.
上傳時間: 2013-04-15
上傳用戶:eeworm