文档库 最新最全的文档下载
当前位置:文档库 › c语言人事工资管理系统源程序

c语言人事工资管理系统源程序

c语言人事工资管理系统源程序
c语言人事工资管理系统源程序

#include

#include

#include

#define N 300

void input(); //输入模块

void save(); //保存模块

void read(); //读盘模块

void ready();

void list(); // 列表模块

void sfbc(); //是否保存

void del(); // 删除模块

void modify(); // 修改模块

void search(); // 查询模块

double gzjs(int a); //工资计算模块

int check(); //

void ygdl(); //员工登陆

struct wor_info

{

char gh[8]; //工号

char xm[7]; //姓名

char xb[3]; //性别

char zw[21]; //职位(jingli,zhuguan,yuangong)

int nl; //年龄

int gl; //工龄

float tc; //提成

double gz; //工资

};

struct wor_info wor[N+1];

int CurrentCount=0;

void main()

{

int dl,xz=1;

printf("\n 欢迎实用员工基本信息管理系统\n\n\n");

printf("\n请输入您的登陆类型(1--管理登陆,2--员工登陆查看(信息录入后方可查看))\n");

scanf("%d",&dl);

if(dl==2)

ygdl();

else

if(dl==1)

{

if(check()!=0)

{

printf("\n您无权实用本系统..........\n\n");

system("pause");

}

else

{

while(xz!=0)

{

printf("\n请输入相应的功能:\n");

printf(" 1-录入\n 2-排列\n 3-保存\n 4-读取\n 5-查询\n 6-修改\n 7-删除\n 0-结束\n 请选择:");

scanf("%d",&xz);

switch(xz)

{

case 1:

input();break;

case 2:

list();break;

case 3:

save();break;

case 4:

read();break;

case 5:

search();break;

case 6:

modify();break;

case 7:

del();break;

case 0:

printf("\n\n谢谢使用本系统!\n\n");system("pause");

default:

printf("\n无此功能,请重新选择.......\n");

system("pause");

}

}

}

}

}

void input()

{

char sfjx=1;

while(sfjx!=0)

{

if(CurrentCount==N)

{

printf("\n人数已达上限,不能添加!!!\n");

sfjx=0;

}

else

{

CurrentCount++;

printf("\n请输入一个人员的相关信息(工号,姓名,性别,职位(jingli,zhuguan,yuangong),年龄,工龄,提成(小数))\n");

scanf("%s%s%s%s%d%d%f",wor[CurrentCount].gh,wor[CurrentCount].xm,wor[CurrentCount].x b,wor[CurrentCount].zw,&wor[CurrentCount].nl,&wor[CurrentCount].gl,&wor[CurrentCount].tc) ;

wor[CurrentCount].gz=gzjs(CurrentCount);

printf("\n是否继续(0-结束,其他-继续):");

scanf("%d",&sfjx);

}

}

}

void save()

{

FILE *fp;

fp=fopen("xjjbxx.txt","w");

if(fp==NULL)

printf("\n文件打开不成功,信息无法保存!!!\n");

else

{

fprintf(fp,"%d",CurrentCount);

for(int i=1;i<=CurrentCount;i++)

{

fprintf(fp,"\n%9s%8s%4s%21s%6d%6d%8.2f %6.2f",wor[i].gh,wor[i].xm,wor[i].xb,wor[i] .zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz);

printf("\n");

}

fclose(fp);

printf("\n信息已成功保存!!!\n");

}

}

void read()

{

FILE *fp;

fp=fopen("xjjbxx.txt","r");

if(fp==NULL)

printf("\n文件打开不成功,信息无法读取!!!\n");

else

{

fscanf(fp,"%d",&CurrentCount);

for(int i=1;i<=CurrentCount;i++)

{

fscanf(fp,"%s%s%s%s%d%d%f%f",wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,&wor[i].nl,&wor[i]. gl,&wor[i].tc,&wor[i].gz);

printf("工号:%s 姓名:%s 性别:%s 职位:%s 年龄:%d 工龄:%d 提成: %6.4f 工资:%8.2f",

wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz=gzjs(i));

printf("\n");

}

fclose(fp);

printf("信息已成功读取!!!\n");

}

}

void ready()

{

FILE *fp;

fp=fopen("xjjbxx.txt","r");

if(fp==NULL)

printf("\n文件打开不成功,信息无法读取!!!\n");

else

{

fscanf(fp,"%d",&CurrentCount);

for(int i=1;i<=CurrentCount;i++)

{

fscanf(fp,"%s%s%s%s%d%d%f%f",wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,&wor[i].nl,&wor[i]. gl,&wor[i].tc,&wor[i].gz);

}

fclose(fp);

}

}

