没有合适的资源?快使用搜索试试~ 我知道了~
首页C语言课程设计报告学生成绩管理系统
一.设计题目 学生成绩管理系统 二.课程设计目的 了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用WIN-TC实现学生成绩管理系统的录入、查询、删除、统计等基本操作,使用单链表结构实现学生成绩管理,了解数据库管理的基本功能,掌握C语言中的结构体、指针、函数(系统函数、自定义函数)、文件操作等知识。通过对系统的分析和设计,进一步巩固C语言的学习,以提高对开发环境的进一步认识和综合编程能力。 三. 系统功能 1.学生基本情况录入。 2 能够对已经录入的数据进行显示。 3.能够进行数据的插入。 4.删除基本数据的相关信息。 5.复制基本数据的相关信息。 6.能够从文件中读入记录。 7.对输入的数据进行保存。 8.可进行姓名的查询。如:姓陈的同学。 9.可进行基本数据的统计计算。如: ①.统计每个学生各门功课的平均成绩及总分,根据总分进行名次排列。 ②.对数据进行分类合计处理,统计个班级的总分,总平均分。
资源详情
资源评论
资源推荐
C 语言课程设计报告
学生成绩管理系统
学 院 计算机学院
专 业 软件工程 (4) 班
年 级 2007
级
姓 名
学 号
教 师
2008 年 2 月 27 日
广东工业大学计算机学院制
一.设计题目
学生成绩管理系统
二.课程设计目的
了解软件工程中的一些系统分析,模块分析,代码设计的概念,利用 WIN-TC 实现学
生成绩管理系统的录入、查询、删除、统计等基本操作,使用单链表结构实现学生成绩管
理,了解数据库管理的基本功能,掌握 C 语言中的结构体、指针、函数(系统函数、自定
义函数)、文件操作等知识。通过对系统的分析和设计,进一步巩固 C 语言的学习,以提
高对开发环境的进一步认识和综合编程能力。
三. 系统功能
1.学生基本情况录入。
2 能够对已经录入的数据进行显示。
3.能够进行数据的插入。
4.删除基本数据的相关信息。
5.复制基本数据的相关信息。
6.能够从文件中读入记录。
7.对输入的数据进行保存。
8.可进行姓名的查询。如:姓陈的同学。
9.可进行基本数据的统计计算。如:
①.统计每个学生各门功课的平均成绩及总分,根据总分进行名次排列。
②.对数据进行分类合计处理,统计个班级的总分,总平均分。
四.系统功能模块结构图
本程序利用单链表存储结构完成对学生成绩的动态管理,其基本功能模块如下图所示:
︱
图 1 程序功能模块结构图
主程序
1. 输入成绩记录
0. 对表进行初始化
2. 从表中删除记录
3. 显示所有记录
4. 按姓名查找记录
5. 保存记录到文件
6. 加载文件
7. 计算总分和均分
8. 插入记录到表中
9. 复制文件
10. 按分排序
11. 追加记录
13. 分类合计
12. 索引
15. 版本信息
14. 退出系统
五.程序设计及各模块函数功能简述
1.数据结构
链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储
结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随机存取表中任一
元素。链式存储结构的特点是用一组任意的存储单元存储线形表的数据元素。链表的最大
的优点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储学生相关
信息。且对结点的定义如下:
typedef struct z1 /*定义数据结构*/
{
char no[11]; /*10 位学号*/
char name[15]; /*姓名*/
int score[N]; /*成绩*/
float sum; /*总分*/
float average; /*平均分*/
int order; /*排名*/
struct z1 *next;
}STUDENT;
2.main()主函数
主函数是程序入口,采用模块化设计。首先在主程序中打印欢迎界面,声明一些必要
变量,作一无限循环程序,循环体为一开关语句,该语句设置一个断点,其条件值是通过
调用主菜单函数得到的返回值,根据该值,调用相应的功能函数,同时设置一个断点,当
返回值为一定条件时结束程序。
3.menu_select()主菜单
为了美化界面,制作单边框窗口,在窗口中显示主菜单。通过 putch()输出图形符号的
ASCII 码值(十六进制),达到显示的目的。
利用 Windows 函数制作显示窗口,该窗口与边框位置,大小基本一致,通过过仔细计
算且多次调试后得到其坐标值,用函数 gotoxy()来实现光标的移动。设置文本和背景色输
出菜单项。恢复原窗口,设计输入选择项,返回主函数。相关的一些函数如下:
window、textbackground、clrscr、textcolor、cprintf、bioskey、gotoxy、gettext、puttext
、putch。
putch(0xda); /*输出左上角边框┏*/
putch(0xc4); /*输出上边框水平线*/
putch(0xbf); /*输出右上角边框 ┓*/
gotoxy(10,i);putch(0xb3); /*输出左边的垂直线*/
gotoxy(63,i);putch(0xb3); /*输出右边的垂直线*/
putch(0xc0); /*输出左下角边框┗*/
putch(0xc4); /*输出下边框水平线*/
putch(0xd9); /*输出右下角边框┛*/
对菜单选项的选择是利用移动光标按回车键进行选择。
4.init()初始化
单链表需要一个头指针来指向表的第一个结点,对单链表的访问是从头指针开始的。
初始化单链表为空,用 NULL 表示,该值在头文件 stdio.h 中定义为常数 0。
5.create()创建链表
当用户选择输入增加记录后,进入该函数,输入学生信息,并把信息加入链表。在输
入过程中,有相关提示,如学号是十位,格式为字符型。同时对某些信息作了限定,如输
入分数(0—100) ,若输入分数不在这个范围内,则系统 提示重新输入,但是要求输入分
数输入了非数字的代码,如“Z”,则会出现死循环。因此在输入基本信息时,若要返回主菜
单,请在“enter no:”时输入‘*’以便返回主菜单。当输入结束后,系统自动计算该生的总分和
平均分,并将名次置 0,待排序结束后赋予新值。数据输入结束后返回链表的头指针到方
函数。
在生成链表时,每次新输入的结点放在表头,这样最先输入的结点存放在最后。
6.delete()删除结点
删除指定学号的学生记录。输入要删除的结点的学号,根据学号顺序查找结点,如果
没找到,则输出没有找到的信息;否则显示找到的结点信息。如果删除的是头结点,则修
改头指针,将该结点的前趋指针指向其后继结点,然后释放该结点。
7.append()追加记录到文件尾
当想要在文件尾增加一条记录时使用该函数,首先输入新结点信息,然后输入要追加
的文件名,按追加方式打开文件,将新信息写入文件。
8.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。
9.print()显示所有记录
采用顺序访问的方法显示和查找记录,定义一个指向结点的临时变量 p,初值为单链
表的头指针,输出指针所记录的数据后,将指针后移一个记录,直到 p 指针值为空,则所
有记录输出完毕。
10.search()查找结点
按照 姓名 来查找记录。从头结点开始顺序查找, 若没有相同记录显示没有,遇到 一
个匹配的记录则显示此记录, 后到尾结点结束。
11.save()保存记录到文件
剩余24页未读,继续阅读
yali24
- 粉丝: 5
- 资源: 63
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论15