zoukankan      html  css  js  c++  java
  • 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("		请输入姓名:");
     23         gets(stu[n].name);
     24         printf("		请输入性别:");
     25         gets(stu[n].sex);
     26         printf("		请输入部门:");
     27         gets(stu[n].part);
     28         printf("		请输入职位:");
     29         gets(stu[n].position);
     30         n++;
     31         printf("		是否继续添加?(y/n)");
     32         ch=getchar();/*用于输入y或者n*/
     33         getchar();
     34     } 
     35     printf("		按任意键返回.............");getchar();/*按键返回的输入函数*/
     36     return 0; 
     37 }
     38 
     39 print (void)//输出显示的信息
     40 {
     41     int j;
     42     if(n<0)
     43     {
     44         printf("
    		空文件!");
     45         printf("	按任意键返回.............");getchar();
     46     }else
     47     {    printf("	姓名	性别	部门	职位
    ");
     48         for(j=0;j<n;j++)
     49         {
     50             printf("	%s",stu[j].name);
     51             printf("	%s",stu[j].sex);
     52             printf("	%s",stu[j].part);
     53             printf("	%s
    ",stu[j].position);
     54         }
     55         printf("
    	按任意键返回.............");getchar();    
     56     }
     57     return 0;
     58 }
     59 
     60  wfile(void)/*写入文件*/
     61  {
     62      FILE *fptr;
     63      if(n<1)
     64      {printf("	文件为空,无法写操作!
    ");
     65      printf("	按任意键返回.............");getchar();return 0;}
     66      printf("	请输入要保存的路径及文件名(例如c:\stus.txt):");
     67      scanf("%s",numstr);getchar();/*输入需要保存的磁盘,可以是c,d,e等任意磁盘*/
     68      if((fptr=fopen(numstr,"wb"))==NULL)
     69      { printf("
    		无法打开!%s
    ",numstr);
     70        printf("	按任意键返回.............");getchar();
     71      }
     72      else
     73      {fwrite(stu,sizeof(stu[0]),n,fptr);/*把信息写入磁盘的函数*/
     74       fclose(fptr);
     75       printf("		有%d个记录保存成功!
    ",n);    
     76       printf("	按任意键返回.............");getchar();}
     77 return 0;
     78 }
     79 frile(void)/*读出文件*/
     80 {
     81     FILE *fptr;
     82     int i=0;
     83     printf("	请输入要打开的文件(例如c:\stus.txt):");
     84     scanf("%s",numstr);getchar();
     85     if((fptr=fopen(numstr,"rb"))==NULL)
     86     {printf("
    		不能打开%s!
    ",numstr);    
     87     printf("	按任意键返回.............");
     88     getchar();}
     89     else
     90     {
     91         while(fread(&stu[i],sizeof(stu[0]),1,fptr)==1)/*从磁盘读取数据的函数*/
     92         i++;n=i;
     93         printf("		成功打开%d个记录!
    ",i);
     94         fclose(fptr);
     95         printf("	按任意键返回.............");
     96         getchar();
     97     }    return 0;
     98 }
     99 search(void)/*查找*/
    100 {   
    101     int i,flag=0;
    102     printf("	请输入要查询的关键字。例:姓名、部门 
    ");
    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("	姓名		性别		部门		职称
    ");
    108             printf("	%ls		",stu[i].name);
    109             printf("	%s		",stu[i].sex);
    110             printf("	%s		",stu[i].part);
    111             printf("	%s		",stu[i].position);
    112             flag=1;
    113             printf("	按任意键返回.............");
    114             getchar();    return 0;
    115         }
    116     }
    117     if(flag!=1)/*当计数不为1的时候,查不到所要的信息*/
    118     {    printf("		不存在这样的信息!
    ");
    119         printf("	按任意键返回.............");getchar();}
    120     return 1;
    121 }
    122 
    123 insert(void)/*插入*/
    124 {      
    125         int funnum(void);
    126         printf("	请输入姓名:");
    127         gets(stu[n].name);
    128         printf("	请输入性别:");
    129         gets(stu[n].sex);
    130         printf("	请输入部门:");
    131         gets(stu[n].part);
    132         printf("	请输入职称:");
    133         gets(stu[n].position);
    134         n++;
    135 
    136         printf("
    	按任意键返回.............");
    137         getchar();return 0;
    138 }
    139 del(void) /*删除*/
    140  {   char ch;
    141      int i,j,flag; 
    142      printf("		请输入要删除的姓名:
    ");
    143      gets(numstr);
    144      printf("		确定?(y/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("	正在删除,请稍后........
    ");
    158                      for(i=j;i<n;i++)
    159                      {stu[i]=stu[i+1];}
    160                      printf("		删除成功!
    ");
    161                      n--;
    162                      printf("	按任意键返回.............");getchar();
    163              }
    164          }
    165      }
    166      return 0;
    167  } 
    168  xg(void)/*修改*/
    169  {        
    170      int i,j,flag=0;
    171      char ch;
    172      printf("	输入您要修改的姓名:");
    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("	0.退出修改1.姓名2.部门
    ");
    184              printf("	请输入您要修改的项:
    ");
    185              ch=getchar();getchar();
    186              switch(ch)/*循环语句选择相应的修改选项*/
    187              {
    188              case '1':
    189                  printf("	请输入修改后的姓名:");
    190                  gets(stu[j].name);printf("修改成功
    ");
    191                  break;
    192              case '2':
    193                  printf("	请输入修改后的部门: ");
    194                  gets(numstr);
    195                  strcmp(stu[j].part,numstr);printf("		修改成功
    ");
    196                  break;
    197              case '0': return 0;
    198              }
    199          }
    200      } 
    201      if(flag!=1)
    202      {
    203         printf("	不存在这样的信息.
    ");
    204         printf("	按任意键返回.............");
    205         getchar();
    206      } 
    207      return 0;
    208  }
    209 
    210  void main()
    211 {
    212      char choice;
    213     jm:
    214     system("cls");
    215     printf("
    ");
    216     printf("                 +++++++++++简单员工管理系统+++++++++++
    ");
    217     printf("                 +------------------------------------+
    ");
    218     printf("                 +(请按相应的数字键选择您所需要的操作)+
    ");
    219     printf("                 +------------------------------------+
    ");
    220     printf("                 + 1.创建信息系统        2.浏览信息   +
    ");
    221     printf("                 + 3.保存入文件          4.打开文件   +
    ");
    222     printf("                 + 5..插入信息           6.修改信息   +
    ");
    223     printf("                 + 7.删除信息            0.退出系统   +
    ");
    224     printf("                 + 8.查询信息                        +
    ");
    225     printf("                 ++++++++++++++++++++++++++++++++++++++
    ");
    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("
    Enter only selections listed");break;
    242         }/*结束switch语句*/
    243     }while(1);/*结束while语句*/
    244 }/*结束main函数*/
  • 相关阅读:
    1065. [Nescafe19] 绿豆蛙的归宿(概率)
    SDOI 2016 Round1 Day2
    SDOI 2016 Round1 Day1
    Codeforces Round #397 by Kaspersky Lab and Barcelona Bootcamp (Div. 1 + Div. 2 combined)
    串 2016Vijos省选集训 day3[AC自动机]
    java连接elastic search 9300
    maven安装,maven命令行使用
    eclipse/IDEA使用maven
    hadoop笔记 基础 归档
    tpot蜜罐平台搭建
  • 原文地址:https://www.cnblogs.com/minmsy/p/5112000.html
Copyright © 2011-2022 走看看