当前位置:首页 » 编程语言 » c语言学生成绩记录簿设计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言学生成绩记录簿设计

发布时间: 2022-04-07 13:15:45

Ⅰ 学生成绩记录簿设计

我简单写,请借鉴:
#include "stdafx.h"#include "stdio.h"#include "string.h"#include "math.h"#include "time.h"#include "string.h" #include<iostream>using namespace std; struct Student //定义学生结构{ char id[20]; //id char name[11]; //姓名 char res[4]; //成绩 int end; //存储时显示换行, 可去掉 Student(){end = 0x0a0d;} //回车,换行}list[100]; //100个账号, 测试 void main(){ srand((unsigned)time(0)); //种子 char buf[256]; //缓存 //初始化学生100名 int i; for(i=0;i<100;++i) { strcpy(list[i].id ,itoa(i,buf,10)); strcpy(list[i].name ,"某人"); strcpy(list[i].res, itoa(rand()%100,buf, 10)); } //保存数据 FILE * pf = fopen("data.txt", "wb"); for(i=0;i<100;++i) { fwrite(&list[i], sizeof(Student), 1, pf); } fclose(pf); //读出数据 Student list_1[100]; //新数组 pf = fopen("data.txt", "rb"); for(i=0;i<100;++i) { fread( &list_1[i], sizeof(Student), 1, pf); } //显示 list_1 测试 for(i=0;i<100;++i) { cout<<list_1[i].id<<" "<<list_1[i].name <<" "<<list_1[i].res<<endl; } }
希望能解决您的问题。

Ⅱ 学生成绩记录薄 c语言 课程设计报告

C语言程序设计报告

课题名称:学生成绩管理

1 系统概述:

本程序为一个学生成绩管理系统,对学生的成绩进行管理,学生的信息包括学号,姓名,学期,三门课程的成绩,输入这些信息,本程序可以自动计算总成绩,可以按高分到低分进行排名,并对输入信息的人数进行汇总.

2 数据结构设计:

(1)结构体;

(2)数组的设计:运用指针代替数组,使用指针来建立线性表,使程序更加简洁,可读性更强.

3 各函数的设计:

函数原型:void InitList(SqLinkList &L);

功能: 创建一个空的线性链表;

入口参数:L为要创建的线性链表;

出口参数:创建链表的L.head为空,L.length为0;

返回值: 无;

函数原型:void EmptyLinkList(SqLinkList &L);

功能: 清空整个线性链表;

入口参数:L为要清空的链表名称;

出口参数:若清空成功则链表长度L.length为0;

返回值: 无;

函数原型:int ScanE(ElemType &e);

功能: 输入学生信息;

入口参数:e为要输入信息的学生名称;

出口参数:e.num保存学号,e.name保存姓名,e.team保存所在学期,e.s1,e.s2,e.s3分别保存三门课程的成绩;

返回值: 输入合法返回1,否则返回0;

错误处理:若学号、姓名等输入不合法会有提示及重输;

函数原型:Status SqLinkListAppend(SqLinkList &L,ElemType e);

功能: 追加一个结点到线性链表中;

入口参数:e为所追加的结点名称,L为e所追加到的线性链表的名称;

出口参数:若追加成功,则e为头结点,链表长度L.length增1;

返回值: 若追加成功返回1;

函数原型:Link SearchNode(SqLinkList L,int NUM);

功能: 查找学号为NUM的学生;

入口参数:查找的链表名称L,学号NUM;

出口参数:若找到结点指针p指向该结点,否则指向空结点;

返回值: 结点指针p;

函数原型:void SearchTeam(SqLinkList L,int team);

功能: 查找学期为team的所有记录并输出其信息;

入口参数:查找的链表名称L,要查找的学期team;

出口参数:无;

返回值: 无;

函数原型:void SearchUnpass(SqLinkList L,float s1,float s2,float s3);

功能: 查找所有有挂科记录的学生并输出其信息;

入口参数:查找的链表名称L,要查找的各门学科成绩s1,s2,s3;

出口参数:无;

返回值: 无;

函数原型:void SqLinkListSearch(SqLinkList L);

功能: 对链表进行分类查找;

入口参数:要查找的链表名称L;

出口参数:无;

返回值: 无;

函数原型: void inputData(SqLinkList &L);

功能: 输入数据,并追加一个结点;

入口参数: L为要追加结点的链表名称;

