求大神帮我了修改修改小白用c语言做的系统

Kjjhhh 2019-05-21 08:52:07
我调试好运行之后发现,程序不是从登录页面运行的,而是从后面的一个p_message函数开始的,而且登录系统无法正常运作,求大神指教啊
...全文
80 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kjjhhh 2019-05-22
  • 打赏
  • 举报
回复
引用 11 楼 拥抱Linux的回复:
不在windows系统,只能简单看看,简单说说几个看到的问题。
(1)main函数的头4行里:前两行没有作用,难道只是为了声明一下结构体么?第三行的传入变量sum是全局变量,没有初始化,那么默认值初始值是0,传入s_message函数后,假设文件打开正常,后面的for循环因为不满足循环条件也不执行,退出s_message之后,进入第4行的p_message函数。
(2)s_message函数没有定义返回值,但是内部有一条return 语句,编译时报错。同样的问题,其它有些函数也有。
(3)你所说的登录界面是main函数中那个while循环体吧? 它在上面那么多的语句的后面,当然是等前面的语句执行完了才轮到它呀!
我在使用codeblocks的时候,它可能由于容错性比较强没有报错,而是只有警告,我将main函数移动到底部后就可以正常使用,我会注意修改你所说的问题的,谢谢。
棉猴 2019-05-21
  • 打赏
  • 举报
回复
还是直接贴代码吧,太长了
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
引用 3 楼 自信男孩的回复:
直接贴代码吧
太长了,贴不上去啊啊啊啊啊
自信男孩 2019-05-21
  • 打赏
  • 举报
回复
直接贴代码吧
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
引用 1 楼 636f6c696e的回复:
这字体都看瞎了
呃呃呃呃呃呃呃呃🌚
636f6c696e 2019-05-21
  • 打赏
  • 举报
回复
这字体都看瞎了
拥抱Linux 2019-05-21
  • 打赏
  • 举报
回复
不在windows系统,只能简单看看,简单说说几个看到的问题。
(1)main函数的头4行里:前两行没有作用,难道只是为了声明一下结构体么?第三行的传入变量sum是全局变量,没有初始化,那么默认值初始值是0,传入s_message函数后,假设文件打开正常,后面的for循环因为不满足循环条件也不执行,退出s_message之后,进入第4行的p_message函数。
(2)s_message函数没有定义返回值,但是内部有一条return 语句,编译时报错。同样的问题,其它有些函数也有。
(3)你所说的登录界面是main函数中那个while循环体吧? 它在上面那么多的语句的后面,当然是等前面的语句执行完了才轮到它呀!
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
引用 7 楼 自信男孩的回复:
[quote=引用 6 楼 Kjjhhh 的回复:]
[quote=引用 5 楼 棉猴的回复:]还是直接贴代码吧,太长了

