c语言

  1 #include "stdio.h"/*头文件*/
  2 #include "string.h"
  3 #include "stdlib.h"
  4 #define LEN sizeof(struct student)/*宏定义*/
  5 int n = 0;/*n为静态全局变量,本文件模块中各函数均可使用它*/
  6 char numstr[100];/*全局变量*/
  7 struct student/*定义结构体*/
  8 {
  9     long num;
 10     char name[10];//姓名
 11     char sex[10];//性别
 12     char part[10];//部门
 13     char position[10];//职位
 14 } stu[1000],temp;
 15 creat(void)/*创建学生成绩信息*/
 16 {
 17     char ch='y';
 18     while(ch=='Y'||ch=='y')
 19     {
 20 
 21         stu[n].num=atoi(numstr);
 22         printf("\t\t请输入姓名:");
 23         gets(stu[n].name);
 24         printf("\t\t请输入性别:");
 25         gets(stu[n].sex);
 26         printf("\t\t请输入部门:");
 27         gets(stu[n].part);
 28         printf("\t\t请输入职位:");
 29         gets(stu[n].position);
 30         n++;
 31         printf("\t\t是否继续添加?(y/n)");
 32         ch=getchar();/*用于输入y或者n*/
 33         getchar();
 34     } 
 35     printf("\t\t按任意键返回.............");getchar();/*按键返回的输入函数*/
 36     return 0; 
 37 }
 38 
 39 print (void)//输出显示的信息
 40 {
 41     int j;
 42     if(n<0)
 43     {
 44         printf("\n\t\t空文件!");
 45         printf("\t按任意键返回.............");getchar();
 46     }else
 47     {    printf("\t姓名\t性别\t部门\t职位\n");
 48         for(j=0;j<n;j++)
 49         {
 50             printf("\t%s",stu[j].name);
 51             printf("\t%s",stu[j].sex);
 52             printf("\t%s",stu[j].part);
 53             printf("\t%s\n",stu[j].position);
 54         }
 55         printf("\n\t按任意键返回.............");getchar();    
 56     }
 57     return 0;
 58 }
 59 
 60  wfile(void)/*写入文件*/
 61  {
 62      FILE *fptr;
 63      if(n<1)
 64      {printf("\t文件为空,无法写操作!\n");
 65      printf("\t按任意键返回.............");getchar();return 0;}
 66      printf("\t请输入要保存的路径及文件名(例如c:\\stus.txt):");
 67      scanf("%s",numstr);getchar();/*输入需要保存的磁盘,可以是c,d,e等任意磁盘*/
 68      if((fptr=fopen(numstr,"wb"))==NULL)
 69      { printf("\n\t\t无法打开!%s\n",numstr);
 70        printf("\t按任意键返回.............");getchar();
 71      }
 72      else
 73      {fwrite(stu,sizeof(stu[0]),n,fptr);/*把信息写入磁盘的函数*/
 74       fclose(fptr);
 75       printf("\t\t有%d个记录保存成功!\n",n);    
 76       printf("\t按任意键返回.............");getchar();}
 77 return 0;
 78 }
 79 frile(void)/*读出文件*/
 80 {
 81     FILE *fptr;
 82     int i=0;
 83     printf("\t请输入要打开的文件(例如c:\\stus.txt):");
 84     scanf("%s",numstr);getchar();
 85     if((fptr=fopen(numstr,"rb"))==NULL)
 86     {printf("\n\t\t不能打开%s!\n",numstr);    
 87     printf("\t按任意键返回.............");
 88     getchar();}
 89     else
 90     {
 91         while(fread(&stu[i],sizeof(stu[0]),1,fptr)==1)/*从磁盘读取数据的函数*/
 92         i++;n=i;
 93         printf("\t\t成功打开%d个记录!\n",i);
 94         fclose(fptr);
 95         printf("\t按任意键返回.............");
 96         getchar();
 97     }    return 0;
 98 }
 99 search(void)/*查找*/
