C语言课程设计报告学生成绩管理系统1_精品文档.doc

上传人:b****1 文档编号:209594 上传时间:2022-10-06 格式:DOC 页数:16 大小:51KB
下载 相关 举报
C语言课程设计报告学生成绩管理系统1_精品文档.doc_第1页
第1页 / 共16页
C语言课程设计报告学生成绩管理系统1_精品文档.doc_第2页
第2页 / 共16页
C语言课程设计报告学生成绩管理系统1_精品文档.doc_第3页
第3页 / 共16页
C语言课程设计报告学生成绩管理系统1_精品文档.doc_第4页
第4页 / 共16页
C语言课程设计报告学生成绩管理系统1_精品文档.doc_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言课程设计报告学生成绩管理系统1_精品文档.doc

《C语言课程设计报告学生成绩管理系统1_精品文档.doc》由会员分享,可在线阅读,更多相关《C语言课程设计报告学生成绩管理系统1_精品文档.doc(16页珍藏版)》请在冰豆网上搜索。

C语言课程设计报告学生成绩管理系统1_精品文档.doc

C语言课程设计报告

一、组员信息。

组长:

岳英明(信科092班学号0909281074)负责构思程序的大体算法,流程图,编写代码,检查错误。

成员:

孟琼瑶(信科092班学号0909281075)主要编写代码,查资料,界面设计。

二、设计目的

进一步加深、巩固学生所学专业课程(《C语言》)的基本理论知识,理论联系实际,进一步培养学生综合分析问题和解决问题的能力。

掌握运用C语言独立地编写、调试应用程序和进行其它相关设计的技能。

三、成绩管理系统主要功能

1.输入记录

2.用指定格式显示全部记录

3.根据姓名查找记录

4.根据姓名删除记录

5.保存记录到文件

6.按序号显示记录

7.按姓名由小到大的顺序排序

四、系统流程图

开始

结束

选择操作

输入数据

排序

显示数据

查询

删除

输出界面

插入数据

退出系统

按学号

按姓名

保存数据吧

按景平均成绩

选择7

选择6

选择5

选择4

选择3

选择2

选择1

选择8

按平均成绩高低i

读取数据吧

选择8

三门成绩

学号

姓名

五、界面设计

此系统界面采用图形和数字化菜单设计。

主界面设计如下:

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

欢迎进入

学生成绩管理系统

-----制作者:

武汉纺织大学理学院信科092班岳英明

************************主菜单**********************

1.登记学生资料2.删除学生资料

3.查找学生资料4.修改学生资料

5.保存学生资料6.退出系统

*********************************************************

六、程序代码

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

intshoudsave=0;/**/

structstudent

{

charnum[10];/*学号*/

charname[20];

charsex[4];

intcgrade;

intmgrade;

integrade;

inttotle;

intave;

charneartime[10];/*最近更新时间*/

};

typedefstructnode

{

structstudentdata;

structnode*next;

}Node,*Link;

voidmenu()

{

printf("*********************************主菜单*****************************************");

printf("\t1登记学生资料\t\t\t\t\t2删除学生资料\n");

printf("\t3查询学生资料\t\t\t\t\t4修改学生资料\n");

printf("\t5保存学生资料\t\t\t\t\t0退出系统\n");

printf("********************************************************************************\n");

}

voidprintstart()

{

printf("-----------------------------------------------------------------------\n");

}

voidWrong()

{

printf("\n=====>提示:

输入错误!

\n");

}

voidNofind()

{

printf("\n=====>提示:

没有找到该学生!

\n");

}

voidprintc()/*本函数用于输出中文*/

{

printf("学号\t姓名性别英语成绩数学成绩C语言成绩总分平均分\n");

}

voidprinte(Node*p)/*本函数用于输出英文*/

{

printf("%-12s%s\t%s\t%d\t%d\t%d\t%d\t%d\n",p->data.num,p->data.name,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);

}

Node*Locate(Linkl,charfindmess[],charnameornum[])/*该函数用于定位连表中符合要求的接点,并返回该指针*/

{

Node*r;

if(strcmp(nameornum,"num")==0)/*按学号查询*/

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.num,findmess)==0)

returnr;

r=r->next;

}

}

elseif(strcmp(nameornum,"name")==0)/*按姓名查询*/

{

r=l->next;

while(r!

=NULL)

{

if(strcmp(r->data.name,findmess)==0)

returnr;

r=r->next;

}

}

return0;

}

voidAdd(Linkl)/*增加学生*/

{

Node*p,*r,*s;

charnum[10];

r=l;

s=l->next;

while(r->next!

=NULL)

r=r->next;/*将指针置于最末尾*/

while

(1)

{

printf("请你输入学号(以'0'返回上一级菜单:

)");

scanf("%s",num);

if(strcmp(num,"0")==0)

break;

while(s)

{

if(strcmp(s->data.num,num)==0)

{

printf("=====>提示:

学号为'%s'的学生已经存在,若要修改请你选择'4修改'!

\n",num);

printstart();

printc();

printe(s);

printstart();

printf("\n");

return;

}

s=s->next;

}

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

strcpy(p->data.num,num);

printf("请你输入姓名:

");

scanf("%s",p->data.name);

getchar();

printf("请你输入性别:

");

scanf("%s",p->data.sex);

getchar();

printf("请你输入c语言成绩:

");

scanf("%d",&p->data.cgrade);

getchar();

printf("请你输入数学成绩:

");

scanf("%d",&p->data.mgrade);

getchar();

printf("请你输入英语成绩:

");

scanf("%d",&p->data.egrade);

getchar();

p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;

p->data.ave=p->data.totle/3;

/*信息输入已经完成*/

p->next=NULL;

r->next=p;

r=p;

shoudsave=1;

}

}

voidQur(Linkl)/*查询学生*/

{

intsel;

charfindmess[20];

Node*p;

if(!

l->next)

{

printf("\n=====>提示:

没有资料可以查询!

\n");

return;

}

printf("\n=====>1按学号查找\n=====>2按姓名查找\n");

scanf("%d",&sel);

if(sel==1)/*学号*/

{

printf("请你输入要查找的学号:

");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{

printf("\t\t\t\t查找结果\n");

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

elseif(sel==2)/*姓名*/

{

printf("请你输入要查找的姓名:

");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{

printf("\t\t\t\t查找结果\n");

printstart();

printc();

printe(p);

printstart();

}

else

Nofind();

}

else

Wrong();

}

voidDel(Linkl)/*删除*/

{

intsel;

Node*p,*r;

charfindmess[20];

if(!

l->next)

{

printf("\n=====>提示:

没有资料可以删除!

\n");

return;

}

printf("\n=====>1按学号删除\n=====>2按姓名删除\n");

scanf("%d",&sel);

if(sel==1)

{

printf("请你输入要删除的学号:

");

scanf("%s",findmess);

p=Locate(l,findmess,"num");

if(p)

{

r=l;

while(r->next!

=p)

r=r->next;

r->next=p->next;

free(p);

printf("\n=====>提示:

该学生已经成功删除!

\n");

shoudsave=1;

}

else

Nofind();

}

elseif(sel==2)

{

printf("请你输入要删除的姓名:

");

scanf("%s",findmess);

p=Locate(l,findmess,"name");

if(p)

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学研究 > 教学案例设计

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1