void list()

{

int i,j;

for(i=1;i

for(j=CurrentCount;j>1;j--)

if(strcmp(wor[j].gh,wor[j-1].gh)<0)

{

wor[0]=wor[j];

wor[j]=wor[j-1];

wor[j-1]=wor[0];

}

printf("\n........员工基本信息表\n");

printf(" 工号姓名性别职位年龄工龄提成工资\n");

for(i=1;i<=CurrentCount;i++)

{

printf("%9s%8s%4s%21s%6d%6d%6.2f %9.2f",wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wo r[i].nl,wor[i].gl,wor[i].tc,wor[i].gz);

printf("\n");

}

}

void sfbc()

{

int sfbc=0;

printf("\n信息以改变,是否保存(1-保存,其他-不保存)\n");

scanf("%d",&sfbc);

if(sfbc==1)

{

list();

save();

printf("\n信息已成功保存!\n");

}

else

printf("\n信息未保存\n");

}

void del()

{

char dcgh[8];

int sfjx=1,i,j;

while(sfjx!=0)

{

printf("\n请输入一个待删员工的工号:");

scanf("%s",dcgh);

strcpy(wor[0].gh,dcgh);

i=CurrentCount;

while(strcmp(wor[i].gh,dcgh)!=0)

i--;

if(i==0)

printf("查无此人!!\n");

else

{

printf("\n此人的详细信息如下:\n");

printf("工号:%s 姓名:%s 性别:%s 职位:%s 年龄:%d 工龄:%d 提成: %f 工资:%f\n",

wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz);

printf("\n按任意键开始删除...........\n");

system("pause");

for(j=i+1;j<=CurrentCount;j++)

wor[j-1]=wor[j];

CurrentCount--;

printf("\n已成功删除........\n");

system("pause");

}

printf("\n是否继续(0-结束,其他-继续):");

scanf("%d",&sfjx);

}

sfbc();

}

void modify()

{

char dcgh[8];

int sfjx=1,i;

while(sfjx!=0)

{

printf("\n请输入一个待修改员工的工号:");

scanf("%s",dcgh);

strcpy(wor[0].gh,dcgh);

i=CurrentCount;

while(strcmp(wor[i].gh,dcgh)!=0)

i--;

if(i==0)

printf("查无此人!!\n");

else

{

printf("\n此人的详细信息如下:\n");

printf("工号:%s 姓名:%s 性别:%s 职位:%s 年龄:%d 工龄:%d 提成: %f 工资:%f\n",

wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz);

printf("\n请输入新内容.........\n");

printf("\n请输入一个人员的相关信息(工号,姓名,性别,职位(jingli,zhuguan,yuangong),年龄,工龄,提成)\n");

scanf("%s%s%s%s%d%d%f",wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,&wor[i].nl,&wor[i].gl ,&wor[i].tc);

wor[i].gz=gzjs(i);

printf("\n已成功修改.............\n");

}

printf("\n是否继续(0-结束,其他-继续):");

scanf("%d",&sfjx);

}

sfbc();

}

void search()

{

char dcgh[8];

int sfjx=1,i;

while(sfjx!=0)

{

printf("\n请输入一个员工的工号:");

scanf("%s",dcgh);

strcpy(wor[0].gh,dcgh);

i=CurrentCount;

while(strcmp(wor[i].gh,dcgh)!=0)

i--;

if(i==0)

printf("查无此人!!\n");

else

{

printf("\n此人的详细信息如下:\n");

printf("工号:%s 姓名:%s 性别:%s 职位:%s 年龄:%d 工龄:%d

提成: %f 工资:%f\n",

wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz);

}

printf("\n是否继续(0-结束,其他-继续):");

scanf("%d",&sfjx);

}

}

double gzjs(int a)

{

double gz;

if(strcmp(wor[a].zw,"jingli")==0)

gz=3000.0+(wor[a].tc+wor[a].gl/100.0)*3000.0;

if(strcmp(wor[a].zw,"zhuguan")==0)

gz=2000.0+(wor[a].tc+wor[a].gl/100.0)*2000.0;

if(strcmp(wor[a].zw,"yuangong")==0)

gz=1000.0+(wor[a].tc+wor[a].gl/100.0)*1000.0;

return(gz);

}

int check()

{

int count=0,name,pass;

while(count<=2)

{

printf("\n请输入用户及密码:");

scanf("%d%d",&name,&pass);

count++;

if((name==1)&&(pass==1))

count=10;

else

if(count>2)

count=5;

}

if(count==10)

return 0;

else

return 1;

}

void ygdl()

{

int i;

char name[7],password[8];

ready();

printf("\n请输入你的姓名:\n");

scanf("%s",name);

strcpy(wor[0].xm,name);

i=CurrentCount;

while(strcmp(wor[i].xm,name)!=0)

i--;

if(i==0)

printf("\n无此用户\n\n");

else

{

printf("\n请输入你的工号\n");

scanf("%s",password);

if(strcmp(wor[i].gh,password)==0)

{

printf("\n你的信息如下:\n");

printf("工号:%s 姓名:%s 性别:%s 职位:%s 年龄:%d 工龄:%d 提成: %6.4f 工资:%8.2f\n",

wor[i].gh,wor[i].xm,wor[i].xb,wor[i].zw,wor[i].nl,wor[i].gl,wor[i].tc,wor[i].gz=gzjs(i));

}

else

printf("\n密码错误\n");

}

}

C语言程序设计第三版谭浩强课后习题答案完整版

1.6 编写一个程序,输入a、b、c 三个值,输出其中最大值。 课后习题答案完整版 第一章 1.5 请参照本章例题,编写一个C 程序,输出以下信息: ************************** Very Good! ************************** 解:mian() {int a,b,c,max; printf( “请输入三个数a,b,c:\n ” ); scanf( “%d,%d,%”d ,&a,&b,&c); C语言程序设计第三版谭浩强 解: mian() {printf( ”); “************************** printf( “”X “ n” ); printf( “Very Good!” \ n”); printf( “”X “ n” ); printf( “************************** ); max=a; if(max

{char #include c1='a',c2='b',c3= 'c',c4= ' \101 ',c5= ' 116'; printf( “a%cb%c n”,c1,c2,c 3); printf( “ b%c %c” ,c4,c5); } 解: aa 口bb 口口口cc 口口口口口口abc A 口N 3.7 要将"China" 译成密码,译码规律是:用原来字母后面的第 4 个字母代替原来的字母.例如,字母"A" 后面第 4 个字母是"E" . "E"代替"A"。因此,"China"应译为"Glmre" 。请编一程序,用赋初值的方法使cl 、c2、c3、c4、c5 五个变量的值分别为, ' C'、h'、i '、n'、a'经过运算,使cl、c2、c3、c4、c5分别变为'G'、' I '、' m >' r'、’ e',并输出。main() { char c1=' C' ,c2=' h' ,c3= ' i ' ,c4= ' n' ,c 5=' a' ; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf(" 密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是GImre 3.9 求下面算术表达式的值。 解: 1 )x+a%3*(int)(x+y)%2/4

C语言源代码

剪刀石头布源代码 #include #include main() { int d,x; { printf("请输入:1是剪刀,2是石头,3是布"); scanf("%d",&d); x=rand()%3; if(d==x) printf("双方平局"); else if((d==1&&x==2)||(d==2&&x==3)||(d==3&&x==1)) printf("你赢了"); else printf("电脑赢了"); } }

简单计算器 #include main() { int a,b,d=0; char c; while(d==0) { printf("请开始计算,请输入需要运算的数字和运算法则,数字符号数字:"); scanf("%d%c%d",&a,&c,&b); switch(c) { case'+': printf("%d+%d=%d\n",a,b,a+b); break; case'-': printf("%d-%d=%d\n",a,b,a-b); break; case'*': printf("%d*%d=%d\n",a,b,a*b); break; case'/': if(0==b) printf("除法被除数不能为零!\n") ; else printf("%d/%d=%d\n",a,b,a/b); break; } } }

加油站加油问题 #include int main() { double a = 3.25, b = 3.00, c= 2.75; double d = 0.05, e = 0.10, m; int x,y,z; printf("请输入您要的加油量:"); scanf("%d",&x); printf("请输入您要的汽油种类,1-a型汽油售价3.25元/千克,2-b型汽油售价3.00元/千克,3-c型汽油售价2.75元/千克:"); scanf("%d",&y); printf("请输入您要的服务类型,1-自己加服务优惠0.05,2-协助加服务优惠0.10:"); scanf("%d",&z); switch(y) { case 1: y = a;break; case 2: y = b;break; case 3: y = c;break; } if(z == 1) m = (1 - d) * y * x; else if(z == 2) m = (1 - e) * y * x; printf("您需要支付:%f 元,谢谢惠顾,欢迎下次再来",m); return 0; }

C语言程序设计第三版习题库答案

C 语言程序设计(第三版)习题库 1、设圆半径r=,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf 输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include<> main(){ floatr,h,C1,Sa,Sb,Va,Vb; scanf(__”%f ”__,&r); scanf(”%d ”,__&h _);; C1=2**r; Sa=*r*r; Sb=4*Sa; Va=4**r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f ”,Cl,Sa,Sb,Va,Vb ); } 2、输入一个华氏温度,要求输出摄氏温度。公式为c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include<> main(){ floatF,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c); } 3、有一函数:?? ???≥-<≤-<=10113101121x x x x x x y 写一程序,输入x 值,输出y 值。 #include<> main(){ intx,y; printf("输入x :"); scanf("%d",&x); if(x<1){/*x<1*/ y=x; printf("x=%3d,y=x=%d\n",x,y);

}elseif(____x<10_______){/*1≤x-10*/ _____y=2*x-1_______; printf("x=%3d,y=2*x-1=%d\n",x,y); }else{/*x≥10*/ y=3*x-11; printf("x=%3d,y=3*x-11=%d\n",x#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d\n",y); }#include"" main() { intx,y; scanf("%d",&x); if(x<1) {y=x;} elseif(x>=1&&x<10) {y=2*x-1;} else {y=3*x-11;} printf("%d",y); }scanf("%d",&x);

C语言源程序

C语言程序设计 <一> 1、程序运行从main()函数开始,也从main()函数结束。 2、函数是C程序的基本单位,由函数头和函数体组成。 3、C语言源程序是由函数组成,它们的数目可以有多个。 4、在C语言源程序中,是必须有一个函数名为main的函数。main()后的小括号()没有任何内容,它不可以省略。 5、C程序中的语句用分号结束,在一个程序行上可以有多个语句,一个C 语句能写在多个程序行上。 6、函数体是由一对大括号围起来语句序列组成。小括号是函数的标志。 二、C语言的组成元素 1、命令、函数和变量等是组成程序的基本对象,每一个程序对象都需要一个名字来标识,程序对象的名称就是标识符。 2、在C语言中,标识符分为用户标识符和系统标识符。 3、用户标识符是指在程序中由程序员为变量、函数、数组等程序对象自行命名的标识符。 4、系统标识符是指C语言编译系统内部预定义的用于表示命令数据内型的标识符,又称保留字符。 5、基本字符集 英文字母:a~z和A~Z。 阿拉伯数字:0~9。其他字符:()、[ ]、+、-、*、/、%、<、>、<=、>=、==、!=、!、&&、‖、++、--、+=、-=、*=、/=、%=。它们是由1~2个字符组成。用作C语言的运算符;还包括:空格、换行符,回车符,单双引号,大括号,逗号,分号,反斜线,它们在程序中起到分隔和定界作用。 6、标识符:是用于标识命令;变量、函数,数组,数据类型等程序对象名称的字符序列。 7、组成标识符的合法字符有:字母,数字,下划线,三种,数字不能作首字符。 三、执行C语言程序 1、单击“开始”——“程序”——“附件”——“命令提示符”。 2、按功能键<10>激活菜单,执行“File”——“NEW”(ALT+回车)全屏。 3、为保存,输入程序文件名。 4、+运行 有输入:等待输入→回车 通过 无输入:返回到编辑 未通过:回车→F6→修改 F3(打开)

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

简单易懂的C语言源代码(供初学者使用)

#include main() {float pi=3.14159265,r; printf("enter radius:\n"); scanf("%f",&r); printf("r=%.2f,c=%.2f,area=%.2f\n",r,2*pi*r,pi*r*r); system("pause"); } #include main() {int m,n,x,y; printf("inputm,n:\n"); scanf("%d%d",&m,&n); if (n%2==1) {printf("error!! n bu shi ji shu!\n",n); return;} /*n在这里不能是奇数*/ x=(4*m-n)/2; y=(n-2*m)/2; if((x>=0)&&(y>=0)) printf("x=%d,y=%d\n",x,y); else printf("shu ru cuo wu!\n");

getch(); } #include #include #include main() {float a,b,C; printf("enter 3number(a,b,C):\n"); scanf("%.2f %.2f %.2f",&a,&b,&C); s=0.5*a*b*sinC; printf("s=%.2f\n",s); system("pause"); } #include main() {int ds,nl,yf; char c; printf("shu ru ds;\n"); scanf("%d",&ds); if (ds<14||ds>1184)

c语言程序代码

创作编号: GB8878185555334563BT9125XW 创作者:凤呜大王* 1.要求在屏幕上输出下一行信息。 This is a c program. 程序: #include int main() { printf(“this is a c program.\n”); return 0; } 2.求两个整数之和。 程序: #include int main() { int a,b,sum; a=122; b=234;

sum=a+b; printf(“sum is %d\n”,sum); return 0; } 3.求两个整数之间的较大者。 程序: #include int main() { int max(int x,int y); int a,b,c; scanf("%d,%d",&a,&b); c=max(a,b); printf("max=%d\n",c); return 0; } int max(int x,int y) { int z; if(x>y)z=x; else z=y; return(z);

} 4.有人用温度计测量出华氏发表示的温度(如69°F),今要 求把她转换成以摄氏法表示的温度(如20℃)。 公式:c=5(f-32)/9. 其中f代表华氏温度,c代表摄氏温度。 程序: #include int main() { float f,c; f=64.0; c=(5.0/9)*(f-32); printf("f=%f\nc=%f\n",f,c); return 0; } 5.计算存款利息。有1000元,想存一年。有一下三种方法可 选:(1)活期:年利率为r1;(2)一年定期:年利率为r2; (3)存两次半年定期:年利率为r3。分别计算一年后按三种方法所得到的本息和。 程序: #include

C语言程序设计第三版谭浩强课后习题答案完整版

C语言程序设计第三版谭浩强 课后习题答案完整版 第一章 1.5请参照本章例题,编写一个C程序,输出以下信息:************************** V ery Good! ************************** 解: mian() {printf(“**************************”); printf(“\n”); printf(“V ery Good!\n”); printf(“\n”); printf(“**************************”); } 1.6 编写一个程序,输入a、b、c三个值,输出其中最大值。解: mian() {int a,b,c,max; printf(“请输入三个数a,b,c:\n”); scanf(“%d,%d,%d”,&a,&b,&c); max=a; if(max main() { char c1=?C?,c2=?h?,c3=?i?,c4=?n?,c5=?a?; c1+=4; c2+=4; c3+=4; c4+=4; c5+=4; printf("密码是%c%c%c%c%c\n",c1,c2,c3,c4,c5); } 运行结果: 密码是Glmre 3.9求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4 设x=2.5,a=7,y=4.7 (2)(float)(a+b)/2+(int)x%(int)y 设a=2,b=3,x=3.5,y=2.5 (1)2.5 (2)3.5 3.10写出程序运行的结果。 main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(“%d,%d,%d,%d”,i,j,m,n); } 解: 9,11,9,10 3.12 写出下面表达式运算后a的值,设原来a=12。设a和n都已定义为整型变量。 (1)a+=a (2)a-=2 (3)a*=2+3 (4)a/=a+a (5)a%=(n%=2),n的值等于5 (6)a+=a-=a*=a 解: (1) 24 (2) 10 (3) 60 (4) 0 (5) 0 (6) 0 第四章 4.4若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下输出格式和结果,请写出程序(包括定义变量类型和设计输出)。 a=_3_ _b=_4_ _c=_5 x=1.200000,y=2.400000,z=-3.600000 x+y=_3.600_ _y+z=-1.20_ _z+x=-2.40 c1=ˊaˊ_or_97(ASCII)

c语言课程设计源代码

c语言课程设计源代码标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

学校运动会管理系统问题描述: (1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数; (2) 各项目名次取法有如下几种: 取前5名:第1名得分 7,第2名得分 5,第3名得分3,第4名得分2,第5名得分 1; (3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。 (4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。 程序代码: #include<> #include<> #define N 3 #define M 3 #define W 3 char* n_number[3]={"1","院系2","院系3"}; char* m_number[3]={"1","男项2","男项3"};

char* w_number[3]={"女项1","女项2","女项3"}; int size=2; struct student { char num[10]; char name[20]; char xiangmu[20]; int score; char ximing[20]; }stu[100],temp; void input() um,&stu[i].name,&stu[i].xiangmu,&stu[i].score,&stu[i].ximing); iming,n_number[0])==0) iming); iming,n_number[h])==0) for(int s=0;s

PL0源代码(C语言版)

/*PL/0 编译系统C版本头文件pl0.h*/ # define norw 13 //a number of reserved word /*关键字个数*/ # define txmax 100 //length of identifier table /*名字表容量*/ # define nmax 14 //max number of digits in numbers /*number的最大位数*/ # define al 10 //length of identifier /*符号的最大长度*/ # define amax 2047 //maximum address /*地址上界*/ # define levmax 3 //max depth of block nesting /*最大允许过程嵌套声明层数[0,lexmax]*/ # define cxmax 200 //size of code array /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, //slash斜线 lss, leq, gtr, geq, lparen, //leq :less than or equal to; gtr: great than;lparen:left parenthesis rparen, comma, semicolon,period, becomes,//comma逗号semicolon分号period句号becomes赋值号 beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32 /*-------------*/ enum object{ //object为三种标识符的类型 constant, variable, procedur, }; /*--------------*/ enum fct{ //fct类型分别标识类PCODE的各条指令 lit, opr, lod, sto, cal, inte, jmp, jpc, //书本P23 }; #define fctnum 8 /*--------------*/ struct instruction //指令 { enum fct f; //功能码 int l; //层次差 int a; //P23 };

PL0-C语言源代码

//A.2 C 版本 /*编译和运行环境: *1Visual C++6.0,VisualC++.NET and Visual C++.NET 2003 *WinNT, Win 200, WinXP and Win2003 *2 gcc version 3.3.2 20031022(Red Hat Linux 3.3.2-1) *Redhat Fedora core 1 *Intel 32 platform *使用方法: *运行后输入PL/0 源程序文件名 *回答是否输出虚拟机代码 *回答是否输出名字表 *fa.tmp 输出虚拟机代码 *fa1.tmp 输出源文件及其各行对应的首地址 *fa2.tmp 输出结果 *fas.tmp 输出名字表 */ #include /*PL/0 编译系统C版本头文件pl0.h*/ #include"string.h" /*解释执行时使用的栈*/ #define stacksize 500 //typedef enum { // false, // true //}bool; # define norw 13 /*关键字个数*/ # define txmax 100 /*名字表容量*/ # define nmax 14 /*number的最大位数*/ # define al 10 /*符号的最大长度*/ # define amax 2047 /*地址上界*/ # define levmax 3 /*最大允许过程嵌套声明层数[0,lexmax]*/ # define cxmax 200 /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, lss, leq, gtr, geq, lparen, rparen, comma, semicolon,period, becomes, beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32

c语言程序设计(第3版)的习题答案

1.5请参照本章例题,编写一个C程序,输出以下信息: ************ Very Goodj! ************ 解: main() { printf(" ************ \n"); printf("\n"); printf(" Very Good! \n"); printf("\n"); printf(" ************\n"); } 1.6编写一个程序,输入a b c三个值,输出其中最大者。 解:main() {int a,b,c,max; printf("请输入三个数a,b,c:\n"); scanf("%d,%d,%d",&a,&b,&c); max=a; if(max

《C语言程序设计》基本知识点

《C语言程序设计》教学基本知识点 第一章C语言基本知识 1.C源程序的框架 尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。 2.C语言源程序的书写规则: (1)C源程序是由一个主函数和若干个其它函数组成的。 (2)函数名后必须有小括号,函数体放在大括号内。 (3)C程序必须用小写字母书写。 (4)每句的末尾加分号。 (5)可以一行多句。 (6)可以一句多行。 (7)可以在程序的任何位置加注释。 3.语句种类 语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类。 (1)流程控制语句 流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。其中后两种结构要用特定的流程控制语句实现。 (2)表达式语句 表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分。表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。最常见的表达式语句是赋值语句。 (3)函数调用语句 函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。 (4)空语句 空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。 (5)复合语句 复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。注意复合语句中最后一个语句末尾的分号不能少。复合语句右大括号后面没有分号。 4.运算符 用来表示数据各种操作的符号称为运算符。运算符实际上代表了一种类型数据的运算规则。不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。 根据参加操作的数据个数多少,可以将C语言的运算符分为单目运算符,双目运算符和三目运算符(三目运算符只有条件运算符一个)。 根据运算对象和运算结果的数据类型可分为算术运算符、关系运算符、逻辑运算符等。 5.表达式 表达式是由常量、变量、函数,通过运算符连接起来而形成的一个算式。一个常量,一个变量或一个函数都可以看成是一个表达式。 表达式的种类有: 算术表达式、关系表达式、逻辑表达式、赋值表达式、字位表达式、强制类型转换表达式、逗号

C语言程序设计答案(第三版)杜友福word文档

C语言程序设计(第三版)习题答案 习题一 一、名词解释 (1)程序P1 (2)程序设计P1 (3)机器语言P1 (4)高级语言P2 (5)汇编程序P3 (6)编译程序P4 (7)算法P5 (8)结构化程序设计方法P10 二、简答题 1. 设计程序时应遵循哪些基本原则?P4 答:正确性、可靠性、简明性、有效性、可维护性、可移植性。 2. 算法具有哪些特点? 答:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。 3. 算法的表示形式有哪几种? 答:自然语言、伪代码、传统流程图、N-S流程图、计算机语言。 4. 结构化程序设计方法的三种基本结构是什么? 答:顺序结构、选择结构和循环结构。 5. 传统流程图与N-S流程图最大的区别是什么? 答:N-S流程图去掉了在传统流程图中常用的流程线,使得程序的结构显得更加清晰、简单。 三、用传统流程图或N-S流程图表示求解以下问题的算法。 1. 从键盘输入10个整数,求出其中的最小数并输出。 2. 求1+2+3+…+100的值。 3. 求10~50的所有素数之和。

4. 求下列分段函数的值。 四、请参照本章例题,编写一个简单的C程序,输出以下三行信息。 ************************** Yangtze University ************************** #include void main() { printf("**************************\n");

printf(" Yangtze University\n"); printf("**************************\n"); } 习题二 一、选择题 1~10: B C D C D D B C A A 11~20: D A C D B D B A C D 二、填空题 1.字母 L 或字母 l 2. %c(或字符) 、 %d(或整数) 3.在程序运行过程中,其值可以在一定的范围内变化的量 4. '\0' 5.小数形式、指数形式 6.关键字、预定义标识符、用户标识符 7.字母、数字、下划线、数字 8. 18 9. 2 、 1 、 30 10.双精度实数或double 11.赋值、逗号、 20 、 20 、 20 、 4 12. 4 、 4 习题三 一、选择题 1~10: B C C B C C C D C C 注:第4题答案D为: 10 22↙ 33↙ 二、填空题 1. printf 、 scanf 2. h 3. "%5d" 4. '\0' 5. e 、 E 6. 6 7. s 、 c 8. * 9. - 、 + 10. i 三、编程题 1. 编写程序,从键盘输入一个以秒为单位的时间数,将其换算成几小时几分几秒,然后进行输出。例如输入的时间为4258秒,则输出结果为:1小时10分58秒。

经典C语言源代码

经典C语言源代码 1、(1)某年某月某日是星期几 #include int main() { int year, month, day; while (scanf_s("%d%d%d", &year, &month, &day) != EOF) { if (month == 1 || month == 2)//判断month是否为1或2 { year--; month += 12; } int c = year / 100; int y = year - c * 100; int week = (c / 4) - 2 * c + (y + y / 4) + (13 * (month + 1) / 5) + day - 1; while (week<0) { week += 7; } week %= 7; switch (week) { case 1:printf("Monday\n"); break;

case 2:printf("Tuesday\n"); break; case 3:printf("Wednesday\n"); break; case 4:printf("Thursday\n"); break; case 5:printf("Friday\n"); break; case 6:printf("Saturday\n"); break; case 0:printf("Sunday\n"); break; } } return 0; } 1、(2)某年某月某日是第几天(一维数组) #include "stdio.h" void main() { int i, flag, year, month, day, dayth; int month_day[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; printf("请输入年/月/日:\n"); scanf_s("%d/%d/%d", &year, &month, &day); dayth = day; flag = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0); if (flag) month_day[2] = 29;

