當前位置:首頁 » 編程語言 » c語言加班費流程圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言加班費流程圖

發布時間: 2023-01-25 02:04:30

① 求c語言編寫的班費管理系統程序

昨天晚上沒事干寫的,我也是新手,呵呵。你看看改改吧。不好意思,昨天網上斷網了,沒有傳上來。已經發到你郵箱了。
/*
*班費管理系統
*
*裡面有日期,支出金額,支出原因,收入金額,收入原因,經手人,剩餘金額這幾項
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define income 0
#define outcome 1

#define ItemNum 5

/*主要功能函數聲明*/
void runmenu(void);
void addincome(void);
void addoutcome(void);
void check(void);
void viewlog(void);
void endprog(void);

float MONEY=0;

typedef struct Time {
int year;
int mon;
int day;
} EventTime;

/*班費收支時間結構*/
typedef struct ClassFee{
EventTime eventtime;
float amount;
char reason[100];
int eventtype;
char personWhoHandle[30];
struct ClassFee *next;
} *classfeep,classfee;

/*創建菜單項*/
struct item {
char name[20];
void (* run)();
} ;
struct item menu[]={
{"1. 增加收入",addincome},
{"2. 增加支出",addoutcome},
{"3. 查詢余額",check},
{"4. 查詢日誌",viewlog},
{"5. 退出程序",endprog}
};

classfeep start=NULL;
classfeep cur=NULL;
int first=1;

/*主函數開始*/
int main()
{
printf("\t\t歡迎使用班費管理程序!\n\n\n");

while (1)
runmenu();
return 0;

}

/*顯示菜單*/
void runmenu()
{
int i,choice;
for(i=0;i<ItemNum;i++) {
printf("\t\t\t%s\n\n",menu[i].name);
}
printf("\n\n\n\t\t請輸入您的選擇:");

scanf("%d",&choice);
menu[choice-1].run();
choice=0;
}

/*主要功能函數實現*/

/*增加收入*/
void addincome()
{

classfeep in=(classfeep)malloc(sizeof(classfee));
in->next=NULL;
if(first) {
first=0;
start=in;
cur=start;
}
in->eventtype=income;
printf("增加收入\n\n");
printf("請輸入當前日期:");
printf("\n____年\b\b\b\b\b\b");
scanf("%d",&(in->eventtime.year));
printf("__月\b\b\b\b");
scanf("%d",&(in->eventtime.mon));
printf("__日\b\b\b\b");
scanf("%d",&(in->eventtime.day));
printf("\n請輸入經辦人姓名:");
scanf("%s",&(in->personWhoHandle));
printf("\n請輸入收入原因:");
scanf("%s",&(in->reason));
printf("\n請輸入收入金額:");
scanf("%f",&(in->amount));
MONEY+=in->amount;
if(cur==start)
cur=in;
else {
cur->next=in;
cur=in;
}

}

/*增加支出*/
void addoutcome()
{

classfeep out=(classfeep)malloc(sizeof(classfee));
out->next=NULL;
if(first) {
first=0;
start=out;
cur=start;
}
out->eventtype=outcome;
printf("增加支出\n\n");
printf("請輸入當前日期:");
printf("\n____年\b\b\b\b\b\b");
scanf("%d",&(out->eventtime.year));
printf("__月\b\b\b\b");
scanf("%d",&(out->eventtime.mon));
printf("__日\b\b\b\b");
scanf("%d",&(out->eventtime.day));
printf("\n請輸入經辦人姓名:");
scanf("%s",&(out->personWhoHandle));
printf("\n請輸入支出原因:");
scanf("%s",&(out->reason));
printf("\n請輸入支出金額:");
scanf("%f",&(out->amount));
MONEY-=out->amount;
if(cur==start)
cur=out;
else {
cur->next=out;
cur=out;
}

}

/*查詢當前余額*/
void check()
{
printf("當前余額為%.2f\n",MONEY);
}

/*查詢操作日誌*/
void viewlog()
{
char eventT[20];
classfeep iter=start;
if (start==NULL)
return;
for(;iter!=NULL;iter=iter->next)
{
if (income==iter->eventtype)
strcpy(eventT,"收入");
else
strcpy(eventT,"支出");
printf("%d年%d月%d日\t%s\t%s%\t%.2f\t%s\n",
iter->eventtime.year,iter->eventtime.mon,iter->eventtime.day,
iter->personWhoHandle,eventT,iter->amount,iter->reason);
}
}

