线性表---学生成绩管理--数据结构课程设计
2012-12-29 22:53
696 查看
数据结构课程设计
题目:线性表---学生成绩管理
一、课程设计内容
设计一个学生成绩管理程序(如上图所示),它具有下列功能:
1. 初始化功能;void Initial( List *lst )
2. 建表功能;void CreateList(
List *lst,int maxsize )
3. 学生成绩记录录入功能;BOOL Append
( List *lst , T x )
4. 学生成绩记录显示功能;void Show(List lst)
5. 学生成绩记录插入功能;BOOL Insert(
List *lst , int pos, T x )
6. 学生成绩记录删除功能;BOOL Remove(
List *lst, int pos, T *x)
7. 修改记录功能;BOOL Replace(
List *lst, int pos, T x)
8. 学生记录查找功能(按序号查找);void
Find(List *lst,int pos)
9. 学生记录查找功能(按值查找);void
Locate(List *lst,T x)
程序包括简单的错误检查功能。
二、课程设计要求
(一)要求完成如下数据测试,每个部分要求给出测试截屏
1. 学生成绩记录录入功能; [测试:录入成绩表中的第2条林悦和第4条张可可的记录]
2. 学生成绩记录显示功能; [测试:显示数据表中的全部记录]
3. 学生成绩记录插入功能; [测试:在第2条记录后面插入陈菁菁的记录,并显示]
4. 录入王小红的记录; [测试:录入后显示录入后状态]
5. 录入自己名字命名的记录;[测试:录入后显示录入后状态]
6. 显示已经录入的所有记录;
7. 学生成绩记录删除功能; [测试:删除张可可的记录并显示删除后状态]
8. 修改记录功能; [测试:将林悦的成绩改为92分,并显示修改之前和修改后的记录]
9. 学生记录查找功能(按序号查找);[测试:实现按序号查找的功能,输入3显示第一条记录]
10. 学生记录查找功能(按值查找); [测试:实现按性别查找的功能,输出所有女生的记录]
(二)将课程设计的全部代码存入电子实验报告单
三、测试数据举例:
《数据结构》课程设计
题目:线性表---学生成绩管理
学生姓名: 班级: 学号:
一、 课程设计代码
二、 课程设计测试截屏
1. 学生成绩记录录入功能; [测试:录入成绩表中的第2条林悦和第4条张可可的记录]
2. 学生成绩记录显示功能; [测试:显示数据表中的全部记录]
3. 学生成绩记录插入功能; [测试:在第2条记录后面插入陈菁菁的记录,并显示]
4. 录入王小红的记录; [测试:录入后显示录入后状态]
5. 录入自己名字命名的记录;[测试:录入后显示录入后状态]
6. 显示已经录入的所有记录;
7. 学生成绩记录删除功能; [测试:删除张可可的记录并显示删除后状态]
8. 修改记录功能; [测试:将林悦的成绩改为92分,并显示修改之前和修改后的记录]
9. 学生记录查找功能(按序号查找);[测试:实现按序号查找的功能,输入3显示第一条记录]
10. 学生记录查找功能(按值查找); [测试:实现按性别查找的功能,输出所有女生的记录]
题目:线性表---学生成绩管理
一、课程设计内容
设计一个学生成绩管理程序(如上图所示),它具有下列功能:
1. 初始化功能;void Initial( List *lst )
2. 建表功能;void CreateList(
List *lst,int maxsize )
3. 学生成绩记录录入功能;BOOL Append
( List *lst , T x )
4. 学生成绩记录显示功能;void Show(List lst)
5. 学生成绩记录插入功能;BOOL Insert(
List *lst , int pos, T x )
6. 学生成绩记录删除功能;BOOL Remove(
List *lst, int pos, T *x)
7. 修改记录功能;BOOL Replace(
List *lst, int pos, T x)
8. 学生记录查找功能(按序号查找);void
Find(List *lst,int pos)
9. 学生记录查找功能(按值查找);void
Locate(List *lst,T x)
程序包括简单的错误检查功能。
二、课程设计要求
(一)要求完成如下数据测试,每个部分要求给出测试截屏
1. 学生成绩记录录入功能; [测试:录入成绩表中的第2条林悦和第4条张可可的记录]
2. 学生成绩记录显示功能; [测试:显示数据表中的全部记录]
3. 学生成绩记录插入功能; [测试:在第2条记录后面插入陈菁菁的记录,并显示]
4. 录入王小红的记录; [测试:录入后显示录入后状态]
5. 录入自己名字命名的记录;[测试:录入后显示录入后状态]
6. 显示已经录入的所有记录;
7. 学生成绩记录删除功能; [测试:删除张可可的记录并显示删除后状态]
8. 修改记录功能; [测试:将林悦的成绩改为92分,并显示修改之前和修改后的记录]
9. 学生记录查找功能(按序号查找);[测试:实现按序号查找的功能,输入3显示第一条记录]
10. 学生记录查找功能(按值查找); [测试:实现按性别查找的功能,输出所有女生的记录]
(二)将课程设计的全部代码存入电子实验报告单
三、测试数据举例:
《数据结构》课程设计
题目:线性表---学生成绩管理
学生姓名: 班级: 学号:
一、 课程设计代码
#include <stdio.h> #include <stdlib.h> #define TRUE 1 #define FALSE 0 typedef int BOOL; typedef struct T{ char cNum[20]; char cName[20]; char cSex[3]; float fScore; }T; typedef struct List{ T *data; int length; int listsize; }List; void Initial( List *lst ); void CreateList( List *lst,int maxsize ); BOOL Append ( List *lst , T x ); void Show(List lst); BOOL Insert( List *lst , int pos, T x ); BOOL Remove( List *lst, int pos, T *x); BOOL Replace( List *lst, int pos, T x); void Find(List *lst,int pos); void Locate(List *lst,T x); int ShowMenu(); void InputT(T *ret); int main() { List lst; T tmp; int pos,select; char cAppend; Initial(&lst); do{ select=ShowMenu(); switch(select){ case 1: cAppend='y'; do{ if(cAppend=='y'){ InputT(&tmp); Append(&lst,tmp); } if(cAppend!='\n')printf("是否继续?(y/n)"); scanf("%c",&cAppend); }while(cAppend!='n'); break; case 2: Show(lst); break; case 3: printf("您要在哪个位置插入记录:");scanf("%d",&pos); InputT(&tmp); Insert(&lst,pos,tmp); break; case 4: printf("您要删除哪个记录:");scanf("%d",&pos); Remove(&lst,pos,&tmp); break; case 5: printf("您要修改哪个记录:");scanf("%d",&pos); InputT(&tmp); Replace(&lst,pos,tmp); break; case 6: printf("您要在查找哪个记录:");scanf("%d",&pos); Find(&lst,pos); break; case 7: printf("(输入“.”/-1表示不确定)"); InputT(&tmp); Locate(&lst,tmp); break; } }while(select!=0); return 0; } int ShowMenu(){ int ret=0; do{ printf("请输入功能代码:\n"); printf("1-追加 2-显示 3-插入 4-删除 5-修改 6-查找(按序号) 7-查找(按值) 0-退出\n"); scanf("%d",&ret); }while( ret<0 && ret>7 ); return ret; } void InputT(T *ret){ printf("请输入学生信息:\n"); printf("学号:"); scanf("%s",ret->cNum); printf("姓名:"); scanf("%s",ret->cName); printf("性别:"); scanf("%s",ret->cSex); printf("分数:"); scanf("%f",&ret->fScore); printf("输入完成\n"); } void Initial( List *lst ){ CreateList(lst,100); } void CreateList( List *lst,int maxsize ){ lst->data=(T*)malloc(maxsize * sizeof(T)); if(lst->data==NULL){ printf("申请内存空间失败\n"); system("pause"); exit(0); } lst->length=0; lst->listsize=maxsize; return; } BOOL Append ( List *lst , T x ){ if(lst->length==lst->listsize){ printf("达到链表最大值\n"); system("pause"); exit(0); return FALSE; } lst->data[lst->length]=x; (lst->length)++; return TRUE; } void Show(List lst){ int i; printf("显示信息:\n"); for(i=0;i<lst.length;i++){ printf("_________________________________________________________\n"); printf("%-14s%-10s%-5s%-10f\n",lst.data[i].cNum,lst.data[i].cName,lst.data[i].cSex,lst.data[i].fScore); } printf("\n"); return; } BOOL Insert( List *lst , int pos, T x ){ int i; if(lst->length==lst->listsize){ printf("达到链表最大值\n"); system("pause"); exit(0); return FALSE; } if(pos<0||pos>lst->length){ printf("位置输入错误\n"); return FALSE; } for(i=lst->length-1;i>=pos;i--){ lst->data[i+1]=lst->data[i]; } lst->data[pos]=x; (lst->length)++; return TRUE; } BOOL Remove( List *lst, int pos, T *x){ int i; *x=lst->data[pos]; if(pos<0||pos>=lst->length){ printf("位置输入错误\n"); return FALSE; } for(i=pos+1;i<lst->length;i++){ lst->data[i-1]=lst->data[i]; } (lst->length)--; return TRUE; } BOOL Replace( List *lst, int pos, T x){ if(pos<0||pos>=lst->length){ printf("位置输入错误\n"); return FALSE; } lst->data[pos]=x; return TRUE; } void Find(List *lst,int pos){ if(pos<0||pos>=lst->length){ printf("位置输入错误\n"); } printf("查询结果:\n"); printf("_________________________________________________________\n"); printf("%-14s%-10s%-5s%-10f\n",lst->data[pos].cNum,lst->data[pos].cName,lst->data[pos].cSex,lst->data[pos].fScore); return; } void Locate(List *lst,T x){ int i; printf("查询结果:\n"); for(i=0;i<lst->length;i++){ if( (x.cNum[0] !='.' && strcmp(lst->data[i].cNum , x.cNum )==0 ) ||(x.cName[0]!='.' && strcmp(lst->data[i].cName , x.cName )==0 ) ||(x.cSex[0] !='.' && strcmp(lst->data[i].cSex , x.cSex )==0 ) ||(x.fScore>=0 && lst->data[i].fScore == x.fScore ) ){ printf("_________________________________________________________\n"); printf("%-14s%-10s%-5s%-10f\n",lst->data[i].cNum,lst->data[i].cName,lst->data[i].cSex,lst->data[i].fScore); } } return; }
二、 课程设计测试截屏
1. 学生成绩记录录入功能; [测试:录入成绩表中的第2条林悦和第4条张可可的记录]
2. 学生成绩记录显示功能; [测试:显示数据表中的全部记录]
3. 学生成绩记录插入功能; [测试:在第2条记录后面插入陈菁菁的记录,并显示]
4. 录入王小红的记录; [测试:录入后显示录入后状态]
5. 录入自己名字命名的记录;[测试:录入后显示录入后状态]
6. 显示已经录入的所有记录;
7. 学生成绩记录删除功能; [测试:删除张可可的记录并显示删除后状态]
8. 修改记录功能; [测试:将林悦的成绩改为92分,并显示修改之前和修改后的记录]
9. 学生记录查找功能(按序号查找);[测试:实现按序号查找的功能,输入3显示第一条记录]
10. 学生记录查找功能(按值查找); [测试:实现按性别查找的功能,输出所有女生的记录]
相关文章推荐
- 数据结构课程设计学生成绩管理系统源代码
- 数据结构课程设计——学生成绩管理系统
- 数据结构课程设计--学生成绩管理系统
- 数据结构课程设计 学生成绩管理
- 数据结构课程设计--学生成绩管理
- <数据结构课程设计> 学生成绩管理系统开发
- 数据结构课程设计——学生成绩管理系统
- 数据结构课程设计——学生成绩管理
- 数据结构课程设计之学生成绩管理
- 数据结构课程设计---学生成绩管理系统
- 数据结构课程设计——学生成绩管理系统
- 数据结构课程设计——学生信息管理系统
- 数据结构课程设计-学生信息管理
- 数据结构课程设计论文--学生信息管理系统
- 数据结构课程设计—学生信息管理系统
- 问题:设计一个大学教师和学生管理程序, 教师包括 编号、姓名、职称和教研室 数据的输入输出; 大学生包括编号、姓名、性别、班号、英语、高等数学和数据结构三门课程成绩的输入输出和计算平均分; 研究生包
- 数据结构课程设计—学生系统管理
- 学生成绩管理系统(数据结构之线性表实现)
- 数据结构课程设计-------学生信息管理系统
- 数据结构课程设计——学生信息管理系统