求一道c语言程序设计实验题

Python017

求一道c语言程序设计实验题,第1张

#include <stdio.h>

#include <string.h>

#define MAXSIZE 121//最大职员人数

typedef struct worker {

unsigned id//工号

char name[21]

char sex[3]

int age

}WORKER

void read(WORKER *w) {

printf("工号: ")

scanf("%d",&w->id)

fflush(stdin)

printf("姓名 性别 年龄 : ")

scanf("%s%s%d",w->name,w->sex,&w->age)

}

int find(WORKER a[],int n,WORKER w) {

int i,ind = 0

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

if(a[i].id == w.id) return i

}

return -1

}

int add(WORKER a[],int n,WORKER w) {

int ind = find(a,n,w)

if(ind) {

a[n] = w

return 1

}

return 0

}

int del(WORKER a[],int n,WORKER w) {

int i,ind = find(a,n,w)

if(ind < 0) return 0

for(i = ind i < n - 1 ++i)

a[i] = a[i + 1]

return 1

}

void show(WORKER a[],int n) {

int i,len

printf("\t┌────┬───┬──┬──┐\n")

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

len = strlen(a[i].name)

printf("\t│%7d │",a[i].id)

if(len == 6) printf("%s│",a[i].name)

else if(len == 4) printf("%s  │",a[i].name)

printf("%4s│",a[i].sex)

printf("%4d│\n",a[i].age)

if(i < n - 1) printf("\t├────┼───┼──┼──┤\n")

}

printf("\t└────┴───┴──┴──┘\n")

}

int main() {

int n = 0,flag,choice,an

WORKER WRKS[MAXSIZE],w

do {

printf("**********公司员工管理系统**********\n")

printf("\t\t1、添加\n")

printf("\t\t2、查找\n")

printf("\t\t3、删除\n")

printf("\t\t4、浏览\n")

printf("\t\t0、退出系统\n")

printf("\n\t请选择:")

scanf("%d",&choice)

switch(choice) {

case 1 : 

printf("请输入待添加员工的信息\n")

read(&w)

if(add(WRKS,n,w)) {

printf("成功添加。\n")

++n

}

break

case 2 : 

printf("请输入待查找员工的信息\n")

read(&w)

if(find(WRKS,n,w)) printf("成功找到\n")

else printf("没有找到工号为%ud的员工。\n",w.id)

break

case 3 : 

printf("请输入待删除员工的信息\n")

read(&w)

if(del(WRKS,n,w) >= 0) {

printf("删除成功。\n")

--n

}

else  printf("没有找到工号为%ud的员工,删除操作失败。\n",w.id)

break

case 4 : show(WRKS,n)break

case 0 : printf("退出系统\n") break

default : printf("%d,不能识别的命令。\n",choice)break

}

}while(choice)

return 0

}

第一题:

有3个错。

1.strupr(name[i]) 改为:strcpy(name[i],strupr(name[i]))

2.if(name[i]>name[j])改为:if(strcmp(name[i],name[j])>0)

3.strcpy(name[i],str )改为:strcpy(str,name[i])

第二题:

(1)s[i] != '\0'

(2){ j ++}else

memcpy(s[i],s[i]+1,strlen(s)-i-1)

第三题:

s[i] <= '9' &&s[i] >= '0'