当前位置:编程学习 > C/C++ >>

[C++的]学生成绩薄设计

用C++编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息
(7)按成绩由高分到低分进行排序。

[8]采用模块化程序设计的方法、最好能有点注释


问题补充:
如果这里不方便写,可以写好后用QQ传给我347705113,到时候给分。。。。急,下午2点之前要!!!
追问:谢谢谢谢谢.....不过发现题搞错了,可以解决一下这个题吗,帮下忙....(6)、长整数的处理。假定用一个整型数组表示一个长整数,
数组的每个元素存储长整数的一位数字
则实际的长整数m表示为:
m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
其中a[0]保存该长整数的位数。

对于描述的10进制长整数,要求:
(a) 转换为16进制数输出;
(b) 转换成8进制数输出。
答案:
#include <stdio.h>
#include <string.h>
#include <io.h>

/*
成绩记录簿
用Visual C++编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:
(1)创建信息链表并以磁盘文件保存;
(2)读取磁盘文件并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩并可存盘;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
*/

//结构体
struct stdinfo
{
int ID;
char Name[10];
float Score;
stdinfo *pNext;
};


void AddData(stdinfo &std)
{
FILE *pf = fopen("score.data","a+");
fwrite((void *)&(std.ID),sizeof(int),1,pf);
fwrite((void *)std.Name,sizeof(std.Name),1,pf);
fwrite((void *)&(std.Score),sizeof(float),1,pf);
fclose(pf);
}

void ReadData(stdinfo **phead)
{
if(_access("score.data",0)==-1)
{
return;
}
stdinfo *pNewStudent;
FILE *pf = fopen("score.data","r");
stdinfo *p =NULL;
fseek(pf,0,SEEK_END);
int lof = ftell(pf);
fseek(pf,0,SEEK_SET);
int len =0;
while(len!=lof)
{
pNewStudent= new stdinfo;
pNewStudent->ID =0;
memset(pNewStudent->Name,0,sizeof(pNewStudent->Name));
pNewStudent->Score =0;
pNewStudent->pNext =NULL;
if(p!=NULL)
{
p->pNext = pNewStudent;
}
fread((void *)&(pNewStudent->ID),sizeof(int),1,pf);
fread((void *)pNewStudent->Name,sizeof(pNewStudent->Name),1,pf);
fread((void *)&(pNewStudent->Score),sizeof(float),1,pf);

if(*phead==NULL)
{
*phead = pNewStudent;
p=*phead;
}
else
{
p=p->pNext;
}
len=ftell(pf);
}

fclose(pf);
}

void SaveData(stdinfo* phead)
{
if(phead==NULL)
{
return;
}
FILE *pf = fopen("score.data","w");
stdinfo *p = phead;
while(p!=NULL)
{
fwrite((void *)&(p->ID),sizeof(int),1,pf);
fwrite((void *)p->Name,sizeof(p->Name),1,pf);
fwrite((void *)&(p->Score),sizeof(float),1,pf);
p=p->pNext;
}
fclose(pf);
}

上一个:编程语言:JAVA与C++比较
下一个:C++编程 windows窗口程序和矩阵类程序

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,