• 大小: 222.63 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-09
  • 语言: 其他
  • 标签: C语言  

资源简介

(1)学生信息及成绩的录入
要求包括的学生信息有:学号,姓名,性别,出生日期,民族 及数据结构成绩(具体内容可自行假设,至少录入10名以上学生).
所录入的学生按学号散列存储(散列函数为 学号%5 取整,如 1002%5 =2),采用拉链法解决冲突.
(2)学生成绩的查询
要求根据提供的学号完成学生成绩的查询(必须采用散列查找).
(3)学生成绩的分段统计和排序输出
统计出各分数段学生人数(60分以下,60~70,71~80,...)
采用堆排序,将学生成绩从高到低排序输出.

资源截图

代码片段和文件信息

#include “headfile.h“
//插入学生信息
void doInsert(Hash *H)
{
stu s;
char cmd;
cmd = ‘y‘;

while(cmd == ‘y‘ || cmd ==‘Y‘)
{
s=(stu)malloc(sizeof(student));
s->next=NULL;
s->num=0;
do
{
printf(“>>请输入学号:\n>>“);
    scanf(“%d“&s->num);
fflush(stdin);//把scanf的输入流自动清除
if(s->num==0)
{
printf(“ 警告:非法输入,学号只能为整数\n“);
continue;
}
}while(s->num==0);
printf(“>>请输入姓名:\n>>“);
gets(s->name);
do
{
printf(“>>请输入性别[f/m]:\n>>“);
scanf(“%c“&s->sex);
fflush(stdin);//把scanf的输入流自动清除
if(s->sex!=‘M‘ && s->sex!=‘m‘ && s->sex!=‘f‘ && s->sex!=‘F‘)
{
printf(“ 警告:非法输入,男生请输入m女生请输入f\n“);
continue;
}
}while(s->sex!=‘M‘ && s->sex!=‘m‘ && s->sex!=‘f‘ && s->sex!=‘F‘);
printf(“>>请输入出生年月:\n>>“);
gets(s->birthday);
printf(“>>请输入民族:\n>>“);
gets(s->folk);
s->s.chinese=0;
do
{
printf(“>>请输入中文成绩:\n>>“);
scanf(“%d“&s->s.chinese);
fflush(stdin);//把scanf的输入流自动清除
if(s->s.chinese==0 || s->s.chinese<0 || s->s.chinese>100)
printf(“ 警告:非法的输入,请重新输入\n“);
}while(s->s.chinese==0 || s->s.chinese<0 || s->s.chinese>100);
s->s.english=0;
    do
{
printf(“>>请输入英语成绩:\n>>“);
scanf(“%d“&s->s.english);
fflush(stdin);//把scanf的输入流自动清除
if(s->s.english==0 || s->s.english<0 || s->s.english>100)
printf(“ 警告:非法的输入,请重新输入\n“);
}while(s->s.english==0 || s->s.english<0 || s->s.english>100);
s->s.math=0;
do
{
printf(“>>请输入数学成绩:\n>>“);
scanf(“%d“&s->s.math);
fflush(stdin);//把scanf的输入流自动清除
if(s->s.math==0 || s->s.math<0 || s->s.math>100)
printf(“ 警告:非法的输入,请重新输入\n“);
}while(s->s.math==0 || s->s.math<0 || s->s.math>100);
Build_Hash(Hs);
printf(“\n>>要继续录入吗?(Y/N):\n>>“);
scanf(“%c“&cmd);
getchar();
}
printf(“>>请按回车键返回主菜单...“);
getchar();
}

//查询学生信息
void doSearch(Hash *H)
{
int key=0;
char cmd;
cmd = ‘y‘;

while(cmd == ‘y‘ || cmd ==‘Y‘)
{
printf(“>>请输入要查询学生的学号:\n>>“);
scanf(“%d“&key);
if(!Search(Hkey))
printf(“ 不存在该学生的信息...“);
fflush(stdin);//把scanf的输入流自动清除
printf(“\n>>要继续查询吗?(Y/N):\n>>“);
scanf(“%c“&cmd);
getchar();
}
printf(“>>请按回车键返回主菜单...“);
getchar();
}
//分数统计
void doSort(Hash *H)
{
Sort(H);
printf(“>>请按回车键返回主菜单...“);
getchar();
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2448  2008-12-10 21:49  score\Control.cpp

     文件       9949  2008-12-10 21:49  score\Debug\Control.obj

     文件       2306  2008-12-10 21:57  score\Debug\InsertScore.obj

     文件       7797  2008-12-10 21:49  score\Debug\MainApp.obj

     文件     200747  2008-12-10 21:57  score\Debug\score.exe

     文件     315888  2008-12-10 21:57  score\Debug\score.ilk

     文件     186904  2008-12-10 15:44  score\Debug\score.pch

     文件     541696  2008-12-10 21:57  score\Debug\score.pdb

     文件       3908  2008-12-10 21:49  score\Debug\Search.obj

     文件       7742  2008-12-10 21:49  score\Debug\Sort.obj

     文件       3816  2008-12-10 21:49  score\Debug\TestData.obj

     文件      50176  2008-12-10 21:57  score\Debug\vc60.idb

     文件      53248  2008-12-10 21:57  score\Debug\vc60.pdb

     文件       1099  2008-12-10 21:48  score\headfile.h

     文件        481  2008-12-10 21:57  score\InsertScore.cpp

     文件       1262  2008-12-10 21:46  score\MainApp.cpp

     文件       4658  2008-12-10 21:57  score\score.dsp

     文件        533  2008-12-10 15:09  score\score.dsw

     文件      41984  2008-12-10 21:57  score\score.ncb

     文件      49664  2008-12-10 21:57  score\score.opt

     文件       1261  2008-12-10 21:57  score\score.plg

     文件       1035  2008-12-10 21:41  score\Search.cpp

     文件       2749  2008-12-10 21:43  score\Sort.cpp

     文件        612  2008-12-10 21:43  score\TestData.cpp

     目录          0  2009-03-18 11:29  score\Debug

     目录          0  2009-03-18 11:29  score

----------- ---------  ---------- -----  ----

              1491963                    26


评论

共有 条评论