/*退出程序*/
void endprog()
{
exit(0);
}

② c語言的流程圖怎麼畫

如果會編程序而不會畫流程圖,建議先把自己的程序研究一遍。
若是畫主程序流程圖,那就需看懂主函數的程序,按照main()函數中的具體書寫過程來畫,例如:
程序開始---定義變數---初始化變數---使用選擇或者循環或者順序結構---調用某一個子函數(可以沒有)---程序結束
以上是最簡單的程序流程圖畫法。
若你是畫某一演算法或是某一模塊的流程圖,就要把相應的演算法或是模塊看懂。分析演算法或是模塊的具體走法,根據此走法就可以畫出對應的流程圖。
如果你是初學者,想根據流程圖的畫法而去嘗試編程,建議就一定要研究清楚每一個使用到的演算法,讀懂題目再開始編程。
下面是使VISO畫流程圖的幾個要點:
1、選擇下載一個合適版本的VISO
2、程序開始結束用膠囊
3、分頁用圓圈
4、輸入用平行四邊形
5、語句用方塊
6、判斷用菱形
7、列印用波浪

③ 如何根據C語言代碼自動畫出流程圖

第一步、寫一個C的詞法分析器;
第二步、寫一個語法分析器;
第三部、寫一個語義分析器;
第四部、生成語法樹;
第五步、生成流程圖(僅語法,不能描述具體意義);比如:生成的流程圖諸如這樣:「如果a==0則如何,否則如何」,而不會「如果蘋果盤為空,則如何,否則如何」。

④ C語言的流程圖用什麼軟體來做

流程圖(Flow Chart):使用圖形表示演算法的思路是一種極好的方法,可以用多種軟體來繪制,連Windows附帶的畫圖也可以。

下面簡要描述一些常見的流程圖繪制軟體:
1.Visio是當今最優秀的繪圖軟體之一,它將強大的功能和易用性完美結合,可廣泛應用於電子、機械、通信、建築、軟體設計和企業管理等眾多領域。
2.power designer是一款比較不錯的畫流程圖軟體。
3.框圖寶(MyFlowChart)是youfabao的在線流程圖軟體,可以在線繪制流程圖,簡單易用,基於雲計算,數據永不丟失。
4.visual graph專業圖形系統:此系統為圖形控制項,在.NET開發平台下可以靈活應用,delphi中也可以使用。簡單易用,業內應用較廣泛。
5.Word附帶的繪圖功能。
6.Windows附帶的畫圖。

⑤ C語言流程圖

本人將功能重現,代碼如下:(解決了你的源代碼中無法正常循環運行的問題)

#include<stdio.h>

#defineN4//人數

#defineKMS3//科目數

structstudent

{

charname[20];

floatscore[3];//score[0]語文,score[1]數學,score[2]歷史

floatave;

}stu[N];

voidinput(studentp[],intn)

{

inti;

for(i=0;i<n;i++)

{

scanf("%s%f%f%f",p[i].name,&p[i].score[0],&p[i].score[1],&p[i].score[2]);

}

}

voidperave(studentp[],intn)

{

inti;

for(i=0;i<n;i++)

p[i].ave=(p[i].score[0]+p[i].score[1]+p[i].score[2])/3.0;

}

voidehsbave(floatp[],studentq[],intn)//main()中p[]用於存儲單科均分p[KMS]

{

inti,j;

for(i=0;i<KMS;i++)

{

p[i]=0;

for(j=0;j<n;j++)

p[i]+=q[j].score[i];

p[i]/=n;

}

}

voidsearch(studentp[],intn,int*l1,int*l2)

{

intr,c;

*l1=0;*l2=0;

for(r=0;r<n;r++)

for(c=0;c<KMS;c++)

if(p[*l1].score[*l2]<p[r].score[c])

{

*l1=r;

*l2=c;

}

}

main()

