码迷,mamicode.com
首页 > 其他好文 > 详细

学生成绩管理系统

时间:2017-08-21 20:30:55      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:增加   color   gets   加载   存储   修改   fgetc   ios   排序   

编写语言:c++ 

代码如下:

main.cpp

 

  1 #include <iostream>
  2 #include <cstdio>
  3 #include<stdlib.h>
  4 #include <cstring>
  5 #include <windows.h>
  6 #include "see3.cpp"
  7 #include "see4.cpp"
  8 #include "jie gou.cpp"
  9 #include "pai.cpp"
 10 #include "see.cpp"
 11 #include "add.cpp"
 12 #include "cret.cpp"
 13 #include "find.cpp"
 14 #include "gai.cpp"
 15 #include "now.cpp"
 16 #include "see2.cpp"
 17 #include "delet.cpp"
 18 #include "copy.cpp"
 19 using namespace std;
 20 int main()
 21 {  system("color 0D");
 22     int n,a;
 23     see();
 24     FILE *fp;
 25     char f[80]="student";
 26     char fc[80];
 27     fp=fopen(f,"r");
 28     if(fp==0)
 29     {fp=fopen(f,"w");
 30     if(fp==0)
 31     {cout<<"创建默认文件夹 student 失败了。。。。"<<endl;
 32     return 0;}}
 33     fclose(fp);
 34     while(1)
 35     {
 36         cin>>n;
 37         getchar();
 38         if(n>=1&&n<=10)
 39         {
 40 
 41             if(n==1)
 42             { system("cls");
 43                add(f);
 44                cout<<endl;
 45                cout<<"存储完毕,都放在";printf(" %s 这里了%c\n",f,3);
 46                cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
 47                getchar();
 48                system("cls");
 49                see2();
 50                continue;
 51             }
 52             if(n==2)
 53             {   system("cls");
 54                 gai(f);
 55                 getchar();
 56                 cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
 57                 getchar();
 58                  system("cls");
 59                  see2();
 60                 continue;
 61             }
 62             if(n==3)
 63             { system("cls");
 64               cout<<"正在努力加载~";
 65               cout<<endl;
 66                  int flag=0;
 67                   flag=now(f);
 68                   if(!flag)
 69                   printf("这就是目前全部的学生成绩哦!\n");
 70                cout<<endl;
 71                cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
 72                getchar();
 73                 system("cls");
 74                 see2();
 75               continue;
 76             }
 77             if(n==4)
 78             { system("cls");
 79                find(f);
 80                getchar();
 81               cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
 82               getchar();
 83                system("cls");
 84                see2();
 85               continue;
 86             }
 87             if(n==5)
 88             {   system("cls");
 89                 cout<<endl<<endl;
 90                 cout<<"--------亲,是要把里面的信息全部删除吗??---------"<<endl;
 91                 cout<<"是点1,否则戳2"<<endl;
 92                 int a;
 93                 cin>>a;
 94                 while(a!=1&&a!=2)
 95                 {
 96                     cout<<"你的选项与我相隔甚远,重新输入吧"<<endl;
 97                     cin>>a;
 98                 }
 99                 if(a==1)
100                 {fp=fopen(f,"w");
101                 fclose(fp);
102                 cout<<"已经全部删除了";printf("%c\n",1);}
103                 else
104                 delet(f);
105                 getchar();
106                 cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
107                 getchar();
108                  system("cls");
109                  see2();
110                continue;
111             }
112             if(n==6)
113             {   system("cls");
114                 pai(f);
115                 cout<<"已经排好序了哦,不信看下边了"<<endl<<endl;
116                 now(f);
117                 getchar();
118                cout<<"按任意键就可以进行下一个操作了";printf("%c\n",2);
119                getchar();
120                system("cls");
121                see2();
122                continue;
123 
124             }
125             if(n==7)
126             {  system("cls");
127                 cout<<"将要保存信息文件的地址为 ";printf("%s \n",f);
128                 cout<<"就是这个地址按1    我要换一个地址按2"<<endl;
129                 cin>>a;
130                 getchar();
131                 if(a==1)
132                 {
133                 }
134                  else
135                  {
136                      if(a==2)
137                      {
138                          cout<<"那么,输入你要存的地址吧,格式仿照这个哦 d:/student "<<endl;
139                          scanf("%s",f);
140                      }
141                      else
142                      {
143                        cout<<"输入错误,让你回到最初的操作~~"<<endl<<endl;
144                        see2();
145                        cout<<"重新选择您要进行的操作吧";printf("%c\n",2);
146                        continue;
147                      }
148                  }
149                  add(f);
150                  cout<<"存储完毕,都放在";printf(" %s 这里了%c\n",f,3);
151                  getchar();
152                  cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
153                  getchar();
154                  system("cls");
155                  see2();
156                  continue;
157             }
158             if(n==8)
159             {   system("cls");
160                 cout<<"将要读取信息的文件地址为 ";printf("%s \n",f);
161                 cout<<endl;
162                 cout<<"就是这个地址按1    我要换一个地址按2"<<endl;
163                 cout<<endl;
164                 cin>>a;
165                 if(a==1)
166                 {
167 
168                 }
169                 else
170                 {
171                     if(a==2)
172                  {
173                     cout<<"那么,输入你要读取的地址吧,格式仿照这个哦 d:/student "<<endl;
174                      scanf("%s",f);
175                  }
176                  else
177                  {
178                  cout<<"输入错误,让你回到最初的操作~~"<<endl<<endl;
179                  see2();
180                  cout<<endl;
181                  cout<<"重新选择您要进行的操作吧";printf("%c\n",2);
182                  continue;
183                     }
184                  }
185                  cout<<"正在努力加载~";
186                  cout<<endl<<endl;
187                  int flag=0;
188                  flag=now(f);
189                  if(!flag)
190                  printf("这就是目前全部的学生成绩哦!\n");
191                  getchar();
192                  cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
193                  getchar();
194                   system("cls");
195                   see2();
196                  continue;
197             }
198             if(n==9)
199             {  system("cls");
200                cout<<"将要从目前文件中拷贝学生信息"<<endl;
201                cout<<"请输入要拷贝到的地址 ,格式仿照这个哦 d:/student "<<endl;
202                scanf("%s",fc);
203                 getchar();
204                 copy(f,fc);
205                 cout<<"按回车键就可以进行下一个操作了";printf("%c\n",2);
206                  getchar();
207                   system("cls");
208                   see2();
209 
210                  continue;
211 
212 
213             }
214             if(n==10)
215             {   system("cls");
216                 cout<<endl<<endl;
217                 cout<<"----您的数据已保护的妥妥的,请放心88-----"<<endl;
218                                 break;
219             }
220         }
221         else
222         {   system("cls");
223             cout<<"你的选项与我相隔甚远,重新输入吧"<<endl;
224         continue;}
225     }
226     return 1;
227 }

 

 

 

 

 

