数据结构 单链表-用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。

问题描述

用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。
#include ""stdio.h""
#include ""io.h""
#include ""malloc.h""
#define MAXSIZE 100
#define LEN 5
typedef char DataType;
typedef struct student{
DataType num[LEN]score[LEN];
DataType name[LEN];
}student;
typedef struct listnode{
student data;
int len;
struct listnode next;
}listnode;
//获得第n个节点
listnode
getnode(listnode qint n)
{
int m=0;
listnode *s=q;
if(nq->len)
return NULL;
while(m!=n&&s->next)
{
s=s->next;
m++;
}
if(m==n)
return s;
else
return NULL;
}
//按位置插入并写入文件
void insert(listnode *qint nFILE *fp)
{
listnode *s*r;
int m;
s=(listnode
)malloc(sizeof(listnode));
printf(""输入姓名n"");
fflush(stdin);
gets(s->data.name);
printf(""输入学号n"");
fflush(stdin);
gets(s->data.num);
printf(""输入分数n"");
fflush(stdin);
gets(s->data.score);
r=getnode(qn-1);
s->next=r->next;
r->next=r;
fseek(fp(n-1)*sizeof(struct student)0);
fprintf(fpn%stt%stt%sn""s->data.nums->data.names->data.score);
}
//删除记录
void del(int nFILE *fp)
{
listnode *head*s*r;
FILE *fp1;
head=ennc(fp);
s=getnode(headn-1);
r=s->next;
s->next=r->next;
free(r);
fp1=enfile(head);
return fp1;

}
//调入内存
listnode* ennc(FILE fp)
{
char ch;
listnode *head*s*r;
head=(listnode
)malloc(sizeof(listnode));
head->next=NULL;
r=head;

ch=fgetc(fp);
if(ch==EOF)
{
printf(""文件为空按任意键退出n"");
getch();
exit(1);
}
fseek(fp00);
while(ch!=EOF)
{
s=(listnode*)malloc(sizeof(listnode));
r->next=s;
r=s;
r->next=NULL;
fscanf(fp%s%s%sn""s->data.nums->data.names->data.score);
printf(""当前调用的内容是:n"");
printf(""%stt%stt%sttn""s->data.nums->data.names->data.score);
ch=fgetc(fp);
}
return head;
}
//将内存中的内容写入文件
FILE* enfile(listnode *head)
{
listnode *s;
FILE *fp;
if((fp=fopen(""student.txt""wt+""))==NULL)
{
printf(""cannot open student.txt press any key exitn"");
getchar();
exit(1);
}

s=head->next;while(s){    fprintf(fp%stt%stt%sn""s->data.nums->data.names->data.score);    s=s->next;}return fp;

}
void main()
{
int numi;
char ch;
FILE fp;
student *pp*qq;
listnode *head*s*r;
head=(listnode
)malloc(sizeof(listnode));
head->next=NULL;
r=head;
//检查文件是否存在存在则打开不存在则创建
if((_access(""student.txt""0))!=-1)
{
if((fp=fopen(""student.txt""at+""))==NULL)
{
printf(""cannot open student.txtpress any key exitn"");
ch=getchar();
exit(1);
}
}
else
{
if((fp=fopen(""student.txt""wt+""))==NULL)
{
printf(""cannot open student.txt press any key exitn"");
ch=getchar();
exit(1);
}
}
ch=fgetc(fp);
if(ch!=EOF)
{
printf(""文件不为空现在将文件中内容调入内存n"");
while(ch!=EOF)
{
s=(listnode*)malloc(sizeof(listnode));
r->next=s;
r=s;
r->next=NULL;
fseek(fp00);
fscanf(fp%s%s%sn""s->data.nums->data.names->data.score);
printf(""%stt%stt%sn""s->data.nums->data.names->data.score);

ch=fgetc(fp);
}
}
//fputs(""学号""fp); fputs(""tt""fp);fputs(""姓名""fp);fputs(""tt""fp);fputs(""成绩""fp);
//创建记录并写入记录到文件
else
{
printf(""文件为空现在录入记录输入你想建立的学生信息记录条数n"");
scanf(""%d""&num);
head->len=num;
for(i=0;i {
s=(listnode*)malloc(sizeof(listnode));
r->next=s;
r=s;
r->next=NULL;
printf(""现在录入第%d个学生的信息输入姓名n""i+1);
fflush(stdin);
gets(s->data.name);
printf(""输入学号n"");
fflush(stdin);
scanf(""%s""&s->data.num);
printf(""输入成绩n"");
fflush(stdin);
scanf(""%s""&s->data.score);
fprintf(fp%stt%stt%sn""s->data.nums->data.names->data.score);
//kong
fseek(fp02);
ch=fgetc(fp);
if(ch==EOF)
printf(""kongn"");
else
printf(""此位置以后为空n"");
/*
r=(listnode*)malloc(sizeof(listnode));
r->next=NULL;
qq=&(r->data);
fseek(fp2*sizeof(struct student)+40);
fscanf(fp%stt%stt%sn""qq->numqq->nameqq->score);
printf(""%stt%stt%sn""qq->numqq->nameqq->score);
/
//fwrite(ppsizeof(struct student)1fp);

/
fputs("" n ""fp);
fputs(pp->numfp);

fputs(""tt""fp);
fputs(pp->namefp);
fputs(""tt""fp);
fputs(pp->scorefp);
fputs("" n ""fp);
fseek(fp02);
*/
}
}
printf(""输入你要删除的数的序号第几个n"");
scanf(""%d""&num);
//del(fpnum);

//rewind(fp);}
时间: 2024-08-18 03:16:36

数据结构 单链表-用链表做一个成绩管理系统,记录写在student.txt中,有些问题。望回答。的相关文章

java-怎么用Java做一个成绩管理系统?

问题描述 怎么用Java做一个成绩管理系统? Java实验课要做关于学生成绩管理系统的程序 之前学的比较浅 不知道从哪入手 希望大家能提供一些思路 题目如下: 数据库管理系统是一种常见的数据管理软件,数据库是按一定模式存储相关数据的集合.现将学生的成绩存储在education_management.mdb数据库的score表中,请编写一个数据库程序,实现录入学生成绩.自动计算成绩和学分.查询学生成绩的功能.score表中数据如下: 学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综

为家政连锁公司做一个客户管理系统

摘要: 说到利用互联网来改造传统行业的创业领域,家政不得不说是近期来讲颇为热门的一个话题.比如我们此前报道的身边家政和e家洁 他们的最终目的都是打败中介,改变这个产业链通过 说到利用互联网来改造传统行业的创业领域,"家政"不得不说是近期来讲颇为热门的一个话题.比如我们此前报道的身边家政和e家洁-- 他们的最终目的都是打败中介,改变这个产业链--通过 LBS的信息提供平台让服务提供者(小时工)可以和用户直接对接. 但是我们今天看到的这家创业公司"享悦·服务云",却认为

在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了!

问题描述 在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了! 在线急等!!!我在用jsp做一个宾馆管理系统,怎样才能按日期显示当前客房状态?拜托了! 解决方案 你的表结构设计就有问题, 考虑得太粗糙了.看着似乎是学生的作业. 你按我下面的代码来, 应该就可以了. 不过, 你还可以尽情发挥, 因为实际来说还有钟点房-- IF OBJECT_ID('room') IS NOT NULL BEGIN DROP TABLE room END GO CREATE TAB

求助-怎么用oracle做一个图书管理系统?

问题描述 怎么用oracle做一个图书管理系统? 刚刚学习oracle,要做一个图书管理系统,但是不怎么会这个,还在慢慢学习中,请各位大神指点一二,谢谢了. 解决方案 图书管理系统数据库设计图书管理系统 java代码图书管理系统

移动支付-如果要做一个在线翻译服务交易平台,在iOS客户端中如何避免使用IAP支付?

问题描述 如果要做一个在线翻译服务交易平台,在iOS客户端中如何避免使用IAP支付? ==背景== 想做一个在线翻译服务交易平台的产品.分别有Windows PC.Android和iOS三个客户端. 此处所说的*翻译服务*主要是指:某些用户提交待翻译内容,另一些用户提供翻译服务并按服务时间(每小时多少钱)或者翻译文本数量(每千字多少钱)收取费用. 设想的方案是:产品提供一套积分(虚拟货币)体系,所有在产品内的交易均使用虚拟货币完成.虚拟货币可以*随用随充*,也可以*先充后用*,也可以*先赚后用*

使用netbeans和SQLserver做一个银行管理系统

问题描述 使用netbeans和SQLserver做一个银行管理系统 需要有完整的代码以及窗体,分为登录,用户,账户,转账,存款,取款 面向对象是银行前台工作人员 解决方案 窗体只需要最简单的设计就可以,不需要背景图什么的 解决方案二: 把这里当外包了么?楼主想多了吧. 解决方案三: 哪里去弄?JavaEE教程这本书有完整例子

vb.net 做一个相册。。。保存在access中,高手们帮帮我啊,不会保存图片

问题描述 vb.net做一个相册...保存在access中,高手们帮帮我啊,不会保存图片 解决方案 解决方案二:去我的博客看吧http://blog.csdn.net/machong8183/article/details/5488300解决方案三:图片存文件流,百度一下或谷歌一下大把的源码.自己修改成功代码才是自己的.

我想做一个超市管理系统

问题描述 做一个超市管理系统的,用WEB做而且是三层结构,没个思路.真烦恼呀,老师其实很简单.求助各位高手. 解决方案 解决方案二:网上找个现成的源代码学习一下吧Google搜索超市管理asp.net解决方案三:引用1楼tonyepaper的回复: 网上找个现成的源代码学习一下吧Google搜索超市管理asp.net 同意解决方案四:结合pos机好些解决方案五:典型的一个进销存管理系统,网上应该很多的解决方案六:up解决方案七:google一下,对你有帮助,而且是简单的.解决方案八:同意进销存系

c#做学生成绩管理系统中,三表同时更新,求大神指导!!!

问题描述 _sql="updateXSBsetXSB.XM='"+stuXM.Text+"',XSB.ZY='"+stuZY.Text+"',whereXSB.XH='"+stuXH.Text+"',"+"updateKCBsetKCB.KCM='"+stuKCM.Text+"',KCB.XF='"+int.Parse(stuXF.Text)+"',whereXSB.XH='&