- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计课程设计-学生成绩管理系统汇
淮北师范大学
程序设计课程设计
简单学生成绩统计软件
学 院 计算机科学与技术
专 业 计算机科学与技术(师范)
学 号
学 生 姓 名
指导教师姓名
2011年月 日
typedef struct
{
char num[11]; /*学号*/
char name[10]; /*姓名*/
int cgrade; /*c 语言课设成绩*/
}elemtype ;
使用链表实现学生记录的存储,链表中的结点结构如下:
typedef struct node
{ elemtype data;
struct node * next;
} NODE,*Nodeptr;
int n=0;
2.程序应具有以下基本功能:
(1)以菜单形式显示主界面,提示用户进行选择,完成相应任务,如图1-1 所示。
(2)创建学生记录链表:从键盘输入一定数量的学生记录。
(3)插入学生记录:从键盘输入待插入的学生记录,插入到指定位置。
(4)对学生记录中的C 语言课设成绩按指定顺序(升序、降序)进行排序;
(5)删除学生记录:在指定位置上删除学生记录。
(6)能统计各分数段的人数,并以分布图显示,如图1-2 所示。
(7)输出学生记录到屏幕
目的: (1)每个学生记录中包含学号、姓名和C 语言课设成绩等信息;
(2)创建学生记录链表;
(3)更新学生记录(插入、排序、删除);
(4)能统计各分数段的人数,并以分布图显示;
(5)输出学生记录到屏幕。
二、算法的基本思想typedef struct
{
char num[11]; /*学号*/
char name[10]; /*姓名*/
int cgrade; /*c 语言课设成绩*/
} elemtype ;
typedef struct node{
elemtype data;
struct node * next;
} Node,*Nodeptr;
程序运行前先创建学生信息,创建完成后显示刚才创建的信息,然后根据需要进行删除学生信息,插入学生信息和对学生成绩进行汇总显示的操作。
创建学生信息的函数如下:
int CreateLink( Nodeptr L,int M[5])
{
for(int i=0;i5;i++)
{
M[i]=0; //将M全部设置为0
}
ClearTheLink(L,M);
InsertElemToLink(L,M);
return 0;
}
在CreateLink函数中调用了ClearTheLink(L,M);函数,其函数的作用是将链表除了头结点以外的其他结点全部删除,并将存放学生汇总信息的数组置为空。函数的实现如下:
int ClearTheLink(Nodeptr L,int M[5]){
Nodeptr p;
int nCount=0;
p = L-next;
while (p)
{
L-next = p-next;
delete(p);
p = L-next;
nCount++;
}
L-data.cgrade = 0;
for(int i=0;i5;i++)
{
M[i]=0; }
return nCount;
}
该函数的传入参数为一个指向结构体指针和一个整形的一维数组。指针所指向的是链表的头结点,一维数组中所存放的是学生的汇总信息。
在CreateLink函数中还调用了另外一个函数InsertElemToLink(L,M),其作用是供用户输入学生信息,并存放在结点中。函数定义如下:
int InsertElemToLink(Nodeptr L,int M[5])
{
elemtype x;
int flag=1;
while(flag)
{
printf(请输入学生学号(不超过11位):);
scanf(%s,x.num);
printf(请输入该学生名字(不超过10位):);
scanf(%s,x.name);
printf(请输入该学生成绩:);
scanf(%d,x.cgrade);
InsertElemToLink(L, x,M);
printf(是否继续输入(1继续,0取消)?\n);
scanf(%d,flag);
}
PrintTheLink(L);
return 1;
}
该函数的传入参数是指向链表头结点的指针和一个存放学生汇总信息的数组。当用户输入完成后该函数又调用InsertElemToLink(L, x,M)将输入的信息存放在链表中。最
文档评论(0)