c 写的小系统

#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;
}

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值