出口参数: 无;

返回值: 无;

函数原型:void SqLinkListTraverse(SqLinkList L);

功能: 输出链表中所有学生成绩列表;

入口参数:L为要输出信息的链表名称;

出口参数:无;

返回值: 无;

函数原型:void PrintE(ElemType e);

功能: 输出一个结点的所有信息;

入口参数:要输出的结点名称e;

出口参数:无;

返回值: 无;

4 使用程序的说明:

本程序为一个学生成绩管理系统。对学生的成绩信息进行管理,学生的信息包括学号、姓名、学期、三门课程的成绩、平均成绩、名次。本管理系统实现学生的学号、姓名、学期、每门课程的成绩的录入,并自动按平均分排名,使用时按屏幕上的提示,输入使用代码.如下图所示:

例如:输入代码数字”1”,程序执行”输入学生成绩或已存在的学生成绩进行修改”这条小程序.输入学生个人信息后,如下图所示:

如此分别输入相应的程序代码,就执行相应的程序段.

如下的程序是按学号进行成绩排名:

当输入”6”时,执行相应的程序,即汇总一共输入学生的人数:

5 总结和体会:

通过对C语言学习,尤其是这学期本班开展C语言双语教学,体会到学习难的同时,也真正了解到C语言作为一门高级的计算机语言的强大功能,特别是在当今实际生活,生产,办公,信息管理等方面的强大作用. 这次合作我们遇到了许多的困难。时间的紧迫,知识的不足,给我很大的压力。最终我还是还是完成了任务。团结就是力量是我这次最真切的感受。

6 程序代码:

void InitList(SqLinkList &L) {

// 构造一个空的线性表L;

L.head = 0; //头指针为空;

L.length = 0; //长度初始为0;

}

void EmptyLinkList(SqLinkList &L){

//入口参数为整个线性表的数据,功能为清空线性表;

Node *p;

if(!L.head)printf("系统中不存在记录。\n");

//头指针为空时没有学生录入;

else {

while (L.head){

//每个循环将下一结点赋值给头指针,并释放本结点空间,直至线性表清空;

p=L.head;

L.head=p->next;

free(p);

} //end while;

L.length=0; //长度为0;

printf("该管理系统学生信息已清空。\n");

}//end else;

}

int ScanE(ElemType &e){

//输入一个学生的成绩数据结点。返回0为无效结点数据,1为有效结点数据;

printf("\n学号:");

scanf("%d",&e.num);

if(e.num==0){

//学号为0输入不合法,重新输入;

printf("学号输入不合法.\n");

return 0;

}

printf("\n姓名:");

scanf("%s",&e.name);

printf("\n学期:");

scanf("%d",&e.team);

while(e.team>12){

//系统只记录小于12的学期数;

printf("输入的学期不能大于12,请重新输入:");

scanf("%d",&e.team);

}

printf("\n成绩A:");

scanf("%f",&e.s1);

printf("\n成绩B:");

scanf("%f",&e.s2);

printf("\n成绩C:");

scanf("%f",&e.s3);

return OK;

}

Status SqLinkListAppend(SqLinkList &L,ElemType e){

//追加一个结点到线性表中;

Node *p;

p=SearchNode(L,e.num);

//查找学号为e.num的记录并将其地址赋给指针p;

if (p==0){

//若不存在添加学号相同的结点,追加一个结点;

p=(Node *)malloc(sizeof(Node));

if (!p) return ERROR;

memcpy(&(p->data),&e,sizeof(ElemType));

p->next=L.head ;

L.head=p;

//追加的一个结点为首结点;

L.length++; //表长度加1;

}

else { //如果该学号记录已存在,则进行修改操作;

memcpy(&(p->data),&e,sizeof(ElemType));

printf("该学生记录已经存在,已完成修改操作。\n");

}

return OK;

}

Link SearchNode(SqLinkList L,int NUM){

//查找学生记录,该学生的学号为NUM;

Node *p;

p=L.head; //p先指在头结点;

while (p&& p->data.num !=NUM ) p=p->next;

//如果该学生的学号不为NUM则查找下一个结点;

return p;

}