C语言程序设计(第三版)习题库

C语言程序设计(第三版)习题库 1、设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。用scanf输入数据,输出计算结果,输出时要求文字说明,取小数点后两位数字。请编程序。 #include main(){ float r,h,C1,Sa,Sb,Va,Vb; scanf(__”%f”__,&r); scanf(”%f”,__&h_);; C1=2*3.14*r; Sa=3.14*r*r; Sb=4*Sa; Va=4*3.14*r*r*r/3; Vb=Sa*h; printf(___”Cl=%.2fSa=%.2fSb=%.2fVa=%.2fVb=%.2f”,Cl,Sa,Sb,Va,Vb); } 2、输入一个华氏温度,要求输出摄氏温度。公式为 c=5(F-32)/9 输出要求有文字说明,取位2小数。 #include main(){ float F,c; scanf("%f",&F); ____c=5*(F-32)/9______; printf("c=%.2f",c);

} xx,1,,3、有一函数:y,2x,11,x,10 写一程序,输入x值,输出y 值。 ,,3x,11x,10, #include main(){ int x,y; printf("输入x:"); scanf("%d",&x); if(x<1) { /* x<1 */ y=x; printf("x=%3d, y=x=%d\n",x,y); } else if (____x<10_______){ /* 1?x-10 */ _____y=2*x-1_______; printf("x=%3d, y=2*x-1=%d\n",x,y); } else{ /* x?10 */ y=3*x-11; printf("x=%3d, y=3*x-11=%d\n",x,y); } } 4、给定一个不多于5位的正整数,要求:? 求它是几位数;? 按逆序打印出各位数字。例如原数为321,应输出123。 #include main(){ long int num,m=0; int i=0;

