機械社區
標題: C語言編寫的切削速度計算程序 [打印本頁]
作者: sniper2006 時間: 2012-1-11 21:33
標題: C語言編寫的切削速度計算程序
本帖最后由 sniper2006 于 2012-1-11 21:52 編輯
+ q! `1 B7 i1 c1 }
' A6 b# V7 q" zC語言編寫的切削速度計算程序
3 b8 u( M2 G8 U6 H7 ~! Z
" U0 t) X% o6 w- c! `一、源代碼(程序還有bug,希望有知道的能夠改進)
1 v% H0 U0 f' u9 u3 A) _: c) Y
% ~7 H9 ?$ F/ F6 z" [$ s2 L
. S7 C/ W( p! Q$ M d6 o/ y4 f- w
復制代碼
9 L7 O* i/ R+ N* P" [. t: P. p$ P- M- y; C3 u
- //切削速度計算工具. p& P3 @' _# x
- //本程序由丁其編寫4 C4 A: G0 c4 o& g& a& i
- //date:2012-01-11
0 h: s+ ~ a( N - #include<stdio.h>
8 `7 J" J9 L3 Y - #include<conio.h>( [9 y; O& x0 H! C; m0 ^
- main()5 d/ r. ?/ T+ o. F9 l' x
- {
3 ?. M& z! M6 u# {! d - float d,v;& W; o5 h3 S$ g# `/ w
- int s,i=1;
2 N" W2 W; x* ~8 e! Y- H, Y - while(i)/ W7 g+ j0 y7 X3 x- P
- {2 i" l, `' f4 s* N( I9 ~7 h" N2 E
- printf("請輸入工件的直徑,單位毫米:\a");
9 n8 r: E) H0 P - if(scanf("%f",&d) && d >= 0) //判斷數據輸入的合法性
! s) n/ e- C2 B. |, n P' n! v! B - {& ~7 w! d1 V' [7 d0 M
- i = 0; //數據輸入正確,賦值為0,退出循環 # @1 P1 B5 O7 |+ v6 Z
- fflush(stdin);7 ]' \* n, X( k, N. J
- }
+ {; ?* _6 w- u. H1 j+ S2 [ - else" r) W% G q p! N i5 W' R6 V9 A# N
- {
2 y7 ^: n i5 U! Z& j: S - printf("\n");
% E7 }- U$ ]: {3 X( G" l% C - printf("你輸入的直徑錯誤,請重新輸入!\n\a");
( X6 `: A& [. v1 e0 c1 B: k7 u - printf("\n");
6 X8 x0 A! h7 g: V( h& L; s - fflush(stdin);
5 g2 y, P1 A! g8 z: _ - } . ~ r" s" H& ^8 q& i1 p8 c9 ?+ M
- }
* J: |8 i2 S! B( g! D8 g, P - printf("\n");
+ z* c! T3 O( l7 C e7 d+ R$ m N5 f - i = 1; //循環開關重新賦值為1 8 ]/ w0 p3 @! e# Y' h5 N
- while(i)
8 o' j8 s% o& e. ^& W - {. A& o& ~2 E; I& z$ u0 c- s+ T
- printf("請輸入主軸轉速:\a");" W! t, |# a: O
- if(scanf("%d",&s) && s >= 0) //判斷數據輸入的合法性
" J3 ~2 q7 S4 c5 e - {$ ^0 v: t! a& g6 C
- i = 0; //數據輸入正確,賦值為0,退出循環 , T) B6 A9 B. Q
- fflush(stdin);
n$ @" t% Z! e) u/ m5 X - }( q+ f- o7 q/ C
- else
* q* N6 L& }' o2 H2 m, o1 |3 c - {
% \- \8 Y2 w/ E4 ^6 l - printf("\n");
0 I, X: c! \( o7 \* s4 ~ - printf("你輸入的轉速錯誤,請重新輸入!\n\a");, g7 I6 y& `2 n5 j% i: B# ]
- printf("\n");
0 _2 C! _4 `6 C3 f! A l - fflush(stdin);
& A3 o* e# l8 Y \ - }
1 _: G6 j, L3 K! ]% p9 i - }
' c/ \; D4 r7 V - printf("\n");7 n* j( v' H {: j1 m
- printf("直徑D=%0.3f 轉速S=%d 切削速度V=%0.2f米/分\n\a",d,s,v=(3.14*d*s/1000));
4 t2 I; N+ W2 U; }9 l+ N' ` - _getch();, u& a% N7 V. K$ O
- return(0);
8 ^7 U; ?+ n/ F" w/ x$ r - }4 J# e) \0 A C' o& k2 n1 A( Q) G
-
復制代碼
( Q* ~0 ^0 e( u" Cbug就是當你輸入直徑80df時,不會提示數據錯誤,會把直徑當成是80,轉速那里也是同樣的bug,有知道原因的聯系我,謝謝 o& }7 L/ e! A- D+ N( S
附:下載完后將后綴名rar修改為exe就可以,編譯后的程序[attach]237843[/attach]
; S. f6 B: X" p8 e: {1 P* k# K! |" C' F4 a: S* Z
[attach]237843[/attach][attach]237843[/attach][attach]237851[/attach]
% k7 K9 C+ `* F E+ c/ Z
# q) {0 P# i; @5 N$ T7 i$ z9 T
& E' N- M5 k6 s8 i- @- T3 l
9 ], Y, f. r$ _% {8 a. n) p/ y$ y8 w: a
+ \( z3 t, D) B, [2 u8 c
補充內容 (2012-1-14 00:23):1 v& |; x# ~" J5 ^/ y
改進版的程序在22樓,能夠實現按 “1”計算,按其他鍵退出的功能,歡迎大家測試,并且提出意見,程序版本號為Beta1.0版本,同時源代碼也一同貼上……
作者: 624482747 時間: 2012-1-11 21:54
這你都會,為何不去做IT呢,你會solidworks軟件的二次開發嗎?我想學學
作者: sniper2006 時間: 2012-1-11 21:57
624482747 發表于 2012-1-11 21:54
0 j" X0 p8 x' K# ^4 H }
這你都會,為何不去做IT呢,你會solidworks軟件的二次開發嗎?我想學學
5 y! J+ ^0 A6 }- t$ y! c; [這都是很簡單的程序,就我現在的水平,做IT上不了臺面啊……$ P; X% ?+ n. d
作者: xixihaha568 時間: 2012-1-11 22:32
我不懂 不過我知道 樓主如果這個軟件搞好了 真的很棒哦!
作者: jiangssli 時間: 2012-1-12 08:01
樓主真有才!!呵呵!!不知道樓主會不會開發大型的軟件呢?
作者: oleg0007 時間: 2012-1-12 10:29
fflush這個是哪里的庫函數?用來做什么?
作者: sniper2006 時間: 2012-1-12 12:08
oleg0007 發表于 2012-1-12 10:29 
: x) T/ u* k8 Kfflush這個是哪里的庫函數?用來做什么?
9 k3 t9 h8 w. j+ U& a
fflush函數是清楚緩存,不清除緩存里的數據話,會陷入死循環,包含在標準庫里- i0 L: m7 R8 X9 G5 X& V; y. \, f/ T0 @
作者: sniper2006 時間: 2012-1-12 12:39
jiangssli 發表于 2012-1-12 08:01
) ?; n. L s: m7 P8 J' L9 R
樓主真有才!!呵呵!!不知道樓主會不會開發大型的軟件呢?
0 {( w; X) h# f. m( u1 N5 d) C! }: }我學的專業是數控技術不是計算機,大型軟件現在還搞不定,現在只能弄一些簡單的程序
! T& A. y/ l' {, C; O9 v8 R' n
作者: 小螞蟻253 時間: 2012-1-12 15:49
機械行業 軟件編程懂得最多 軟件行業 機械了解最廣
作者: 真的很蛋疼 時間: 2012-1-12 20:11
{:soso_e107:} 我覺得不用這么復雜吧,3.14X直徑X轉速=(mm/min)
作者: sniper2006 時間: 2012-1-12 20:14
真的很蛋疼 發表于 2012-1-12 20:11
/ n+ Q2 ^0 c7 D( `! T0 h
我覺得不用這么復雜吧,3.14X直徑X轉速=(mm/min)
% F- O9 B, B6 }6 [0 k, b
是很簡單啊,有時候選批量刀具切削速度計算的時候就用的著,人類就是為了投懶發明了洗衣機 洗碗機,文明就是在偷懶的天性下不斷進步的……
, T) i, _3 i. S5 G( {
作者: 真的很蛋疼 時間: 2012-1-12 20:19
sniper2006 發表于 2012-1-12 20:14
2 X. |& W* B8 @+ l: X
是很簡單啊,有時候選批量刀具切削速度計算的時候就用的著,人類就是為了投懶發明了洗衣機 洗碗機,文明就 ...
& x. n. L( @1 g% @8 ]/ x" Z
是得,以前我也沒注意到切削速度這個問題 轉速進給打多少完全憑著感覺來,以前在浙江那邊做小五金件,直徑一般都在30一下 我們都是1000到1500之間,現在我回老家工作了。270的直徑 轉速220 剛開始還沒覺得什么,后來算一下切削速度這個問題 發現其實跟在浙江那邊快了很多
/ v; m5 s1 _+ c+ r
作者: sniper2006 時間: 2012-1-12 20:24
真的很蛋疼 發表于 2012-1-12 20:19
0 I# f: N+ w9 Z; o% n. S4 b
是得,以前我也沒注意到切削速度這個問題 轉速進給打多少完全憑著感覺來,以前在浙江那邊做小五金件,直 ...
, T8 y- L5 i8 `3 \1 w
尤其是對現在可轉位機加刀買回來的時候,盒子上一般都有切削速度,根據那個,自己計算下轉速可以最大的發揮機加刀的效率……
1 N/ a! i/ J: C# o) K
作者: lukexc 時間: 2012-1-12 21:30
這個是scanf();函數的特點。因為它是讀取緩沖區的,當讀到數字時結束。
# ~4 Q5 C8 y( s0 S5 p所以這種BUG,可以先用"%s"讀取,然后判斷這個字符串中有無除'0' ~ '9'以外的字符,然后做出然后選擇!6 S) l- e$ O# L/ d4 s
當然我覺得這樣也好!輸錯了也可以計算!
5 j/ Z) D' H9 x
作者: lukexc 時間: 2012-1-12 22:34
[attach]237946[/attach]
1 E V. C( R( _2 c[attach]237947[/attach]
7 a9 g+ v4 M2 U+ e0 z+ ^雖然同樣存在BUG,但是可以重復的算不同的數值,隨時可以退出!" u8 f& l# s! R. a& u, x# D3 B
作者: jiangssli 時間: 2012-1-13 08:08
lukexc 發表于 2012-1-12 22:34
/ W7 o( l1 v! L
雖然同樣存在BUG,但是可以重復的算不同的數值,隨時可以退出!
6 K `; w& Y9 M, C; s原來這位GG也是C語言高手啊!!厲害!!!
作者: lukexc 時間: 2012-1-13 09:48
jiangssli 發表于 2012-1-13 08:08
& H! z4 @# }, e* h2 A8 O! g; y: B7 I
原來這位GG也是C語言高手啊!!厲害!!!
( E5 P; x( g7 g( y& c; ~' {4 Z+ s- O哈哈,讓一生大師見笑了!
作者: jiangssli 時間: 2012-1-13 10:52
lukexc 發表于 2012-1-13 09:48 
/ j' x/ x5 I. s# H' D1 L8 R) k! n哈哈,讓一生大師見笑了!
$ v6 }, ]" j, U) e
首先聲明一點,我們要笑話你的意思!!我對于C語言是一點也不懂的!!不知道你會不會PLC?如果會的話,也許我們可以有機會合作呢...
作者: sniper2006 時間: 2012-1-13 17:05
lukexc 發表于 2012-1-12 22:34
' x. U/ w5 e4 Y6 H$ Z
雖然同樣存在BUG,但是可以重復的算不同的數值,隨時可以退出!
9 @* o' D) a5 E/ C: G' P+ h6 H, w
嘿嘿,你用的是goto啊,等下晚上回來我發個不用goto的,也能夠夠重復計算. ?& j. G1 A( z
作者: lukexc 時間: 2012-1-13 17:30
sniper2006 發表于 2012-1-13 17:05 
4 L' F9 [7 H' A5 [嘿嘿,你用的是goto啊,等下晚上回來我發個不用goto的,也能夠夠重復計算
8 E- H/ y/ T9 L6 W5 P哈哈!
, h* F% M7 i) X5 d! ?期待你的方法,雖然方法很多!" @& [2 H- _% g9 e
作者: sniper2006 時間: 2012-1-14 00:20
本帖最后由 sniper2006 于 2012-1-14 00:44 編輯 ; r: \$ e4 _% L
lukexc 發表于 2012-1-13 17:30 
9 l. g: n+ N4 @8 v0 K( ^5 H$ l哈哈!
( A1 r8 x1 H6 Z; u# x. w期待你的方法,雖然方法很多!
2 x3 |+ q3 {4 r0 b我也發給改進版的能夠控制退出并且繼續計算的,貼上源代碼和截圖; s8 ^: r0 E* `; P1 |8 ?/ \
- //切削速度計算工具
% Q7 h& d( i# W- L) u/ S: h2 z - //本程序由丁其編寫
w% y: G8 V( J- v* i - //date:2012-01-13
3 w, ]$ a% {2 Y8 } - //Version:1.0Beta
3 [2 Y7 S, X0 c0 @& G/ _ - #include<stdio.h>' c1 o; K! A* g% O" ~) X
- #include<stdlib.h>
1 D+ y+ E* F P& g) b7 R' u; `0 Z - #include<conio.h>
5 H" a7 g) h# \9 g/ ~& @8 K - void fun(void);
9 ~0 f5 r/ }6 p* l: { - main()( |3 k8 n6 H2 Y* ^
- {
$ t% H8 w8 d, i) s - int k=1;/ V' y' t6 P' h+ L6 h. C7 w! l- L
- char c;
8 m% Z2 _9 y0 I W/ I - while(k)
8 e6 Q6 j% D6 A( K - {6 s% g9 f6 `$ L7 |1 S
- fun();$ {' R6 Y+ d, ]
- printf("按 1 繼續,按其他鍵退出:");
( j9 Q: Z5 Y- {' u# q9 Y$ U7 m/ w - c = getchar();
4 ^. ^( k0 P9 S) w8 E - printf("\n");
. W1 S2 P+ M* t - switch(c)
" ~5 r# j- \- k& E - {
) a& O" V7 I( @ - case '1':: J9 m' _. w9 u) c
- k = 1;
3 }% p3 W: y9 Y* Z - break;2 T% T2 E1 ?5 K. l/ @: ~
- default:3 `8 p8 ]# B) U# S6 B& i
- k = 0;
' v9 m0 r4 J0 } E+ }& Y1 `& L - break;
3 H+ `& V R D! e( u1 _& ? - }
3 P# S4 T, y; o* V, F4 v -
}! q/ {% H' u) A# x* g - }
* Z# d# ~2 Z# o - }
8 R! e( m( h6 a9 [5 \, k - ; c& b0 E! Z) h$ E( S$ H8 \
- void fun(void)
8 ?5 A* q" d, ` - {
W8 A/ t1 f0 o: N Z- S - float d,v;% {* s' _; l! r1 z" y, N
- int s,i=1; , |7 W1 _9 D3 k8 X% U3 O
- while(i)
+ |0 H+ ?( ]! U! y* H, m! @) I - {
' O" h( X* [3 @, e w - printf("請輸入工件的直徑,單位毫米:\a");
* Z) P$ S" F5 w: V+ m9 M1 n - if(scanf("%f",&d) && d >= 0) //判斷數據輸入的合法性; p# ` k+ @8 x
- {; P! M/ u$ l7 |3 D/ R
- i = 0; //數據輸入正確,賦值為0,退出循環
* W5 C" a- l+ K9 Z - fflush(stdin);
d0 P9 Y) Y, q% v. X) n! d, H - }
4 B' V+ s" p& t - else' s5 c7 o, b( \
- {
# |, q3 u0 _- w% q( b1 q" C - printf("\n");* N7 B5 X4 H' b$ {0 }* y
- printf("你輸入的直徑錯誤,請重新輸入!\n\a");5 t) p! i' e2 n
- printf("\n");
# H3 R$ |% D4 q6 @ - fflush(stdin);
9 Y& ]8 T$ {! M! x - }
# R2 J8 |+ u- |7 B - }
: \4 O6 q" O4 K2 I/ h - printf("\n");
$ M) m4 M1 P& V) U$ R( C - i = 1; //循環開關重新賦值為1 $ {4 ]. b# b7 B9 T# I8 j& ?1 C
- while(i)) u7 r* K- C0 e5 e; ^3 x) L
- {% D( C5 e# C( g4 r0 l. b
- printf("請輸入主軸轉速:\a");
6 S& S% Q8 o( G# F - if(scanf("%d",&s) && s >= 0) //判斷數據輸入的合法性: K8 b- J2 }$ |# d
- {" O" a( l0 F7 B
- i = 0; //數據輸入正確,賦值為0,退出循環
$ m2 l% c7 u# d9 G$ l' q - fflush(stdin);' s) ]% C" w W* A) C; @+ w2 u! H
- }$ J/ x# ^& b$ c2 Z, P9 B2 J
- else
) l. J6 ~! z$ _8 } - {( z$ W/ _7 b: [/ O+ }0 L
- printf("\n");; R! h, w9 {% ?% s! p1 t
- printf("你輸入的轉速錯誤,請重新輸入!\n\a");
$ I! V: M @4 ?/ f4 I+ l f - printf("\n");
, L. E" g( }' S8 l+ Y% ?. s9 ? - fflush(stdin); 0 F) d1 C: y. U
- } $ W; X2 D, z8 M
- }, O+ y. }- j3 o4 U
- printf("\n");
8 M" |0 |1 Q' B7 }, d - printf("直徑D=%0.3f 轉速S=%d 切削速度V=%0.2f米/分\n\a",d,s,v=(3.14*d*s/1000));( n# Q x+ o- k; P# I1 o2 `7 s
- fflush(stdin); $ H& u& L/ V8 {# V5 F0 l' |# V; t: t
- fflush(stdout); 3 N0 b& o/ {0 R0 [4 `. U* c
- printf("\n");
- v" u& u8 @% m/ K - }6 P* }1 K$ O' d l7 ?, G4 U
復制代碼[attach]238103[/attach]
. V/ N% R; y3 X0 K# W* r
: K$ D4 U1 a0 j4 L1 T! V
: ?1 K: u( r q- D[attach]238102[/attach]
2 t. x# a& v- n& \7 q) u% E6 Q
, C, m0 K- }$ @$ g( d$ J! B0 N' ~- c' ~1 P1 M2 w
改進版的能夠通過按1鍵繼續計算,按其他鍵退出的功能,歡迎大家對程序中的其他問題拍磚
. }# _7 L1 @2 ~) P, [4 d8 L& n% G
附:改進版的程序,老辦法下載后也要將rar改成exe
4 e' U0 V3 G3 q& d0 G z9 H# H
( Y& w5 x: z+ y6 K* M# y+ K q# ~0 X4 I/ U6 }2 [5 |1 M. s9 A6 N
作者: lukexc 時間: 2012-1-14 10:39
sniper2006 發表于 2012-1-14 00:20
% }3 L6 i6 V/ }- n3 ^6 z, B
我也發給改進版的能夠控制退出并且繼續計算的,貼上源代碼和截圖
- k7 C& v# r$ v0 H呵呵,可以啊,調用函數加開關!
作者: yuanbei_chen 時間: 2012-1-14 16:23
貌似是這兩個while語句是不能重復執行的吧,好像從第一個直接執行完了,沒有進入到第二個while語句里面
作者: lxh888 時間: 2012-1-15 18:15
這個人還有點才,呵呵。我和你相反,我是學計算機的,現在改行數控。呵呵
作者: sniper2006 時間: 2012-1-15 18:44
lxh888 發表于 2012-1-15 18:15
6 Y% i9 K; i. E1 r
這個人還有點才,呵呵。我和你相反,我是學計算機的,現在改行數控。呵呵
8 r. ~$ [; K9 r% S. Z; R計算機專業多好,怎么現在學我們來搬鐵咯……2 F0 F" ?* d! {+ l
作者: sniper2006 時間: 2012-1-15 20:09
yuanbei_chen 發表于 2012-1-14 16:23 
$ [3 T+ k3 g0 w貌似是這兩個while語句是不能重復執行的吧,好像從第一個直接執行完了,沒有進入到第二個while語句里面
/ ^! u \/ h1 F; K
那2個while不能執行啊……你執行看看 i=1,開關重新置為14 }, k2 S+ \' j2 A* n2 u+ k5 J
作者: wbzd03 時間: 2012-3-23 13:16
C 用什么編譯呢?, T/ ~9 D, L, V3 _
記得以前有個turbo C?,現在不能用了!
作者: 把刀用好 時間: 2012-3-23 16:51
不錯不錯,希望繼續加油,做個能計算車,銑,鉆,攻絲等工序針對不同材料的功率和扭矩。集成一個切削功率扭矩計算小軟件。
作者: wuguihua 時間: 2012-3-23 18:19
樓主很牛X 啊,我也想學哦
作者: sniper2006 時間: 2012-3-23 18:50
wbzd03 發表于 2012-3-23 13:16
/ Y, c3 j8 J5 t# o% ?; M) j
C 用什么編譯呢?( _/ Y0 J! U, {7 M! E! y# e
記得以前有個turbo C?,現在不能用了!
: E+ i7 l" Z" q; W" t7 R9 `
Turbo 還是可以編譯啊,現在VC 6.00 或者 2008 2010 還有就是Linux環境下的編譯器 。
作者: sniper2006 時間: 2012-3-23 18:51
把刀用好 發表于 2012-3-23 16:51 
, {& j7 A& Z3 |不錯不錯,希望繼續加油,做個能計算車,銑,鉆,攻絲等工序針對不同材料的功率和扭矩。集成一個切削功率扭 ...
* B0 ^# d3 |) I! |我還不知道計算切削功率的計算公式了,等有時間去百度下看能不能達到你所說的要求咯。& v; e# `; g. ]/ m3 r
作者: sniper2006 時間: 2012-3-23 18:52
wuguihua 發表于 2012-3-23 18:19 
6 ~ |/ T7 A8 f6 n# w p7 ^樓主很牛X 啊,我也想學哦
$ Z: \5 @' Y! N" [# F# z* ~我也是自學的,相信你也可以。* p0 \4 I. m( k/ D. j
作者: hukai1397 時間: 2012-3-23 22:58
if(scanf("%f",&d) && d >= 0) 字符型 /C 不 需要過濾么
作者: sniper2006 時間: 2012-3-24 12:11
hukai1397 發表于 2012-3-23 22:58
T& J( u+ L! E* E* V
if(scanf("%f",&d) && d >= 0) 字符型 /C 不 需要過濾么
1 g* _( Y f2 p# B' L8 H
過濾不嚴。如果你輸入的數據是 25dfgfgg,就會顯示數據輸入成功(25),不知道你有什么解決辦法。
作者: 無為e而至 時間: 2012-3-28 18:59
不懂,呵呵{:soso_e127:}
作者: 黃飛11 時間: 2012-3-30 00:01
太難了 不懂 看來要好好學學了
作者: 電動小短褲 時間: 2012-6-10 21:25
比較簡單的程序。樓主知道c好用,還是VB好用嗎?我想學習下~
作者: 鄭盛標 時間: 2012-8-7 19:47
樓主好有才{:soso_e179:}
作者: wangcunjia 時間: 2012-8-7 22:08
/ ~, D( l6 Z6 T0 L3 M' b: G; g樓主很牛X 啊,我也想學哦
作者: zscflying 時間: 2012-8-19 19:34
{:soso_e179:}
作者: 風的樣子w 時間: 2013-4-4 16:43
太有才了
作者: 黨員先盡興 時間: 2015-4-9 16:19
這個在EXCEL里算算不就好了么?至于用C來編個程嗎?
作者: 小機械工程師 時間: 2015-6-15 17:36
還得要積分,新人好痛苦啊
作者: 小黑驢 時間: 2015-6-15 19:13
v=(3.14*d*s/1000) 我記得不是 2*3.14嗎
歡迎光臨 機械社區 (http://www.ytsybjq.com/) |
Powered by Discuz! X3.5 |