`
ejacky
  • 浏览: 30891 次
  • 性别: Icon_minigender_1
  • 来自: 抚顺
社区版块
存档分类
最新评论

数据结构实训:学生信息系统应用

阅读更多
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include <stdlib.h>
#define size 25

typedef struct node
{
char name[10];
int no;
char sex[5];
int age;
float english;
float math;
float ds;
float os;
float total;
}NODE;

typedef struct node1
{
NODE data;
   struct node1 *next;
}student;

typedef struct node2
{
    char data[20];
float no1;
    struct node2*link ;
}ListNode;


student *p;
student *head;

float total(student *p)
{
float tot;
tot=p->data.ds+p->data.english+p->data.math+p->data.os;
printf("total=%5.0f\n",tot);
return tot;
}

student *crelist()
{
student *head,*p,*q;
int i;
float zf;
head=(student*)malloc(sizeof(student));
printf("xingming:");
scanf("%s",&head->data.name);
printf("xuehao:");
scanf("%d",&head->data.no);
printf("xingbie:");
scanf("%s",&head->data.sex);
printf("nianling:");
scanf("%5d",&head->data.age);
printf("shuruchengji\n");
    printf("english  math  ds  os\n");
scanf("%f%f%f%f",&head->data.english,&head->data.math,&head->data.ds,&head->data.os);
    zf=total(head);
head->data.total=zf;
p=head;
for (i=1;i<=size;i++)
{

q=(student*)malloc(sizeof(student));
printf("xingming:");
        scanf("%s",&q->data.name);
printf("xuehao:");
scanf("%d",&q->data.no);
printf("xingbie:");
scanf("%s",&q->data.sex);
printf("nianling:");
scanf("%d",&q->data.age);
printf("shuruchengji\n");
printf("english math ds os\n");
scanf("%f%f%f%f",&q->data.english,&q->data.math,&q->data.ds,&q->data.os);
zf=total(q);
q->data.total=zf;
p->next=q;
p=q;
}
p->next=NULL;
return head;
}


void prilist(student *head)
{
p=head;
    printf("xingming  xuehao  xingbie  \n");
printf("english math os ds\n");
while (p!=NULL)
{
printf("  %s       %d    %s\n",p->data.name,p->data.no,p->data.sex);
printf("%5.0f%5.0f%5.0f%5.0f\n",p->data.english,p->data.math,p->data.ds,p->data.os);
printf("%5.0f\n",p->data.total);
p=p->next;
}
}

void print(student *head)
{
p=head;
while (p!=NULL)
{
printf("%s\n",p->data.name);
p=p->next;
}
}


void tjstu(student *p,student *head)
{
student *p1,*p2;
p1=head;
p2=p1->next;
while (p2!=NULL &&p2->data.no<p->data.no)
{
p1=p2;
p2=p2->next;
}
p1->next=p;
p->next=p2;
}


student *chazhao(student *head)
{
student *p;
int xuan;
int no;
char name[10];
printf("1)  anxuehao\n2)  anxingming\n");
scanf("%d",&xuan);
if(xuan==1)
{
p=head;
printf("shuruxuehao:");
scanf("%d",&no);
while(p->data.no!=no)
p=p->next;
}
else if(xuan==2)
{
p=head;
printf("shuruxingming\n");
scanf("%s",&name);
while (strcmp(p->data.name,name)!=0)
p=p->next;
}
else
printf("error");
printf("%d,%s,%s\n",p->data.no,p->data.name,p->data.sex);
return p;

}

void shanchu(student *head)
{
int sc;
student *p,*q;
p=chazhao(head);
if (p==NULL)
{
printf("wu");
return;
}
printf("queding  1  fanhui  0\n");
scanf("%d",&sc);
if(sc==1)
{
q=head;
while(q!=NULL&&q->next!=p)
q=q->next;
q->next=p->next;
free(p);
printf("shanchujieshu\n");
}
}

void xiugai(student *head)
{
p=chazhao(head);
printf("shuruxuehao:");
scanf("%d",&p->data.no);
printf("shuruxingming:");
scanf("%s",&p->data.name);
printf("shuruxingbie:");
scanf("%s",&p->data.sex);
printf("shuruchengji\n");
printf("english math ds os\n");
scanf("%f%f%f%f",&p->data.english,&p->data.math,&p->data.ds,&p->data.os);
}

void ListInsert1(ListNode**L,float no)  
{
    ListNode *p, *q, *curr ;
    p = (ListNode*)malloc(sizeof(ListNode));
    p->no1=no;
    p->link = NULL;
    if((*L) == NULL)
    {
        (*L) = p;
        return;
    }
    else if(no <=(*L)->no1)  
    {
        p->link = (*L);
        (*L) = p;
        return;
    }
    else
    {
        curr = (*L);
        q = (*L);   
        while(q != NULL && (no>=q->no1))
        {
            curr = q;
            q = q->link;
        }      
        p->link = curr->link;
        curr->link = p;
        return;
    }
}

void Print1(ListNode*L)   
{
    ListNode *curr = L;
    while(curr!=NULL)
    {
        printf("%5.0f  \n",curr->no1);
        curr=curr->link ;
    }
}

void ListInsert2(ListNode**L,char x[]) 
{
    ListNode *p, *q, *curr ;
    p = (ListNode*)malloc(sizeof(ListNode));   
    strcpy(p->data,x);
    p->link = NULL;  
    if((*L) == NULL)
    {
        (*L) = p;
        return;
    }
    else if(strcmp(x,(*L)->data) <= 0)  
    {
        p->link = (*L);
        (*L) = p;
        return;
    }
    else
    {
        curr = (*L);
        q = (*L);   
        while(q != NULL && strcmp(x,q->data) >= 0)
        {
            curr = q;
            q = q->link;
        }       
        p->link = curr->link;
        curr->link = p;
        return;
    }
}

void Print2(ListNode*L)   
{
    ListNode *curr = L;
    while(curr!=NULL)
    {
        printf("%s  \n",curr->data);
        curr=curr->link ;
    }
}

void save()
{
FILE *fp;
int i;
if((fp=fopen("ds.dat","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for (i=0;i<size;i++)
if(fwrite(head,sizeof(student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

void save1()
{

    FILE *fp;
int i;
if((fp=fopen("new1.dat","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for (i=0;i<size;i++)
if(fwrite(head,sizeof(student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}

void save2()
{
    FILE *fp;
int i;
if((fp=fopen("new2.dat","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for (i=0;i<size;i++)
if(fwrite(head,sizeof(student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}




   



void showstumenu()
{
printf("**************************");
printf("      xueshengxinxi       ");
printf("**************************\n");

printf("0)         jianbiao\n");
printf("1)         tianjia\n");
printf("2)         zhanshi\n");
printf("3)         shanchu\n");
printf("4)         xiugai\n");
printf("5)         chazhao\n");
printf("6)         paixu1(zhongchengji)\n");
printf("7)         paixu2(xingming)\n");
printf("8)         beifen\n");
printf("9)         dayin\n");
printf("10)        over\n");
printf("\n\n");
}


void main()
{
int xx;
showstumenu();
printf("shurushuzi:");
scanf("%d",&xx);
if (xx==0)
head=crelist();
save();
for(;;)
{
int a;
showstumenu();
printf("shurushuzi:");
scanf("%d",&a);
switch (a)
{

       case 1:
   {
        float tota;
    printf("tianjia\n");
        p=(student*)malloc(sizeof (student));
printf("xingming:");
        scanf("%s",&p->data.name);
printf("xuehao:");
scanf("%d",&p->data.no);
printf("xingbie:");
scanf("%s",&p->data.sex);
printf("english math ds os\n");
scanf("%f%f%f%f",&p->data.english,&p->data.math,&p->data.ds,&p->data.os);
tota=total(head);
p->data.total=tota;
        tjstu(p,head);
        break;

   }

      case 2:
  {
        printf("zhanshi\n");
        prilist(head);
        break;
  }

      case 3:
  {
        printf("shanchu\n");
                shanchu(head);
        break;
  }

  case 4:
  {
  printf("xiugai\n");
  xiugai(head);
  break;
  }

  case 5:
  {
  p=chazhao(head);
  break;
  }

  case 6:
  {
int i ;
             ListNode *head1 ;
             p=head;
             head1=NULL ;
             for(i = 0;i < 3;i++)
{
               ListInsert1(&head1,p->data.total);
       p=p->next;
}
             printf("链表中数据输出如下:\n");
             Print1(head1);
save1();
  break;
  }

  case 7:
  {
             int i ;
             ListNode *head1 ;
           p=head;
             head1=NULL ;
             for(i = 0;i < 3;i++)
{
              ListInsert2(&head1,p->data.name);
      p=p->next;
}
             printf("链表中数据输出如下:\n");
             Print2(head1);
save2();
          break;
  }

  case 8:
  {
  FILE *in,*out;
          if((in=fopen("ds.dat","r"))==NULL)
  {
        printf("cannot open infile\n");
         exit(0);
  }
        if((out=fopen("ds1.dat","w"))==NULL)
{
        printf("cannot open outfile\n");
             exit (0);
}
          while(!feof(in))fputc(fgetc(in),out);
             fclose(in);
             fclose(out);
          return;
  }
  case 9:
  {
  printf("daying");
  print(head);
  }

  case 10:
  {
  printf("jieshu");
  return;
  }    
}
}
}
分享到:
评论
2 楼 seVen__se7en 2011-06-11  
可以看看~
1 楼 sodmewuhan 2011-05-29  
你把代码贴上来,想说明什么问题呢?

相关推荐

    数控机床技能实训:第七章 数控车削入门技能实训.ppt

    数控车削入门技能实训是数控机床技能实训的重要组成部分,它旨在让学生掌握数控车削的基本技能,包括对刀的方法、数据输入的方法、加工指令的格式及应用、零件尺寸控制方法等。通过本章节的学习,学生将能够熟练地...

    数据库实训学生系统.docx

    实 习 题 目: 学生信息管理系统 数据库实训学生系统全文共10页,当前为第1页。 数据库实训学生系统全文共10页,当前为第1页。 数据库实训学生系统全文共10页,当前为第2页。数据库实训学生系统全文共10页,当前为第2...

    PHP$MYSQL学生信息管理系统设计报告

    学生信息管理系统设计报告的目标是为了验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单MySql数据库应用程序设计。通过项目实践,熟悉巩固所学知识,以使自身达到熟练掌握HTML基本结构以及PHP语言的...

    JAVA数据库学生成绩管理系统实验报告.doc

    系统使用了Oracle数据库来存储学生信息,并使用JDBC技术来访问和处理数据库。 知识点1:JAVA语言基本知识和技能 * JAVA语言的基本语法和应用 * JAVA语言的通用性、高效性、平台移植性和安全性 * JAVA语言在个人PC...

    立创EDA教育版软件在电子信息类课程实训中的应用.pdf

    1. 电子工艺类课程:教师可以灵活建立团队,并从网页端下达选题表或者任务书,明确实训过程中的系统结构、硬件构成、软件功能及指标参数。学生们得到任务书后开始进行题目分析、理论计算、原理图及PCB绘制、PCB制做...

    物联网工程项目实战 实训报告

    因而,智能寝室楼将物联网技术应用于学生寝室,为当代大学生提供更安全、智能、快捷方便的学习和生活场所必将成为历史的必然。智能寝室楼系统是一个基于物联网技术、体系开放、结构松散而内部逻辑紧密的系统。宿舍...

    数据恢复实训报告.doc

    ____________________________________ ___________________ 成绩(五级记分制):______ _______ 指导教师(签字):_____________________ xxxxx 实习(实训)任务书 设计题目:数据恢复技术应用 "学生姓名 "xxxxx ...

    数据结构案例教程(C语言版).rar

    《数据结构案例教程(C语言版)》系统地介绍了各种常用的...《数据结构案例教程(C语言版)》可作为高职高专院校计算机类专业或信息类专业的教材,也可供从事计算机工程与应用的广大科技工作者参考。 显示更多 显示更少

    人工智能基础实训室建设方案.docx

    结合真实应用场景,完成多种人工智能应用和功能的开发,同时提供详细的实训开展参考、实训指导、环境及工具等,以有效辅助学生在人工智能根底数据处理、机器学习算法应用、数据可视化以及人工智能产品应用方面综合...

    浅谈《计算机组装与维护》实训课程教学与实践应用.doc

    浅谈《计算机组装与维护》实训课程教学与实践应用 摘要:《计算机组装与维修》实训课程有很强的实践性,对学生的应用能力要求较高。 为了培养能够更好地适应社会发展需要的人才,我校开设了些课程。现针对《计算机...

    基于JavaWeb的学生成绩管理系统【项目源码+数据库脚本】(毕设)

    该模块主要是对每个班级的基本信息进行有效管理,包括学生个数、学生信息、班干部信息、教师信息等。 (4)课程信息管理 该模块主要存储所有的课程信息,教师、学生等可以根据使用查询自己的课程信息。 (5)成绩...

    学校综合布线实训毕业设计

    本资源是关于学校综合布线实训毕业设计的报告,主要介绍了台州职业技术学院学生宿舍综合布线设计的全部过程。 一、需求分析 需求分析是任何设计项目的第一步骤,其目的是明确项目的需求和目标。在本设计中,我们...

    数据库课程设计实训大纲[1].doc

    六、实训内容及学时分配 (1)实训内容 要求学生自由选择一个数据库应用开发系统(例如,学生成绩管理系统、人事管理系 统、物流管理系统等)为项目课题进行开发。可参考附件中的课题。 完成所选系统的数据库设计,前台...

    数据结构案例教程(C语言版)

    《数据结构案例教程(C语言版)》可作为高职高专院校计算机类专业或信息类专业的教材,也可供从事计算机工程与应用的广大科技工作者参考。 编辑推荐: 《数据结构案例教程(C语言版)》特点:针对性强,切合职业教育...

    SQL sever 实训

    17240671-13.3实训.sql [?灜? sql ?`?-2018.4.18 USE master GO --单元五 创建于管理数据库 --创建数据库Sale CREATE DATABASE sale ON PRIMARY (NAME=sale, FILENAME='C:\\sale.mdf', SIZE=4MB, MAXSIZE=20MB...

    Visual C++ 6.0程序设计实训教程源码

    1.FileIO 2.Draw 3.Student(学生信息管理系统数据库应用) 4.Explore(制作IE) 5.SimpleCAI (函数参数值传递与地址传递区别的Demo演示)6.LineChart 7.DirDialog 8.SendMail 9.dice和diceTest 10.Hanoi(数据结构中的...

    计算机应用基础实验教学计划

    在知识结构上,要求学生学习并掌握:计算机的基本原理,操作系统的文件管理与程序管理,文字编辑与排版的术语与操作,数据管理的概念与方法。学习计算机的基本原理知识,可为熟练掌握微型计算机操作技能,培养初步的...

    《计算机应用基础课程教学大纲》.doc.doc

    计算机应用基础(含理论教学与实训教学)课程列入学校的教学计划,成绩记入 学生档案, 按照《大纲》组织实施教学,严格考勤考核制度(按该课程技能跟踪反馈表进行考核)。 本课程所有教学内容大体按三个层次教学:...

    数据库课程设计-学生成绩管理系统.doc

    河南机电高等专科学校 《企业中小型数据库系统开发能力实训》 报告 设计题目: 学生成绩管理系统 系 部: 计算机科学与技术系 年 级: 2014级 专业班级: 姓 名: 学 号: 设 计 时 间: 2015.6.23-2015.6.26 "总 成...

Global site tag (gtag.js) - Google Analytics