几个简单的c语言源程序

1》分解质因数的程序: #include zhishu(x,y) { int m=1; while(y%x==0) { if(y%x==0) y=y/x; if(y%x==0) m++; } printf("^%d x ",m); } sushu(j) { int n,m=0; for(n=2;n

2》看你的星座的程序: #include void main() { int m,d; float s; printf("请输入你的生日(月、日):\n"); scanf("%d",&m); scanf("%d",&d); if(m>12||m<1||d>31||d<1) printf("你输入的生日错误!"); if(m>=1&&m<=12&&d>=1&&d<=31); { s=(float)(m+d/100); if(s>=3.21&&s<=4.20) printf("你的星座是:白羊座"); else if(s>=4.21&&s<=5.20) printf("你的星座是:金牛座"); else if(s>=5.21&&s<=6.21) printf("你的星座是:双子座"); else if(s>=6.22&&s<=7.22) printf("你的星座是:巨蟹座"); else if(s>=7.23&&s<=8.22) printf("你的星座是:狮子座"); else if(s>=8.23&&s<=9.22) printf("你的星座是:处女座"); else if(s>=9.23&&s<=10.23) printf("你的星座是:天秤座"); else if(s>=10.24&&s<=11.21) printf("你的星座是:天蝎座"); else if(s>=11.22&&s<=12.21) printf("你的星座是:射手座"); else if((s<=12.31&&s>=12.22)||(s<=1.19&&s>1.00)) printf("你的星座是:摩羯座"); else if(s>=1.20&&s<=2.18) printf("你的星座是:水瓶座"); else if(s>=2.19&&s<=3.20) printf("你的星座是:双鱼座"); else printf("ERRORS!OUT OF MY EXPECTATION!"); } printf("\n\n"); }

