90行够了吧
#include<stdioh>
#include<stringh>
void menu();//输出主菜单
void create();//1学生名单输入
void sign();//2跑步签到
void search();//3查询
void save();//保存
int i,n;
struct Student
{
char name[20];
char num[20];
int time;
};
struct Student stu[4];
int main()
{
do{
menu();
scanf("%d",&n);
switch(n)
{
case 1: printf("1学生名单输入\n");create();break;
case 2: printf("2跑步签到!\n");sign();break;
case 3: printf("3查询!\n");search();break;
case 0: printf("0退出系统!\n");break;
default:printf("您输入的选项不存在,请重新确认后再次输入!\n");
}
}
while(n>0);
return 0;
}
void menu()
{
printf("欢迎进入跑步签到系统\n");
printf("1学生名单输入\n");
printf("2跑步签到\n");
printf("3查询\n");
printf("0退出系统\n");
printf("请输入要选择的菜单:\n");
}
void save()
{
FILE fp;
fp = fopen("myfiledat","a+");
if(fp == NULL )
printf("Cannot open file\n");
fwrite(stu,sizeof(struct Student),4,fp);
fclose(fp);
}
void create()
{
int u;
for(u=0;u<4;u++)
{
printf("请输入学生姓名:");
scanf("%s",stu[u]name);
printf("请输入学号:");
scanf("%s",stu[u]num);
printf("请输入次数:");
scanf("%d",&stu[u]time);
}
save();
}
void sign()
{
int w;
char x[20];
printf("请输入打卡的学生的学号:");
scanf("%s",&x);
for(w=0;w<4;w++)
{
if(strcmp(stu[w]num,x)==0)
break;
}
stu[w]time=stu[w]time+1;
printf("签到成功\n");
save();
}
void search()
{
int w;
char x[20];
printf("请输入你想查找的学生的学号:");
scanf("%s",&x);
for(w=0;w<4;w++)
{
if(strcmp(stu[w]num,x)==0)
break;
}
printf("姓名\t学号\t次数\t\n");
printf("%s\t",stu[w]name);
printf("%s\t",stu[w]num);
printf("%d\n",stu[w]time);
}
c语言编译程序属于系统软件。
编译程序(Compiler,compilingprogram)也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。
这里的编译程序是一种动作,是根据编译原理技术,由高级程序设计语言编译器翻译成机器语言二进制代码行为,因此它是系统软件。
扩展资料:
应用软件:是和系统软件相对应的,是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问版题而设计的程序的集合,供多用户使用。比如浏览器、权百度云管家等等都是应用软件。
工具软件:是指在使用电脑进行工作和学习时经常使用的软件,比如电脑管家等杀毒软件,一般工具软件都属于应用软件。
#include<stdioh>
#include<stdlibh>
#include<stringh>
#define MAXSIZE 100 /定义最大参会人数/
typedef struct /参会人员的数据结构/
{
char name[20]; /姓名/
char sex[7]; /性别/
int age; /年龄/
char department[30];/单位/
char room_num[10]; /房间号/
}STAFF;
void menu()
{
printf("\n");
printf("-----Meeting attendant Managing System Demo----\n");
printf("1Staff login\n");
printf("2Show Info\n");
printf("3Search\n");
printf("4Statistics\n");
printf("5Modify\n");
printf("6Delete\n");
printf("0Quit\n");
printf("---\n");
}
/函数原型/
int login(STAFF staff[],int length);
void print(STAFF staff[],int length);
void seachByName(STAFF staff[],int length);
void statistics(STAFF staff[],int length);
void edit(STAFF staff[],int length);
int Delete(STAFF staff[],int length);
/函数的定义/
int login(STAFF staff[],int length)
{
int i;
if(length==100) /房间已满,拒绝登陆/
{
printf("There is no any empty room left!\n login prohibited!");
exit(-1);
} /end if/
else
{
char room_num[10];
printf("Type in the room-num:");
scanf("%s",&room_num);
for(i=0;i<length;i++)
{
if(strcmp(room_num,staff[i]room_num)==0)
{ /申请的房间已经有人/
printf("The room you chose is full,please choose anther\n");
printf("Type in another different room-num:");/让参会人选择
别的空房间/
scanf("%s",&room_num);
i=-1; /为检验新的房间是否为空作准备/
}
}/end for/
/ 录入登陆信息/
strcpy(staff[length]room_num,room_num);
printf("Type in your name:");
scanf("%s",&staff[length]name);
printf("Type in your gender:");
scanf("%s",&staff[length]sex);
printf("Type in your age:");
scanf("%d",&staff[length]age);
printf("Type in your dapartment:");
scanf("%s",&staff[length]department);
length++;/参会人数加一/
}/end else/
return length;
}/end login()/
void print(STAFF staff[],int length)
{
STAFF temp;
int i,j;
if(length!=0)
{
for(i=0;i<length;i++) /冒泡排序/
for(j=i;j<length-i-1;j++)
if(strcmp(staff[j]room_num,staff[j+1]room_num)>0)
{
temp=staff[j];
staff[j]=staff[j+1];
staff[j+1]=temp;
}
printf("Staff logined info:\n");
printf("Name Sex Age Department room-num\n");
for(i=0;i<length;i++)
{ /输出报到人员的信息/
printf("%s\t",staff[i]name);
printf("%s\t",staff[i]sex);
printf("%d\t",staff[i]age);
printf("%s\t",staff[i]department);
printf("%9s",staff[i]room_num);
printf("\n");
}
}
else
printf("No one logined yet\n");
}/end print()/
void seachByName(STAFF staff[],int length)
{
char name[20];
int i;
int counter=0;
if(length!=0)
{
printf("Tpye in the staff's name you search:");
scanf("%s",&name);
printf("Name Sex Age Department room-num\n");
for(i=0;i<length;i++)
{
if(strcmp(staff[i]name,name)==0)
{
/判断名字是否相同,相同则输出人员信息/
printf("%s\t",staff[i]name);
printf("%s\t",staff[i]sex);
printf("%d\t",staff[i]age);
printf("%s\t",staff[i]department);
printf("%13s",staff[i]room_num);
printf("\n");
counter++;
}
}
if(counter==0) /查找的人还没登录/
printf("\n%s hasn't logined yet\n",name);
}
else
printf("No one logined yet\n");
}/end seachByName/
void edit(STAFF staff[],int length)
{
char room_num[10];
int i,k;
if(length!=0)
{
printf("Tpye in the staff's room-num you edit:");
scanf("%s",&room_num);
for(i=0;i<length;i++)
{
if(strcmp(staff[i]room_num,room_num)==0)
{
printf("Type in your room-num:");
scanf("%s",&room_num);
for(k=0;k<length;k++)
{
if(k==i) continue; /可以选择原来的房间/
if(strcmp(room_num,staff[k]room_num)==0)
{ /申请的房间已经有人/
printf("The room you chose is full,please
choose anther\n");
printf("Type in another different room-
num:");
scanf("%s",&room_num); /提示选择别的空房间
/
k=-1; /为检验新的房间是否为空作准备/
}
}
/修改人员信息/
strcpy(staff[i]room_num,room_num);
printf("Type in your name:");
scanf("%s",&staff[i]name);
printf("Type in your gender:");
scanf("%s",&staff[i]sex);
printf("Type in your age:");
scanf("%d",&staff[i]age);
printf("Type in your dapartment:");
scanf("%s",&staff[i]department);
printf("Edit successfully");
}
}
}
else
printf("No one logined yet\n");
}/end edit/
int Delete(STAFF staff[],int length)
{
int i,k;
int counter=length;
char room_num[10];
if(length!=0)
{
printf("Tpye in the staff's room-num you delete:");
scanf("%s",&room_num);
for(i=0;i<length;i++)
{
if(strcmp(staff[i]room_num,room_num)==0)
{ /删除人员/
for(k=i;k<length-1;k++)
staff[k]=staff[k+1]; /把该人员的信息覆盖掉/
printf("Delete successfully");
length--; /参会人数减一/
}
}
if(counter==length) /要删除的人员还没登陆/
printf("The staff you want to delete hasn't logined yet\n");
}
else
printf("No any staff logined yet\n");
return length;
}/end Delete()/
void statistics(STAFF staff[],int length)
{
int i;
int k,j;
int index;
int flag=0; /辅助标记/
char department[100][30]; /用于记录不同单位的名字/
int counter[100]; /分别记录相应不同单位的参会人数/
if(length!=0)
{
k=0; /单独处理数组第一个元素/
strcpy(department[k],staff[0]department); /记录单位/
counter[k]=0;/计数器清零/
for(j=0;j<length;j++)/计算次单位参会的总人数/
if(strcmp(department[k],staff[j]department)==0)
counter[k]++;
for(i=1;i<length;i++)
{
for(index=0;index<=k;index++)
{
if(strcmp(department[index],staff[i]department)==0)
flag++; /当前此单位在前面已经统计过/
}
if(flag==0)
{
/出现一个未统计过的单位/
k++; /用两数组的下一个元素分别存放单位和该单位参会人数/
strcpy(department[k],staff[i]department);/记录单位/
counter[k]=0;/计数器清零/
for(j=0;j<length;j++)/计算次单位参会的总人数/
if(strcmp(department[k],staff[j]department)==0)
counter[k]++;
}
flag=0; /辅助标志清零/
}
printf("Statistics result:\n");
printf("Department number\n");
for(i=0;i<=k;i++)
{
printf("%s%20d\n",department[i],counter[i]);
}
}
else
printf("No one logined yet\n");
}/end statistics()/
int main()
{
int length=0; /记录登陆人数/
STAFF staff[MAXSIZE]; /申请结构体数组/
int choice=-1;
menu();
printf("Enter your choice(0-6):");
scanf("%d",&choice); /由用户选择 *** 作/
while(choice>=0&&choice<=6)
{
switch(choice)
{
case 1:length=login(staff,length);break;
case 2:print(staff,length);break;
case 3:seachByName(staff,length);break;
case 4:statistics(staff,length);break;
case 5:edit(staff,length);break;
case 6:length=Delete(staff,length);break;
case 0:printf("Quit successully\n");
exit(-1); /退出/
}
menu();
printf("Enter your choice(0-6):");
scanf("%d",&choice);
}
printf("Sorry,there is no such function provided\n");
return 0;
}
C语言程序开发的四个步骤是什么
1 写代码。
2 编译。
3 链接。
4 运行。
C语言设计的三个步骤:
一、分析问题
二、画出问题的基本轮廓
三、实现该程序
计算机语言包括机器语言、汇编语言、高级语言。机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。它是计算机的设计者通过计算机的硬件结构赋予计算机的 *** 作功能,比如汇编语言(assembly language)。机器语言具有灵活、直接执行和速度快等特点。高级语言比较容易识记和理解,像C B语言等。
C程序开发的四个步骤依次是?输入与编辑源程序--对源程序进行编译--与库函数连接--运行可执行的目标程序。
开发一个c语言程序要经过哪四个步骤提供《计算机考试题库》的答案(填空):
开发—个C语言程序需要经过______、______、______和______四个基本过程。
答案:编辑 编译 连接 运行
扩充解释:
1 编辑:编写源程序代码(c、h 文件)
2 编译:将源代码编译为目标文件(OBJ 文件)
3 链接:将目标文件生成可执行文件( EXE 文件)
4 运行:执行 EXE文件,得到运行结果。
1 编写C语言程序四个步骤是: --------- , -------- , -------- , --------四个步骤?第一次听有人这么说,如果写很大代码量的程序的话,那可得几百行甚至几千行的代码,没什么具体步骤啊!如果说框架,那一般是
#include<stdioh><>括号内是你需要包含的头文件,是具体情况而定。
void main()主函数开始,这是都有的,不过也有的是int型的。
{
}
不知道我的答案能不能帮到你!
C语言程序开发历史C语言的原型ALGOL 60语言。(也称为A语言)1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX *** 作系统。而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的DMRITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。为了使UNIX *** 作系统推广,1977年Dennis MRitchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。即是著名的ANSI C。1978年Brian WKernighian和Dennis MRitchie出版了名著《C语言程序》(The C Programming Language),从而使C语言成为当时世界上流行最广泛的高级程序设计语言。1988年,随着微型计算机的日益普及, C语言出现了许多版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准3C语言的主要特点 。C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
简述开发一个c语言程序的步骤是什么样的?1 写代码。这是最基础的一步,即实现C语言的源文件(c,必需),和可能的头文件(h,非必需)。
2 编译。将编写好的代码,通过编译工具,转换为目标文件。此步中,会对文件内部及包含的头文件进行语法语义的分析检查。如果出错,则必须返回到一步对代码进行修改,直到没有错误为止。
3 链接。将目标文件链接成可执行文件。此步会对文件直接的关联进行检查。如果出错需要返回到1修改代码。直到没有错误。
4 运行。这个是最后一步,也是C语言的最终目的。
5 在运行结果与期望不符时,需要检查原因,修改代码,重新执行一二三直到程序没有问题。
(1)语言简洁、紧凑灵活。二十八个关键字、九种控制语句,程序形式自由,运算符丰富。三十四种运算符。
(2)数据类型丰富,具有现代语言的各种数据结构。
(3)C程序的主要结构是函数,是完全模块化和结构化的语言。
(4)允许直接访问物理地址,能进行位 *** 作,能实现汇编语言的大部分功能,可直接对硬件进行 *** 作。兼有高级和低级语言的特点。
(5)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种 *** 作系统。
(6)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。
(7)语法限制不太严格,程序设计自由度大。
使用CB开发平台做一个c语言程序的步骤是什么?安装CB平台
1、在界面上加一个按钮控制
2、双击按钮,在光标闪烁处写入代码,可以写C代码。
软件是用C语言程序开发出来的。C语言用什么开发呢?C语言不是汇编语言开发的、C语言是在B语言基础上发展而来的、可以百度百科
考勤排班规则班次在考勤,班次定义,就是员工上下班的标准,就是考勤的标准,其重要性不言而喻。企业中存在着各色各样的班次,而且不同的企业对班次的定义及习惯说法也不一样,理清班次的定义及其相关联的术语含义就非常有意义。下面分几个方面来描述班次及其在企业中的常见表现。一、基本班次的组成:班次定义了员工一天的上下班时间及规则,班次是由多个班段组成的,了解班次之前先了解班段。下面先说明一下相关的术语,这些术语可以辅助我们更好地交流。就类似于我们谈软件的“设计模式”一样。1、固定班段指上下班时间固定的班段。例:指定上下班时间为8:00-12:002、自由班段是指上下班时间是由员工自由掌握的。例:允许员工7:00-9:00之间的任一时刻上班,11:00-13:00的任一时刻下班,但要保障上满4小时。这类型的班段可称为自由班段。3、休息时段在一个班段内部,允许存在多个休息时段。4、用餐时段同休息时段类似。用餐时段可分为两类:固定用餐和自由用餐,举例说:规定中午用餐11:30-12:30,叫固定用餐,允许中午11:00-13:00之间用餐,但规定用餐时间只能是1个小时,叫自由用餐。如果规定了员工可以自由选择11:00-12:0011:15-12:1511:30-12:30之间的一个时段用餐,则可称为浮动用餐。由上面4个基本元素组合而成的班次,称为基本班次,其中休息时段或用餐时段是从属于某个班段的,这样组成的班次,能够适应大部分的情况。班次除了规定上下班时间规则外,还要定义该班次中,怎样才算迟到早退,怎样才算缺席旷工,还有其它什么异常等等,如含用餐时段的班次,就有用餐超时的异常。(每个班次都定义迟到早退缺席旷工等设定,会比较啰嗦,可做个全局默认值,如果班次中没有设定就使用默认值)二、特殊班次1、休息:休息作为一个特殊的班次指明了当天不用上班。注意指定休息并非指定当天是周日或节假日,这由其它地方定义。指定休息仅仅是指定当天不用上班。2、自由上下班:例:规定员工当天7:00-19:00可自由上下班(多个班段),只要保障上足8小时即可,或者上了多少小时班算多少。周六周日自由加班就是属于这种情况。3、互斥班组:将多个互斥的基本班次组合在一起,构成一个互斥班组。所谓互斥的,是指各个班次其上下班时间相互不交叉。计算考勤时由系统自动识别匹配是哪个基本班次。这对于两班倒或三班倒的情况下可以有效地减少排班的工作量。不建议使用互斥班组来进行排班,因为在员工多打卡或少打卡的情况下,同时加班,请假会让班次是的刷卡点改变,这都使得智能匹配过程容易产生错误。明确排班则没有这类错误。考勤应是非常严肃的,哪怕是00001%的错误,都会给你的考勤软件蒙上污点。4、动态班次这是一种非常特殊的班次。正常情况下,班次的定义是预先定义的,而动态班次的班次定义是由程序动态生成的。好像这不好理解,举例说,学校老师按课程表上下班,上课前30分钟要签到,下课后即可下班,没课可以不来。此时可依据课程表动态生成一个基本班次来参与考勤计算。如果不使用动态班次,则需要预定义很多个基本班次,而且也加大了排班的难度。很明显,这种班次需要二次开发定制才能使用。三、“工作天”在班次中的重要性班次解决了员工当天该如何上下班,排班指定了员工当天上哪个班次。这个天并非我们时常说的24小时的一天,而是“工作天”。一个工作天可能不止24小时。班次中定义工作天的起止时间点,加班可能会改变该时间点,从而使得一个工作天实际上不止24小时。“休息”作为一个特殊的班次,其不用指定工作天起止点。班次中如果不定义工作天,那么对于跨天加班及连续上班36小时的现象就不好处理。这里说一下员工连续工作36小时的现象(变态吧),例如:两班倒时,1号上夜班,一直加班到2号,然后接着上白班,2号下班后又加班。好像说,这不可能吧!我说说我知道的比较合理的解析。一种情况是下班后安排几个员工到医院守护病人,然后第二天继续上班,自然得付给员工加班费了。其实并不是那名员工强壮得变态,他们可以睡觉的。另一种情况是,安排员工24小时待命,机器一好就开始生产,自然这也是得给员工加班费的。所以,面对异常现象时,不要盲目下结论,调查分析后更有发言权。对于该异常,应该将加班时间分配到相应的工作天去,这也需要工作天定义。定义了工作天,考勤体系更为完整。四、用面向对象的类来因应企业班次的发展以上所说的班次,能对应企业中的普遍情况,但就能适应企业中的全部情况了吗?那肯定是不行的,随着企业的发展与需求的变化,班次也将随着变化,但无论如何变化,总要规定员工是如何上下班的,如何打卡的,怎样才算是异常等等信息,对于考勤计算来说,这个班次又是如何匹配刷卡的,如何匹配工作天的,等等信息总要在班次中定义,排班也一样,无论采用何种排班方法,总得给出当天排的是什么班次。用写SQL过程来计算考勤过程的方法,因为其对模块化及面向对象均不支持,在需求发生变更时,改动代码或看别人的代码都将变得无比艰难。用面向对象的软件方法可以在企业有新的班次类型出现时,轻松面对,而无须对软件大动干戈。用面向对象的方法则需要建立一个正确的考勤模型体系,只要考勤模型不变,变化就尽在掌握中。四公休作息日作息是每个人所必需的,五调休考勤排班班次及排班对于考勤有着重要的意义,是计算考勤的基准。考勤软件是否好用,排班是否好用就占了很大的比重。1、群组排班与个人排班的关系。不同的软件其排班实现不大一样,一般分为群组排班及个人排班,排班逻辑是个人排班优先于群组排班。对于群组的概念,有些软件直接用部门替代有些则有专门的考勤班组概念,无论如何做,都是一个员工集合也就是Group这个概念,个人排班作为特殊情况对待。其当天排班过程则是这样:如果当天有做个人排班,则以个人排班为准,否则以群组排班作为当天班次,如果群组排班也没排,那么就依全局设定来处理这个异常,没排班的可以设定一个默认班次,或者设一个部门默认班次或者直接发出异常,总之在考勤计算前要确认当天所上班次,我是反对智能匹配班次这个概念的,因为考勤是个很严肃的话题,就算你做到了9999%成功匹配,但就是出现一个错误,就需要人工来做全部检查。2、异动与历史记录对排班的影响。一个例子就是:员工从排班组A调入排班组B,那么其班次也会跟着改变,计算时得考虑这些因素。类似这样的例子有:员工部门调动对于统计部门每天人数的影响,薪资异动对于每月薪资计算的影响。3、数据的来拢去脉能够展示出来给用户看,回答为什么员工当天上的是这个班次,打了这些卡后,为什么得到如此计算结果。4、个人月排班查询:数据来源是群组排班与、个人排班、加班、请假及异动记录,依据预定的规则计算出员工当天排班然后展示出来给用户看,"加"表示当天有安排加班,"假"表示当天有请假,"离"表示当天已离职,"未"表示当天尚未入职,并提供快捷的方式查找到相应的记录,以做到有理可依有据可查。个人排班与群组排班具有类似的界面及批量排班功能,目的是减少排班工作量,让软件更人性化一些。5、个人考勤明细:考勤计算结果与相关考勤数据展示出来,让用户明白刷了什么卡,得到什么样的结果,力求做到数据透明化。解决几个问题:1)当天该员工是否应上班?这由排班系统来排定。2)应该什么时候上下班?这由班次定义指定。3)打了什么卡?这通过自动采集考勤机数据得到。4)计算结果是什么样的?为什么是这样将计算结果显示出来,并支持相应的分组统计。能方便地过滤出每一天的异常人员,并提供方便的途径回答员工的考勤疑问。排班系统与考勤计算的关系排班系统与考勤计算其实关系不大,也就是考勤计算只需要排班系统告诉员工当天排的是哪个班次就行了,具体如何排班,如何倒班则与考勤计算无关。理解这一点就可以将排班系统与考勤计算独立开来。排班系统的目标是更好地真实地反映企业中排班的实际情况,企业中排班的主要对象是:1、人。2、班次。3、倒班规则。下面分开来说:1、人,要解决多人同时排班的问题。最简单方法是手工进行每人每天的排班,加一个批量处理功能来解决多人同时排班的问题。这里说另一种方法:将人归入群组,然后对群组进行每天排班,特殊的人员进行个人每天排班。也就有群组排班与个人排班同时存在,匹配逻辑是个人排班优先于群组排班。同时群组排班及个人排班都应该有批量处理功能。对人分群组进行群组排班的方法比较贴近千人以上的企业的实际情况,能清楚地反映当前群组的班次。其带来的问题是员工归属群组的历史记录问题,这个问题要处理。2、班次,班次的种类及具体班次的定义请看另一个文章,这里只是提出排班时,要对所排班次的合理性做出检测并警告,主要是相邻天的上下班时间交叉问题,特别是1号上夜班,2号上白班这种情况。当班次很多时,一般会对班次进行分类,常有以下分类:1、按部门分。2、按使用性质分:常用班次,临时班次,一次性班次等。分类后能很容易就能找到相应的班次,不用记住班次的名称或编号。3、倒班规则,如果做好了群组排班与个人排班,就算没做倒班规则,对千人左右的厂也够用了。但要应付的员工时,倒班规则可以帮助HR人员很快地生成当月排班表。常见的倒班规则有:两班倒,三班倒,倒班时间则有:按月倒及按周倒,或者自定义倒班日期。倒班规则挂在员工考勤群组中,不同的考勤群组指定不同的倒班规则,这样就可以快速生成群组排班表。快速生成一个群组排班表,再由HR人员手工做少少修改或不用修改就可以完成排班,这可以减轻排班难度。4、员工排班表的生成。排班表决定员工最终排定班次,注意:该表不一定存在于数据库中,至少在我的设计里,该表没有存在于数据库表中。它是排班系统动态依据“群组排班表”“个人排班表”“个人历史记录”计算而得出的。目前我设计中“倒班规则”则是用来快速生成群组排班表,减轻排班工作量的,与排班表生成逻辑无关。如果要做得更复杂一些,也可以在将“倒班规则”考虑到排班表的生成中去,那样的排班表生成逻辑就复杂很多了。我认为:将“倒班规则”只用作快速生成群组排班表,不计入排班表生成逻辑中是一个足够好用的方案,系统不需要再复杂化。5、关于自动侦测员工当天班次。自动侦测员工当天班次,作为一个功能存在,做成“侦测可能的排班错误”,并提供对应的可能班次。用以方便检测排班错误。还是不赞成用自动检测到的班次来替代排班的方案。因为那不能回答:当天员工是否应该出勤?(不用出勤也就没有旷工缺席了。)关于考勤有很多很多的话题与规则,因为其复杂与易变,考勤软件走的是螺旋上升的发展道路,程序员的每一次努力都让软件更强壮易用,所以最好用面向对象的方法来开发考勤软件。至于数据库表设计及具体程序对象接口代码,我没准备这方面的内容,至于用户 *** 作界面如何才易用,那又是另一个话题了。思想与解决方案说出,代码就是次要的了。
供参考
#include <stdioh>int main()
{
int i;
int cnt[100] = {0};
int max;
int f = 0;
while(~scanf("%d", &i) && i >= 0) cnt[i] ++;
for(i = 1, max = cnt[0]; i < 100; i ++)
if(max < cnt[i]) max = cnt[i];
for(i = 0; i < 100; i ++)
{
if(cnt[i] == max)
{
if(f) printf(" %d", i);
else printf("%d", i), f = 1;
}
}
printf("\n");
return 0;
}
以上就是关于c语言代码六十行全部的内容,包括:c语言代码六十行、求用C语言制作一个简单软件完整的学习流程、用c语言编程参会人员管理系统,怎么弄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)