#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> #include<windows.h> int xuanxiang; int studentcount; int banjihao[100]; int xueqihao[100][10]; char xm[100][100]; int xuehao[100][10]; int score[100][3]; int yuwen; int shuxue[000]; int yingyu[100]; int c[100]; int p; char x[1000][100]="",y[100][100]="";/*x學院 y專業 z班級*/ int z[100]; main() { void input(); void inputsc(); void alter(); void scbybannji(); printf("--------學生成績管理-----\n"); printf("請按相應數字鍵來實現相應功能\n"); printf("1.錄入學生信息 2.錄入學生成績 3.修改學生成績\n"); printf("4.查詢學生成績 5.不及格科目及名單 6.按班級輸出學生成績單\n"); printf("請輸入你要實現的功能所對應的數字:"); scanf("%d",&xuanxiang); system("cls"); getchar(); switch (xuanxiang) { case 1:input(); case 2:inputsc(); case 3:alter(); /*case 4:select score(); case 5:bujigekemujimingdan();*/ case 6:scbybanji; } } void input() { int i; printf("請輸入你的學院名稱:"); gets(x); printf("請輸入你的專業名稱:"); gets(y); printf("請輸入你的班級號:"); scanf("%d",&z); printf("請輸入你們一個班有幾個人:"); scanf("%d",&p); system("cls"); for(i=0;i<p;i++) { printf("請輸入第%d個學生的學號:",i+1); scanf("%d",xuehao[i]); getchar(); printf("請輸入第%d個學生的姓名:",i+1); gets(xm[i]); system("cls"); } printf("您已經錄入完畢您的班級所有學生的信息!\n"); printf("您的班級為%s%s%s\n",x,y,z); /*alter(p);*/ } void inputsc() { int i; for(i=0;i<p;i++) { printf("\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t錄入學生的成績\n\n\n"); printf("--------------------------------------------------------------------------------\n\n"); printf("\t\t\t\t%s\n",xm[i]); printf("\n"); printf("\t\t\t\t數學:"); scanf("%d",&shuxue[i]); printf("\n"); getchar(); printf("\t\t\t\t英語:"); scanf("%d",&yingyu[i]); printf("\n"); getchar(); printf("\t\t\t\tc語言:"); scanf("%d",&c[i]); system("cls"); } } void alter() { int i;/*循環變量*/ int m[10000];/*要查詢的學號*/ int b;/*修改后的成績*/ char kemu[20]=""; printf("請輸入你要修改的學生的學號"); scanf("%d",&m); for (i=0;i<p;i++) { if (m==xuehao[i]) { printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]"); printf("請輸入你想修改的科目");} } gets(kemu); getchar(); if (kemu=="數學"); { scanf("%d",&b); shuxue[i]=b;} if (kemu=="英語"); { scanf("%d",&b); yingyu[i]=b;} if (kemu=="c語言"); { scanf("%d",&b); c[i]=b; } printf("%s的數學成績為%d,英語成績為%d,c語言成績為%d,xm[i],shuxue[i],yingyu[i],c[i]"); } void scbybannji() { int i; char zyname[20]; int bjnumber; printf("請輸入你的專業名稱"); scanf("%s",&zyname); printf("請輸入你的班級號"); scanf("%d",&bjnumber); for (i=0;i<p;i++) { if (zyname==y[i]); if (bjnumber==z[i]); printf("專業名稱%s班級號%d數學成績%d英語成績%dc語言成績%d,y[i],z[i],shuxue[i],yingyu[i],c[i]"); } }
標簽: c語言
上傳時間: 2018-06-08
上傳用戶:2369043090
1.1 概述本章首先介紹客戶-服務器事務概念。我們從使用 U D P的客戶-服務器應用開始,這是最簡單的情形。接著我們編寫使用 T C P的客戶和服務器程序,并由此考察兩臺主機間交互的T C P / I P分組。然后我們使用T / T C P,證明利用T / T C P可以減少分組數,并給出為利用 T / T C P需要對兩端的源代碼所做的最少改動。接下來介紹了運行書中示例程序的測試網絡,并對分別使用 U D P、T C P和T / T C P的客戶-服務器應用程序進行了簡單的時間耗費比較。我們考察了一些使用 T C P的典型I n t e r n e t應用程序,看看如果兩端都支持 T / T C P,將需要做哪些修改。緊接著,簡要介紹了 I n t e r n e t協議族中事務協議的發展歷史,概略敘述了現有的 T / T C P實現。本書全文以及有關T / T C P的文獻中,事務一詞的含義都是指客戶向服務器發出一個請求,然后服務器對該請求作出應答。 I n t e r n e t中最常見的一個例子是,客戶向域名服務器 ( D N S )發出請求,查詢域名對應的 I P地址,然后域名服務器給出響應。本書中的事務這個術語并沒有數據庫中的事務那樣的含義:加鎖、兩步提交、回退,等等。TCP IP詳解 卷1協議 :http://dl.21ic.com/download/tcpip-288223.html TCP IP詳解 卷2實現 :http://dl.21ic.com/download/tcpip-288224.html TCPIP詳解卷三:TCP事務協議,HTTP,NNTP和UNIX域協議 :http://dl.21ic.com/download/tcpip-288225.html
上傳時間: 2022-07-27
上傳用戶:
1.1 引言很多不同的廠家生產各種型號的計算機,它們運行完全不同的操作系統,但 T C P / I P協議族允許它們互相進行通信。這一點很讓人感到吃驚,因為它的作用已遠遠超出了起初的設想。T C P / I P起源于6 0年代末美國政府資助的一個分組交換網絡研究項目,到 9 0年代已發展成為計算機之間最常應用的組網形式。它是一個真正的開放系統,因為協議族的定義及其多種實現可以不用花錢或花很少的錢就可以公開地得到。它成為被稱作“全球互聯網”或“因特網( I n t e r n e t )”的基礎,該廣域網(WA N)已包含超過1 0 0萬臺遍布世界各地的計算機。本章主要對T C P / I P協議族進行概述,其目的是為本書其余章節提供充分的背景知識。如果讀者要從歷史的角度了解有關T C P / I P的早期發展情況,請參考文獻[ Lynch 1993]。TCP IP詳解 卷1協議 :http://dl.21ic.com/download/tcpip-288223.html TCP IP詳解 卷2實現 :http://dl.21ic.com/download/tcpip-288224.html TCPIP詳解卷三:TCP事務協議,HTTP,NNTP和UNIX域協議 :http://dl.21ic.com/download/tcpip-288225.html
標簽: tcp-ip
上傳時間: 2022-07-27
上傳用戶:
第1章 引 言產業界人士和觀察家(甚至包括那些經過多年外層空間旅行剛剛返回這個世界的人)都已經很清楚,因特網( I n t e r n e t)發展所達到的地位和其所產生的現象都不同于本世紀或上世紀所提出的任何一種技術。 I n t e r n e t的延伸和影響范圍、有關 I n t e r n e t 出版物、以及包括美國在線(A O L)、美國電報電話公司( AT & T)和微軟公司等I n t e r n e t產業界的大量風險投資者,這一切都會使我們有一種紛繁迷亂的感覺。所有這些都是通過這樣或那樣的方式與 I n t e r n e t連接起來。I n t e r n e t也是Joe Sixpack和Fortune 1000這樣的網站每天都關心、考慮和使用的唯一技術。或許I n t e r n e t是世界上少有的幾個能夠以相同的平等程度來對待每一個用戶的實體組織之一。一個企業的首席執行官( C E O)如果想給公司提供更好的網絡服務保證,他必須建立一個專用網絡。而在I n t e r n e t中,每一個人對網絡的訪問都是平等的。I n t e r n e t的發展并沒有損害到那些在過去 1 5 0年中所發展起來的其他技術。的確,電話技術是相當重要的,它可以使我們能夠在雙方不見面的情況下通過聲音與線路另一端的人通話。同樣,汽車也改變了我們的生活,汽車的出現能夠使我們在一天之內跨越更大的距離,而這個距離要比任何其他動物多出一個數量級。電燈、無線電和電視都曾經是改善我們日常生活的十分重要的技術,擴展了我們在非睡眠狀態的時間,向我們傳播各種信息,使我們享受更多的娛樂。我們已經在很大程度上解決了生存問題。大多數人的飯桌上有足夠的食品、有溫暖的住所,并且都有一個工作場所,可以每天早出晚歸地工作。我們也可以不必被動地接收各種電視節目,而可以輕松地使用遙控器選擇欣賞自己喜愛的頻道。I n t e r n e t除了有把事情變得更好的能力外,也可能會把事情搞得更糟。在好的一方面,I n t e r n e t能夠使我們在世界范圍同人們進行對等通信;使我們能夠訪問那些存儲在數以百萬計的網絡計算機上的幾乎無限的大量信息。一些功能強大的搜索引擎能夠使我們更加簡單和迅速地實現對有用、有意義的信息資源的定位。不同階段的商務活動,包括從最初的偶然興趣直到成熟的采購定單等,都可以在 I n t e r n e t上完成。甚至于許多人已經開始幻想在將來的某天,I n t e r n e t能使我們不再需要每天早起去上班了。人們可以靠在枕頭上使用一臺膝上型計算機(或許將來可能出現的任何先進的計算機)通過撥接 I n t e r n e t對所有的商務活動和某些消遣娛樂進行管理和維護。在不利的一方面,I n t e r n e t也可能使我們成為有電子怪癖的人,使我們缺乏與其他人進行直接交流的能力。人們僅有的非睡眠時間都將被耗費在計算機的熒光屏前,不停地鍵入I n t e r n e t地址(U R L)或指向其他的超級鏈接。最令人不安的是,由于“等待回應( W F R E,waiting for reply)”而浪費的時間是不可挽回的。 W F R E現象的出現是由于I n t e r n e t上太擁塞、太慢,以至于你的瀏覽器似乎進入了一個永久“等待回應”的狀態。有時候它只是幾秒鐘的問題;另一些情況下可能是幾分鐘。你在 W F R E狀態下盯著計算機熒光屏等待所花費的時間第一部分 概 述是相當大的,這些時間的總和可能會是一個令人吃驚的數字,其數量級或許是幾個月甚至幾年。我們所討論的要點在于:1) Internet已經經歷了巨大的增長過程,并且這種增長將會繼續。2) 不論是居民用戶或者是團體用戶, I n t e r n e t都受到了同等的歡迎。對于后者, I n t e r n e t還意味著新的收入增長點。3) 一些實力很強并且有創造力的產業巨頭正在致力于 I n t e r n e t的應用,以便為其企業自身及其消費者提供有利條件。無庸置疑,不論是偶爾對 I n t e r n e t的臨時使用還是正式規范地應用I n t e r n e t,都將導致對I n t e r n e t更多的興趣和廣告宣傳。與此同時,也將伴隨著 I n t e r n e t應用和及其流量的成比例的增長。4) 目前I n t e r n e t的帶寬和容量還是缺乏的,這導致了 I n t e r n e t上不穩定的響應時間和不可預知的性能。同時產生的問題是, I n t e r n e t是否有能力支持未來的、高帶寬需求的、時延敏感的應用?或者說I n t e r n e t是否有能力支持居民對帶寬容量的適度增長的需求?我們是如何進入了這樣一個不穩定的狀態呢?這個問題有若干答案,但其中沒有一個是真正有權威性的解釋,或許還有一些是可以根本不考慮的。首先, I n t e r n e t是其自身成功的一個受害者。每一天都有新的用戶加入到 I n t e r n e t中,越來越多的人不停地使用瀏覽器通過一個We b站點搜尋他們所感興趣的下一個 We b站點。由于訪問 I n t e r n e t的價格僅是電話的市話費用附加一個適度的費率,因此并沒有一個價格上的保護手段來防止某些瀏覽者對 I n t e r n e t資源的長時間占用。另一種資源的缺乏不一定是由于網絡資源的不足引起的,而更大程度上是由于服務器的資源不足造成的。對某些服務器或服務器陣列來說,突發性的連接請求所引起的負荷和突發的頻度可能大大超過了這些服務器的處理能力。這種突發的大量的連接請求一般發生在大量的客戶試圖同時訪問同一個 We b服務器的時候。這個問題可以被認為是一個臨時性的問題,因為服務器的供應商通常會不斷地提供新型的內容服務器主機、負載平衡器、 We b緩存器等來使該問題得到緩解 。另一個問題是某些鏈路可能正好沒有足夠的帶寬來支持業務所提供的流量負荷。這個問題的部分解決方案當然是增加更多的帶寬;一些新的技術,如波分復用( W D M)技術,似乎可以為用戶提供幾乎無限的帶寬。所有這些我們上述所討論的問題都是造成 I n t e r n e t及I n t r a n e t(I n t r a n e t是I n t e r n e t在企業范圍內的一個著名的復制品)性能極其不穩定的重要因素。在這些問題中,有很多都已經被研究清楚了;雖然其中有些諸如價格等問題是不可能在一夜之間得到解決的,但是我們至少已經知道解決方案是存在的,并且可以在不久的將來得到應用。然而,有關I n t e r n e t性能和基于I P協議進行網絡互連的最基本問題,很大程度上還在于基本 I P路由轉發處理過程和該功能的實現平臺。
標簽: ip交換技術
上傳時間: 2022-07-27
上傳用戶:fliang
N 串口調試工具.rar
上傳時間: 2013-07-24
上傳用戶:eeworm
VTS(VisuaI Test Shelf) V3.4.7的源代碼。VTS是美國國家聯邦實驗室N.I.S.T.所開發的BACnet協議下的報文的測試工具。BACnet(A Data Communication Protocol for Building Automation and Control Network)是由美國采暖、制冷和空調工程師協會制定的開放樓宇自動控制網絡數據通信協議。
標簽: BACnet N.I.S.T. VTS Communica
上傳時間: 2014-10-12
上傳用戶:壞天使kk
dsp hư ớ ng dẫ n giao tiế p LCD code viế t bằ ng C
上傳時間: 2017-06-17
上傳用戶:xuanjie
dsp từ cơ bả n đ ế n nâ ng cao 1
上傳時間: 2014-12-05
上傳用戶:watch100
LinQ SQL TẤ N CÔ NG KIỂ U SQL INJECTION - TÁ C HẠ I VÀ PHÒ NG TRÁ NH
上傳時間: 2013-12-15
上傳用戶:eclipse