还是直接贴代码吧,太长了[/quote]
太长了,贴不上去啊啊啊[/quote]
建议分多次粘贴,多少行代码,还不能贴完的?[/quote] 好的好的我贴在下面了
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
ch_message() { int i=0,choicel; int ch_num,flag =0; int r=0; char choice2; printf("\n 输入要修改的职工号:"); scanf("%d",&ch_num); for(i=0;i<sum;i++) { if (ch_num==s[i].num) r=1; } if (r==0||ch_num==0) printf("没有该职工的相关信息"); do { for(i=0;i<sum;i++) { if (s[i].num==ch_num ) { printf("\n 你要修改哪一项? \n"); printf("\n 1.职工号\n"); printf("\n 2.姓名\n"); printf("\n 3.性别\n"); printf("\n 4.职务\n"); printf("\n 5.工资\n"); printf("\n 6.联系方式\n"); printf("\n 7.出生年月 \n"); printf("请选择:"); scanf("%d",&choicel); switch(choicel) { case 1: printf("\n输入修改后的职工号:"); scanf("%d",&s[i].num);break; case 2:printf("\n 输入修改后的姓名:"); scanf("%s",s[i].name);break; case 3: printf("\n 输入修改后的性别:"); scanf("%s",s[i].sex);break; case 4: printf("\n输入修改后的职务:"); scanf("%s",s[i].zhiwu);break; case 5:printf("\n 输入修改后的工资:"); scanf("%d",&s[i].money);break; case 6:printf("\n 输入修改后的联系方式:"); scanf("%d",s[i].tel);break; case 7: printf("\n 输入修改后的出生年月:"); scanf("%d",&s[i].a.year,&s[i].a.month,&s[i].a.day);break; } } } printf("\n 要继续么?(Y/N)"); choice2=getch(); if(choice2=='y'||choice2=='Y') { printf("\n 继续!\n"); flag=1; } else flag=0; }while(flag==1); printf(" 按回车键返回菜单!"); getch(); return 0; } rew_message() { int choice6; do{ printf("\n\n------------------------更新职工信息----------------------\n\n"); printf(" 1,添加职工信息\n\n"); printf(" 2,修改职工信息\n\n"); printf(" 0,返回主菜单\n\n"); printf(" choice(0-2)"); scanf("%d",&choice6); switch(choice6) { case 1:add_message();break; case 2:ch_message();break; case 0:break; } }while(choice6!=0); return 0; } int p_message() { int i=0,m=0; printf("------------------------输入职工信息------------------------\n\n"); printf("输入要输入的职工个数(m<MAX)\n"); scanf("%d",&m); for(i=sum;i<sum+m;i++) { printf("\n\n第%d个职工信息\n",i+1); printf("\n 职工号:"); scanf("%d",&s[i].num); if(s[i].num==0)break; printf("\n 职工姓名:"); scanf("%s",s[i].name); printf("\n 职工性别:"); scanf("%s",s[i].sex); printf("\n 职工职务:"); scanf("%s",s[i].zhiwu); printf("\n 职工工资:"); scanf("%d",&s[i].money); printf("\n 联系方式:"); scanf("%s",s[i].tel); printf("\n 出生年月:"); scanf("%d%d%d",&s[i].a.year,&s[i].a.month,&s[i].a.day); } printf("\n----------------------职工信息输入完毕-----------------------\n"); sum+=m; printf("\n 按回车键返回菜单!"); getch(); return 0; } int out_message() { int i=0; printf("\n----------------------职工信息表-----------------------------\n\n"); for(i=0;i<sum;i++) { MY1; MY2; printf("\n\n"); } printf("按回车键返回菜单!"); getch(); } in_message() { system("cls"); int choice; do { printf("\n\n\n-------------------查询职工信息--------------------\n\n"); printf(" 1,按职工号查询\n\n"); printf(" 2,按姓名查询\n\n"); printf(" 0,返回主菜单\n\n"); printf(" choice(0-3)\n\n"); scanf("%d",&choice); switch(choice) { case 1:mon_message();break; case 2:nam_message();break; case 0:break; } }while(choice!=0); getch(); return 0; } int mon_message() { system("cls"); int i=0,j,r=0; char mon_message[20]; printf("\n 输入要查询的职工的职工号:"); scanf("%d",&j); for(i=0;i<sum;i++) { if(j==s[i].money) r=1; } if(r==0||j==0) printf("无该职工信息!!!\n"); for(i=0;i<sum;i++) if(j==s[i].money) { printf("\n ----------职工信息---------"); MY1; MY2; } getch(); return 0; } nam_message() { system("cls"); int i=0,r=0; char nam_message[20]; printf("\n 属于要查询的职工的名字:"); scanf("%s",nam_message); for(i=0;i<sum;i++) { if(strcmp(s[i].name,nam_message)==0) r=1; } if(r==0) printf("无该职工信息!!!\n"); for(i=0;i<sum;i++) if(strcmp(s[i].name,mon_message)==0) { printf("\n ----------职工信息---------"); MY1; MY2; } getch(); return 0; }
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
#include<stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MY1 printf ("职工号\t 姓名\t性别\t职务\t工资(元)\t联系方式\t 出生年月") #define MY2 printf ("\n%-6d %10s %4s\t%6d %6d\t%-11s %8d%2d%2d \n",s[i].num,s[i].name,s[i].sex,s[i].zhiwu,s[i].money,s[i].tel,s[i].a.year,s[i].a.month,s[i].a.day) #define MAX 30 char reg_name[30]="",reg_pwd[10]=""; char on_name[30],on_pwd[10]; int i; int sum; struct date { int year; int month; int day; }a; struct z_message { int num; char name[20]; char sex[4]; char zhiwu[20]; int money; char tel[11]; struct date a; }s[MAX]; //定义变量 //用户注册系统 void regist() { //清屏 system("pause"); system("cls"); printf("\n\n\t\t\t欢迎使用职工信息注册系统\n\n"); while(1) { //输入用户名 printf("\t\t请输入用户名[不能大于10个字符]:"); scanf("%s",reg_name); //判断用户名 if(strlen(reg_name)<=10) { while(1) { //输入密码 printf("\n\t\t请输入密码[密码长度为八位]:"); scanf("%s",reg_pwd); //判断密码 if(strlen(reg_pwd)==8) { printf("\n\n\t\t注册成功,您的用户名是%s,密码是%s\n\n",reg_name,reg_pwd); break; } else { printf("\n\t\t密码的长度为%d,请重新输入\n",strlen(reg_pwd)); } } break; } else { printf("\n\t\t用户名的长度为%d,请重新输入\n\n",strlen(reg_name)); } } } //判断是否注册 int judge() { if(strcmp(reg_name,"")==0&&strcmp(reg_pwd,"")==0) { printf("\n\n\t\t您尚未注册,请先注册!\n\n"); return 0; } else { return 1; } } //用户登录 void dl() { int i; system("pause"); system("cls"); printf("\n\n\t\t\t欢迎使用职工信息登录系统\n\n"); //三次登录验证 for(i=1;i<=3;i++) { printf("\t\t请输入用户名:"); scanf("%s",on_name); printf("\n\t\t请输入密 码:"); scanf("%s",on_pwd); if(strcmp(reg_name,on_name)==0&&strcmp(reg_pwd,on_pwd)==0) { printf("\n\n\t\t登录成功,欢迎使用职工信息系统\n\n"); break; } else { printf("\n\n\t\t登录失败,请重新登录,您还有%d次机会\n\n",3-i); } } } int main() {struct z_message; struct date; s_message(sum); p_message(); r_message(); out_message(); rew_message(); dnum_message(); dmane_message(); add_message(); ch_message(); in_message(); mon_message(); nam_message(); d_message(); dl(); judge(); regist(); int choice8,m; sum=r_message(); int id; while(1) { system("pause"); system("cls"); //输出界面 printf("\n\n\t\t\t职工信息管理系统\n\n"); printf("\t\t\t1:注册\n"); printf("\t\t\t2:登录\n"); printf("\t\t\t0:退出\n\n"); //输入功能编号 printf("\t\t请选择功能编号:"); scanf("%d",&id); //判断 switch(id) { case 1:regist();break; case 2:if(judge()==1) { dl(); do { printf("\n\n-----------------------------------------------------------\n"); printf("\n\n*********密码输入成功,欢迎您进入职工信息管理系统**********\n\n"); printf("\n----------------------------------------------------------------\n"); printf(" 1.录入职工信息\n\n"); printf(" 2.输出职工信息\n\n"); printf(" 3.更新职工信息\n\n"); printf(" 4.查询职工信息\n\n"); printf(" 5.删除职工信息\n\n"); printf(" 0.退出系统\n\n"); printf(" 请选择(0-5):"); scanf("%d",&choice8); switch(choice8) { case 1: p_message();s_message(sum);break; case 2: out_message();break; case 3: rew_message();break; case 4: in_message();break; case 5: d_message();break; case 0: break; } }while(choice8!=0); s_message(sum); printf("职工信息被保存!--(s.txt)\n");break; case 0:exit(1);break; default: printf("\n\t\t您输入的功能编号有误,请重新输入!\n"); } } } } s_message(int sum) { int i=0; FILE *fp; if((fp=fopen("D:\\s.txt","wb"))==NULL) { printf("读取文件错误!\n"); return; } for(i=0;i<sum;i++) { if(fwrite(&s[i],sizeof(struct z_message),1,fp)!=1) printf("写入文件错误!\n"); } fclose(fp); } int r_message() { FILE *fp; int i=0; if((fp=fopen("D:\\s.txt","wb"))==NULL) { printf("\n\n--------暂时无任何信息,回车键进入主菜单录入信息-----------------\n"); return(0); } while(feof(fp)==0) { if(fread(&s[i],sizeof(struct z_message),1,fp)!=1)break; i++; } fclose(fp); return(i); } int d_message() { int choice3; do { printf("\n\n\n*****删除职工信息*****\n\n"); printf(" 1.按职工号删除\n\n"); printf(" 2.按姓名删除\n\n"); printf(" 0.返回主菜单\n\n"); printf(" choice(0-2)"); scanf("%d",&choice3); switch(choice3) { case 1:dnum_message();break; case 2:dmane_message();break; case 0:break ; } }while(choice3!=0); getchar(); return 0; } int dnum_message() { int i=0,m=0,k=0,flag; char choice7; char d_num; do { printf("\n 输入要删除的职工的职工号:"); scanf("%d",&d_num); for(i=0;i<sum;i++) { if(s[i].num==d_num); else break; } for(i=0;i<sum;i++) { if(s[i].num==d_num) { m=i; for(i=m+1;i<sum;i++) s[i-1]=s[i]; } } sum--; printf("\n 此职工信息已被删除**********\n"); printf("\n 要继续删除吗?(Y/N)"); choice7=getch(); if(choice7=='y'||choice7=='Y') { printf("\n 继续!\n"); k++; flag=1; } else flag=0; }while(flag==1); printf(" 按任意键返回主菜单!"); getch(); return 0; } int dmane_message() { int i=0,m=0,k=0,flag; char choice9; char d_name[30]; do { printf("\n 输入要删除的职工的姓名:"); scanf("%s",&d_name); for (i=0;i<sum;i++) { if(strcmp(s[i].name,d_name)!=0); else break; } for(i=0;i<sum;i++) { if(strcmp(s[i].name,d_name)==0) { m=i; for(i=m+1;i<sum;i++) s[i-1]=s[i]; } } sum=sum-1; printf("\n 此职工的信息已被删除********\n"); printf("\n 要继续删除吗?(Y/N)"); choice9=getch(); if(choice9=='y'||choice9=='Y') { printf("\n 继续!\n"); k++; flag=1; } else flag=0; }while(flag==1); printf(" 按任意键返回主菜单!"); getch(); return 0; } add_message() { int i=sum , flag=0; char choice12; printf ("\n\n**********添加一个职工信息**********\n\n"); do { printf ("\n 职工号: "); scanf("%d",&s[i].num); if (s[i].num==0) break; printf("\n 姓名: "); fflush(stdin); scanf ("%s",s[i].name); printf("\n 性别:"); scanf("%s",s[i].sex); printf("\n 职务:"); scanf("%s",s[i].zhiwu); printf("\n 工资:"); scanf("%d",&s[i].money); printf("\n 联系方式:"); scanf("%d",s[i].tel); printf("\n 出生年月: "); scanf("%d%d%d",&s[i].a.year,&s[i].a.month,&s[i].a.day); sum++; printf("\n 要继续吗?(Y/N)"); choice12=getch(); if (choice12=='Y'||choice12=='y') { printf("\n继续!\n"); i++; flag==1; } else flag=0; }while(flag==1); printf("按回车键返回主菜单!"); getch(); return 0; }
自信男孩 2019-05-21
  • 打赏
  • 举报
回复
引用 6 楼 Kjjhhh 的回复:
[quote=引用 5 楼 棉猴的回复:]还是直接贴代码吧,太长了

还是直接贴代码吧,太长了[/quote]
太长了,贴不上去啊啊啊[/quote]
建议分多次粘贴,多少行代码,还不能贴完的?
Kjjhhh 2019-05-21
  • 打赏
  • 举报
回复
引用 5 楼 棉猴的回复:
还是直接贴代码吧,太长了
还是直接贴代码吧,太长了[/quote] 太长了,贴不上去啊啊啊

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