c语言进销存管理系统源程序

C语言课程设计 综合性程序设计报告之源程序 设计题目:电脑公司进销存管理系统 专业:冶金工程 学号:8090507 姓名:刘欢 成绩: ____________ 设计时间: 2010年 11月 03 日

二.开题说明 1.问题概要 该系统用于处理某电脑公司的设备买入,卖出,仓储等设备账目。在买入设备时,记录设备的数量型号(如computer,keyboard)和价钱,并在库房记录中添加设备,在卖出设备时从库房中减掉该设备,并根据卖出的数量型号和价钱得出每一笔买出的利润。每个一段时间盘点库房和账目计算出利润等数据。 基本要求: 有货物管理(设备的添加,删除,修改) 有账目管理 可以查询账目清单 可以计算年度或月份或季度利润。 2.问题分析: 先定义合适的结构体,存储物品信息。在程序中建立一个文件用于存储,凡进行了进货操作的物品在文件中都有记录,进货时由于尚不知售货时间与售价、利润,故此三项(实际为四项,时间分为年、月两项)暂先赋值为零,待进行售货操作时再输入各数值,其中利润由系统自动计算得出并保存。账目清单分为已售、仓储两部分,由此可看到所有购进、卖出的货物信息。月利润查询可查得所输入年月的各类所售货物数量与利润。

三.功能模块 四.源程序 #include <> #include <> #include <> #include <> #include <> #define LEN sizeof(struct object) #define FORMAT1 "\t%-8d%-11s%%-6d%-4d\n" #define DATA1 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->inyear,(p1+i)->inm onth #define FORMAT2 "\t%-8d%-11s%%%%-6d%-4d%-6d%-4d\n" #define DATA2 (p1+i)->num,(p1+i)->name,(p1+i)->inprice,(p1+i)->outprice,(p1+i)->p rofit,(p1+i)->inyear,(p1+i)->inmonth,(p1+i)->outyear,(p1+i)->outmon

相关文档