c语言 编一个人事管理系统 具有①信息的录入 ②信息的修改 ③信息的插入 ④信息的删除:的功能
答案:4 悬赏:30 手机版
解决时间 2021-01-28 06:58
- 提问者网友:贪了杯
- 2021-01-27 11:51
c语言 编一个人事管理系统 具有①信息的录入 ②信息的修改 ③信息的插入 ④信息的删除:的功能
最佳答案
- 五星知识达人网友:你可爱的野爹
- 2021-01-27 13:02
#include
#define N 40
#include
#include
#include
struct student{
long num;//工号
char name[10];//姓名
char sex[4];//性别
char ad[100];//地址
char barthday[20];//出生日期
char apartnum[100],posinum[10],adds[100];//部门编号、职务编号、备注
char posiname[20];//职务名称
float income;//职务工资
}st[N];
void menu()
{
printf("****************************************
");
printf("欢迎使用家庭财务管理系统
");
printf("****************************************
");
printf("1:添加记录
");
printf("2:查询记录
");
printf("3:删除记录
");
printf("4:显示所有记录
");
printf("0:退出
");
}
void input(struct student s[],int *n)
{
printf("请输入您所要添加的职工数目
");
int x,i,j,b,flag=0;
scanf("%d",&x);
b=*n+x;
for(i=*n+1;i<=b;i++)
{
flag=1;
printf("请输入员工工号:
");
scanf("%ld",&s[i].num);
for(j=1;j if(s[i].num==s[j].num&&i>1)
{ printf("输入有误
");flag=0;i--;b--;break;}
if(flag)
{
printf("请输入员工姓名:
");
scanf("%s",s[i].name);
printf("请依次输入该员工性别、出生日期、地址、部门编号、职务编号、职务名称、职务工资、备注:
");
scanf("%s%s%s%s%s%s%f%s",&s[i].sex,&s[i].barthday,&s[i].ad,&s[i].apartnum,&s[i].posinum,&s[i].posiname,&s[i].income,&s[i].adds);
}
}
*n=b;if(flag) printf("添加成功
");
printf("输入完毕!按任意键返回主菜单!"); getch();
}
void Delete(struct student s[],int *n)
{
printf("请输入您所要删除的职工姓名
");
char m[10];int j;
scanf("%s",m);
for(j=1;j<=*n;j++)
if(strcmp(s[j].name,m)==0)
{
*n=*n-1;
for(;j<=*n;j++)
s[j]=s[j+1];
break;
}
printf("删除成功!
");
printf("输入完毕!按任意键返回主菜单!"); getch();
}
void find(struct student s[],int n)
{
long b=0;char c[10],kk[10];
printf(" ****************************************
");
printf(" 1.1----------按工号查询
");
printf(" 1.2----------按姓名查询
");
printf(" ****************************************
");
int j,e,flag=0;
float soc;
scanf("%s",kk);
if(strcmp(kk,"1.1")==0){
printf("请输入职工工号
");
scanf("%s",c);
{
for(j=0,e=strlen(c);j b=b*10+c[j]-48;
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(j=1;j<=n;j++)
if(b==s[j].num)
{
flag=1;
printf("%ld %s %s %s %s %s %s %s %.2f %s",s[j].num,s[j].name,s[j].sex,s[j].barthday,s[j].ad,s[j].apartnum,s[j].posinum,s[j].posiname,s[j].income,s[j].adds);
}
if(!flag)
printf("未找到相关职工信息
");
}
}
else if(strcmp(kk,"1.2")==0)
{
printf("请输入职工姓名
");
scanf("%s",c);
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(j=1;j<=n;j++)
if(strcmp(s[j].name,c)==0)
{
flag=1;
printf("%ld %s %s %s %s %s %s %s %.2f %s
",s[j].num,s[j].name,s[j].sex,s[j].barthday,s[j].ad,s[j].apartnum,s[j].posinum,s[j].posiname,s[j].income,s[j].adds);
}
if(!flag)
printf("未找到相关职工信息
");
}
else
printf("输入有误.....
");
printf("查找完毕!按任意键返回主菜单!"); getch();
}
void print1(struct student s[],int n)
{
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(;n>0;n--)
printf("%ld %s %s %s %s %s %s %s %.2f %s
",s[n].num,s[n].name,s[n].sex,s[n].barthday,s[n].ad,s[n].apartnum,s[n].posinum,s[n].posiname,s[n].income,s[n].adds);
printf("输出完毕!按任意键返回主菜单!"); getch();
}
int main()
{
menu();
int x,n=0;
while(scanf("%d",&x)!=EOF&&x!=0)
{
switch(x)
{
case 1:input(st,&n);break;
case 2:find(st,n);break;
case 3:Delete(st,&n);break;
case 4:print1(st,n);break;
default:printf("Input error!
");
}
system("cls");
menu();
}
return 0;
}追问谢谢啦,不过我觉得我有点坑了,上面的界面我是给其他人看的,意思是说类似的界面,而我原题呢 界面选项要 有①信息的录入②信息的修改③信息的插入④信息的删除 ⑤信息的查询 还是很感谢啦 要是有时间的话 还是麻烦您能帮忙改一下
#define N 40
#include
#include
#include
struct student{
long num;//工号
char name[10];//姓名
char sex[4];//性别
char ad[100];//地址
char barthday[20];//出生日期
char apartnum[100],posinum[10],adds[100];//部门编号、职务编号、备注
char posiname[20];//职务名称
float income;//职务工资
}st[N];
void menu()
{
printf("****************************************
");
printf("欢迎使用家庭财务管理系统
");
printf("****************************************
");
printf("1:添加记录
");
printf("2:查询记录
");
printf("3:删除记录
");
printf("4:显示所有记录
");
printf("0:退出
");
}
void input(struct student s[],int *n)
{
printf("请输入您所要添加的职工数目
");
int x,i,j,b,flag=0;
scanf("%d",&x);
b=*n+x;
for(i=*n+1;i<=b;i++)
{
flag=1;
printf("请输入员工工号:
");
scanf("%ld",&s[i].num);
for(j=1;j if(s[i].num==s[j].num&&i>1)
{ printf("输入有误
");flag=0;i--;b--;break;}
if(flag)
{
printf("请输入员工姓名:
");
scanf("%s",s[i].name);
printf("请依次输入该员工性别、出生日期、地址、部门编号、职务编号、职务名称、职务工资、备注:
");
scanf("%s%s%s%s%s%s%f%s",&s[i].sex,&s[i].barthday,&s[i].ad,&s[i].apartnum,&s[i].posinum,&s[i].posiname,&s[i].income,&s[i].adds);
}
}
*n=b;if(flag) printf("添加成功
");
printf("输入完毕!按任意键返回主菜单!"); getch();
}
void Delete(struct student s[],int *n)
{
printf("请输入您所要删除的职工姓名
");
char m[10];int j;
scanf("%s",m);
for(j=1;j<=*n;j++)
if(strcmp(s[j].name,m)==0)
{
*n=*n-1;
for(;j<=*n;j++)
s[j]=s[j+1];
break;
}
printf("删除成功!
");
printf("输入完毕!按任意键返回主菜单!"); getch();
}
void find(struct student s[],int n)
{
long b=0;char c[10],kk[10];
printf(" ****************************************
");
printf(" 1.1----------按工号查询
");
printf(" 1.2----------按姓名查询
");
printf(" ****************************************
");
int j,e,flag=0;
float soc;
scanf("%s",kk);
if(strcmp(kk,"1.1")==0){
printf("请输入职工工号
");
scanf("%s",c);
{
for(j=0,e=strlen(c);j
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(j=1;j<=n;j++)
if(b==s[j].num)
{
flag=1;
printf("%ld %s %s %s %s %s %s %s %.2f %s",s[j].num,s[j].name,s[j].sex,s[j].barthday,s[j].ad,s[j].apartnum,s[j].posinum,s[j].posiname,s[j].income,s[j].adds);
}
if(!flag)
printf("未找到相关职工信息
");
}
}
else if(strcmp(kk,"1.2")==0)
{
printf("请输入职工姓名
");
scanf("%s",c);
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(j=1;j<=n;j++)
if(strcmp(s[j].name,c)==0)
{
flag=1;
printf("%ld %s %s %s %s %s %s %s %.2f %s
",s[j].num,s[j].name,s[j].sex,s[j].barthday,s[j].ad,s[j].apartnum,s[j].posinum,s[j].posiname,s[j].income,s[j].adds);
}
if(!flag)
printf("未找到相关职工信息
");
}
else
printf("输入有误.....
");
printf("查找完毕!按任意键返回主菜单!"); getch();
}
void print1(struct student s[],int n)
{
printf("工号 姓名 性别 出生日期 地址 部门编号 职务编号 职务名称 职务工资 备注
");
for(;n>0;n--)
printf("%ld %s %s %s %s %s %s %s %.2f %s
",s[n].num,s[n].name,s[n].sex,s[n].barthday,s[n].ad,s[n].apartnum,s[n].posinum,s[n].posiname,s[n].income,s[n].adds);
printf("输出完毕!按任意键返回主菜单!"); getch();
}
int main()
{
menu();
int x,n=0;
while(scanf("%d",&x)!=EOF&&x!=0)
{
switch(x)
{
case 1:input(st,&n);break;
case 2:find(st,n);break;
case 3:Delete(st,&n);break;
case 4:print1(st,n);break;
default:printf("Input error!
");
}
system("cls");
menu();
}
return 0;
}追问谢谢啦,不过我觉得我有点坑了,上面的界面我是给其他人看的,意思是说类似的界面,而我原题呢 界面选项要 有①信息的录入②信息的修改③信息的插入④信息的删除 ⑤信息的查询 还是很感谢啦 要是有时间的话 还是麻烦您能帮忙改一下
全部回答
- 1楼网友:蕴藏春秋
- 2021-01-27 15:00
我来试试吧, 能搞定追问上面有人先回复了,他可能有点误解我的意思了,如果你做好的话,也可以给我,我也可以给你200分 (怎么不好向你提问啊。。。你要是做好,想给分给你都不方便啊。。。你做好的时候告诉我一下哈)
- 2楼网友:像个废品
- 2021-01-27 14:48
我有一个学生信息管理系统,C语言的。功能和你的差不多,但是基本信息不一样,是姓名,学号,性别,语文分数,数学分数,英语分数等。适合的话HI一下,发给你。追问查询方式也有两种吗? 以及其他的功能都有吗?追答
有的 学号和姓名。
有的 学号和姓名。
- 3楼网友:思契十里
- 2021-01-27 13:21
额……你这个东西基本就是一个项目了,网上一般付费500~1000请软件公司定制的,不像命令行,要有图形界面,一个星期左右才能做出来个基本界面的。。你给200分也不会有人做的。。追问呃,这个不用界面的,就是简单的命令式的,我帮同学发的,我学的是C++,做这个真的很简单,这种项目是我们学C++时起手的课题,但是同学要用C语言。鉴于我对C的不熟悉,不想烦这个神,就把它挂出来了。。。。这个代码应该很简单的吧(起码用C++很简单的)追答要不要数据库,要数据库的话就复杂了,不要的话c++和c应该可以互串的,你把你的代码转换成C语言的不就行了?比如cout换成printf追问不要什么数据库,这个 只要有保存功能就行,放在文档里就好了,反正这个程序就是最低级的那种!!!我以前帮同学做过一个C程序,用C++汇编的时候没有错,但改成C时就不能运行了,而且 C的printf用的超级不舒服!!!追答你更改代码远比让人重写好!实在不行。。你封装个函数,把printf封装起来,说实话,我也是学C++的,C基本只能看得懂。。追问反正那个同学也不急,这个就先挂这儿吧,看看有没有人来做,毕竟这种低级的程序真的很水的。用C++做 像我这种还不是太熟悉的一个下午就能搞定了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