qq_58473455 2021-10-29 21:04 采纳率: 100%
浏览 66
已结题

关于C程序工作量管理系统的修改意见

img

程序如下
#include<stdio.h>
#include<string.h>
struct teacher
{ char number[10]; //教师号
char xingming[10]; //教师名
char sex[3]; //性别
char zhicheng[10]; //职称
char kecheng[10]; //任教课程
int banji; //班级
int shumu; //斑级数目
double lilunkeshi; //理论课时
double shiyankeshi; //实验课时
double zongkeshi; //单个教学任务总课时
};
struct teacher tea [100];
struct teacher*tt;
int n=0;int i=0;
void shuru();
void chaxun();
void xiugai();
void shanchu();
void liulan();
void main() //主函数
{ int t;
printf(" 欢迎使用 \n");
printf("----------------------");
do
{
printf(" *** 输入信息请输1 *** \n");
printf(" *** 修改信息请输2 *** \n");
printf(" *** 删除信息请输3 *** \n");
printf(" *** 浏览信息请输4 *** \n");
printf(" *** 查询信息请输5 *** \n");
printf(" *** 退出系统请输6 *** \n");
printf("请输入选项 (0-6):");
scanf("%d",&t);
{
do
{
printf ("请重新输入选项(0-6):");
scanf("%d",&t);
}
while(6<=t&&t<=0);}
switch(t)
{
case 0:
break;
case 1:
shuru();break;
case 2:
xiugai();break;
case 3:
shanchu();break;
case 4:
liulan();break;
case 5:
chaxun();break;
}
}
while(t!=0);
}
void shuru() //输入函数
{
int j; int d=1,c;
if(n==0)
tt=tea;
printf("请输入教师号:");
scanf("%s",&tt->number);
printf("请输入姓名:");
scanf("%s",&tt->xingming);
printf("请输入性别:");
scanf ("%s",&tt->sex);
printf("请输入职称:");
scanf("%s",&tt->zhicheng);
printf("输入任教课程:");
scanf("%s",&tt->kecheng);
printf("请输入班级: ");
scanf("%d",&tt->banji);
printf("请输入班级数目 (>=2):");
scanf("%d",&tea[i].shumu);
if(tea[i].shumu<2)
do
{
printf("请重新输入 (>=2):");
scanf("%d",&tea[i].shumu);
}
while(tea[i].shumu<2);

printf("请输入理论课时:");
scanf("%1f",&tt->lilunkeshi);
printf("请输入实验课时:");
scanf("%1f" ,&tt->shiyankeshi);
n++;i++;tt++;
printf("信息输入完毕!\n");
printf("----------------------------------------\n");
}
void xiugai() //修改函数
{
int c;
int j;
int s=0;
int d=0;
int z=0;
char a[10];
printf("请输入教师号:");
scanf("%s",&a);
for(j=0;j<n;j++)
{
if(strcmp(tea[j].number,a)==0)//strcmp(tea[j].numbera),如果a与tea[j].number相等,则输出为0
{
do{
printf("-----------------------------------------\n");
printf("修改教师号请按1\n");
printf("修改姓名请按2\n");
printf("修改性别请按3\n");
printf("修改职称请按4\n");
printf("修改任教课程请按5\n");
printf("修改班级请按6\n");
printf("修改班级数目请按7\n");
printf("修改理论课请按8\n");
printf("修改实验课时请按9\n");
printf("退出系统请按0\n");
printf("---------------------------------------");
printf("请输入选项:");
scanf("%d",&c);
switch(c)
{
case 0:
break;
case 1:
printf("请输入新教师号:");
scanf ("%s",tea[j].number);break;
case 2:
printf("请输入新的姓名:");
scanf("%s",tea[j].xingming);break;
case 3:
printf("请输入新的性别:");
scanf ("%s",tea[j].sex);break;
case 4:
printf("请输入新的职称:");
scanf("%s",tea[j].zhicheng);break;
case 5:
printf("请输入新的任教课程:");
scanf("%s",tea[j].kecheng);break;
case 6:
printf("请输入新的班级:");
scanf("%d",&tea[j].banji);break;
case 7:
printf("请输入新的班级数目:");
scanf("%d",&tea[j].shumu);break;
case 8:
printf("请输入新的理论课时:");
scanf("%1d", &tea[j].lilunkeshi);break;
case 9:
printf("请输入新的实验课时:");
scanf("%1d", &tea[j].shiyankeshi);break;
}
}while(c!=0);
s=1;
}}
printf("----------------------------------------------\n");
if(s!=1)
printf("输入无效,请核实后在输入!\n");
printf("----------------------------------------------\n");
}
void shanchu() //删除函数
{
int j;
int d=0;int dd=n;
int s;
char a[10];
if(n!=0)
{
printf("请输入要删除的教师号:");
scanf("%s",&a);
do
{for(j=0;j<n;j++)
{
if(strcmp(a,tea[j].number)==0)
{s=j;
d=1;}
dd--;
}
}while(strcmp(a,tea[j].number)!=0&&dd!=0);
if(d==1){
if(s!=(n-1))
{
for(s;s<n;s++)
{
tea[s].banji=tea[s+1].banji;
strcpy(tea[s].kecheng,tea[s+1].kecheng);/Itea[s+1].kecheng复制给teals].kecheng/
tea[s].lilunkeshi=tea[s+1].lilunkeshi;
strcpy(tea[s].number,tea[s+1].number);
strcpy(tea[s].sex,tea[s+1].sex);
tea[s].shiyankeshi-tea[s+1].shiyankeshi;
tea[s].shumu=tea[s+1].shumu;
strcpy(tea[s].xingming,tea[s+1].xingming);
strcpy(tea[s].zhicheng,tea[s+1].zhicheng);
tea[s].zongkeshi-tea[s+1].zongkeshi;
}
n--;tt--;
printf("删除完毕!!!\n");
}else{n--;tt--;}}
else{printf("输入无效!!!\n");
}
}
else
printf("输入无效!!!\n");
printf("删除完毕!!!\n");
printf("----------------------------------------------------\n");}
void liulan() //浏览函数
{ if(n!=0)
{
int j;
for(j=0;j<n;j++)
{
if(tea[j] .shumu==2)
tea[j].zongkeshi=1.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else if(tea[j].shumu==3)
tea[j].zongkeshi=2*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else
tea[j].zongkeshi=2.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
printf("-------------------------------------------------\n");
printf("教师号\t 姓名\t性别\n");
printf("%s\t%s\t%s\n",tea[j].number,tea[j].xingming,tea[j].sex);
printf("职称\t 任教课程\t 班级\n");
printf("%s\t%s\t\t%d\n",tea[i].zhicheng,tea[j].kecheng,tea[i].banji);
printf("班级数目\t 理论课时\t\t实验课时\t\t教学任务总课时\n");
printf("%d\t\t%1f\t\t",tea[j].shumu,tea[j].lilunkeshi);
printf("%1f\t\t",tea[j].shiyankeshi);
printf("%lf",tea[j].zongkeshi);
printf("\n");
printf("----------------------------------------------------\n");}
}
else
printf("数据为空!!!\n");
printf("--------------------------------------------------------------------------------\n");
}
void chaxun() //查询函数
{ int a; printf("--------------------------------------------------------------------------------\n");
printf("按1,依教师号查询\n");
printf("按2,依姓名查询\n");
printf("请输入数字查询(1或2):");
scanf("%d",&a);
if(a!=1&&a!=2)
{do
{printf("请重新输入数字查询(1或2):");
scanf("%d",&a);
}
while(a!=1&&a!=2);}
switch(a)
{
case 1:
{ int j;
char q[10]; int d=0;
printf("请输入教师号:");
scanf("%s",&q);
for( j=0;j<n;j++)
{
if(strcmp(q,tea[j].number)==0)
{
if(tea[j].shumu==2)
tea[j].zongkeshi=1.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else if(tea[j].shumu==3)
tea[j].zongkeshi=2*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else
tea[j].zongkeshi=2.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
printf("--------------------------------------------------------------------------------\n");
printf("教师号\t姓名\t性别\n");
printf("%s\t%s\t%s\n",tea[j].number,tea[j].xingming,tea[j].sex);
printf("职称\t任教课程\t班级\n");
printf("%s\t%s\t\t%d\n",tea[j].zhicheng,tea[j].kecheng,tea[j].banji);
printf("班级数目\t理论课时\t\t实验课时\t\t教学任务总课时\n");
printf("%d\t\t%lf\t\t",tea[j].shumu,tea[j].lilunkeshi);
printf("%lf\t\t",tea[j].shiyankeshi);
printf("%lf",tea[j].zongkeshi);
printf("\n");
printf("--------------------------------------------------------------------------------\n");
d=1;}}
if(d==0)
printf("请核实后再输入!!!\n");}
break;
case 2:
{int j; char q[10];
int d=0;
printf("请输入姓名:");
scanf("%s",&q);
for( j=0;j<n;j++)
{ if(strcmp(q,tea[j].xingming)==0)
{if(tea[j].shumu==2) tea[j].zongkeshi=1.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else if(tea[j].shumu==3) tea[j].zongkeshi=2*(tea[j].lilunkeshi+tea[j].shiyankeshi);
else tea[j].zongkeshi=2.5*(tea[j].lilunkeshi+tea[j].shiyankeshi);
printf("--------------------------------------------------------------------------------\n");
printf("教师号\t姓名\t性别\n");
printf("%s\t%s\t%s\n",tea[j].number,tea[j].xingming,tea[j].sex);
printf("职称\t任教课程\t班级\n");
printf("%s\t%s\t\t%d\n",tea[j].zhicheng,tea[j].kecheng,tea[j].banji);
printf("班级数目\t理论课时\t\t实验课时\t\t教学任务总课时\n");
printf("%d\t\t%lf\t\t",tea[j].shumu,tea[j].lilunkeshi);
printf("%lf\t\t",tea[j].shiyankeshi);
printf("%lf",tea[j].zongkeshi);
printf("\n");
printf("--------------------------------------------------------------------------------\n");
d=1; }
}
if(d==0)
printf("请核实后在输入\n");
break;
}
}

怎么修改错误啊

  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-10-29 21:55
    关注

    scanf("%s",&tt->number);改为scanf("%s",tt->number); 字符串输入不要加&
    void chaxun() //查询函数少了右边的大括号,最后要再加一个大括号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月6日
  • 已采纳回答 10月29日
  • 修改了问题 10月29日
  • 修改了问题 10月29日
  • 展开全部

悬赏问题

  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表