之前凡人吧 关注:8贴子:256
  • 2回复贴,共1
TR


1楼2014-12-01 15:04回复


    1

    课设题目
    1.1
    课设题目
    每个员工的信息包括:编号、姓名、性别、出生年月、学历、职务、电话、
    住址等。系统能够完成员工信息的查询、更新、插入、删除、排序等功能。
    1.2
    基本要求

    1
    )每条记录内,包括员工的个人信息,有:编号、姓名、性别、出生年
    月、学历、职务、电话、住址等;

    2
    )按不同关键字(如编号,姓名等)
    ,对所有员工的信息进行排序;

    3

    按照指定条件查找某员工所有信息;

    4

    按编号对某个员工的信息进行修改;

    5

    加入新员工的信息,并实现排序;

    6

    按编号删除已离职的员工的信息。
    1.3
    其他需求
    程序除需完成基本功能外,程序源代码还应具有良好的编程结构和适当的
    注释,运行界面清晰,提示内容明确,易于操作。

    2

    开发运行环境及相关知识
    2.1
    运行环境
    软件环境:
    Windows 2000,Windows XP

    Windows NT4.0

    2.2
    开发工具
    微软公司的
    Microsoft Visual C++ 6.0

    2.3
    开发工具简介
    洛阳理工学院计算机与信息工程系
    5
    Visual C++
    是一个功能强大的可视化软件开发工具。自
    1993

    Microsoft
    公司推出
    Visual
    C++1.0
    后,随着其新版本的不断问世,
    Visual
    C++
    已成为专业
    程序员进行软件开发的首选工具。
    虽然微软公司推出了
    Visual C++.NET(Visual C++7.0)
    ,但它的应用的
    很大的局限性,只适用于
    Windows 2000,Windows XP

    Windows NT4.0
    。所以实
    际中,更多的是以
    Visual C++6.0
    为平台。
    Visual C++6.0
    不仅是一个
    C++
    编译器,而且是一个基于
    Windows
    操作系统
    的可视化集成开发环境(
    integrated development environment,IDE


    Visual
    C++6.0
    由许多组件组成,
    包括编辑器、
    调试器以及程序向导
    AppWizard

    类向导
    Class Wizard
    等开发工具。
    这些组件通过一个名为
    Developer Studio
    的组件
    集成为和谐的开发环境。

    3

    程序总体设计
    3.1
    主要功能模块
    依据程序的数据结构和功能,遵照“自顶向下”原则,描述该程序的层次结
    构,在总体上包括数据的录入、增加、删除、查找、更改和数据的排序等功能模
    块。

    3-1
    程序主体
    主函数
    main()
    输入
    显示
    查找
    排序
    更改
    删除
    退出
    按编号
    按姓名
    按编号
    按姓名


    2楼2014-12-01 15:04
    回复
      #include<stdio.h>
      #include<stdlib.h>
      #include<malloc.h>
      #include<string.h>
      #define ID struct id
      struct id
      {
      char name[20]; // xing ming
      int num; // xue hao
      int age; // nian ling
      char sex[2]; // xing bie
      char xi[20]; // xi bie
      char zhuan[20]; // zhuan ye
      char add[20]; // di zhi
      ID *next; //
      };
      // FILE *fp;
      // ID *head;
      int sum_age=0,max_age=0,min_age=100,pc=0;
      float ave_age=0;
      ID *creat()
      {
      ID *p1,*p2,*head;
      int pd;
      p1=p2=head=NULL;
      printf("\t\t\t 开始输入记录!!!\n");
      printf("please input pd:\n");
      scanf("%d",&pd);
      while(pd!=0)
      {
      p1=(ID*)malloc(sizeof(ID));
      printf("请输入学生的学号:\n");scanf("%d",&p1->num);
      printf("请输入学生的姓名:\n");scanf("%s",p1->name);
      printf("请输入学生的年龄:\n");scanf("%d",&p1->age);
      sum_age+=p1->age;
      if(max_age<p1->age) max_age=p1->age;
      if(min_age>p1->age) min_age=p1->age;
      printf("请输入学生的性别:\n");scanf("%s",p1->sex);
      printf("请输入学生的系别:\n");scanf("%s",p1->xi);
      printf("请输入学生的专业:\n");scanf("%s",p1->zhuan);
      printf("请输入学生的地址:\n");scanf("%s",&p1->add);
      if(head==NULL)
      {
      head=p1;
      p2=p1;
      }
      else
      {
      p2->next=p1;
      p2=p1;
      }
      printf("please input pd:\n");
      scanf("%d",&pd);
      pc++;
      }
      p2->next=NULL;
      return(head);
      }
      /*输入/添加记录*/
      ID *insert(ID *head)
      {
      ID *temp,*p1,*p2;
      int pd;
      start: p1=head;
      printf("插入操作开始!!!\n");
      temp=(ID *)malloc(sizeof(ID));
      printf("请输入学生的学号:\n");scanf("%d",&temp->num);
      printf("请输入学生的姓名:\n");scanf("%s",temp->name);
      printf("请输入学生的年龄:\n");scanf("%d",&temp->age);
      printf("请输入学生的性别:\n");scanf("%s",temp->sex);
      printf("请输入学生的系别:\n");scanf("%s",temp->xi);
      printf("请输入学生的专业:\n");scanf("%s",temp->zhuan);
      printf("请输入学生的地址:\n");scanf("%s",temp->add);
      if (head==NULL)
      {
      head=temp;
      temp->next=NULL;
      }
      else
      {
      while(p1!=NULL)
      {
      p2=p1;
      p1=p1->next;
      }
      p2->next=temp;
      temp->next=NULL;
      }
      printf("插入末尾成功");
      pc++;
      printf("是否继续插入 1.Yes 2.No;\n");
      scanf("%d",&pd);
      if(pd==1) goto start;
      return (head);
      }
      /*删除学生记录*/
      ID *delet(ID *head)
      {
      ID *p1,*p2;
      int num;
      printf("请输入要删除的学生的学号:");scanf("%d",&num);
      p1=head;
      if (head==NULL)
      {
      printf("没有记录\n");
      goto end;
      }
      while(num!=p1->num && p1!=NULL)
      {
      p2=p1;p1=p1->next;
      }
      if(num==p1->num)
      {
      if (p1==head)
      head=p1->next;
      else
      p2->next=p1->next;
      printf("删除成功!!!\n");
      pc--;
      //free(p1);
      //free(p2);
      }
      end:return head;
      }
      /*查找学生记录*/
      ID *search(ID *head)
      {
      ID *p1,*p2;
      int num;
      printf("请输入要查找的学生的学号:");scanf("%d",&num);
      p1=head;
      while(num!=p1->num && p1!=NULL)
      {
      p2=p1;p1=p1->next;
      }
      if(num==p1->num)
      {
      printf("学生的学号:%d\n",p1->num);
      printf("学生的姓名:%s\n",p1->name);
      printf("学生的年龄:%d\n",p1->age);
      printf("学生的性别:%s\n",p1->sex);
      printf("学生的系别:%s\n",p1->xi);
      printf("学生的专业:%s\n",p1->zhuan);
      printf("学生的地址:%s\n",&p1->add);
      //free(p1);
      //free(p2);
      }
      return head;
      }
      /*按学号查询学生记录进行修改*/
      ID *modify_num(ID *head)
      {
      ID *p;
      int i,m,n,num;
      start:
      printf("请输入要修改的学生的学号:");
      scanf("%d",&num);
      p=head;
      while(p!=NULL )
      {
      if(num==p->num)
      {
      m=1;
      while(m==1)
      {
      m=0;
      printf("\t\t 1.修改学生的学号\n");
      printf("\t\t 2.修改学生的姓名\n");
      printf("\t\t 3.修改学生的年龄\n");
      printf("\t\t 4.修改学生的性别\n");
      printf("\t\t 5.修改学生的系别\n");
      printf("\t\t 6.修改学生的专业\n");
      printf("\t\t 7.修改学生的地址\n");
      printf("请选择(1--7):");
      scanf("%d",&i);
      switch( i )
      {
      case 1 :
      printf("请输入修改后的学号:");
      scanf("%d",&p->num);
      break;
      case 2:
      printf("请输入修改后的姓名:");
      scanf("%s",p->name);
      break;
      case 3:
      printf("请输入修改后的年龄:");
      scanf("%d",&p->age);
      break;
      case 4:
      printf("请输入修改后的性别:");
      scanf("%s",&p->sex);
      break;
      case 5:
      printf("请输入修改后的系别:");
      scanf("%s",p->xi);
      break;
      case 6:
      printf("请输入修改后的专业:");
      scanf("%s",p->zhuan);
      break;
      case 7:
      printf("请输入修改后的地址:");
      scanf("%s",p->add);
      break;
      default: printf("输入错误,请重新输入");
      }
      }
      break;
      }
      p=p->next;
      }
      printf("是否继续修改其他学生情况(1改 2不改):");
      scanf("%d",&n);
      if(n==1)goto start;
      else return head;
      }
      /*退出程序*/
      void ask_age()
      {
      if(pc==0)
      {
      printf("没有记录\n");
      return ;
      }
      ave_age=float(sum_age*1.0/pc);
      printf("%f\n",ave_age);
      printf("%d\n",max_age);
      printf("%d\n",min_age);
      }
      /*显示结果函数*/
      void print(ID *head)
      {
      ID *p;
      p=head;
      printf("\t\t\t*****************\n");
      printf("显示结果是:\n");
      if(head!=NULL)
      do
      {
      printf("%10d%10s%10d%10s%10s%10s%10s\n",p->num,p->name,p->age,p->sex,p->xi,p->zhuan,p->add);
      p=p->next;
      } while(p!=NULL);
      }
      void main()
      {
      ID *head;
      int choise;
      printf("\t\t\t* * * * 李林C语言课设* * * *\n");
      while(1)
      {
      printf("\t\t 学生信息管理系统\n");
      printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      printf("\t\t 1.建立文件\n");
      printf("\t\t 2.插入数据\n");
      printf("\t\t 3.删除数据\n");
      printf("\t\t 4.修改记录\n");
      printf("\t\t 5.搜索记录\n");
      printf("\t\t 6.求年龄\n");
      printf("\t\t 0.退出\n");
      printf("\n");
      printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
      printf("请选择(0-6):");
      scanf("%d",&choise);
      switch(choise)
      {
      case 1: head=creat();
      print(head);
      break;
      case 2: head=insert(head);
      print(head);
      break;
      case 3: head=delet(head);
      print(head);
      break;
      case 4: head=modify_num(head);
      print(head);
      break;
      case 5:search(head);
      print(head);
      break;
      case 6:ask_age();
      break;
      case 0:
      exit(0);
      break;
      default :printf("输入错误,请重新输入!\n");
      }
      }
      }


      3楼2014-12-01 15:11
      回复