当前位置:首页 » 编程语言 » 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语言程序设计 简单职工工资管理程序

你好!

有个类似的程序,可以满足你的需要,可以根据你的要求修改