1. 请C语言编程达人帮忙编写一段程序
我没用用文件啊 用的就是结构体typedef struct employee 这个就是结构体
#include<stdio.h>
#include<stdlib.h>
typedef struct employee
{
int id;
char name[20];
char department[20];
int money;
char position[20];
struct employee *next;
}Employee,*ept;
typedef struct
{
ept head;//头指针
ept tail;//尾指针
ept current;
ept p,q;
int tot;
}Linkemployee;
int isfound(Linkemployee &l,int id)//判断是否有重复的职工号
{
int count=0,flag;
l.p=l.head;
while(count++<l.tot)
{
flag=0;
if(l.p->id==id)
flag=1;
else
l.p=l.p->next;
}
if(flag==1)
return 1;
else
return 0;
}
void CreatLink(Linkemployee &l)//构造空链表
{
l.head=l.tail=(Employee*)malloc(sizeof(Employee));
l.head=l.tail=NULL;
l.tot=0;
}
void AddInformation(Linkemployee &l)
{
l.current=(Employee*)malloc(sizeof(Employee));
printf("请输入职工姓名:");
scanf("%s",l.current->name);
printf("请输入职工号:");
scanf("%d",&l.current->id );
printf("请输入职工部门:");
scanf("%s",l.current->department);
printf("请输入职工职位:");
scanf("%s",l.current->position );
printf("请输入职工工资:");
scanf("%d",&l.current->money );
if(l.head==NULL)
{
l.head=l.tail=l.current;
l.head->next=l.tail;
l.tail->next=NULL;
l.tot++;
printf("职工添加成功!!!\n");
}
else
{
if(!isfound(l,l.current->id))
{
l.tail->next=l.current;
l.current->next=NULL;
l.tail=l.current;
l.tot++;
printf("职工添加成功!!!\n");
}
else
printf("职工号已经存在\n");
}
}
void SearchInformation(Linkemployee &l)
{
if(l.tot>0)
{
int findnumber,count=0;
l.p=l.head;
printf("输入要要查找的职工号:");
scanf("%d",&findnumber);
while(count++<l.tot)
{
if(findnumber==l.p->id)
{
printf("职工信息找到!\n");
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
printf("%s%6d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
}
else
printf("无输入职工号的信息\n");
l.p=l.p->next;
}
}
else
printf("没有任何信息\n");
}
void DisplayInformation(Linkemployee &l)
{
if(l.tot>0)
{
int count=0;
l.p=l.head;
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
while(count++<l.tot)
{
printf("%s%8d%8s%8d%8s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
l.p=l.p->next;
}
}
else
printf("没有任何信息\n");
}
void DeleteInformation(Linkemployee &l)
{
int findid, count=0;
int flag;
int selection;
l.p=l.head;
l.q=l.p;//记录删除节点的前一个节点
if(l.tot>0)
{
printf("输入要删除的职工号:");
scanf("%d",&findid);
while(count++<l.tot)
{
flag=0;
if(findid==l.p->id)
{
flag=1;
}
else
{
l.q=l.p;//记录删除节点的前一个节点
l.p=l.p->next;
}
}
if(flag==1)
{
printf("职工信息找到!\n");
printf("姓名 职工号 职工部门 职工工资 职工职位\n");
printf("%s%6d%6s%6d%6s\n",l.p->name,l.p->id,l.p->department,l.p->money,l.p->position);
printf("确认删除吗?1删除,2退出\n");
scanf("%d",&selection);
if(selection==1)
{
if(l.p==l.tail )
{
l.q->next=NULL;
l.tail=l.q;
free(l.p);
}
else if(l.p==l.head)
{
l.q=l.p;
l.p=l.p->next;
l.head=l.p;
free(l.q);
}
else
{
l.q->next=l.p->next;
free(l.p);
}
l.tot--;
}
else
printf("自动退出\n");
}
else
printf("无输入职工号信息\n");
}
else
printf("没有任何信息\n");
}
void main()
{
int selection;
Linkemployee l;
CreatLink(l);
printf("----------------------------------------------\n欢迎进入公司职工信息管理程序");
printf("\n----------------------------------------------\n");
printf("请选择您的操作:\n1. 增加职工信息\n2. 查找职工信息\n3. 显示所有职工信息\n4. 删除职工信息\n5. 退出\n");
while(scanf("%d",&selection)&&selection!=5)
{
switch(selection)
{
case 1:AddInformation(l);break;
case 2:SearchInformation(l);break;
case 3:DisplayInformation(l);break;
case 4:DeleteInformation(l);break;
}
printf("----------------------------------------------\n欢迎进入公司职工信息管理程序");
printf("\n----------------------------------------------\n");
printf("请选择您的操作:\n1. 增加职工信息\n2. 查找职工信息\n3. 显示所有职工信息\n4. 删除职工信息\n5. 退出\n");
}
}
2. VB编程达人请速进,今晚必需,在线等【穷举法】
你自己打开看看!
代码在下面:
Option Explicit
Private Sub Command1_Click()
Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim Y As Integer
Dim n69 As Integer
Dim n39 As Integer
Dim n29 As Integer
Y = 600
For i = 1 To 8 '设截取69CM的有i根,600/69 最多为8
For j = 1 To 15 '设截取39CM的有J根,600/39 最多为15
For k = 1 To 20 '设截取29CM的有K根,600/29 最多为20
If i * 69 + j * 39 + k * 29 <= 600 Then '如果满足不超过600CM的,就是一组答案
If 600 - (i * 69 + j * 39 + k * 29) < Y Then '如果余数比变量Y里的小,就保存i,j,k以及余数
n69 = i
n39 = j
n29 = k
Y = 600 - (i * 69 + j * 39 + k * 29)
End If
End If
Next k
Next j
Next i
Print "69CM:"; n69; "根"
Print "39CM:"; n39; "根"
Print "29CM:"; n29; "根"
Print "余:"; Y; "CM"
End Sub
Private Sub Command2_Click()
Dim i As Integer
For i = 0 To 99 '把这两位看作一个两位数字,范围是0-99
'注意要乘以10,充当5位数字的十位和百位,mod 等于0,表示能整除
If (67008 + 10 * i) Mod 78 = 0 And (67008 + 10 * i) Mod 67 = 0 Then
Print 67008 + 10 * i
End If
Next i
End Sub
3. 编程达人在线教育怎么样
编程达人很不错的。老师都是有3年以上开发经验的程序员,真正知道该教什么知识。学费还便宜,相比其他机构要低很多很多。