add.cpp

 1 using namespace std;
 2 void add(char f[])
 3 { int flag;
 4    double c;
 5    char a,s[40];
 6    FILE *fp;
 7    fp=fopen(f,"a");
 8    if(fp==0)
 9    {
10        cout<<endl<<"没找到文件 "<<f<<"... "<<endl;
11        return ;
12    }
13 while(1)
14 {   fputc( ,fp);
15     cout<<"输入名字吧:"<<endl;
16     gets(s);
17     fputs(s,fp);
18     fputc( ,fp);
19     cout<<"然后是他/她的学号"<<endl;
20     gets(s);
21     fputs(s,fp);
22     fputc( ,fp);
23     cout<<"boy请按y,girl请按x"<<endl;
24     a=getchar();
25     while(a!=x&&a!=y)
26     {cout<<"亲,你输的啥性别。。。"<<endl;
27     cout<<"重新输入吧:"<<endl;
28     a=getchar();}
29     fputc(a,fp);
30     fputc( ,fp);
31     if(a==x)
32     cout<<"告诉我她的三门成绩是多少,我帮你记录"<<endl;
33     if(a==y)
34     cout<<"告诉我他的三门成绩是多少,我帮你记录"<<endl;
35     double sum=0;
36     for(int i=0;i<3;i++)
37     {cin>>c;
38     fprintf(fp,"%.2lf ",c);
39     sum+=c;}
40     fprintf(fp,"%.2lf ",sum/3);
41     fprintf(fp,"%.2lf",sum);
42     cout<<"亲,还要继续添加吗"<<endl;
43     cout<<"继续请戳 1"<<endl;
44     cout<<"否则请按 0"<<endl;
45     cin>>flag;
46     getchar();
47     if(!flag)
48     break;
49     };
50     fclose(fp);
51 }

