#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;
}
}
}
}
分享到:
相关推荐
《数据结构实训项目:学生信息管理系统》 在计算机科学领域,数据结构是研究如何组织和存储数据以便高效地访问和处理的重要学科。本实训项目——“学生信息管理系统”是基于C语言实现的一个命令行模式的应用程序,...
本实训项目以学生信息管理系统为例,涵盖源代码和SQL Server数据库的应用,旨在帮助学生掌握实际开发中的关键知识点。 1. **源代码解析** - **项目结构**:项目包含了Data、DLL、事务规则服务器、学生信息管理系统...
数据结构实训题目旨在让学生在实践中应用所学的数据结构知识,解决实际问题。以下是对各实训题目涉及的知识点的详细说明: 1. **图书借阅管理系统**(B级难度) - **数据结构**: 可能涉及到链表、树、哈希表等。...
《数据结构实训》教学大纲旨在深化学生对数据结构的理解,通过实践操作提升其编程能力和问题解决能力。作为专业核心课程,这门课程不仅要求学生掌握数据结构的基本概念,还要能够运用这些知识去开发小型应用系统。...
数据结构实训是学习和掌握这些概念的关键途径,通过实际操作来深化理解。本实训涵盖了多种排序算法,如冒泡排序和快速排序,以及一个名为“数据结构淘汰游戏”的项目,这些都是对数据结构应用的实践训练。 首先,...
数据结构实训是计算机科学教育中的一个重要实践环节,它旨在通过实际操作加深学生对数据结构的理解。本实训项目主要关注队列这一基本数据结构,特别是基于链表实现的队列,即链式队列。队列是一种先进先出(First In...
《数据结构实训:图书管理系统》 在信息技术领域,数据结构是至关...总之,“数据结构实训-图书管理系统”项目为学习者提供了一个实践平台,将理论知识与实际应用相结合,有助于培养具备扎实技术基础的IT专业人士。
在数据结构实训中,"通讯录管理"是一个常见的实践项目,它涉及到计算机科学中的核心概念,如数据组织、数据操作和算法设计。这个项目的主要目标是实现一个能够存储、检索和更新联系人信息的系统。以下是一些关键知识...
在本实训报告中,我们将深入探讨如何运用这些理论知识来设计一个学生成绩管理系统,以此来提升教育机构的数据处理效率和准确性。 一、数据库系统概述 数据库系统是由数据库、数据库管理系统(DBMS)、数据库管理员...
本实训项目“人工智能-项目实践-信息管理系统”旨在通过SIMS-master这一核心文件,让学生深入理解如何将人工智能技术融入信息系统的构建与分析中。 首先,我们要理解系统分析与设计的重要性。在开发SIMS时,系统...
数控车削入门技能实训是数控机床技能实训的重要组成部分,它旨在让学生掌握数控车削的基本技能,包括对刀的方法、数据输入的方法、加工指令的格式及应用、零件尺寸控制方法等。通过本章节的学习,学生将能够熟练地...
根据提供的文件信息,本次《数据结构综合实训》的设计任务主要围绕“哈夫曼树及其应用”展开,旨在通过具体的实践加深学生对哈夫曼树这一重要数据结构的理解和运用能力。接下来,我们将从以下几个方面详细解析相关的...
【学生数据结构成绩管理系统】是一个基于数据结构的课程设计项目,旨在锻炼学生的实践能力和理论知识的应用。该系统主要包含以下几个核心知识点: 1. 输入功能:系统允许用户一次性输入5条学生记录,每条记录包括...
数据结构实训报告是信息管理与信息系统专业集中实践性环节之一,其目的就是要达到理论与实际应用相结合,使学生能够根据数据对象的特性,学会数据组织的方法,能把现实世界中的实际问题在计算机内部表示出来,并培养...
本实训项目——“学生课程管理系统”,是一个基于Web的信息化解决方案,旨在帮助学校和学生更有效地管理课程信息。通过此系统,我们可以看到信息技术在教育领域的广泛应用,以及如何利用编程技术解决实际问题。 1. ...
### JAVA编程基础实训方案设计——学生成绩信息管理系统方案设计 #### 一、实训方案设计的目的 本实训方案旨在培养学生掌握JAVA编程技能,通过模拟实际工作环境的方式,提高学生的专业能力与职业素养。实训过程中...
《数据结构与算法设计实训》是计算机学科中一门重要的核心基础课程,它关注的是数据结构的理解与应用以及算法的设计与实现。数据结构主要是关于数据的组织、管理和存储方式,是实现信息高效处理和存储的关键技术。算...
在“数据结构实训---教务管理系统”中,我们将会深入学习和应用这些概念来构建一个实用的教务管理系统。这个实训项目旨在帮助学生理解和实践数据结构在实际问题中的应用。 首先,我们要理解数据结构的基本类型,...
数据结构实训报告主要关注的是如何实现一个多级目录管理系统,名为FILEMANAGER,它是一个基于树状结构的文件和目录管理程序。在这个实训中,学生被要求掌握和运用链表或二叉树的数据结构来设计这样一个系统,而不...