void SearchTeam(SqLinkList L,int team){

//按学期查找并输出所有该学期存在的记录;

Node *p;

p=L.head;

int n,sum=0;

//sum记录该学期的学生总人数;

printf("请输入您要查询的学生的学期:");

scanf("%d",&n);

printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");

while(p&&p->next){

//如果p结点和它的下一结点不为空,且该结点的学期等于要查找学期,则格式输出所有该学期学生信息;

if(p->data.team==n){

PrintE(p->data);

sum++;

//查找到一个该学期的学生记录计数加1;

}

p=p->next;

//转向下一结点;

} //end while;

if(p->data.team==n){

//如果p的下一结点为空,且本结点学期为n,则格式输出该结点信息;

sum++;

PrintE(p->data);

}

if(sum==0)printf("没有这学期的记录。\n");

if(sum)printf("该学期共有%d人的记录.\n",sum);

}

void SearchUnpass(SqLinkList L,float s1,float s2,float s3){

//查找并输出有挂科的学生信息;

Node *p;

p=L.head;

int sum=0;

//sum计数挂科总人数,初始为0;

printf("以下是有一门以上不及格科目的学生的成绩:\n");

printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");

while(p&&p->next){

//如果p及其下一结点为真,且该结点有一门以上科目分数低于60则输出该结点成绩并使sum计数加1;

if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60))

{

PrintE(p->data);

sum++;

} //end if;

p=p->next;

//转到下一结点;

} //end while;

if((p->data.s1<60)||(p->data.s2<60)||(p->data.s3<60)){

//查看最后一个结点,若有挂科,sum加1并格式输出结点信息;

sum++;

PrintE(p->data);

}

if(sum==0)printf("没有不及格的记录。\n");

if(sum)printf("共有%d人的挂科记录.\n",sum);

}

void SqLinkListSearch(SqLinkList L){

//分类查找学生记录;

Node *p;

p=L.head;

int n,reg; //reg为查询方式的指令;

printf("1--按学号查询\n2--按学期查询\n3--挂科学生信息列表\n");

printf("请您输入查询方式:");

scanf("%d",®);

if(L.length){

if(reg>3)printf("对不起没有您要求的选项。\n");

//若reg>3则输入不合法;

else if(reg==1){

//reg==1按学号查询;

printf("请输入您要查询的学生的学号:");

scanf("%d",&n);

while(p&&p->next&& p->data.num !=n) p=p->next;

//当p和他下一结点为真时且结点数据不为要查找数据时转向下一结点;

if(p->data.num==n){

//找到所要查询结点,格式输出;

printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");

PrintE(p->data);

}

else printf("没有您要查找的学号。\n");

} //end reg==1 if ;

else if(reg==2)SearchTeam(L,p->data.team);

//reg==2,调用SearchTeam函数按学期查询并输出;

else if(reg==3)SearchUnpass(L,p->data.s1,p->data.s2,p->data.s3);

//reg==3,调用SearchUnpass函数,输出全部有挂科记录的学生信息;

}//end if;

else printf("系统中无记录.\n");

}

void inputData(SqLinkList &L){

//请求输入学生成绩,则追加一个结点并输入;

ElemType e;

if (ScanE(e)) SqLinkListAppend(L,e); //输入数据,追加一个结点;

}

void SqLinkListTraverse(SqLinkList L){

//所有学生信息列表输出;

Node *p;

char c;

p=L.head;

if(p) //非空表;

{

printf("\n学号 姓名 学期 成绩A 成绩B 成绩C 平均成绩\n");

for (p=L.head ;p;p=p->next )PrintE(p->data);

//从第一个结点开始输出所有信息直到结点为空;

}

else printf("系统中无记录。\n");

//空表;

c=getchar();

}

void PrintE(ElemType e){

//输出各科成绩和平均成绩;

printf("%d\t%s\t%d\t%f\t%f\t%f\t%f\n",e.num,e.name,e.team,e.s1,e.s2,e.s3,(e.s1+e.s2+e.s3)/3);

//格式输出学生的学号、姓名、学期、A、B、C三门成绩以及平均成绩;

}

Ⅲ 急求c语言程序学生成绩记录簿设计

关注此问题

Ⅳ c语言编写的学生成绩记录簿程序如何使输出对其,然后把乱码“屯”删除。麻烦看一下谢谢

首先插入学生成绩的时候没有初始化malloc

p是非法获取了L->next L->next是不确定的位置


其次

给分数赋值的时候

应该是&(r->eng)

Ⅳ c语言学生成绩记录簿设计

我简单写,请借鉴:

#include"stdafx.h"
#include"stdio.h"
#include"string.h"
#include"math.h"
#include"time.h"
#include"string.h"#include<iostream>
usingnamespacestd;

structStudent//定义学生结构
{
charid[20]; //id
charname[11]; //姓名
charres[4]; //成绩
intend; //存储时显示换行,可去掉
Student(){end=0x0a0d;} //回车,换行

}list[100];//100个账号,测试

voidmain()
{
srand((unsigned)time(0));//种子
charbuf[256]; //缓存

//初始化学生100名
inti;
for(i=0;i<100;++i)
{
strcpy(list[i].id,itoa(i,buf,10));
strcpy(list[i].name,"某人");
strcpy(list[i].res,itoa(rand()%100,buf,10));
}

//保存数据
FILE*pf=fopen("data.txt","wb");

for(i=0;i<100;++i)
{
fwrite(&list[i],sizeof(Student),1,pf);
}
fclose(pf);

//读出数据
Studentlist_1[100];//新数组
pf=fopen("data.txt","rb");
for(i=0;i<100;++i)
{
fread(&list_1[i],sizeof(Student),1,pf);
}

//显示list_1测试
for(i=0;i<100;++i)
{
cout<<list_1[i].id<<""<<list_1[i].name<<""<<list_1[i].res<<endl;
}}

Ⅵ 用C语言编一个成绩记录簿

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#defineMAX1000

typedefstructLesson//定义课程结构体
{
intLesson_Num;
charLesson_Name[50];
intLesson_Mark;
intLesson_Credit;
}Lesson;

typedefstructStudent//定义学生的结构体
{
charName[50];
intNum;
intLesson_Count;
LessonL[20];
}Student;

StudentS[MAX];
staticintStudent_Count=0;//记录学生数的变量

voidPrintInterface();//打印界面
intAddStudent();//添加,带返回值,提示操作成功
intDelStudent();//删除,带返回值,提示操作成功
voidCheckStudent();//查学生成绩
voidCheckClass();//查班成绩表
voidWriteFile();//写入文本文件
voidReadFile();//读取文本文件

voidmain()
{
intChoice;
while(1)
{
PrintInterface();
scanf("%d%*c",&Choice);//"%*c"是吸收回车的,因为后面会输入字母类型
if(Choice>=0&&Choice<=6)//选择操作合法
{
switch(Choice)
{
case0:exit(1);
case1:
{
system("cls");
if(AddStudent())printf(" 添加成功...回车继续 ");
elseprintf(" 添加失败...回车继续 ");
getchar();
getchar();
system("cls");
break;
}
case2:
{
system("cls");
if(DelStudent())printf(" 删除成功...回车继续 ");
elseprintf(" 删除失败...回车继续 ");
getchar();
getchar();
system("cls");
break;
}
case3:
{
system("cls");
CheckStudent();
system("cls");
break;
}
case4:
{
system("cls");
CheckClass();
system("cls");
break;
}
case5:WriteFile();system("cls");break;
case6:ReadFile();system("cls");break;
default:;
}
}
else
{
printf("无此功能..重新选择..回车确定 ");//选择操作非法
getchar();
system("cls");//清屏函数
}
}
}

voidPrintInterface()
{
printf(" -------------------------- ");
printf(" |1、添加| ");
printf(" || ");
printf(" |2、删除| ");
printf(" || ");
printf(" |3、查学生成绩| ");
printf(" || ");
printf(" |4、查班成绩表| ");
printf(" || ");
printf(" |5、写入文本文件| ");
printf(" || ");
printf(" |6、读取文本文件| ");
printf(" || ");
printf(" |0、退出| ");
printf(" -------------------------- ");
printf(" 选择操作:");
}

intAddStudent()
{
intS_count,i,j;
printf(" 添加中...... ");
printf(" 添加学生人数(如1、2……999):");
scanf("%d",&S_count);
if(Student_Count+S_count>=MAX)return0;//超过了数组上限
for(i=Student_Count;i<Student_Count+S_count;i++)
{
printf(" 第%d个学生: ",i-Student_Count+1);
printf(" 学生学号:");scanf("%d%*c",&S[i].Num);
printf(" 学生姓名:");gets(S[i].Name);
printf(" 该学生所修课程数:");scanf("%d",&S[i].Lesson_Count);
for(j=0;j<S[i].Lesson_Count;j++)
{
printf(" 第%d门课: ",j+1);
printf(" 课程编号:");scanf("%d%*c",&S[i].L[j].Lesson_Num);
printf(" 课程名称:");gets(S[i].L[j].Lesson_Name);
printf(" 课程成绩:");scanf("%d",&S[i].L[j].Lesson_Mark);
printf(" 课程学分:");scanf("%d",&S[i].L[j].Lesson_Credit);
if(S[i].L[j].Lesson_Mark<60)S[i].L[j].Lesson_Credit=0;//不及格的课程学分为0
}
}
Student_Count+=S_count;
return1;
}

