程序运行不全面,求帮助
题目要求: 课程设计题目:机房上机系统(由 完成)
课程设计内容:用C语言编写程序完成以下任务:
(1)从键盘输入学生的学号,姓名,系别,机时等信息,并保存在data11.txt文件中。
(2)上机:记录本次上机时间,上机类别(如上课、普通上机、上网)。
(3)下机:记录下机时间,并计算上机所用的时间,从机时数中扣除, 并更新data11.txt文件中对应机时。(使用fprintf函数)
课程设计要求:
1.贯彻结构化程序设计思想。
2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。
3.用户界面中的菜单至少应包括“录入学生信息”、“上机”、“下机”和“退出”5项。
4.代码应适当缩进,并给出必要的注释,以增强程序的可读性。
程序编译:#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
void show();//显示主菜单
void add();//录入信息
void sj();//上机
void xj();//下机
void back();//返回主菜单
void ys();//延时
void gx();//更新信息
struct stu
{
long num;
char name[30];
char xibie[50];
double jishi;
char sjlx[30];
};
struct stu wo[1];//设置仅有一个元素
struct stu temp;
void bc(struct stu wo[]);//保存
time_t start,end;
int p=0;
void main()
{
int choose;
FILE *fp=NULL;
if((fp=fopen("C://data11.txt","r+"))==NULL)
{
FILE *fp1=NULL;fp1=fopen("C://data11.txt","w+");
fclose(fp1);
}
show();
printf("\t\t====>请选择:");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case 0:exit(0);//退出
break;
case 1:add();
back();ys();//添加学生信息
break;
case 2:sj();
back();ys();//上机
break;
case 3:xj();
back();ys();//下机
break;
default:printf("选择错误!\n");
back();ys();
break;
}
fflush(stdin);
system("cls");
}
void show()
{
printf("****************************************************\n");
printf("* ******************************************** *\n");
printf("* * * *\n");
printf("* * SHEN HANG * *\n");
printf("* * JI FANG SHANG JI XI TONG * *\n");
printf("* * * *\n");
printf("* ******************************************** *\n");
printf("****************************************************\n");
printf(" 2012~2013 \n");
printf("****************************************************\n");
printf("****************************************************\n");
printf("* * 1. 录入学生信息并保存 * *\n");
printf("* * 2. 上机 * *\n");
printf("* * 3. 下机 * *\n");
printf("* * 0. 退出 * *\n");
printf("****************************************************\n");
}
void back()
{
printf("\t===>按Enter键返回主菜单\n");
}
void ys()
{
char c='\0',d='\0';
c=getchar();d=getchar();
if(c=='\0'||d=='\0')
{ys(); }
}
void add()
{
printf("请输入学生学号:\n");
scanf("%ld",&temp.num);
printf("请输入学生姓名:\n");
scanf("%s",temp.name);
printf("请输入学生系别:\n");
scanf("%s",temp.xibie);
printf("请输入机时:\n");
scanf("%lf",&temp.jishi);
printf("请输入上机类型:\n");
scanf("%s",temp.sjlx);
wo[1]=temp; //写入到数组
bc(&temp); //写入到文件
p=1;
}
void sj()
{
if(p==1)
{
start=time(NULL);
p=2;
}
else
{
if(p==0)
{
printf("请先输入信息\n");
}
else
{
printf("请先下机\n");
}
}
}
void xj()
{
if(p==2)
{
end=time(NULL);
gx();
p=3;
}
else
{
if(p==0)
{
printf("请先输入信息\n");
}
else
{
printf("请先上机\n");
}
}
}
void gx()
{
double t;
t=difftime(start,end);
temp.jishi=temp.jishi-t;
wo[1]=temp;
bc(&temp);
}
void bc(struct stu *wo)
{
FILE *fp=NULL;
fp=fopen("C://data11.txt","a+");
fwrite(wo,sizeof(struct stu),1,fp);
fclose(fp);
}