課程設計數據
A. 誰有機械設計課程設計的原始數據急急
機械設計課程設計zdd-2-c我給你都搞定。
B. 數據結構課程設計
#include "stdio.h"
#include "time.h"
#define MAXNUM 5 //停車場車位數
#define PRICE 2.0 //每小時收費
typedef struct car //定義車的結構體
{
char num[10]; //車牌號(最多10個位元組)
struct tm intime; //進入時間
struct tm outtime; //離開時間
int expense; //費用
int length; //停車時長
int position; //停車位
}CAR;
typedef struct //棧結構
{
CAR car[MAXNUM]; //車輛信息
int top; //棧頂指針
} SeqStack;
void StackInit(SeqStack * s) //初始化棧
{
s->top = -1;
}
int StackIsEmpty(SeqStack * s) //判斷棧是否為空
{
if (s->top == -1)
return 1;
else
return 0;
}
int StackIsFull(SeqStack *s) //判斷棧是否為滿
{
if (s->top == MAXNUM - 1)
return 1;
else
return 0;
}
void StackPush(SeqStack *s, CAR car) // 進棧
{
if (!StackIsFull(s)) //若棧未滿
{
s->top++; //修改棧頂指針
s->car[s->top] = car; //將車輛信息入棧
}
}
CAR StackPop(SeqStack *s) //出棧
{
CAR car;
if (s->top != -1) //棧不為空
{
car = s->car[s->top];
s->top--;
return car;
}
}
CAR StackGetTop(SeqStack * s) //取棧頂元素
{
CAR car;
if (s->top != -1)
{
car = s->car[s->top];
return car;
}
}
//隊列鏈表
typedef struct carnode //定義鏈隊列的節點
{
CAR data;
struct carnode *next;
}CarNodeType;
typedef struct //鏈隊列
{
CarNodeType *head; //頭指針
CarNodeType *rear; //尾指針
}CarChainQueue;
void ChainQueueInit(CarChainQueue * q) //初始化鏈隊列接點性質
{
if(!(q->head = (CarNodeType *) malloc(sizeof(CarNodeType))))
{
printf("內存分配失敗!\n");
exit(0);
}
q->rear = q->head; //頭尾指針相同
q->head->next = NULL; //頭尾指針後下一個節點為空
q->rear->next = NULL;
}
void ChainQueueIn(CarChainQueue * q, CAR car) //入隊列
{
CarNodeType *p;
if(!(p = (CarNodeType *) malloc(sizeof(CarNodeType))))
{
printf("內存分配失敗!\n");
exit(0);
}
p->data = car;
p->next = NULL;
q->rear->next = p;
q->rear = p;
}
CAR ChainQueueOut(CarChainQueue * q) //出隊列
{
CarNodeType *p;
CAR car;
if (q->head != q->rear)
{
p = q->head->next;
if (p->next == NULL)
{
car = p->data;
q->rear = q->head;
free(p);
} else
{
q->head->next = p->next;
car = p->data;
free(p);
}
return car;
}
}
int ChainQueueIsEmpty(CarChainQueue * q) //判斷鏈隊列是否為空
{
if (q->rear == q->head) //若隊首等於列尾
return 1; //返回空
else
return 0; //返回非空
}
void separator(int n,char ch,char newline) //輸出多個字元
{
int i;
for(i=0;i<n;i++)
printf("%c",ch);
if(newline==1)
printf("\n");
}
void PrintDate(struct tm gm_date)
{
printf("%d/%d %02d:%02d:%02d\n", gm_date.tm_mon,gm_date.tm_mday,gm_date.tm_hour+8, gm_date.tm_min, gm_date.tm_sec);
}
void ShowPark(SeqStack *s) //查看車位狀態
{
int i;
struct tm gm_date;
printf("\n車位使用情況\n");
separator(40,'_',1);
if (StackIsEmpty(s)) //若棧是空
printf("停車場內已沒有車輛!\n");
else
{
printf("位置\t車牌號\t進站時間\n");
for (i = 0; i <= s->top; i++)
{
printf("%d\t", s->car[i].position);
printf("%s\t", s->car[i].num);
PrintDate(s->car[i].intime); //輸出日期
}
printf("\t\t\t共%d輛", s->top + 1);
if (s->top == MAXNUM - 1)
printf("(已滿)\n");
else
printf("(還可停放放%d輛)\n", MAXNUM - 1 - s->top);
printf("\n");
}
separator(40,'_',1);
}
void ShowAisle(CarChainQueue * q)//顯示過道上車輛的情況
{
if (!ChainQueueIsEmpty(q)) //若隊列不為空
{
CarNodeType *p;
p = q->head->next; //隊列中的第1輛車
printf("\n\n過道使用情況\n");
separator(30,'_',1);
printf("車牌\t進入時間\n");
while (p!= NULL) //隊列不為空
{
printf("%s\t", p->data.num);
PrintDate(p->data.intime);; //顯示該輛車的信息
p = p->next; //下一輛
}
} else
printf("\n過道上沒有車在等待\n");
separator(30,'_',1);
printf("\n\n");
}
void ShowAll(SeqStack *s, CarChainQueue *q) //查看車位和過道使用情況
{
ShowPark(s); //顯示車位使用情況
ShowAisle(q); //顯示過道使用情況
}
void InPark(SeqStack * s, CarChainQueue * q) //車輛進入停車場
{
CAR car;
struct tm *gm_date;
time_t seconds;
time(&seconds);
gm_date = gmtime(&seconds);;
printf("\n車牌號:");
scanf("%s",&car.num);
car.intime=*gm_date; //進入停車場的時間
if (!StackIsFull(s) && ChainQueueIsEmpty(q)) //如果車位未占完,且過道上沒有車
{
car.position = (s->top) + 2; //車位號
StackPush(s, car); //車輛直接進入車位
ShowPark(s); //輸出現在停車場的情況
}
else if (StackIsFull(s) || !ChainQueueIsEmpty(q)) //如果車位已滿,過道上還有車,則必須放在過道上
{
printf("提示:車位滿,只有先停放在過道中。\n");
car.position = MAXNUM;
ChainQueueIn(q, car); //停放在過道
ShowPark(s); //顯示車位的情況
ShowAisle(q); //輸出過道上的情況
}
}
void PrintRate(CAR *car) //離開時輸出費用等情況
{
printf("\n\n 賬單\n" );
separator(30,'_',1);
printf("車牌:%s\n", car->num);
printf("停車位置:%d\n", car->position);
printf("進入時間:");
PrintDate(car->intime);
printf("離開時間:");
PrintDate(car->outtime);
printf("停車時間(秒):%d\n", car->length);
printf("費用(元):%d\n", car->expense);
separator(30,'_',1);
printf("\n\n");
}
void OutPark(SeqStack *s, CarChainQueue *q) //車出站出當時過道上的情況放在過道上直接進入車站
{
struct tm *gm_date;
time_t seconds;
SeqStack p; //申請臨時放車的地方
StackInit(&p);
char nowtime[10];
int i, pos;
CAR car;
if (StackIsEmpty(s)) //如果車位中沒有車輛停放
{
printf("所有車位都為空,沒有車輛需要離開!\n");
}
else
{
printf("現在車位使用情況是:\n");
ShowPark(s); //輸出車位使用情況
printf("哪個車位的車輛要離開:");
scanf("%d", &pos);
if (pos > 0 && pos <= s->top + 1) //輸入車位號正確
{
for (i = s->top + 1; i > pos; i--) //在將pos車位之後停的車放入臨時棧,以使pos車位的車出來
{
car = StackPop(s); //出棧
car.position = car.position - 1;//修改車位號
StackPush(&p, car); //將車輛放入臨時棧
}
car = StackPop(s); //將位於pos車位的車輛出棧
time(&seconds);
gm_date = gmtime(&seconds); //獲取當前時間
car.outtime=*gm_date;//離開時間
car.length=mktime(&car.outtime)-mktime(&car.intime); //停車場中停放時間
car.expense=(car.length/3600+1)*PRICE; //費用
PrintRate(&car); //輸出車出站時的情況---進入時間,出站時間,原來位置,花的費用等
while (!StackIsEmpty(&p)) //將臨時棧中的車重新進入車位
{
car = StackPop(&p); //從臨時棧中取出一輛車
StackPush(s, car); //將車進入車位
}
while(!StackIsFull(s) && !ChainQueueIsEmpty(q)) //如果車位未滿, 且過道上還有車
{
car = ChainQueueOut(q); //將最先停在過道中的車輛進入車位
time(&seconds);
gm_date = gmtime(&seconds); //獲取當前時間
car.intime = *gm_date;//保存進入車位的時間
StackPush(s, car); //將車輛進入車位
}
}
else //車位號輸入錯誤
{
printf("車位號輸入錯誤,或該車位沒有車輛!\n");
}
}
}
int main()
{
SeqStack Park; //停車場棧
CarChainQueue Aisle; //過道鏈表
StackInit(&Park);
ChainQueueInit(&Aisle);
char choice;
do{
printf("\n\n");
separator(10,' ',0);
printf("停車場管理\n");
separator(30,'_',1);
printf("1.車輛進入\n");
printf("2.車輛離開\n");
printf("3.查看停車場情況\n");
printf("0.退出系統\n");
separator(56,'_',1);
printf("提示:本停車場有%d個車位,車位停滿後的車輛將停放在過道上。\n",MAXNUM);
printf("本停車場時計費,收費標准:%.2f元/小時,過道上不收費。\n\n",PRICE);
printf("\n選擇操作(0~3):");
fflush(stdin);
choice=getchar();
switch (choice)
{
case '1': //車輛進入
InPark(&Park,&Aisle);
break;
case '2': //車輛離開
OutPark(&Park,&Aisle);
break;
case '3':
ShowAll(&Park,&Aisle);
break;
}
}while(choice!='0');
return 0;
}
C. 課程設計數據不一樣畫出的圖差別在哪
論文常被用來進行科學研究和描述科研成果的文章。它既是探討問題進行科學研究的一種手段,又是描述科研成果進行學術交流的一種工具。
論文格式封面論文常指用來進行科學研究和描述科研成果的文章。它既是探討問題進行科學研究的一種手段,又是描述科研成果進行學術交流的一種工具。它包括學年論文、畢業論文、學位論文、科技論文、成果論文等,總稱為論文[1]。論文格式就是指進行論文寫作時的樣式要求,以及寫作標准。直觀的說,論文格式就是論文達到可公之於眾的標准樣式和內容要求。
結構
論文一般由題名、作者、摘要、關鍵詞、正文、參考文獻和附錄等部分組成,其中部分組成(例如附錄)可有可無。論文各組成的排序為:題名、作者、摘要、關鍵詞、英文題名、英文摘要、英文關鍵詞、正文、參考文獻、附錄和致謝[2]。
題目
1.題名規范
題名應簡明、具體、確切,能概括論文的特定內容,有助於選定關鍵詞,符合編制題錄、索引和檢索的有關原則。
2.命題方式
簡明扼要,提綱挈領。
3.英文題名方法
①英文題名以短語為主要形式,尤以名詞短語最常見,即題名基本上由一個或幾個名詞加上其前置和(或)後置定語構成;短語型題名要確定好中心詞,再進行前後修飾。各個詞的順序很重要,詞序不當,會導致表達不準。
②一般不要用陳述句,因為題名主要起標示作用,而陳述句容易使題名具有判斷式的語義,且不夠精煉和醒目。少數情況(評述性、綜述性和駁斥性)下可以用疑問句做題名,因為疑問句有探討性語氣,易引起讀者興趣。
③同一篇論文的英文題名與中文題名內容上應一致,但不等於說詞語要一一對應。在許多情況下,個別非實質性的詞可以省略或變動。
④國外科技期刊一般對題名字數有所限制,有的規定題名不超過2行,每行不超過42個印刷符號和空格;有的要求題名不超過14個詞。這些規定可供我們參考。
⑤在論文的英文題名中。凡可用可不用的冠詞均不用。
D. 大數據能做什麼簡單的課程設計
大數據(big data),指無法在一定時間范圍內用常規軟體工具進行捕捉、管理和處理的數據集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的信息資產。大數據的5V特點(IBM提出):Volume(大量)、Velocity(高速)、Variety(多樣)、Value(低價值密度)、Veracity(真實性),平台有hadoop
E. 數據結構課程設計的需求分析怎麼寫
一 需求分析:
在該部分中根據設計題目的要求,充分地分析和理解問題,敘述系統的功能要求,明確問題要求做什麼?以及限制條件是什麼?
1.1問題描述
1.2基本要求
(1) 輸入的形式和輸入值的范圍;
(2) 輸出的形式;
(3) 程序所能達到的功能;
二 概要設計
說明本程序中用到的所有抽象數據類型的定義。主程序的流程以及各程序模塊之間的層次(調用)關系。
1、 數據結構
2、 程序模塊
3、各模塊之間的調用關系以及演算法設計
三 詳細設計
實現概要設計中定義的所有數據類型,對每個操作寫出偽碼演算法;對主程序和其他模塊也都需要寫出偽碼演算法(偽碼演算法達到的詳細程度建議為:按照偽碼演算法可以在計算機鍵盤直接輸入高級程序設計語言程序);寫出出函數和過程的調用關系.
四 測試與分析
測試數據,輸出測試的結果,這里的測試數據應該完整和嚴格。並對結果進行分析。
五 總結
總結可以包括 : 課程設計過程的收獲、遇到問題、遇到問題解決問題過程的思考、程序調試能力的思考、對數據結構這門課程的思考、在課程設計過程中對《數據結構》課程的認識等內容。
F. 機械設計課程設計
設計目的:
通過本課程設計將學過的基礎理論知識進行綜合應用,培養結構設計,計算能力,熟悉一般的機械裝置設計過程。
(二)
傳動方案的分析
機器一般是由原動機、傳動裝置和工作裝置組成。傳動裝置是用來傳遞原動機的運動和動力、變換其運動形式以滿足工作裝置的需要,是機器的重要組成部分。傳動裝置是否合理將直接影響機器的工作性能、重量和成本。合理的傳動方案除滿足工作裝置的功能外,還要求結構簡單、製造方便、成本低廉、傳動效率高和使用維護方便。
本設計中原動機為電動機,工作機為皮帶輸送機。傳動方案採用了兩級傳動,第一級傳動為帶傳動,第二級傳動為單級直齒圓柱齒輪減速器。
帶傳動承載能力較低,在傳遞相同轉矩時,結構尺寸較其他形式大,但有過載保護的優點,還可緩和沖擊和振動,故布置在傳動的高速級,以降低傳遞的轉矩,減小帶傳動的結構尺寸。
齒輪傳動的傳動效率高,適用的功率和速度范圍廣,使用壽命較長,是現代機器中應用最為廣泛的機構之一。本設計採用的是單級直齒輪傳動。
減速器的箱體採用水平剖分式結構,用HT200灰鑄鐵鑄造而成。
二、傳動系統的參數設計
原始數據:運輸帶的工作拉力F=0.2 KN;帶速V=2.0m/s;滾筒直徑D=400mm(滾筒效率為0.96)。
工作條件:預定使用壽命8年,工作為二班工作制,載荷輕。
工作環境:室內灰塵較大,環境最高溫度35°。
動力來源:電力,三相交流380/220伏。
1
、電動機選擇
(1)、電動機類型的選擇: Y系列三相非同步電動機
(2)、電動機功率選擇:
①傳動裝置的總效率:
=0.98×0.99 ×0.96×0.99×0.96
②工作機所需的輸入功率:
因為 F=0.2 KN=0.2 KN= 1908N
=FV/1000η
=1908×2/1000×0.96
=3.975KW
③電動機的輸出功率:
=3.975/0.87=4.488KW
使電動機的額定功率P =(1~1.3)P ,由查表得電動機的額定功率P = 5.5KW 。
⑶、確定電動機轉速:
計算滾筒工作轉速:
=(60×v)/(2π×D/2)
=(60×2)/(2π×0.2)
=96r/min
由推薦的傳動比合理范圍,取圓柱齒輪傳動一級減速器傳動比范圍I』 =3~6。取V帶傳動比I』 =2~4,則總傳動比理時范圍為I』 =6~24。故電動機轉速的可選范圍為n』 =(6~24)×96=576~2304r/min
⑷、確定電動機型號
根據以上計算在這個范圍內電動機的同步轉速有1000r/min和1500r/min,綜合考慮電動機和傳動裝置的情況,同時也要降低電動機的重量和成本,最終可確定同步轉速為1500r/min ,根據所需的額定功率及同步轉速確定電動機的型號為Y132S-4 ,滿載轉速 1440r/min 。
其主要性能:額定功率:5.5KW,滿載轉速1440r/min,額定轉矩2.2,質量68kg。
2
、計算總傳動比及分配各級的傳動比
(1)、總傳動比:i =1440/96=15
(2)、分配各級傳動比:
根據指導書,取齒輪i =5(單級減速器i=3~6合理)
=15/5=3
3
、運動參數及動力參數計算
⑴、計算各軸轉速(r/min)
=960r/min
=1440/3=480(r/min)
=480/5=96(r/min)
⑵計算各軸的功率(KW)
電動機的額定功率Pm=5.5KW
所以
P =5.5×0.98×0.99=4.354KW
=4.354×0.99×0.96 =4.138KW
=4.138×0.99×0.99=4.056KW
⑶計算各軸扭矩(N?mm)
TI=9550×PI/nI=9550×4.354/480=86.63N?m
=9550×4.138/96 =411.645N?m
=9550×4.056/96 =403.486N?m
三、傳動零件的設計計算
(一)齒輪傳動的設計計算
(1)選擇齒輪材料及精度等級
考慮減速器傳遞功率不大,所以齒輪採用軟齒面。小齒輪選用40Cr調質,齒面硬度為240~260HBS。大齒輪選用45#鋼,調質,齒面硬度220HBS;根據指導書選7級精度。齒面精糙度R ≤1.6~3.2μm
(2)確定有關參數和系數如下:
傳動比i
取小齒輪齒數Z =20。則大齒輪齒數:
=5×20=100
,所以取Z
實際傳動比
i =101/20=5.05
傳動比誤差:(i -i)/I=(5.05-5)/5=1%<2.5% 可用
齒數比:
u=i
取模數:m=3 ;齒頂高系數h =1;徑向間隙系數c =0.25;壓力角 =20°;
則
h *m=3,h )m=3.75
h=(2 h )m=6.75,c= c
分度圓直徑:d =×20mm=60mm
d =3×101mm=303mm
由指導書取
φ
齒寬:
b=φ =0.9×60mm=54mm
=60mm ,
b
齒頂圓直徑:d )=66,
d
齒根圓直徑:d )=52.5,
d )=295.5
基圓直徑:
d cos =56.38,
d cos =284.73
(3)計算齒輪傳動的中心矩a:
a=m/2(Z )=3/2(20+101)=181.5mm 液壓絞車≈182mm
(二)軸的設計計算
1
、輸入軸的設計計算
⑴、按扭矩初算軸徑
選用45#調質,硬度217~255HBS
根據指導書並查表,取c=110
所以 d≥110 (4.354/480) 1/3mm=22.941mm
d=22.941×(1+5%)mm=24.08mm
∴選d=25mm
⑵、軸的結構設計
①軸上零件的定位,固定和裝配
單級減速器中可將齒輪安排在箱體中央,相對兩軸承對稱分布,齒輪左面由軸肩定位,右面用套筒軸向固定,聯接以平鍵作過渡配合固定,兩軸承分別以軸肩和大筒定位,則採用過渡配合固定
②確定軸各段直徑和長度
Ⅰ段:d =25mm
, L =(1.5~3)d ,所以長度取L
∵h=2c
c=1.5mm
+2h=25+2×2×1.5=31mm
考慮齒輪端面和箱體內壁,軸承端面和箱體內壁應有一定距離。取套筒長為20mm,通過密封蓋軸段長應根據密封蓋的寬度,並考慮聯軸器和箱體外壁應有一定矩離而定,為此,取該段長為55mm,安裝齒輪段長度應比輪轂寬度小2mm,故II段長:
L =(2+20+55)=77mm
III段直徑:
初選用30207型角接觸球軸承,其內徑d為35mm,外徑D為72mm,寬度T為18.25mm.
=d=35mm,L =T=18.25mm,取L
Ⅳ段直徑:
由手冊得:c=1.5
h=2c=2×1.5=3mm
此段左面的滾動軸承的定位軸肩考慮,應便於軸承的拆卸,應按標准查取由手冊得安裝尺寸h=3.該段直徑應取:d =(35+3×2)=41mm
因此將Ⅳ段設計成階梯形,左段直徑為41mm
+2h=35+2×3=41mm
長度與右面的套筒相同,即L
Ⅴ段直徑:d =50mm. ,長度L =60mm
取L
由上述軸各段長度可算得軸支承跨距L=80mm
Ⅵ段直徑:d =41mm, L
Ⅶ段直徑:d =35mm, L <L3,取L
2
、輸出軸的設計計算
⑴、按扭矩初算軸徑
選用45#調質鋼,硬度(217~255HBS)
根據課本P235頁式(10-2),表(10-2)取c=110
=110× (2.168/76.4) =38.57mm
考慮有鍵槽,將直徑增大5%,則
d=38.57×(1+5%)mm=40.4985mm
∴取d=42mm
⑵、軸的結構設計
①軸的零件定位,固定和裝配
單級減速器中,可以將齒輪安排在箱體中央,相對兩軸承對稱分布,齒輪左面用軸肩定位,右面用套筒軸向定位,周向定位採用鍵和過渡配合,兩軸承分別以軸承肩和套筒定位,周向定位則用過渡配合或過盈配合,軸呈階狀,左軸承從左面裝入,齒輪套筒,右軸承和皮帶輪依次從右面裝入。
②確定軸的各段直徑和長度
初選30211型角接球軸承,其內徑d為55mm,外徑D=100mm,寬度T為22.755mm。考慮齒輪端面和箱體內壁,軸承端面與箱體內壁應有一定矩離,則取套筒長為20mm,則該段長42.755mm,安裝齒輪段長度為輪轂寬度為2mm。
則
d =42mm
L
= 50mm
L
= 55mm
L
= 60mm
L
= 68mm
L
=55mm
L
四、滾動軸承的選擇
1
、計算輸入軸承
選用30207型角接觸球軸承,其內徑d為35mm,外徑D為72mm,寬度T為18.25mm.
2
、計算輸出軸承
選30211型角接球軸承,其內徑d為55mm,外徑D=100mm,寬度T為22.755mm
五、鍵聯接的選擇
1
、輸出軸與帶輪聯接採用平鍵聯接
鍵的類型及其尺寸選擇:
帶輪傳動要求帶輪與軸的對中性好,故選擇C型平鍵聯接。
根據軸徑d =42mm ,L =65mm
查手冊得,選用C型平鍵,得: 卷揚機
裝配圖中22號零件選用GB1096-79系列的鍵12×56
則查得:鍵寬b=12,鍵高h=8,因軸長L =65,故取鍵長L=56
2
、輸出軸與齒輪聯接用平鍵聯接
=60mm,L
查手冊得,選用C型平鍵,得:
裝配圖中 赫格隆36號零件選用GB1096-79系列的鍵18×45
則查得:鍵寬b=18,鍵高h=11,因軸長L =53,故取鍵長L=45
3
、輸入軸與帶輪聯接採用平鍵聯接
=25mm
L
查手冊
選A型平鍵,得:
裝配圖中29號零件選用GB1096-79系列的鍵8×50
則查得:鍵寬b=8,鍵高h=7,因軸長L =62,故取鍵長L=50
4
、輸出軸與齒輪聯接用平鍵聯接
=50mm
L
查手冊
選A型平鍵,得:
裝配圖中26號零件選用GB1096-79系列的鍵14×49
則查得:鍵寬b=14,鍵高h=9,因軸長L =60,故取鍵長L=49
六、箱體、箱蓋主要尺寸計算
箱體採用水平剖分式結構,採用HT200灰鑄鐵鑄造而成。箱體主要尺寸計算如下:
七、軸承端蓋
主要尺寸計算
軸承端蓋:HT150 d3=8
n=6 b=10
八、減速器的
減速器的附件的設計
1
、擋圈 :GB886-86
查得:內徑d=55,外徑D=65,擋圈厚H=5,右肩軸直徑D1≥58
2
、油標 :M12:d =6,h=28,a=10,b=6,c=4,D=20,D
3
、角螺塞
M18
×
1.5 :JB/ZQ4450-86
九、
設計參考資料目錄
希望對你能有所幫助。
G. C語言課程設計:文件數據的處理
給的分太少拉!不過我還是幫你寫好了,你覺得好就給哥哥我多頂幾下!
首先 兩個文件:data1.txt和data2.txt 要先在當前代碼目錄建好,裡面寫相應數據進去。然後運行程序即可。
詳細代碼如下:(VC++ 6.0下編譯通過)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_BUF 1024
#define MAX_NUM 100
#define FILE1 "data1.txt"
#define FILE2 "data2.txt"
#define FILE3 "jiao.txt"
#define FILE4 "bing.txt"
#define YES 1
#define NO 0
void GetDataFromFile(int *data, char *FileName, int *DataNum)
{
int i = 0;
FILE *fp = NULL;
char buf[MAX_BUF] = {0};
char *sep = " ";
char *token = NULL;
fp = fopen(FileName, "r");
if (fp == NULL)
{
printf("Cann't open the file!\n");
exit(1);
}
while (!feof(fp))
{
fgets(buf, MAX_BUF, fp);
}
fclose(fp);
token = strtok(buf, sep);
while (token != NULL)
{
data[i] = atoi(token);
token = strtok(NULL, sep);
i++;
}
*DataNum = i;
}
int IsXInArray(int *data, int DataNum, int x)
{
int i;
for (i = 0; i < DataNum; i++)
{
if ( *(data+i) == x )
return YES;
}
return NO;
}
void Intersection(int *data1, int DataNum1,
int *data2, int DataNum2,
int *result, int *ResultNum)
{
int i, j, k = 0;
for (i = 0; i < DataNum1; i++)
{
for (j = 0; j < DataNum2; j++)
{
if ( *(data1+i) == *(data2+j)
&& IsXInArray(result, k, *(data1+i) ) == NO)
{
*(result+k) = *(data1+i);
k++;
}
}
}
*ResultNum = k;
}
void Union(int *data1, int DataNum1,
int *data2, int DataNum2,
int *result, int *ResultNum)
{
int i, j, k = 0;
for (i = 0; i < DataNum1; i++)
{
if (IsXInArray(result, k, *(data1+i) ) == NO)
{
*(result+k) = *(data1+i);
k++;
}
}
for (j = 0; j < DataNum2; j++)
{
if (IsXInArray(result, k, *(data2+j) ) == NO)
{
*(result+k) = *(data2+j);
k++;
}
}
*ResultNum = k;
}
void BubbleSort(int *data, int num)
{
int i,j;
int tmp = 0;
for (i = num-1; i >= 0; i--)
{
for (j = 0; j < i; j++)
{
if ( *(data+j) > *(data+j+1) )
{
tmp = *(data+j);
*(data+j) = *(data+j+1);
*(data+j+1) = tmp;
}
}
}
}
void WriteToFile(int *data, int DataNum, char *FileName)
{
int i;
FILE *fp = NULL;
fp = fopen(FileName, "w");
if (fp == NULL)
{
printf("Cann't open the file!\n");
exit(1);
}
for (i = 0; i < DataNum; i++)
{
fprintf(fp, "%d ", *(data+i));
}
fclose(fp);
}
int main(void)
{
int i = 0;
int DataNum1 = 0, DataNum2 = 0;
int IntersResultNum = 0, UnionResultNum = 0;
int data1[MAX_NUM] = {0};
int data2[MAX_NUM] = {0};
int IntersectionResult[MAX_NUM] = {0};
int UnionResult[MAX_NUM*2] = {0};
GetDataFromFile(data1, FILE1, &DataNum1);
GetDataFromFile(data2, FILE2, &DataNum2);
Intersection(data1, DataNum1, data2, DataNum2, IntersectionResult, &IntersResultNum);
BubbleSort(IntersectionResult, IntersResultNum);
WriteToFile(IntersectionResult, IntersResultNum, FILE3);
Union(data1, DataNum1, data2, DataNum2, UnionResult, &UnionResultNum);
BubbleSort(UnionResult, UnionResultNum);
WriteToFile(UnionResult, UnionResultNum, FILE4);
printf("\n所有操作執行完畢!\n");
return 0;
}
H. 資料庫(含課程設計)
超市管理資料庫
你的人要求不少啊
來,幫你吧。
I. 急求,數據分析的課程設計說明書
我還可以給!
J. 數據結構課程設計
#include <stdio.h>
#include <malloc.h>
#include <windows.h>
#include <time.h>
#define MAXSIZE 100
typedef struct Ttime{
int t_hour;
int t_min;
int t_sec;
}Ttime;
typedef struct Mcar{
int number;
Ttime t[2];
}Mcar;
typedef struct{
Mcar elements[MAXSIZE];
int top;
}CarStop;
typedef struct node{
Mcar date;
struct node *next;
}LinkQueue;
typedef struct{
LinkQueue *front;
LinkQueue *rear;
}Queue;
void InitQueue(Queue *Q){
Q -> front = (LinkQueue *) malloc(sizeof(LinkQueue));
Q -> front -> next = NULL;
Q -> rear = Q -> front;
}
int IsEmptyH(Queue Q){
if(Q.front == Q.rear)
return 1;
else
return 0;
}
void EeQueue(Queue *Q, Mcar x){
Q -> rear -> next = (LinkQueue *)malloc(sizeof(LinkQueue));
Q -> rear = Q -> rear -> next;
Q -> rear -> date = x;
Q -> rear -> next = NULL;
}
Mcar DeQueue(Queue *Q){
LinkQueue *p;
Mcar y;
if(!(*Q)){
p = Q -> front -> next;
Q -> front -> next = p -> next;
if(p -> next == NULL)
Q -> rear = Q -> front;
y = p -> date;
free(p);
return y;
}
}
int IsEmpty(CarStop S){
if(S.top == 0)
return 1;
else
return 0;
}
int IsFull(CarStop S){
if(S.top == MAXSIZE)
return 1;
else
return 0;
}
int Init(CarStop *S){
S -> top = 0;
}
void PutIn(CarStop *S, Mcar D){
if(!IsFull(*S)){
S -> elements[S -> top] = D;
S -> top++;
}
else
printf("IS FULL");
}
Mcar Pop(CarStop *S){
if(!IsEmpty(*S)){
S -> top--;
return S -> elements[S -> top];
}
else
printf("IS NULL");
}
Mcar TopNum(CarStop S){
if(!IsEmpty(S)){
return S.elements[S.top - 1];
}
}
int serachOneCar(CarStop S, Mcar num){
int i = 0;
if(!IsEmpty(S)){
while(i <= S.top){
if(num.number == S.elements[i].number)
return 1;
i++;
}
}
else
return 0;
}
void getInOneCar(CarStop *CarStack, Queue *Q, Mcar car){
time_t secnow;
struct tm * tmptr;
time(&secnow);
tmptr = localtime(&secnow);
car.t[0].t_hour= tmptr -> tm_hour;
car.t[0].t_min = tmptr -> tm_min;
car.t[0].t_sec = tmptr -> tm_sec;
printf("please put in you car number:\n");
scanf("%d", &car.number);
if(!IsFull(*CarStack))
PutIn(CarStack, car);
else{
printf("car stop is full, please stay in bian\n");
EeQueue(Q, car);
}
printf("you car's intime is :[%d]:[%d]:[%d]\n\n\n", car.t[0].t_hour, car.t[0].t_min, car.t[0].t_sec);
}
void getOutOneCar(CarStop *CarStack, CarStop *CarStackL, Queue *Q, Mcar car){
Mcar lin;
time_t secnow;
struct tm * tmptr;
time(&secnow);
tmptr = localtime(&secnow);
car.t[1].t_hour= tmptr -> tm_hour;
car.t[1].t_min = tmptr -> tm_min;
car.t[1].t_sec = tmptr -> tm_sec;
printf("please put in you car number:\n");
scanf("%d", &car.number);
if(IsEmpty(*CarStack) || !serachOneCar(*CarStack, car))
printf("soory, there is no the car\n");
else{
while(1){
lin = Pop(CarStack);
if(lin.number == car.number)
break;
else
PutIn(CarStackL, lin);
}
while(!IsEmpty(*CarStackL)){
PutIn(CarStack, Pop(CarStackL));
}
if(!IsEmptyH(*Q))
PutIn(CarStack, DeQueue(Q));
printf("\n\nyou car's intime is :[%d]:[%d]:[%d]\n", lin.t[0].t_hour, lin.t[0].t_min, lin.t[0].t_sec);
printf("you car's out time is :[%d]:[%d]:[%d]\n", car.t[1].t_hour, car.t[1].t_min, car.t[1].t_sec);
int alltime = (car.t[1].t_hour - lin.t[0].t_hour) * 3600 + (car.t[1].t_min - lin.t[0].t_min) * 60 + (car.t[1].t_sec - lin.t[0].t_sec);
printf("you car's all time is second:[%d]\n", alltime);
}
}
int main(){
CarStop CarStack, CarStackL;
Queue Q;
LinkQueue *pp;
InitQueue(&Q);
Init(&CarStack);
Init(&CarStackL);
Mcar car;
//String caozuo;
int caozuo, i, j;
while(1){
printf("\t**************the car stop menu*************\n");
printf("\t\t***** 1. get in a car\n\n");
printf("\t\t***** 2. get out a car\n\n");
printf("\t\t***** 0. out the car stop\n\n");
printf("\t\t*****put in the else you can see all the car in the carstop\n\n");
printf("\t*****************************************\n");
printf("please put in you caozuo: \n");
scanf("%d", &caozuo);
switch(caozuo){
case 1: getInOneCar(&CarStack, &Q, car);
break;
case 2: getOutOneCar(&CarStack, &CarStackL, &Q, car);
break;
case 0: return 0; break;
default : break;
}
if(!IsEmpty(CarStack)){
i = 0;
printf("the all car is:\n");
while(i < CarStack.top){
printf("the [%d] is %d\n",i + 1, CarStack.elements[i].number);
i++;
}
}
else
printf("the car stop IS NULL\n");
printf("****************************\n");
if(!IsEmptyH(Q)){
j = 1;
pp=Q.front;
printf("the bian's car is:\n");
while(pp!=Q.rear){
printf("the [%d] wait car is %d\n", j, pp -> next -> date.number);
pp = pp -> next;
j++;
}
}
else
printf("the bian is NULL\n");
printf("****************************\n");
system("pause");
system("cls");
}
}
C語言編譯通過