intDelStudent()
{
char*D_Name;
intD_Num;
inti,j;
printf(" 填写待删除学生的信息: ");
printf(" 学生姓名:");gets(D_Name);
printf(" 学生学号:");scanf("%d",&D_Num);
for(i=0;i<Student_Count;i++)
{
if(!strcmp(S[i].Name,D_Name)&&S[i].Num==D_Num)
{
printf(" 找到该学生,删除中...... ");
for(j=i+1;j<Student_Count;j++)
{
S[j-1]=S[j];
}
break;
}
}
if(i==Student_Count)
{
printf(" 未找到该学生...请核对所填信息 ");
return0;
}
else
{
Student_Count--;
return1;
}
}

voidCheckStudent()
{
intC_Choice;
charC_Name[50];
intC_Num;
inti,j;
printf(" 输入所查学生信息(1.姓名\2.学号)选择:");
scanf("%d%*c",&C_Choice);
printf(" 查找中...... ");
if(C_Choice==1||C_Choice==2)//选择合法
{
if(C_Choice==1)
{
printf(" 姓名:");gets(C_Name);
for(i=0;i<Student_Count;i++)//全部穷举,防止同名同姓
{
if(!strcmp(S[i].Name,C_Name))
{
printf(" 学号:%d 姓名:%s ",S[i].Num,S[i].Name);
printf(" 课程编号 课程名称 课程成绩 课程学分 ");
printf("----------------------------------------------------- ");
for(j=0;j<S[i].Lesson_Count;j++)
{
printf("%d %s %d %d ",S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
printf("----------------------------------------------------- ");
}
printf(" ");
}
}
}
else
{
printf(" 学号:");scanf("%d%*c",&C_Num);
for(i=0;i<Student_Count;i++)//不用全部穷举,学号唯一
{
if(S[i].Num==C_Num)
{
printf(" 学号:%d 姓名:%s ",S[i].Num,S[i].Name);
printf(" 课程编号 课程名称 课程成绩 课程学分 ");
printf("----------------------------------------------------- ");
for(j=0;j<S[i].Lesson_Count;j++)
{
printf("%d %s %d %d ",S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
printf("----------------------------------------------------- ");
}
printf(" ");
break;
}
}
}
printf("查找完毕...回车继续 ");
getchar();
}
else//选择不合法
{
printf("选择错误...回车继续 ");
getchar();
return;
}
}

voidCheckClass()
{
intC_LNum;
doubleSSNum=0,PassSNum=0,SMark=0;
inti,j;
printf(" 请输入课程编号:");
scanf("%d%*c",&C_LNum);
printf(" 查找中...... ");
printf("学号 姓名 课程名称 课程成绩 课程学分 ");
printf("---------------------------------------------------- ");
for(i=0;i<Student_Count;i++)
{
for(j=0;j<S[i].Lesson_Count;j++)
{
if(S[i].L[j].Lesson_Num==C_LNum)
{
printf("%d %s %s %d %d ",S[i].Num,S[i].Name,S[i].L[j].Lesson_Name,
S[i].L[j].Lesson_Mark,S[i].L[j].Lesson_Credit);
printf("---------------------------------------------------- ");
SMark+=S[i].L[j].Lesson_Mark;
SSNum++;
if(S[i].L[j].Lesson_Mark>=60)PassSNum++;
break;
}
}
}
printf(" 平均分:%.2lf 及格率:%.2lf%% ",SMark/SSNum,PassSNum/SSNum*100);
printf(" 查找完毕...回车继续 ");
getchar();
}

voidWriteFile()
{
FILE*fp;
inti,j;
charAdr[100];
printf(" 请输入写入的文件地址: 地址输入格式:例如d:\\Student.txt(\\为转义字符):");
scanf("%s%*c",Adr);
printf(" 写入中...... ");
if(fp=fopen(Adr,"w"))//写入文件
{
fprintf(fp,"%d ",Student_Count);
for(i=0;i<Student_Count;i++)
{
fprintf(fp,"%d %s %d ",S[i].Num,S[i].Name,S[i].Lesson_Count);
for(j=0;j<S[i].Lesson_Count;j++)
{
fprintf(fp,"%d %s %d %d ",S[i].L[j].Lesson_Num,
S[i].L[j].Lesson_Name,S[i].L[j].Lesson_Mark,
S[i].L[j].Lesson_Credit);
}
}
printf(" 写入完成...回车继续 ");
fclose(fp);
}
else
{
printf(" 写入失败...回车继续 ");
}
getchar();
}
voidReadFile()
{
FILE*fp;
inti,j;
charAdr[100];
printf(" 请输入读取(为防止读入错误,希望与写入文件内容格式一致)的文件地址: 地址输入格式:例如d:\\Student.txt(\\为转义字符):");
scanf("%s%*c",Adr);
printf(" 读取中...... ");
if(fp=fopen(Adr,"r"))
{
fscanf(fp,"%d",&Student_Count);
for(i=0;i<Student_Count;i++)
{
fscanf(fp,"%d%s%d",&S[i].Num,&S[i].Name,&S[i].Lesson_Count);
for(j=0;j<S[i].Lesson_Count;j++)
{
fscanf(fp,"%d%s%d%d",&S[i].L[j].Lesson_Num,
&S[i].L[j].Lesson_Name,&S[i].L[j].Lesson_Mark,
&S[i].L[j].Lesson_Credit);
}
}
printf(" 读取成功...回车继续 ");
fclose(fp);
}
else
{
printf(" 读取失败...回车继续 ");
}
getchar();
}

Ⅶ 编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。

(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息

Ⅷ C语言制作成绩记录簿

#include<stdio,h>
#include<stdlib.h>
struct node
{ char data;struct node *next;};

struct node *insert(struct node *h,char c)
{ struct node *p,*p1,*p2;
p=(struct node *)malloc(sizeof(struct node)); p->data=c;p->next=NULL;
if(h==NULL)h=p;
else
{ p1=p2=h;
while(c>p1->data&&p1->next!=NULL) { p2=p1;p1=p1->next;}
if(c<=p1->data)
if(p1==h) { p->next=h;h=p;}
else { p2->next=p;p->next=p1;}
else { p1->next=p;}
}
return h;
}

struct node *del(struct node *h)
{
struct node *p=h;
while(p!=NULL)
{ if(p->data%2==0) p->next=p->next->next;
p=p->next;
}
return h;
}

void printf(struct node *h)
{ struct node *p=h;
while(p!=NULL)
{ printf("%c",p->data); p=p->next;
printf("\n");
}

void main()
{ struct node *head=NULL; char *item="32659",*p=item;
puts(item);
while(*p) head=insert(head,*p++);
print(head); del(head); print(head);
}

Ⅸ 学生成绩记录簿设计 编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:

刚给人补一个……
你有学习C语言程序指导书么?就是全是编程解答的一本书,上面有该实验源代码,你要是一点没写就可以一下。如果没有,你可以网络当当网《C程序设计题解与实验指导》清华大学出版社李丹程等着,上面有个阅读,点一下就行,还不用买。

Ⅹ 用c语言编写一个成绩记录簿

说下思路吧
数据结构中的广义表学过吧,就用它了
定义几个结构体
学校、年级、班级、学生
比如:
typedef struct sch sch_t;
typedef struct grp grp_t;
typedef struct cls cls_t;
typedef struct stud stud_t;
struct sch {
char name[20];
grp_t* grphead; //学校下面的年级的头指针,得到这个可以遍历此学校的所有年级
sch_t* next; //如果有下一个学校,next就是指向下一个
};
struct grp {
int level;
cls_t* clshead; //年级下面的班级的头指针,得到这个可以遍历此年级的所有班级
grp_t* next; //下一个年级
};
struct cls {
char name[20];
stud_t* studhead; //班级下面的学生的头指针,得到这个可以遍历此班级的所有学生
cls_t* next; //下一个班级
};
struct stud {
int id;
char name[20];
int english;
int math;
int chinese;
stud_t* next;
};

这是定义的几个结构,增删改查的你自己实现吧