delet.cpp

  1 using namespace std;
  2 void delet(char f[])
  3 {
  4      FILE *fp;
  5      fp=fopen(f,"r");
  6      int a;
  7      char s[40];
  8      struct stu *p,*head;
  9      head=p=(struct stu*)malloc(sizeof(struct stu));
 10      p->last=NULL;
 11      if(fp==0)
 12      {
 13          cout<<endl;
 14          cout<<"没有找到文件 "<<f<<"...."<<endl;
 15          return ;
 16      }
 17      long long a1,b;
 18      a1=ftell(fp);
 19      fseek(fp,0,2);
 20      b=ftell(fp);
 21      fseek(fp,0,0);
 22      if(a1==b)
 23      {   cout<<endl;
 24          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
 25          return ;
 26      }
 27      else
 28      {
 29 
 30      cout<<"输入你要删除的ta~~"<<endl;
 31     cout<<"1、名字戳我        2、学号捶我"<<endl;
 32     cin>>a;
 33     getchar();
 34   if(a==1)
 35   {
 36       cout<<"ta的名字是"<<endl;cout<<": ";
 37       gets(s);
 38   }
 39   if(a==2)
 40   {
 41        cout<<"ta的学号是"<<endl;cout<<": ";
 42        gets(s);
 43   }
 44   while(a>=3||a<=0)
 45   {
 46       cout<<"你的选项与我相隔甚远,重新选择吧"<<endl;
 47       cin>>a;
 48       getchar();
 49       if(a==1)
 50   {
 51       cout<<"ta的名字是"<<endl;cout<<": ";
 52       gets(s);
 53       break;
 54   }
 55   if(a==2)
 56   {
 57        cout<<"ta的学号是"<<endl;cout<<": ";
 58        gets(s);
 59        break;
 60   }
 61   }
 62         while(!feof(fp))
 63        {
 64         p->next=(struct stu*)malloc(sizeof(struct stu));
 65         p->next->last=p;
 66         p=p->next;
 67         fscanf(fp,"%s",p->nam);
 68         fscanf(fp,"%s",p->num);
 69         fgetc(fp);
 70         p->x=fgetc(fp);
 71         fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
 72         p->next=NULL;
 73         }
 74         fclose(fp);
 75          p=head;
 76         while(p->next)
 77         {
 78               p=p->next;
 79               if(a==1)
 80             {
 81              if(strcmp(p->nam,s)==0)
 82             {
 83                 p->last->next=p->next;
 84                 if(p->next)
 85                 p->next->last=p->last;
 86                 free(p);
 87                 break;
 88             }
 89             }
 90             if(a==2)
 91             {
 92              if(strcmp(p->num,s)==0)
 93             {
 94                 p->last->next=p->next;
 95                 p->next->last=p->last;
 96                 free(p);
 97                 break;
 98             }
 99             }
100         }
101         fp=fopen(f,"w");
102         p=head;
103         while(p->next)
104         {   p=p->next;
105          fputc( ,fp);
106            fputs(p->nam,fp);
107            fputc( ,fp);
108            fputs(p->num,fp);
109            fputc( ,fp);
110            fputc(p->x,fp);
111            fputc( ,fp);
112            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
113            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
114         }
115         fclose(fp);
116         cout<<endl;
117         cout<<"妥了,您讨厌的ta已经删除了";printf("%c\n",1);
118 
119         }
120 }

now.cpp

 1 using namespace std;
 2  int now(char f[])
 3  {   FILE *fp;
 4      fp=fopen(f,"r");
 5      int flag=0;
 6      if(fp==0)
 7      {
 8          cout<<endl;
 9          cout<<"没有找到文件 "<<f<<"...."<<endl;
10          return flag;
11      }
12      long long a,b;
13      a=ftell(fp);
14      fseek(fp,0,2);
15      b=ftell(fp);
16      fseek(fp,0,0);
17      if(a==b)
18      {   cout<<endl;
19          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
20           flag=1;
21          return flag;
22      }
23      else
24      {
25      struct stu *p,*head;
26      head=p=(struct stu*)malloc(sizeof(struct stu));
27      while(!feof(fp))
28        {
29         p->next=(struct stu*)malloc(sizeof(struct stu));
30         p=p->next;
31         fscanf(fp,"%s",p->nam);
32         fscanf(fp,"%s",p->num);
33         fgetc(fp);
34         p->x=fgetc(fp);
35         fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
36         p->next=NULL;
37         }
38          fclose(fp);
39          p=head;
40          cout<<endl<<endl;
41          printf(" 姓名     学号       性别    科目1    科目2    科目3    平均分   总分\n");
42          while(p->next!=NULL)
43          {
44              p=p->next;
45              printf("%s  %s    %c     ",p->nam,p->num,p->x);
46              printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
47          }
48          cout<<endl;
49          return flag;
50      }}

jiegou.cpp

1 struct stu
2 {
3     char nam[40];
4     char num[40];
5     char x;
6     double a,b,c;
7     double ave,sum;
8     struct stu* next,*last;
9 };