{

floata[KMS];

intr,c,i,*p_r,*p_c;

charsubject[KMS][20]={"語文","數學","歷史"},pd='y';

p_r=&r;p_c=&c;

for(;pd=='y';)

{

printf("輸入%d名學生的姓名,語文,數學,歷史成績 ",N);

input(stu,N);

perave(stu,N);

ehsbave(a,stu,N);

search(stu,N,p_r,p_c);

printf("姓名 平均成績 ");

for(i=0;i<N;i++)

printf("%s %.2f ",stu[i].name,stu[i].ave);

printf("科目 平均成績 ");

for(i=0;i<KMS;i++)

printf("%s %.2f ",subject[i],a[i]);

printf("單科最高: 姓名 科目 分數 %s %s %.2f ",stu[r].name,subject[c],stu[r].score[c]);

printf("是否繼續(y/n)? ");

getchar();

pd=getchar();

}

}

⑥ 跪求C語言流程圖

1.定義了一個全局的4行3列數組b,但沒初始化

2.主函數main里定義並初始化了一個3行4列的2維數組a

3.執行到語句change(a);時切換到change函數的內部。

注意這里的參數是一個2維數組。看起來傳遞了很多個值過去,但其實不然:因為數組只是一個指針,一個指著存放著這12(3*4)個int型數值的內存空間的地址,所以它其實只是 一個 unsigned int的值。

4.change函數的參數c接受到a的值,所以它也指向原來a指向的位置.

5.change函數通過一次兩重循環把數組c(也就是原來的a)的每列依次存入數組b的每行。如此,數組b就是數組a的轉置矩陣。

6.按行輸出數組b

另外如果你只是為了把轉置矩陣輸出到屏幕完全可以不要這個change函數,把main改成這樣:
main()
{
int i,j;
int a[3][4];

for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=i*4+j+1;
printf("%-4d",a[i][j]);
}
printf("\n");
}
printf("-------------------\n");
for(j=0;j<4;j++)
{
for(i=0;i<3;i++)printf("%-4d",a[i][j]);
printf("\n");
}
}

⑦ C語言流程圖和程序

#include<stdio.h>

intleap_year(intn)
{
if(n%400==0||(n%4==0&&n%100!=0))
return1;
else
return0;
}
intmain()
{
intyear,month,day;
intdayCount=0,i;
intmon[]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("請輸入當前的年,月,日:");
scanf("%d-%d-%d",&year,&month,&day);
for(i=0;i<month-1;i++)
dayCount+=mon[i];
if(month>2)
dayCount+=day+leap_year(year);
else
dayCount+=day;
printf("該日是該年的第幾天:%d ",dayCount);
return0;
}

//示例運行結果
F:c_work>a.exe
請輸入當前的年,月,日:2018-1-18
該日是該年的第幾天:18

F:c_work>a.exe
請輸入當前的年,月,日:2018-10-1
該日是該年的第幾天:274

畫流程圖這個需要專門的畫圖工具,這個比較麻煩,所以我就直接給你程序代碼和運行結果了。

⑧ 用C語言編寫計算工人工資怎麼編寫

用C語言編寫計算工人工資怎麼編寫?

某工廠按工人的工時計算工人工資,規則如下:工資按每小時84元計發。若總工時>120小時,超過120小時的部分每小時加發15%;若總工時<60小時,則總工資扣發700元。編寫程序,從鍵盤錄入某工人的工時,程序能計算並輸出該工人的工資。(畫出程序流程圖)

⑨ c語言ns流程圖(ns流程圖三種基本結構)

1.NS流程圖由一些特定意義的圖形、流程線及簡要的文字說明構成,它能清晰明確地表示程序的運行過程。

2.NS流程圖是用於取代傳統流程圖的一種描述方式,以SP方法為基礎。

3.有5個基本比分組成。

4.優點:它強制設計人員按SP方法進行思考並描述他的設計方案,除了集中標准結構的符號之處,它不再提供其他的描述手段,有效的保證了設計的質量。

5.直觀具有良好的可見度。

6.簡單易學,可用於軟體教育和其他方面。

7.缺點:手工修改比較麻煩。

⑩ c語言程序設計 簡單職工工資管理程序

你好!

有個類似的程序,可以滿足你的需要,可以根據你的要求修改