南京工程学院C语言课程设计 题目学生成绩管理系统 学号
南京工程学院C语言课程设计
题目:学生成绩管理系统
姓 名: __
学 号:
班 级:
2006年1月3日
(一)课程设计题目:
学生成绩管理系统
(二)课程设计目的:
1.进一步掌握和利用C语言进行行程设计的能力;
2.进一步理解和运用结构化程序设计的思想和方法;
3.初步掌握开发一个小型实用系统的基本方法;
4.学会调试一个较长程序的基本方法;
5.学会利用流程图表示算法;
6.掌握书写程序设计开发文档的能力(书写课程设计报告)。
(三)课程设计内容:
1.每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩。
2. 输入功能:可以一次完成若干条记录的输入。
3.显示功能:完成全部学生记录的显示。
4.查找功能:完成按学号查找学生记录并显示。
5.排序功能:按学生总分进行排序。
6.插入功能:按学号插入一条学生记录。
7.将学生记录保存在文件中。
8.应提供一个菜单来调用各个功能,调用菜单的界面应尽可能清晰美观!
(四)课程设计要求:
用C语言实现系统;
利用结构体链表实现学生成绩的数据结构设计;
系统具有追加,查询,插入,排序等基本功能;
系统的各个功能要求用函数的形式实现;
完成设计任务并书写课程设计报告;
将学生成绩信息存在文件中。
(五)概要设计:
1.制作这样的一个数据库需要实现以下功能:
(1)数据库的安全性。进入数据库需要输入用户的密码,不同的用户可以有不同的权限。
(2)数据库的操作界面设计为菜单显示方式。用户通过菜单进行选择。如下图所示:
图1 主菜单界面
程序的输出格式:
图 SEQ 图 \* ARABIC 1
本程序利用单链表存储结构完成对学生成绩的动态管理,其基本功能模块图如下图所示:
主程序
主程序
输入
显示
删除
查找
插入
追加
保存
读入
计算
拷贝
排序
索引
分类合计
基本功能模块图
2.各函数流程图:
(1)creat()函数:
(2)del()函数:
(3)display()函数:
(4)search()函数:
(5)save()函数:
(6)load()函数:
(7)computer()函数:
(8)copynew()函数:
(9)modify()函数:
(10)append()函数:
(11)sort()函数:
(12)index()函数:
(13)fail()函数:
(14)five()函数:
(15)average()函数:
(16)classscore()函数:
(六)详细设计:
按照概要设计列出的功能模块,设计出与这些模块一一对应的功能函数,以供主函数使用。
(1)函数原型:menu_select()
函数功能:主菜单。用户通过菜单进行选择。调用各功能函数。
(2)函数原型:student *creat()
函数功能:该函数是用来创建单链表。
当在主函数中输入1时,即进入创建链表函数,即开始输入学生信息,按照提示信息输入学号、三门课程的成绩,每输入完一个数就按一下回车键,当输入学号为0时结束输入,返回主函数,显示主菜单界面。
(3)函数原型:student *del(student *head)
函数功能:该函数的作用是删除指定学号的学生记录。
首先根据提示信息输入要删除结点的学号,输入后根据学号顺序查找结点,如果没有找到,则输出没有找到的信息;否则,显示找到的信息,然后删除。调用结束返回主函数,显示主菜单。
(4)函数原型:void display(student *head)
函数功能:该函数的作用是显示单链表。
本函数以二维表的形式输出,直观漂亮。调整格式,对齐表格线。
(5)函数原型:void search(student *head)
函数功能:该函数的作用是查找指定学号的学生记录。
根据提示信息输入要查找结点的学号,输入后根据学号顺序查找,如果没有找到,则输出没有找到的信息;否则,显示找到的信息。调用结束返回主函数,显示主菜单。
(6)函数原型:void save(student *head)
函数功能:该函数的作用是将学生记录保存到指定文件中。
在访问链表的过程中将记录写入文件。
(7)函数原型:student *load()
函数功能:该函数的作用是将学生记录从文件中取出放到链表中。Load和creat函数算法相同,不同点在于creat是从键盘上接受数据,而Load函数是从文件中读数据。
(8)函数原型:student *computer(student *head)
函数功能:该函数作用是计算每个学生成绩的总分和平均分。
(9)函数原型:void copy