100 {   
101     int i,flag=0;
102     printf("\t请输入要查询的关键字。例:姓名、部门 \n");
103     gets(numstr);
104     for(i=0;i<n;i++)
105     {    if((strcmp(numstr,stu[i].name)==0)||(strcmp(numstr,stu[i].part)==0))/*把要查找的信息和存储的信息进行比较,如果相同就找到,并输出。用||表示可以有姓名或者学号两种查找方式。*/
106         {
107             printf("\t姓名\t\t性别\t\t部门\t\t职称\n");
108             printf("\t%ls\t\t",stu[i].name);
109             printf("\t%s\t\t",stu[i].sex);
110             printf("\t%s\t\t",stu[i].part);
111             printf("\t%s\t\t",stu[i].position);
112             flag=1;
113             printf("\t按任意键返回.............");
114             getchar();    return 0;
115         }
116     }
117     if(flag!=1)/*当计数不为1的时候,查不到所要的信息*/
118     {    printf("\t\t不存在这样的信息!\n");
119         printf("\t按任意键返回.............");getchar();}
120     return 1;
121 }
122 
123 insert(void)/*插入*/
124 {      
125         int funnum(void);
126         printf("\t请输入姓名:");
127         gets(stu[n].name);
128         printf("\t请输入性别:");
129         gets(stu[n].sex);
130         printf("\t请输入部门:");
131         gets(stu[n].part);
132         printf("\t请输入职称:");
133         gets(stu[n].position);
134         n++;
135 
136         printf("\n\t按任意键返回.............");
137         getchar();return 0;
138 }
139 del(void) /*删除*/
140  {   char ch;
141      int i,j,flag; 
142      printf("\t\t请输入要删除的姓名:\n");
143      gets(numstr);
144      printf("\t\t确定?(y/n)\n");
145      ch=getchar();getchar();
146      if(ch=='y'||ch=='Y')
147      {
148          for(i=0;i<n;i++)
149          {
150              if((strcmp(numstr,stu[i].name)==0))/*比较学号相同时找到相应得信息进行删除*/
151              {
152                  j=i;
153                  flag=1;
154              }
155              if(flag==1)
156              {
157                      printf("\t正在删除,请稍后........\n");
158                      for(i=j;i<n;i++)
159                      {stu[i]=stu[i+1];}
160                      printf("\t\t删除成功!\n");
161                      n--;
162                      printf("\t按任意键返回.............");getchar();
163              }
164          }
165      }
166      return 0;
167  } 
168  xg(void)/*修改*/
169  {        
170      int i,j,flag=0;
171      char ch;
172      printf("\t输入您要修改的姓名:");
173      gets(numstr);
174      for(i=0;i<n;i++)
175      {
176          if((strcmp(numstr,stu[i].name)==0))
177          { 
178             j=i;
179             flag=1;
180          }
181          if(flag==1)
182          { 
183              printf("\t0.退出修改1.姓名2.部门\n");
184              printf("\t请输入您要修改的项:\n");
185              ch=getchar();getchar();
186              switch(ch)/*循环语句选择相应的修改选项*/
187              {
188              case '1':
189                  printf("\t请输入修改后的姓名:");
190                  gets(stu[j].name);printf("修改成功\n");
191                  break;
192              case '2':
193                  printf("\t请输入修改后的部门: ");
194                  gets(numstr);
195                  strcmp(stu[j].part,numstr);printf("\t\t修改成功\n");
196                  break;
197              case '0': return 0;
198              }
199          }
200      } 
201      if(flag!=1)
202      {
203         printf("\t不存在这样的信息.\n");
204         printf("\t按任意键返回.............");
205         getchar();
206      } 
207      return 0;
208  }
209 
210  void main()
211 {
212      char choice;
213     jm:
214     system("cls");
215     printf("\n");
216     printf("                 +++++++++++简单员工管理系统+++++++++++\n");
217     printf("                 +------------------------------------+\n");
218     printf("                 +(请按相应的数字键选择您所需要的操作)+\n");
219     printf("                 +------------------------------------+\n");
220     printf("                 + 1.创建信息系统        2.浏览信息   +\n");
221     printf("                 + 3.保存入文件          4.打开文件   +\n");
222     printf("                 + 5..插入信息           6.修改信息   +\n");
223     printf("                 + 7.删除信息            0.退出系统   +\n");
224     printf("                 + 8.查询信息                        +\n");
225     printf("                 ++++++++++++++++++++++++++++++++++++++\n");
226     do
227     {    choice=getchar();getchar();
228         switch(choice)/*switch语句用于循环选择所要的选项*/
229         {
230         case '1':creat();goto jm;break;
231         case '2':print();goto jm;break;
232 
233         case '3':wfile();goto jm;break;
234         case '4':frile();goto jm;break;
235         case '5':insert();goto jm;break;
236         case '6':xg();goto jm;break;
237         case '7':del();goto jm;break;
238         case '8':search();goto jm;break;
239         case '0':exit(0);
240         default: /*用户使用错误*/
241         puts("\nEnter only selections listed");break;
242         }/*结束switch语句*/
243     }while(1);/*结束while语句*/
244 }/*结束main函数*/

 

posted @ 2016-01-08 09:19  指间ゝ繁华初逝的格调  阅读(138)  评论(0编辑  收藏  举报