see.cpp

 1 using namespace std;
 2 void see()
 3 {
 4   printf("   %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);
 5   printf("   %c                                                                    %c\n",3,3);
 6   printf("   %c                                                                    %c\n",3,3);
 7   printf("   %c       ---------  学 生 成 绩 管 理 系 统  ---------                %c\n",3,3);
 8   printf("   %c                                                                    %c\n",3,3);
 9   printf("   %c                                          -计科二班 刘家树%c         %c\n",3,1,3);
10   printf("   %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3);
11   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
12   printf("%c                                                                          %c\n",4,4);
13   printf("%c             1、增加学生信息                 2、修改学生信息              %c\n",4,4);
14   printf("%c                                                                          %c\n",4,4);
15   printf("%c             3、显示学生信息                 4、查询学生信息              %c\n",4,4);
16   printf("%c                                                                          %c\n",4,4);
17   printf("%c             5、删除学生信息                 6、学生信息排序              %c\n",4,4);
18   printf("%c                                                                          %c\n",4,4);
19   printf("%c             7、保存学生信息至文件           8、从文件读取学生信息        %c\n",4,4);
20   printf("%c                                                                          %c\n",4,4);
21   printf("%c             9、拷贝学生信息至文件           10、运行结束                 %c\n",4,4);
22   printf("%c                                                                          %c\n",4,4);
23   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
24   cout<<endl;
25   cout<<"-----------恭候您的选择,请直接用键盘输入选项------------"<<endl;
26   cout<<"您的选择是:";
27 }

gai.cpp

 1 using namespace std;
 2 void gai(char f[])
 3 {
 4      FILE *fp;
 5      fp=fopen(f,"r");
 6      char a;
 7      struct stu *p,*head;
 8      head=p=(struct stu*)malloc(sizeof(struct stu));
 9      p->last=NULL;
10      if(fp==0)
11      {
12          cout<<endl;
13          cout<<"没有找到文件 "<<f<<"...."<<endl;
14          return ;
15      }
16      long long a1,b;
17      a1=ftell(fp);
18      fseek(fp,0,2);
19      b=ftell(fp);
20      fseek(fp,0,0);
21      if(a1==b)
22      {   cout<<endl;
23          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
24          return ;
25      }
26      else
27      {
28      while(!feof(fp))
29        {
30         p->next=(struct stu*)malloc(sizeof(struct stu));
31         p->next->last=p;
32         p=p->next;
33         fscanf(fp,"%s",p->nam);
34         fscanf(fp,"%s",p->num);
35         fgetc(fp);
36         p->x=fgetc(fp);
37         fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
38         p->next=NULL;
39         }
40         fclose(fp);
41          p=head;
42        struct stu *s;
43        s=(struct stu *)malloc(sizeof(struct stu));
44         cout<<"你要修改的名字是~~"<<endl;
45         cout<<": ";
46         gets(s->nam);
47         cout<<"你要修改的学号是~~"<<endl;
48         cout<<": ";
49         gets(s->num);
50         cout<<"boy请按y,girl请按x"<<endl;
51         a=getchar();
52         while(a!=x&&a!=y)
53        {cout<<"亲,你输的啥性别。。。"<<endl;
54         cout<<"重新输入吧:"<<endl;
55         a=getchar();}
56         s->x=a;
57         cout<<"然后是ta的三门成绩~~"<<endl;
58         cout<<": ";
59         cin>>s->a>>s->b>>s->c;
60         s->sum=s->a+s->b+s->c;
61         s->ave=s->sum/3;
62         while(p->next)
63         {
64             p=p->next;
65             if(strcmp(p->nam,s->nam)==0)
66             {
67                 p->last->next=s;
68                 s->last=p->last;
69                 s->next=p->next;
70                 if(p->next)
71                 p->next->last=s;
72                 free(p);
73                 break;
74             }
75         }
76         fp=fopen(f,"w");
77         p=head;
78         while(p->next)
79         {   p=p->next;
80             fputc( ,fp);
81            fputs(p->nam,fp);
82            fputc( ,fp);
83            fputs(p->num,fp);
84            fputc( ,fp);
85            fputc(p->x,fp);
86            fputc( ,fp);
87            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
88            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
89         }
90         fclose(fp);
91         cout<<endl;
92         cout<<"妥了,修改好了";printf("%c\n",1);
93 
94         }
95 }

see2.cpp

 1 using namespace std;
 2 void see2()
 3 {
 4     printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
 5   printf("%c                                                                          %c\n",4,4);
 6   printf("%c             1、增加学生信息                 2、修改学生信息              %c\n",4,4);
 7   printf("%c                                                                          %c\n",4,4);
 8   printf("%c             3、显示学生信息                 4、查询学生信息              %c\n",4,4);
 9   printf("%c                                                                          %c\n",4,4);
10   printf("%c             5、删除学生信息                 6、学生信息排序              %c\n",4,4);
11   printf("%c                                                                          %c\n",4,4);
12   printf("%c             7、保存学生信息至文件           8、从文件读取学生信息        %c\n",4,4);
13   printf("%c                                                                          %c\n",4,4);
14   printf("%c             9、拷贝学生信息至文件           10、运行结束                 %c\n",4,4);
15   printf("%c                                                                          %c\n",4,4);
16   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
17   cout<<endl;
18 }

cret.cpp

1 FILE * cret(char f[])
2 {
3     FILE *fp;
4     scanf("%s",f);
5     fp=fopen(f,"w");
6     fclose(fp);
7     return fp;
8 }

find.cpp

  1 using namespace std;
  2 void find(char f[])
  3 {
  4     FILE *fp;
  5      fp=fopen(f,"r");
  6      int a;
  7      double fen;
  8      char s[40];
  9      struct stu *p;
 10      p=(struct stu*)malloc(sizeof(struct stu));
 11      if(fp==0)
 12      {
 13          cout<<endl;
 14          cout<<"没有找到文件 "<<f<<"...."<<endl;
 15          return ;
 16      }
 17      long long a1,b;
 18      a1=ftell(fp);
 19      fseek(fp,0,2);
 20      b=ftell(fp);
 21      fseek(fp,0,0);
 22      if(a1==b)
 23      {   cout<<endl;
 24          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
 25          return ;
 26      }
 27      else
 28      {
 29          cout<<"----选择你要查询的条件吧---"<<endl;
 30          see3();
 31          cout<<": ";
 32          cin>>a;
 33          getchar();
 34          while(a>=8||a<=0)
 35          {
 36              cout<<"你的选项与我相隔甚远,重新输入吧"<<endl;
 37              cout<<": ";
 38              cin>>a;
 39              getchar();
 40          }
 41          if(a>=1&&a<=2)
 42          {  if(a==1)
 43          cout<<"ta的名字是~ ";
 44          if(a==2)
 45          cout<<"ta的学号是~ ";
 46          scanf("%s",s);}
 47          if(a>2)
 48          {
 49              cout<<"ta的分数是~ ";
 50              cin>>fen;
 51          }
 52        while(!feof(fp))
 53        {
 54          fscanf(fp,"%s",p->nam);
 55          fscanf(fp,"%s",p->num);
 56          fgetc(fp);
 57          p->x=fgetc(fp);
 58          fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
 59              if(a==1)
 60              {   if(strcmp(p->nam,s)==0)
 61                  {
 62                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
 63                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
 64                  }
 65              }
 66              if(a==2)
 67              {
 68                if(strcmp(p->num,s)==0)
 69                  {
 70                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
 71                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
 72                  }
 73              }
 74              if(a==3)
 75              {
 76                  if(fen==p->a)
 77                  {
 78                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
 79                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
 80                  }
 81              }
 82              if(a==4)
 83              {
 84                  if(fen==p->b)
 85                  {
 86                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
 87                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
 88                  }
 89              }
 90              if(a==5)
 91              {
 92                  if(fen==p->c)
 93                  {
 94                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
 95                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
 96                  }
 97              }
 98              if(a==6)
 99              {
100                  if(fen==p->ave)
101                  {
102                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
103                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
104                  }
105              }
106              if(a==7)
107              {
108                  if(fen==p->sum)
109                  {
110                      printf("%s  %s    %c     ",p->nam,p->num,p->x);
111                      printf("%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
112                  }
113              }
114          }
115           free(p);
116          fclose(fp);
117          cout<<endl;
118          cout<<"以上是所能查询到的全部信息了,真的";printf("%c\n",2);
119 }
120 }

see3.cpp

 1 using namespace std;
 2 void see3()
 3 {
 4   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
 5   printf("%c                                                                          %c\n",4,4);
 6   printf("%c             1、名字                 2、学号                              %c\n",4,4);
 7   printf("%c                                                                          %c\n",4,4);
 8   printf("%c             3、科目1                 4、科目2                            %c\n",4,4);
 9   printf("%c                                                                          %c\n",4,4);
10   printf("%c             5、科目3                 6、平均分                           %c\n",4,4);
11   printf("%c                                                                          %c\n",4,4);
12   printf("%c             7、总分                                                      %c\n",4,4);
13   printf("%c                                                                          %c\n",4,4);
14   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
15   cout<<endl;
16 }

pai.cpp

  1 using namespace std;
  2 void pai(char f[])
  3 {
  4      FILE *fp;
  5      fp=fopen(f,"r");
  6      if(fp==0)
  7      {   cout<<endl;
  8          cout<<"没有找到你要排序的文件。。"<<endl;
  9          return ;
 10      }
 11      int a;
 12      struct stu *p,*head;
 13      head=p=(struct stu*)malloc(sizeof(struct stu));
 14      p->last=NULL;
 15      int n=0;
 16      long long a1,b;
 17      a1=ftell(fp);
 18      fseek(fp,0,2);
 19      b=ftell(fp);
 20      fseek(fp,0,0);
 21      if(a1==b)
 22      {   cout<<endl;
 23          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
 24          return ;
 25      }
 26      else
 27      {
 28      while(!feof(fp))
 29        {
 30         p->next=(struct stu*)malloc(sizeof(struct stu));
 31         n++;
 32         p->next->last=p;
 33         p=p->next;
 34         fscanf(fp,"%s",p->nam);
 35         fscanf(fp,"%s",p->num);
 36         fgetc(fp);
 37         p->x=fgetc(fp);
 38         fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
 39         p->next=NULL;
 40         }
 41          fclose(fp);
 42          p=head;
 43          cout<<"----选择你要排序的条件吧---"<<endl;
 44          see4();
 45          cout<<": ";
 46          cin>>a;
 47          while(a>=9||a<=0)
 48          {
 49              cout<<"你的选项与我相隔甚远,重新输入吧"<<endl;
 50              cout<<": ";
 51              cin>>a;
 52          }
 53          if(a==1)
 54          {  struct stu *q,*k,*t;
 55          t=(struct stu *)malloc(sizeof(struct stu));
 56             while(p->next)
 57             {   p=p->next;
 58                 k=q=p;
 59                 while(q->next)
 60                 {    q=q->next;
 61                     if(strcmp(q->nam,k->nam)>0)
 62                     k=q;
 63 
 64                 }
 65                 if(k!=p)
 66                 {
 67                     strcpy(t->nam,k->nam);
 68                     strcpy(k->nam,p->nam);
 69                     strcpy(p->nam,t->nam);
 70                     strcpy(t->num,k->num);
 71                     strcpy(k->num,p->num);
 72                     strcpy(p->num,t->num);
 73                     t->x=k->x;
 74                     k->x=p->x;
 75                     p->x=t->x;
 76                     t->a=k->a;
 77                     k->a=p->a;
 78                     p->a=t->a;
 79                     t->b=k->b;
 80                     k->b=p->b;
 81                     p->b=t->b;
 82                     t->c=k->c;
 83                     k->c=p->c;
 84                     p->c=t->c;
 85                     t->ave=k->ave;
 86                     k->ave=p->ave;
 87                     p->ave=t->ave;
 88                     t->sum=k->sum;
 89                     k->sum=p->sum;
 90                     p->sum=t->sum;
 91 
 92                 }
 93             }
 94           fp=fopen(f,"w");
 95            p=head;
 96         while(p->next)
 97         {   p=p->next;
 98            fputc( ,fp);
 99            fputs(p->nam,fp);
100            fputc( ,fp);
101            fputs(p->num,fp);
102            fputc( ,fp);
103            fputc(p->x,fp);
104            fputc( ,fp);
105            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
106            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
107         }
108         fclose(fp);
109         cout<<endl;
110             return ;
111          }
112          if(a==2)
113          {
114              struct stu *q,*k,*t;
115              t=(struct stu *)malloc(sizeof(struct stu));
116             while(p->next)
117             {   p=p->next;
118                 k=q=p;
119                 while(q->next)
120                 {    q=q->next;
121                      if(strcmp(q->num,k->num)>0)
122                      k=q;
123 
124                 }
125                 if(k!=p)
126                 {
127                     strcpy(t->nam,k->nam);
128                     strcpy(k->nam,p->nam);
129                     strcpy(p->nam,t->nam);
130                     strcpy(t->num,k->num);
131                     strcpy(k->num,p->num);
132                     strcpy(p->num,t->num);
133                     t->x=k->x;
134                     k->x=p->x;
135                     p->x=t->x;
136                     t->a=k->a;
137                     k->a=p->a;
138                     p->a=t->a;
139                     t->b=k->b;
140                     k->b=p->b;
141                     p->b=t->b;
142                     t->c=k->c;
143                     k->c=p->c;
144                     p->c=t->c;
145                     t->ave=k->ave;
146                     k->ave=p->ave;
147                     p->ave=t->ave;
148                     t->sum=k->sum;
149                     k->sum=p->sum;
150                     p->sum=t->sum;
151 
152                 }
153             }
154           fp=fopen(f,"w");
155            p=head;
156         while(p->next)
157         {   p=p->next;
158            fputc( ,fp);
159            fputs(p->nam,fp);
160            fputc( ,fp);
161            fputs(p->num,fp);
162            fputc( ,fp);
163            fputc(p->x,fp);
164            fputc( ,fp);
165            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
166            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
167         }
168         fclose(fp);
169         cout<<endl;
170             return ;
171          }
172          if(a==3)
173          {
174              struct stu *q,*k,*t;
175              t=(struct stu *)malloc(sizeof(struct stu));
176             while(p->next)
177             {   p=p->next;
178                  k=q=p;
179                 while(q->next)
180                 {   q=q->next;
181                     if(q->a>=k->a)
182                     k=q;
183 
184                 }
185                 if(k!=p)
186                 {
187                     strcpy(t->nam,k->nam);
188                     strcpy(k->nam,p->nam);
189                     strcpy(p->nam,t->nam);
190                     strcpy(t->num,k->num);
191                     strcpy(k->num,p->num);
192                     strcpy(p->num,t->num);
193                     t->x=k->x;
194                     k->x=p->x;
195                     p->x=t->x;
196                     t->a=k->a;
197                     k->a=p->a;
198                     p->a=t->a;
199                     t->b=k->b;
200                     k->b=p->b;
201                     p->b=t->b;
202                     t->c=k->c;
203                     k->c=p->c;
204                     p->c=t->c;
205                     t->ave=k->ave;
206                     k->ave=p->ave;
207                     p->ave=t->ave;
208                     t->sum=k->sum;
209                     k->sum=p->sum;
210                     p->sum=t->sum;
211 
212                 }
213             }
214           fp=fopen(f,"w");
215            p=head;
216         while(p->next)
217         {   p=p->next;
218            fputc( ,fp);
219            fputs(p->nam,fp);
220            fputc( ,fp);
221            fputs(p->num,fp);
222            fputc( ,fp);
223            fputc(p->x,fp);
224            fputc( ,fp);
225            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
226            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
227         }
228         fclose(fp);
229         cout<<endl;
230             return ;
231          }
232          if(a==4)
233          {
234           struct stu *q,*k,*t;
235           t=(struct stu *)malloc(sizeof(struct stu));
236             while(p->next)
237             {   p=p->next;
238                  k=q=p;
239                 while(q->next)
240                 {    q=q->next;
241                     if(q->b>=k->b)
242                     k=q;
243 
244                 }
245                 if(k!=p)
246                 {
247                     strcpy(t->nam,k->nam);
248                     strcpy(k->nam,p->nam);
249                     strcpy(p->nam,t->nam);
250                     strcpy(t->num,k->num);
251                     strcpy(k->num,p->num);
252                     strcpy(p->num,t->num);
253                     t->x=k->x;
254                     k->x=p->x;
255                     p->x=t->x;
256                     t->a=k->a;
257                     k->a=p->a;
258                     p->a=t->a;
259                     t->b=k->b;
260                     k->b=p->b;
261                     p->b=t->b;
262                     t->c=k->c;
263                     k->c=p->c;
264                     p->c=t->c;
265                     t->ave=k->ave;
266                     k->ave=p->ave;
267                     p->ave=t->ave;
268                     t->sum=k->sum;
269                     k->sum=p->sum;
270                     p->sum=t->sum;
271 
272                 }
273             }
274           fp=fopen(f,"w");
275            p=head;
276         while(p->next)
277         {   p=p->next;
278            fputc( ,fp);
279            fputs(p->nam,fp);
280            fputc( ,fp);
281            fputs(p->num,fp);
282            fputc( ,fp);
283            fputc(p->x,fp);
284            fputc( ,fp);
285            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
286            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
287         }
288         fclose(fp);
289         cout<<endl;
290             return ;
291          }
292          if(a==5)
293          {
294             struct stu *q,*k,*t;
295             t=(struct stu *)malloc(sizeof(struct stu));
296             while(p->next)
297             {   p=p->next;
298                  k=q=p;
299                 while(q->next)
300                 {   q=q->next;
301                     if(q->c>=k->c)
302                     k=q;
303 
304                 }
305                 if(k!=p)
306                 {
307                     strcpy(t->nam,k->nam);
308                     strcpy(k->nam,p->nam);
309                     strcpy(p->nam,t->nam);
310                     strcpy(t->num,k->num);
311                     strcpy(k->num,p->num);
312                     strcpy(p->num,t->num);
313                     t->x=k->x;
314                     k->x=p->x;
315                     p->x=t->x;
316                     t->a=k->a;
317                     k->a=p->a;
318                     p->a=t->a;
319                     t->b=k->b;
320                     k->b=p->b;
321                     p->b=t->b;
322                     t->c=k->c;
323                     k->c=p->c;
324                     p->c=t->c;
325                     t->ave=k->ave;
326                     k->ave=p->ave;
327                     p->ave=t->ave;
328                     t->sum=k->sum;
329                     k->sum=p->sum;
330                     p->sum=t->sum;
331 
332                 }
333             }
334           fp=fopen(f,"w");
335            p=head;
336         while(p->next)
337         {   p=p->next;
338         fputc( ,fp);
339            fputs(p->nam,fp);
340            fputc( ,fp);
341            fputs(p->num,fp);
342            fputc( ,fp);
343            fputc(p->x,fp);
344            fputc( ,fp);
345            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
346            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
347         }
348         fclose(fp);
349         cout<<endl;
350             return ;
351          }
352          if(a==6)
353          {
354              struct stu *q,*k,*t;
355              t=(struct stu *)malloc(sizeof(struct stu));
356             while(p->next)
357             {   p=p->next;
358                 k=q=p;
359                 while(q->next)
360                 {   q=q->next;
361                     if(q->ave>=k->ave)
362                     k=q;
363 
364                 }
365                 if(k!=p)
366                 {
367                     strcpy(t->nam,k->nam);
368                     strcpy(k->nam,p->nam);
369                     strcpy(p->nam,t->nam);
370                     strcpy(t->num,k->num);
371                     strcpy(k->num,p->num);
372                     strcpy(p->num,t->num);
373                     t->x=k->x;
374                     k->x=p->x;
375                     p->x=t->x;
376                     t->a=k->a;
377                     k->a=p->a;
378                     p->a=t->a;
379                     t->b=k->b;
380                     k->b=p->b;
381                     p->b=t->b;
382                     t->c=k->c;
383                     k->c=p->c;
384                     p->c=t->c;
385                     t->ave=k->ave;
386                     k->ave=p->ave;
387                     p->ave=t->ave;
388                     t->sum=k->sum;
389                     k->sum=p->sum;
390                     p->sum=t->sum;
391 
392                 }
393             }
394           fp=fopen(f,"w");
395            p=head;
396         while(p->next)
397         {   p=p->next;
398           fputc( ,fp);
399            fputs(p->nam,fp);
400            fputc( ,fp);
401            fputs(p->num,fp);
402            fputc( ,fp);
403            fputc(p->x,fp);
404            fputc( ,fp);
405            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
406            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
407         }
408         fclose(fp);
409         cout<<endl;
410             return ;
411          }
412          if(a==7)
413          {
414             struct stu *q,*k,*t;
415             t=(struct stu *)malloc(sizeof(struct stu));
416             while(p->next)
417             {   p=p->next;
418                  k=q=p;
419                 while(q->next)
420                 {   q=q->next;
421                     if(q->sum>=k->sum)
422                     k=q;
423 
424                 }
425                 if(k!=p)
426                 {
427                     strcpy(t->nam,k->nam);
428                     strcpy(k->nam,p->nam);
429                     strcpy(p->nam,t->nam);
430                     strcpy(t->num,k->num);
431                     strcpy(k->num,p->num);
432                     strcpy(p->num,t->num);
433                     t->x=k->x;
434                     k->x=p->x;
435                     p->x=t->x;
436                     t->a=k->a;
437                     k->a=p->a;
438                     p->a=t->a;
439                     t->b=k->b;
440                     k->b=p->b;
441                     p->b=t->b;
442                     t->c=k->c;
443                     k->c=p->c;
444                     p->c=t->c;
445                     t->ave=k->ave;
446                     k->ave=p->ave;
447                     p->ave=t->ave;
448                     t->sum=k->sum;
449                     k->sum=p->sum;
450                     p->sum=t->sum;
451 
452                 }
453             }
454           fp=fopen(f,"w");
455            p=head;
456         while(p->next)
457         {   p=p->next;
458            fputc( ,fp);
459            fputs(p->nam,fp);
460            fputc( ,fp);
461            fputs(p->num,fp);
462            fputc( ,fp);
463            fputc(p->x,fp);
464            fputc( ,fp);
465            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
466            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
467         }
468         fclose(fp);
469         cout<<endl;
470             return ;
471          }
472          if(a==8)
473          {
474          struct stu *q,*k,*t;
475          t=(struct stu *)malloc(sizeof(struct stu));
476             while(p->next)
477             {   p=p->next;
478                  k=q=p;
479                 while(q->next)
480                 {  q=q->next;
481                     if(q->x>=k->x)
482                     k=q;
483 
484                 }
485                 if(k!=p)
486                 {
487                     strcpy(t->nam,k->nam);
488                     strcpy(k->nam,p->nam);
489                     strcpy(p->nam,t->nam);
490                     strcpy(t->num,k->num);
491                     strcpy(k->num,p->num);
492                     strcpy(p->num,t->num);
493                     t->x=k->x;
494                     k->x=p->x;
495                     p->x=t->x;
496                     t->a=k->a;
497                     k->a=p->a;
498                     p->a=t->a;
499                     t->b=k->b;
500                     k->b=p->b;
501                     p->b=t->b;
502                     t->c=k->c;
503                     k->c=p->c;
504                     p->c=t->c;
505                     t->ave=k->ave;
506                     k->ave=p->ave;
507                     p->ave=t->ave;
508                     t->sum=k->sum;
509                     k->sum=p->sum;
510                     p->sum=t->sum;
511 
512                 }
513             }
514           fp=fopen(f,"w");
515            p=head;
516         while(p->next)
517         {   p=p->next;
518            fputc( ,fp);
519            fputs(p->nam,fp);
520            fputc( ,fp);
521            fputs(p->num,fp);
522            fputc( ,fp);
523            fputc(p->x,fp);
524            fputc( ,fp);
525            fprintf(fp,"%.2lf %.2lf %.2lf ",p->a,p->b,p->c);
526            fprintf(fp,"%.2lf %.2lf",p->ave,p->sum);
527         }
528         fclose(fp);
529         cout<<endl;
530             return ;
531          }
532      }
533 }

see4.cpp

 1 using namespace std;
 2 void see4()
 3 {
 4   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
 5   printf("%c                                                                          %c\n",4,4);
 6   printf("%c             1、名字                  2、学号                             %c\n",4,4);
 7   printf("%c                                                                          %c\n",4,4);
 8   printf("%c             3、科目1                 4、科目2                            %c\n",4,4);
 9   printf("%c                                                                          %c\n",4,4);
10   printf("%c             5、科目3                 6、平均分                           %c\n",4,4);
11   printf("%c                                                                          %c\n",4,4);
12   printf("%c             7、总分                  8、性别                             %c\n",4,4);
13   printf("%c                                                                          %c\n",4,4);
14   printf("%c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c  %c\n",4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4);
15   cout<<endl;
16 }

copy.cpp

 1 int copy(char f[],char fc[])
 2  {   FILE *fp;
 3      fp=fopen(f,"r");
 4      int flag=0;
 5      if(fp==0)
 6      {
 7          cout<<endl;
 8          cout<<"没有找到文件 "<<f<<"...."<<endl;
 9          return flag;
10      }
11      long long a,b;
12      a=ftell(fp);
13      fseek(fp,0,2);
14      b=ftell(fp);
15      fseek(fp,0,0);
16      if(a==b)
17      {   cout<<endl;
18          cout<<"目前肚肚里没有任何东西,先添加吧"<<endl;
19           flag=1;
20          return flag;
21      }
22      else
23      {
24      struct stu *p,*head;
25      head=p=(struct stu*)malloc(sizeof(struct stu));
26      while(!feof(fp))
27        {
28         p->next=(struct stu*)malloc(sizeof(struct stu));
29         p=p->next;
30         fscanf(fp,"%s",p->nam);
31         fscanf(fp,"%s",p->num);
32         fgetc(fp);
33         p->x=fgetc(fp);
34         fscanf(fp,"%lf%lf%lf%lf%lf",&p->a,&p->b,&p->c,&p->ave,&p->sum);
35         p->next=NULL;
36         }
37          fclose(fp);
38          fp=fopen(fc,"a");
39           if(fp==0)
40          {
41          cout<<endl<<"没找到文件 "<<f<<"... "<<endl;
42           return 1;
43          }
44          p=head;
45          cout<<endl<<endl;
46          while(p->next!=NULL)
47          {
48              p=p->next;
49              fputs(p->nam,fp);
50              fputc( ,fp);
51              fputs(p->num,fp);
52              fputc( ,fp);
53              fputc(p->x,fp);
54              fputc( ,fp);
55             fprintf(fp,"%.2lf     %.2lf    %.2lf    %.2lf   %.2lf\n",p->a,p->b,p->c,p->ave,p->sum);
56             fputc( ,fp);
57          }
58          fclose(fp);
59          cout<<endl;
60          return flag;
61      }
62      }

 

学生成绩管理系统

标签:增加   color   gets   加载   存储   修改   fgetc   ios   排序   

原文地址:http://www.cnblogs.com/llsq/p/7406264.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!