first commit

master
吴孔炎 6 years ago
commit 503fbaad45

@ -0,0 +1,296 @@
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void menu();//定义系统菜单界面函数
void teacher_login();//老师登陆界面函数
void student_login();//学生登陆界面函数
void login();//登陆学生选课系统总界面
void out();//退出系统
void search();//课程查询
void look();//课程浏览
void select();//课程挑选
void put_course();//由老师首先输入课程的信息
struct course
{
int course_num;//课程编号
char course_name[10];//课程名字
char course_sore[10];//网上授课或教室授课
int course_score;//课程学分
int course_classtime;//授课学时
int course_programtime;//实验学时
int course_count;//课程已报人数
};
void out()
{
exit(0);
}//退出系统函数
void menu()//学生选课系统总界面
{
printf("********************************\n");
printf("欢迎来到湖南工业大学学生选课系统\n");
printf("********************************\n");
printf("按任意键进行\n");
getchar();
}
void login()//登陆界面
{
void teacher_login();
void student_login();
int q;
do
{
printf("学生登陆请按:1\n");
printf("老师登陆请按:2\n");
printf("退出系统请按:3\n");
scanf("%d",&q);
if(q!=1&&q!=2&&q!=3)
{
printf("输入错误\n");
printf("请按任意键进行\n");
getchar();
getchar();
}
if(q==3)
out();//退出系统
switch(q)
{
case 1:student_login();break;
case 2:teacher_login();break;
}
}while(q!=1&&q!=2&&q!=3);
}
void teacher_login()//老师
{
void search();
void look();
int e;
do
{
printf("课程查询请按1\n");
printf("课程浏览请按2\n");
printf("课程信息输入3\n");
printf("退出请按4\n");
scanf("%d",&e);
if(e!=1&&e!=2&&e!=3&&e!=4)
{
printf("输入错误\n");
printf("请按任意进行\n");
getchar();
}
else if(e==4)
out ();
else if(e==1||e==2)
{
switch(e)
{
case 1:search();break;
case 2:look();break;
}
}
else if(e==3)
put_course();
}while(e!=1&&e!=2&&e!=3&&e!=4);
}
void student_login()//学生
{
void out();
void search();
void look();
void select();
int w;
do
{
printf("课程挑选请按1\n");
printf("课程浏览请按2\n");
printf("课程查询请按3\n");
printf("退出请按4\n");
scanf("%d",&w);
if(w!=1&&w!=2&&w!=3&&w!=4)
{
printf("输入数据错误\n");
printf("请按任意键进行\n");
getchar();
getchar();
}
if(w==4)
exit(0);
switch(w)
{
case 1:select();break;
case 2:look();break;
case 3:search();break;
case 4:out();break;
}
}while(w!=1&&w!=2&&w!=3&&w!=4);
}
void select()//学生选课函数
{
FILE *fp1;//储存课程的文件
int i=0,temp=0,n,j,r,t,y;
struct course courses[5];
if((fp1=fopen("course.txt","rb"))==NULL)//把存储课程的文件首地址赋给文件指针fp1
{
printf("文件打开错误\n");
printf("按任意键返回\n");
getchar();
getchar();
student_login();
}
do
{
fread(&courses[i],sizeof(struct course),1,fp1);//把文件的数据读到结构体中储存起来
i+=1;
}while(!feof(fp1));
fclose(fp1);
printf("输入你选择的课程编号:限1,2,3,4,5\n");//请输入1,2,3,4,5
scanf("%d",&n);
for(j=0;j<5;j++)
if(n==courses[j].course_num)
{
temp+=1;
t=j;
break;
}
if(temp==0)
{
printf("不存在输入课程号对应的课程\n");
printf("如果继续进行请按1 返回请按2 \n");
scanf("%d",&r);
switch(r)
{
case 1:select();break;
case 2:student_login();break;
default:printf("输入错误,结束程序\n");exit(0);
}
}
else
{
courses[t].course_count+=1;//进行学生选课的人数统计
printf("选课成功,请注意通知,按时参加课程!\n");
getchar();
getchar();
}
fp1=fopen("course.txt","wb");
for(y=0;y<5;y++)
{
fwrite(&courses[y],sizeof(struct course),1,fp1);//把学生选课情况录到文件中
}
fclose(fp1);
}
void look()//课程浏览函数 ,输出各个课程的信息
{
struct course courses[5];
FILE *fp2;
int i=0,j;
if((fp2=fopen("course.txt","rb"))==NULL)
{
printf("文件打开错误\n");
printf("按任意键进行\n");
getchar();
exit(0);
}
do
{
fread(&courses[i],sizeof(struct course),1,fp2);
i+=1;
}while(!feof(fp2));
for(j=0;j<5;j++)
{
printf("课程编号:%d\n",courses[j].course_num);
printf("课程名字:%s\n",courses[j].course_name);
printf("课程类型:%s\n",courses[j].course_sore);
printf("课程学分:%d\n",courses[j].course_score);
printf("授课学时:%d\n",courses[j].course_classtime);
printf("实验学时:%d\n",courses[j].course_programtime);
printf("课程已报人数:%d\n\n",courses[j].course_count);
}
fclose(fp2);
getchar();
getchar();
}
void search()//课程查询函数
{
FILE *fp3;
int num;
struct course courses[5];
int i=0,j;
printf("请输入需要查询的课程的编号:限1,2,3,4,5\n");//请输入1,2,3,4,5
scanf("%d",&num);
if(num!=1&&num!=2&&num!=3&&num!=4&&num!=5)
{
printf("输入错误!按任意键返回\n");
getchar();
getchar();
search();
}
if((fp3=fopen("course.txt","rb"))==NULL)
{
printf("文件打开错误\n");
printf("按任意键进行\n");
getchar();
exit(0);
}
do
{
fread(&courses[i],sizeof(struct course),1,fp3);
i+=1;
}while(!feof(fp3));
fclose(fp3);
for(j=0;j<5;j++)
if(courses[j].course_num==num)
{
printf("课程编号:%d\n",courses[j].course_num);
printf("课程名字:%s\n",courses[j].course_name);
printf("课程类型:%s\n",courses[j].course_sore);
printf("课程学分:%d\n",courses[j].course_score);
printf("授课学时:%d\n",courses[j].course_classtime);
printf("实验学时:%d\n",courses[j].course_programtime);
printf("课程已报人数:%d\n",courses[j].course_count);
break;
}
getchar();
getchar();
}
void put_course()
{
FILE *fp;
struct course courses[5];
printf("老师向数据库文件输入五组课程数据。例如: \n");
printf("1 体适能 教室授课 5 30 3 0\n");
printf("2 英语 网上授课 5 30 5 0\n");
printf("3 湖南青马 网上授课 5 30 5 0\n");
printf("4 心理学 网上授课 5 30 5 0\n");
printf("5 心理健康 教室授课 5 30 5 0\n");
printf("有五次输入注意每个成员间用空格隔开刚输入时把已报人数设为0输入一个结构体数组按回车键\n");
printf("数据依次代表:编号,名字,方式,学分,授课学时,实验学时,已报人数\n");
printf("老师测试时为节省时间可以把上面5组数据样例复制作为输入在进行其他测试\n");
int j;
for(j=0;j<5;j++)
{
scanf("%d%s%s%d%d%d%d",&courses[j].course_num,courses[j].course_name,courses[j].course_sore,&courses[j].course_score,&courses[j].course_classtime,&courses[j].course_programtime,&courses[j].course_count);
}
int i;
if((fp=fopen("course.txt","wb"))==NULL)
{
printf("文件打开错误\n");
printf("按任意键进行\n");
getchar();
exit(0);
}
for(i=0;i<5;i++)
{
fwrite(&courses[i],sizeof(struct course),1,fp);
}
fclose(fp);
printf("课程信息输入成功\n");
getchar();
getchar();
}
int main()//主函数
{
menu();
printf("老师首次登陆时,点击老师选项,应输入课程信息,学生禁止点击\n");
login();
return 0;
}

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save