c语言学生学习成绩管理系统.docVIP

  • 11
  • 0
  • 约2.89万字
  • 约 44页
  • 2022-03-04 发布于浙江
  • 举报
本科生 c语言 题 目 学生成绩管理系统 学生姓名 指导教师 学 院 专业班级 设计题目 学生学习成绩管理系统 二、课程设计目的 本课程设计是 “C语言程序设计〞课程学习本次设计,要求设计者基于结构化程序设计思想和所用C语言开发环境与工具,并运用“软件工程〞和“数据结构〞 系统功能 1、输入/添加记录。 2、显示、查询记录: 3、修改记录: 4、删除记录: 5、成绩排序: 6、统计功能:〔A〕计算各门课程全班总成绩及平均成绩;〔B〕统计各门课程得分为100、90~99、80~89、70~79、60~69和不及格学生的人数,以及与全班总人数的百分比。 7、其他:该软件应具有系统名称、设计单位或个人等根本信息。 四、设计方案 本程序利用单链表存储结构完成对学生成绩的动态管理,其根本功能模块如下列图所示: 对表进行初始化 对表进行初始化 输入成绩记录                  输入成绩记录                   逻辑删除                  逻辑删除 退出管理系统分数分级子菜单按均分排序计算总分和均分查找某项记录显示所有记录修改某项记录物理删除                                退出管理系统 分数分级子菜单 按均分排序 计算总分和均分 查找某项记录 显示所有记录 修改某项记录 物理删除 主程序 主程序 90-100 90-100 80-90 80-90 70-80 70-80 0-6060-70 0-60 60-70    图1 程序功能模块结构图 1.数据结构 链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随机存取表中任一元素。链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。链表的最大的优点是对表的添加、删除、查找、排序等操作比拟方便,因此采用链表来存储学生相关信息。且对结点的定义如下: typedef struct S1 char name[15]; /*姓名*/ int score[4]; /*成绩*/ float sum; /*总分*/ float average; /*平均分*/ int order; /*排名*/ struct S1 *next; }STUDENT; menu_select=?0131211 9 8 7 6 5432110开始 menu_select=? 0 13 12 11 9 8 7 6 5 4 3 2 1 10 开始 输入menu_select的值 输入menu_select的值 3.menu_select()主菜单 window、textbackground、clrscr、textcolor、cprintf、bioskey、gotoxy、putch。 putch(0xc9); /*输出左上角边框┏ */ putch(0xcd); /*输出水平线*/ putch(0xbb); /*输出右上角边框 ┓*/ putch(0xba); /*输出左垂直线*/ putch(0xc8); /*输出左上角边框┗ */ putch(0xbc); /*输出右下角边框 ┛*/ 4.init()初始化 0 0 A 5.create()创立链表 外语、高数、C语言、物理    No 1 入口 p为空? 输入学生相关信息 输入E\e? 结束  Yes  No  Yes 6.insert()插入结点 在指定结点前面插入新结点,申请空间得到指针info,输入新结点信息,存放info中,设链表头指针为h,p为指定结点的指针,q为p的前趋指针。从头结点开始循环移动指针p查找指定结点,查找和插入时分两种情况处理: 1).指针p为空,如果p等于h,说明链表为空,那么新结点即为头结点,修改指针h=info。否那么,说明表中没有指定结点,那么新结点插入在表尾部,此是q把指的结点是最后一个结点,所以修改指针q-next=info。 2).指针p不为空,如果p等于h,说明新结点插入在当前第一个结点之前,为新的头结点,修改指针info-next=p,h=info。否那么,说明新结点的位置应在q和p两个结点之间,修改指针info-next=p,q-next=info。 yes yes no no no no Yes no Yes 5 入口 有空间? 输入待追加学生信息

文档评论(0)

1亿VIP精品文档

相关文档