#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<dos.h>
#include<conio.h>
#define size 100
#define sum 100
char b[9];
int s[6];
int j,i;
int f=0;
int x=5,y=9;
struct student
{
char number[9];
char name[20];
}stud[size];
struct course
{
int num;
char bookname[20];
char teacher[20];
char nature[20];
int time;
int score;
}sub[sum];
teacher()/*输入学生和课程*/
{
FILE *fp;/*定义一个文件指针*/
int i;
printf("请输入5个,学号,学生姓名/n");
for(i=0;i<x;i++)/*用for循环输入5个学生的信息*/
scanf("%s%s",stud[i].number,stud[i].name);
printf("ok/n");
printf("请输入9个编号,书名,教师,性质,学时,学分:/n");
for(i=0;i<y;i++)/*用for循环输入9课课程的信息*/
scanf("%d%s%s%s%d%d",&sub[i].num,sub[i].bookname,sub[i].teacher,sub[i].nature,&sub[i].time,&sub[i].score);
fp=fopen("student","w");/*打开文件stdent并写入*/
for(i=0;i<x;i++)
fwrite(&stud[i],sizeof(struct student),1,fp);/*写入文件student*/
fclose(fp);/*关闭文件*/
fp=fopen("course","w");/*打开文件course*/
for(i=0;i<y;i++)
fwrite(&sub[i],sizeof(struct course),1,fp);/*写入文件course*/
fclose(fp);/*关闭文件*/
}
addcourse()/*课程添加*/
{
FILE *fp;/*定义一个文件指针*/
system("cls");/*清屏*/
printf("请输入要添加课程的编号号,课程名字,任课教师,性质,学时,学分/n");
y=y+1;/*课程总数加一*/
scanf("%d%s%s%s%d%d",&sub[y].num,sub[y].bookname,sub[y].teacher,sub[y].nature,&sub[y].time,&sub[y].score);/*输入加入课程*/
fp=fopen("course","ab");/*打开文件course并追加*/
fwrite(&sub[y],sizeof(struct course),1,fp);/*追加写入文件course*/
fclose(fp); /*关闭文件*/
printf("添加成功/n");
}
addstudent()/*学生添加*/
{
FILE *fp;/*定义一个文件指针*/
system("cls");/*清屏*/
printf("请输入要添加学生的学号及姓名/n");
x=x+1;/*学生总数加一*/
scanf("%s%s",stud[x].number,stud[x].name);/*输入加入的学生*/
fp=fopen("student","ab");/*打开文件student并追加*/
fwrite(&stud[x],sizeof(struct student),1,fp);/*追加写入文件student*/
fclose(fp);/*关闭文件*/
printf("添加成功/n");
}
deletestu()/*删除学生*/
{
FILE *fp;/*定义一个文件指针*/
int i,flag=1,q,h=0;
system("cls");/*清屏*/
printf("请输入你要删除学生的学号/n");
while(flag==1)
{
scanf("%s",b);/*输入要删除学生的学号*/
fp=fopen("student","rb");/*打开文件student*/
for(i=0;i<x;i++)/*查找是否又该学生*/
{
fread(&stud[i],sizeof(struct student),1,fp);/*从文件中读出信息*/
if(strcmp(b,stud[i].number)==0)/*判断是否与输入的学号相等*/
{
for(q=i;q<x;q++)
{
strcpy(stud[q].number,stud[q+1].number);/*把后一项的学号赋值给上一项*/
strcpy(stud[q].name,stud[q+1].name);/*把后一项的学生姓名赋值给上一项*/
}
x=x-1;/*学生总数减一*/
flag=0;/*跳出while的循环*/
h=1;/*判断有该学生*/
}
}
if(h==0)/*判断没有该学生*/
printf("学号错误,请重新输入/n");
fclose(fp);/*关闭文件*/
}
fp=fopen("student","w");/*打开文件student*/
for(i=0;i<x;i++)/*把删除后的学生信息重新写入*/
fwrite(&stud[i],sizeof(struct student),1,fp);/*写入文件student*/
fclose(fp);/*关闭文件*/
printf("删除成功/n");
}
deletecour()/*删除课程*/
{
FILE *fp;/*定义一个文件指针*/
int i,n,m;
int flag=1;
int k=0;
system("cls");/*清屏*/
printf("请输入你要删除课程的代号/n");
while(flag==1)
{
scanf("%d",&m);/*输入要删除课程的代号*/
fp=fopen("course","rb");/*打开文件course*/
for(i=0;i<y;i++)/*查找是否又该代号*/
{
fread(&sub[i],sizeof(struct course),1,fp);/*从文件中读出信息*/
if(sub[i].num==m)/*判断是否与输入的代号相等*/
{
for(n=i;n<y;n++)
{
strcpy(sub[n].bookname,sub[n+1].bookname);/*把后一项的书名赋给上一项*/
strcpy(sub[n].teacher,sub[n+1].teacher);/*把后一项的任课教师赋给上一项*/
strcpy(sub[n].nature,sub[n+1].nature);/*把后一项的课程的性质赋给上一项*/
sub[n].time=sub[n+1].time;/*把后一项的学时赋值给上一项*/
sub[n].score=sub[n+1].score;/*把后一项的学分赋值给上一项*/
}
y=y-1;/*课程总数减一*/
flag=0;/*跳出while的循环*/
k=1;/*判断有该代号*/
}
}
if(k==0)/*判断没有该代号*/
printf("代号错误,请重新输入/n");
fclose(fp);/*关闭文件*/
}
fp=fopen("course","w");/*打开文件course*/
for(i=0;i<y;i++)/*把删除后的课程信息重新写入*/
fwrite(&sub[i],sizeof(struct course),1,fp);/*写入文件course*/
fclose(fp);/*关闭文件*/
printf("删除成功/n");
}
seach()/*课程查询*/
{
FILE *fp;/*定义一个文件指针*/
system("cls");/*清屏*/
printf("**课程的编号,课程名字,任课教师,性质,学时,学分**/n");
fp=fopen("course","r");/*打开文件course*/
for(i=0;i<y;i++)
fread(&sub[i],sizeof(struct course),1,fp);/*从文件中读出课程信息*/
for(i=0;i<y;i++)
printf("%d %s %s %s %d %d/n",sub[i].num,sub[i].bookname,sub[i].teacher,sub[i].nature,sub[i].time,sub[i].score);
fclose(fp);/*关闭文件*/
}
sch()/*学生查询*/
{
FILE *fp;/*定义一个文件指针*/
system("cls");/*清屏*/
printf("学生的学号 姓名/n");
fp=fopen("student","r");/*打开文件student*/
for(i=0;i<x;i++)
fread(&stud[i],sizeof(struct student),1,fp);/*从文件中读出信息*/
for(i=0;i<x;i++)
printf("%s %s/n",stud[i].number,stud[i].name);
fclose(fp);/*关闭文件*/
}
teach()/*管理*/
{
int a;
int flag=0;
printf("欢迎进入教务系统/n/n");
printf("请按任意键/n");
getchar();
getchar();
printf("学生及课程的输入请输入1/n/n");
while(flag==0)
{
printf("********************/n");
printf("学生的添加请输入 2/n");
printf("课程的添加请输入 3/n");
printf(" 删除 学生请输入 4/n");
printf(" 删除 课程请输入 5/n");
printf(" 课程 查询请输入 6/n");
printf(" 学生 查询请输入 7/n");
printf(" 退出 请输入 8/n");
printf("********************/n");
scanf("%d",&a);
switch(a)
{
case 1: teacher();break;
case 2: addstudent();break;
case 3: addcourse();break;
case 4: deletestu();break;
case 5: deletecour();break;
case 6: seach();break;
case 7: sch();break;
case 8: flag=1;break;
}
}
}
looking()/*学生选课结果查询*/
{
FILE *fp;/*定义一个文件指针*/
int i=0;
int t;
int flag=0;
system("cls");/*清屏*/
if(f==0) /*判断该学生是否选课*/
printf("该学生还没有选课/n");
else
{
printf("该学生的选课结果:/n");
fp=fopen(b,"r");/*打开文件*/
fread(&stud[j],sizeof(struct student),1,fp);/*读出文件中的信息*/
printf("%s %s/n",stud[j].number,stud[j].name);
fclose(fp);/*关闭文件*/
fp=fopen("course","rb");/*打开文件course*/
for(i=0;i<y;i++)
fread(&sub[i],sizeof(struct course),1,fp);/*读出文件中的信息*/
for(i=0;i<6;i++)
{
t=s[i]-1;
printf("%d%s%s%s%d%d/n",sub[t].num,sub[t].bookname,sub[t].teacher,sub[t].nature,sub[t].time,sub[t].score);
}
fclose(fp);/*关闭文件*/
}
}
select()/*学生选课*/
{
FILE *fp;/*定义一个文件指针*/
int i=0;
system("cls");/*清屏*/
printf("*************************/n");
printf(" 欢迎进入选课系统/n");
fp=fopen("course","r");/*打开文件course*/
for(i=0;i<y;i++)
fread(&sub[i],sizeof(struct course),1,fp);/*读出文件中的信息*/
for(i=0;i<y;i++)
printf("%d%s%s%s%d%d/n",sub[i].num,sub[i].bookname,sub[i].teacher,sub[i].nature,sub[i].time,sub[i].score);
fclose(fp);/*关闭文件*/
fp=fopen(b,"w");/*打开文件b并写入信息*/
fwrite(&stud[j],sizeof(struct student),1,fp);/*写入文件*/
fclose(fp);/*关闭文件*/
printf("*************************/n");
printf("请输入 六 科选课的课程的代码/n");
for(i=0;i<6;i++)
scanf("%d",&s[i]);/*输入6科的课程的代码*/
f=1;/*判断该学生已经选课*/
printf("选课结束!/n");
}
stu()/*学生*/
{
FILE *fp;/*定义一个文件指针*/
int d,i,flag=1,k=0;
system("cls");/*清屏*/
printf("请输入你的学号/n");
while(flag==1)
{
scanf("%s",b);/*输入学号*/
fp=fopen("student","rb");/*打开文件student*/
for(i=0;i<x;i++)/*查找是否有该学生*/
{
fread(&stud[i],sizeof(struct student),1,fp);/*读出文件中的信息*/
if(strcmp(b,stud[i].number)==0)/*判断是否是该学生*/
{
j=i;
flag=0;/*跳出while的循环*/
k=1;/*有该学生*/
}
}
if(k==0)/*没有该学生*/
printf("学号错误,请重新输入/n");
fclose(fp);/*关闭文件*/
}
printf("/n欢迎进入教务系统/n");
while(flag==0)
{
printf("******************/n");
printf("学生选课 请输入4/n");
printf("学生查询 请输入5/n");
printf(" 退出 请输入6/n");
printf("******************/n");
scanf("%d",&d);/*输入的选择*/
switch(d)
{
case 4: select();break;
case 5: looking();break;
case 6: flag=1;break;
}
}
}
int main()
{
int key;
int flag=0;
printf("欢迎进入教务系统/n");
while(flag==0)
{
printf("/n****************/n");
printf(" 学生请输入 1/n");
printf(" 管理员请输入 2/n");
printf(" 退出请输入 3/n");
printf("****************/n");
scanf("%d",&key);
switch(key)
{
case 1: stu();break;
case 2: teach();break;
case 3: flag=1;break;
}
}
return 0;
}
c 写的小系统
最新推荐文章于 2022-08-16 10:19:56 发布