课程设计报告
课程名称 C语言程序设计
设计题目学生成绩管理系统
专业地球信息科学与技术
2012年 1月 6日
学生成绩管理系统课程设计
报告
目录
………………………………(3)
…………………………………(3)
…………………(4)
一、设计目的:
1、进一步掌握和利用C语言进行程序设计的能力;
2、进一步理解和运用结构化程序设计的思想和方法;
3、初步掌握开发一个小型实用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、熟悉链表的操作;
6、学会利用流程图或N-S图表示算法;
7、学会如何将信息保存到文件;
8、掌握如何书写程序设计报告。
设计内容和要求:
(1)设计内容
1、每一条记录包括一个学生的学号、姓名、4门课成绩及其总分;
2、输入功能:可以完成记录的输入;
3、显示功能:完成全部学生记录的显示;
4、查找功能:完成按学号或姓名查找学生记录,并显示;
5、删除功能:完成一个学生信息的删除;
6、排序功能:按学生学号或者总分高低进行排序
7、插入功能:按学号顺序插入一条学生记录;
8、保存文件:将学生记录到一个文件中;
9、打开文件:可以将学生信息从保存的文件中读取出来;
10、菜单:提供一个界面来调用各个功能。
(2)设计要求:
有简单操作界面, 用户可以通过数字选择以下功能:
1、录入成绩.(链表的建立,每个结点包括:学号、 姓名、数学、物理、英语、计算机、总分);
2、输出成绩.(链表的输出,按学号排序、按总分排序) ;
3、查找成绩.(按学号或姓名查找结点, 按学号顺序插入结点,按学号或者姓名删除结点);
4、保存到文件, 以及从文件中读出。
三、程序设计说明及其流程图
整个系统除了主函数外,另外还有14个函数,其中两个个函数作用分别为首次使用该系统时的欢迎界面和是否选择进行文件导入,其余函数实现八大功能:输入功能、显示功能、查找功能、排序功能、插入功能、删除功能、保存功能、读取功能。各个函数的详细设计说明分别如下:
学生成绩管理系统核心算法流程图
开始
是否导入文件信息
N
Y
导入文件信息
主函数
退出系统
保存信息
查询信息
插入信息
打开文件
显示信息
修改信息
添加信息
删除信息
begin函数
简单的利用printf输出一个欢迎的界面,没有其他需要说明的地方。
yourchoice函数
N-S流程图:
输入choice的值,选择下一步的操作
choice=1 choice=2
执行load函数,进行文件信息导入
执行menu函数,跳转到菜单界面
换行
利用一个switch语句,给用户一个对文件进行操作的机会。
输入函数
算法:利用指针pp申请一个空间,用来创建链表,用pp->next=NULL初始化链表,如果链表为空,则将当前输入的结点作为首结点,即head=p1=pp,当链表不为空时,当前输入的即pp所指的结点放在p1所指的结点,并使pp指向刚才p1所指向的结点,当需要继续添加信息时,可以输入y,当接收字符y时,满足循环条件,继续一个循环输入,结束输入时,利用一个for循环把输入的信息顺便输出到屏幕上,便于检查和查看。
算法流程图:
开始
开始是开始
pp->next=NULL
getchar()='y'
N
Y
输入学生信息
原来链表为空
Y N
head=p1=pp
p1->next=pp
p1=pp
getchar()='y'
Y
N
显示输入的信息
结束
删除函数
算法:从p1指向的第一个结点开始,检查该结点中的学号number或者姓名name是否是输入的那个需要删除的结点对应的学号或姓名。如果相等就将该结点删除,如不相等,就将p1向后移动一个结点,如此进行下去,直到遇到表尾为止。
N-S流程图:
链表是一个空表
真假
输出
“空表”
p1=head
numberp1->number或namep1->name,并且p1
所指的结点不是表尾结点
P2=p1(p2后移一个位置)
P1=p1->next(p1后移一个位置)
P1是要删除的结点
是否
p1是所指是头结点
是否
输出“成绩表中午该学生信息!
”
Head=p1->next
(删除头结点)
P2->next=p1->next
(删除一个结点)
插入函数
算法:先将学生的成绩按平均分由高分到低分进行排序,再插入一个新生的结点,要求按平均分的高低顺序插入。先用指针变
C语言课程管理报告 来自淘豆网www.taodocs.com转载请标明出处.