学生成绩管理系统课程设计报告.doc
文本预览下载声明
学生成绩管理系统课程设计
专业:通信工程
学生成绩管理系统
一·系统功能模块结构图
二·数据结构设计及用法说明
程序中使用到了链表的数据结构,其中包括单链表的初始化,建立,插入,查找,删除。各部分使用结构设计及用法说明如下:
#i nclude stdio.h
#i nclude stdlib.h
typedef int student
定义结点类型:
typedef struct Node
{ ElemType data
struct Node *next
}Node,*LinkedLis
单链表的初始化:
{Node *L;
L = (Node *)malloc(sizeof(Node));??
if(L == NULL)
?printf(申请内存空间失败\n);
L-next = NULL;
单链表的建立:
LinkedList LinkedListCreatT()
{Node *L;
L = (Node *)malloc(sizeof(Node));??
L-next = NULL
?Node *r
?r = L;
ElemType x;
while(scanf(%d,x) != EOF)
{Node *p
?p = (Node *)malloc(sizeof(Node));??
?p-data = x
?r-next = p
??r = p;}
r-next = NULL
return L;
单链表的插入,在链表的第i个位置插入x的元素:
LinkedListInsert()
?{
Node *pre;
pre = L;
?int tempi = 0
for (tempi = 1; tempi i; tempi++)
??pre = pre-next;???
Node *p
p = (Node *)malloc(sizeof(Node));
p-data = x;?
?p-next = pre-next
?pre-next = p;
return L;
}
单链表的删除,在链表中删除值为x的元素:
LinkedListDelete()
{
?Node *p,*pre;
?p = L-next;
while(p-data != x)
{
?pre = p
?p = p-next
}
pre-next = p-next
?free(p);
return L;
}
三.程序结构(画流程图)
各函数声明:菜单选择;创建学生数据(学生学号,姓名,年龄,性别,各科成绩,总分,平均分,按平均分的排名);打印学生数据;插入学生数据;删除学生数据;查找学生数据;存盘;从文件中读取学生数据;计算学生数据。
主函数:通过switch()函数调用以上各建立的函数进行菜单选择的各种操作。
流程图如下:
四·各模块的功能
1.Enter list 输入记录 2.Delete a record from list 从表中删除记录 3. print list 显示链表中所有记录 4. Search record on name 按照姓名查找记录 5. Save the file 将链表中记录保存到文件 6. Load the file 从文件中读入记录 7. compute the score 计算所有学生的总分和均分 8. insert record to list 插入记录到表中 9. Quit 退出
五·实验结果(包括输入数据和输出结果)
执行程序,显示如下:
输入2,回车。
输入5,回车,再输入2,回车。
六.心得体会:
通过持续一周的C语言课程设计实验,我深刻体会到了编程过程所需要的对知识掌握的熟练性,对工作态度的认真,严谨性是多么的重要,由于我们大二上学期学习C语言时有一些知识没有学,比如链表和文件,所以我们在这次实验时必须抓紧时间将这些知识补充,同时以前学过的知识也有所遗忘,必须查缺补漏。在编程的过程
显示全部