#includevoid index();//首页
void login();//登陆
void bye_sys();//退出界面
void stu_login();//学生登陆菜单
void c_select();//选择课程
void c_view();//课程浏览
void c_add();//新增课程
void c_delete();//删除课程
void c_searchs();//学生查询函数
void c_searchm();//管理员查询函数
void c_viewm();//管理员浏览函数
void c_views();//学生浏览函数
struct course//定义课程结构体
{
int c_num;//课程编号
char c_name[20];//课程名字
int c_score;//课程学分
char c_properties[20];//课程性质
int c_time;//课程学时
char c_term[20];//开课学期
};
struct student
{
char s_number[10];
char s_password[10];
};
struct manager
{
char m_name[10];
char m_password[10];
};
int main()//主函数部分
{
index();
login();
return 0;
}
void index()//首页
{
char input;
printf("\n\n\t\t\t◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ 内蒙古科技大学 ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ 学生选课系统 ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆ ◆\n");
printf("\t\t\t◇ ◇\n");
printf("\t\t\t◆◇◆◇◆◇※贾伟 ☆ 郭科※◆◇◆◇◆\n");
printf("\t\t\t\n\n\n");
input=getchar();
system("cls");//清屏
}
void login()//登陆界面
{
void stu_login();
void man_login();
void bye_sys();
int input;
do
{
system("cls");
printf("\n\n\n\n\n\n\t\t\t\t1.学生登陆\n");
printf("\n\t\t\t\t2.管理员登陆\n");
printf("\n\t\t\t\t3.退出系统\n\n\n");
printf("\n\n\n\t请输入项目代号:");
scanf("%d",&input);
if(input!=1&&input!=2&&input!=3)
{
printf("\n\t 输入有误!!请重新输入\n");
printf("\n\t 按任意键返回\n\t");
getchar();getchar();
system("cls");
}
if(input==3)
{
bye_sys();
}
}while(input!=1&&input!=2&&input!=3);
switch(input)
{
case 1:
stu_login();break;
case 2:
man_login();break;
}
}
void bye_sys()//退出界面
{
exit(0);
}
void man_login()//管理员登陆
{
void c_add();
void c_delete();
void c_view();
void c_searchm();
int in;
do{
system("cls");
printf("\n\n\n\n\t\t\t --管理员登陆菜单--\n\n");
printf("\n\n\t\t\t\t1.新增课程\n");
printf("\n\t\t\t\t2.删除课程\n");
printf("\n\t\t\t\t3.课程浏览\n");
printf("\n\t\t\t\t4.课程查询\n");
printf("\n\t\t\t\t5.退出\n");
printf("\n\n\t请输入项目代号:");
scanf("%d",&in);
if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)
{
printf("\n\t 输入有误!!\t 按任意键重新输入");
getchar();getchar();
}
}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);
switch(in)
{
case 1:
c_add();break;
case 2:
c_delete();break;
case 3:
c_viewm();break;
case 4:
c_searchm();break;
case 5:
login();break;
}
}
void stu_login()//学生登陆
{
void c_select();
void c_view();
void c_searchs();
void login();
int input;
do
{
system("cls");
printf("\n\n\n\n\t\t\t --学生登陆菜单--\n\n");
printf("\n\n\t\t\t\t1.学生选课\n");
printf("\n\t\t\t\t2.课程浏览\n");
printf("\n\t\t\t\t3.课程查询\n");
printf("\n\t\t\t\t4.退出\n\n");
printf("\n\t\t请输入项目代号:");
scanf("%d",&input);
if(input!=1&&input!=2&&input!=3&&input!=4)
{
printf("\n\t 输入有误!!\n");
printf("\t按任意键重新输入");
getchar();getchar();
}
}while(input!=1&&input!=2&&input!=3&&input!=4);
switch(input)
{
case 1:
c_select();break;
case 2:
c_views();break;
case 3:
c_searchs();break;
case 4:
login();break;
}
}
void c_select()//选择课程
{
int n,in,i=0,j;
int flag=0;
FILE *fp;
FILE *fp1;
char input;
struct course courses[10];
if((fp=fopen("course.dat","rb"))==NULL)//判断是否存在课程
{
printf("\n\n\n\t 课程不存在\n\n");
printf("\t\n\t");
input=getchar();
input=getchar();
stu_login();//进入学生登录菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);//文件读完后关闭
}
printf("\n\n\t\t 请输入你要选择课程的编号:");
scanf("%d",&n);
if((fp1=fopen("courseselect.dat","rb"))==NULL)
{
fp1=fopen("courseselect.dat","wb");
}
else
{
fclose(fp1);
fp1=fopen("courseselect.dat","ab");
}
for(j=0;j\n\t");
getchar();getchar();
man_login();
}
else
{
do{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
do{
system("cls");
if(i==1)
{
printf("\n\n\n\t\t\t没有记录!\n");
getchar();getchar();
man_login();
}
else
{
printf("\n\t\t\t-----共有%d条记录-----",i-1);
printf("\n\n\t\t\t 课程编号: %d\n",courseview[n].c_num);
printf("\n\n\t\t\t 课程名字: %s\n",courseview[n].c_name);
printf("\n\n\t\t\t 课程学分: %d\n",courseview[n].c_score);
printf("\n\n\t\t\t 课程性质: %s\n",courseview[n].c_properties);
printf("\n\n\t\t\t 课程学时: %d\n",courseview[n].c_time);
printf("\n\n\t\t\t 开课学期: %s\n",courseview[n].c_term);
printf("\n\n\t\t1.上一页\t2.下一页\t3.回目录");
printf("\n\t请选择: ");
scanf("%d",&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf("\n\t已到达首页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf("\n\t已到达尾页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{
man_login();
break;
}
default:
{
printf("\n\t操作错误\t按任意键返回");
getchar();
getchar();
break;
}
}
}
}while(inp!=3);
}
}
void c_views()
{
void stu_login();
void c_view();
int inp,i=0,n=0;
FILE*fp;
char input;
struct course courseview[10];
if((fp=fopen("course.dat","rb"))==NULL)
{
system("cls");
printf("\n\n\n\t 课程不存在\n\n");
printf("\t\n\t");
getchar();getchar();
stu_login();
}
else
{
do
{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);
do
{
system("cls");
if(i==1)
{
printf("\n\n\n\t\t\t没有记录!\n");
getchar();getchar();
stu_login();
}
else
{
printf("\n\t\t\t-----共有%d条记录-----",i-1);
printf("\n\n\t\t\t 课程编号: %d\n",courseview[n].c_num);
printf("\n\n\t\t\t 课程名字: %s\n",courseview[n].c_name);
printf("\n\n\t\t\t 课程学分: %d\n",courseview[n].c_score);
printf("\n\n\t\t\t 课程性质: %s\n",courseview[n].c_properties);
printf("\n\n\t\t\t 课程学时: %d\n",courseview[n].c_time);
printf("\n\n\t\t\t 开课学期: %s\n",courseview[n].c_term);
printf("\n\n\t\t1.上一页\t2.下一页\t3.回目录");
printf("\n\t请选择: ");
scanf("%d",&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf("\n\t已到达首页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf("\n\t已到达尾页\t按任意键返回");
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{
stu_login();
break;
}
default:
{
printf("\n\t操作错误\t按任意键返回");
getchar();getchar();
break;
}
}
}
}while(inp!=3);
}
}