数据结构课程设计
题目名称: 学生成绩管理系统
计算机科学与技术学院
数据结构综合实验设计———————学生成绩管理系统
1.需求分析
系统主要管理学生信息及成绩信息排序等事项。根据需要可以查询学生的信息。主要功能包括如下。
(1)使用中文菜单,界面升级和用户输入要人性化。
(2)将学生信息保存到文本文档中,具体对学生信息进行插入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后在对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。
(3)具有数据输入功能,输入的数据能最终保存在文件中。 (4)具有数据删除功能,能最终从文件中删除。
(5)排序功能,根据自己设计的数据结构,升级排序算法。 (6)具有多种查询及输出功能。 (7)其他功能。
(8)学生信息的修改。
本程序要求设计一个学生信息管理程序,即用计算机来管理一个学校的各个班级成员的各种信息,实现学生信息管理。
(9)数据的输入形式和输入值得范围:首先输入的是菜单的序号,选择你想要进行 的操作,其次根据提示输入相关的班级或学生信息。 (10) 结果的输出形式:输出的是班级信息或学生信息。
2.设计概要
输入学生成绩
输出学生成绩 查询学生成绩 插入学生成绩 按总分排名 删除学生信息 退出系统 3函数
Struct Student//结构体 {
Int term;//学期
Int num;//学号
Char name[12];姓名 Float mrak1;成绩 Float mark2; Float mark3; Float sum;//总分
Float average;//平均分 };
void input(list *head) 输入函数 void output(list *h) 输出函数
void sortsum(list *head) 总成绩排名 void sortnum(list *head)按学号排名 void find (list *h)查找主函数 list *del (list *h)删除函数
list *insert(list *h)插入函数
全部的功能函数 可以实现所有的功能 4详细设计:
程序代码:
#include
#define MAXLEN 100 #define Null 0
/**************************/ int count = 0;
/**************************/
typedef struct node {
int num; // 学号
char name[MAXLEN]; // 姓名 /******************************/ char sex[2]; ///性别
//char sex;
/****************************/ float sum; //总分 float ave; ///平均分
int computer; ///计算机成绩 int english; ///英语成绩 int math; ///数学成绩 int chinese; //语文分数
struct node *next; // 指针域 }list;
/*************************/ void input(list *head) ///输入函数 /*************************/ {
list *p,*r;
int i,n; // n 为学生人数 /*
p=(list *)malloc(sizeof(list)); p->next=Null; */
r=head;
printf(\请输入学生人数.\\n\ scanf(\
for(i=1;i<=n;i++) { p=(list *)malloc(sizeof(list)); printf(\请输入学生学号:\\n\ scanf(\
printf(\请输入学生性别:\\n\ scanf(\
printf(\请输入学生姓名:\\n\ scanf(\ printf(\请输入语文成绩:\\n\ scanf(\ printf(\请输入英语成绩:\\n\ scanf(\
}
printf(\请输入数学成绩:\\n\
scanf(\
printf(\请输入计算机成绩:\\n\ scanf(\
(p->sum)=(p->chinese)+(p->computer)+(p->math)+(p->english); (p->ave)=(p->sum)/4; p->next=Null; r->next=p; r=r->next;
/********************/ count ++;
/********************/ }
void output(list *h) //输出函数 {
/************************/
if (h == NULL) printf(\记录为空!\ /*************************/ list *p;
printf(\学号\\t姓名\\t性别\\t语文成绩\\t数学成绩\\t英语成绩\\t计算机成绩\\t平均分\\t总成绩\\t\\n\ p=h->next;
while (p!=NULL) { printf(\ p->num,p->name,p->sex,p->chinese,p->math,p->english,p->computer,p->ave,p->sum); p=p->next; } }