资源描述
课程设计(论文)
题 目 名 称 成绩管理系统设计
课 程 名 称 数据构造课程设计
学 生 姓 名
学 号 11413040
系 、专 业 信息工程系、电子科学与技术
指 导 教 师 黄磊
邵阳学院课程设计(论文)任务书
年级专业
级电子科学技术
学生姓名
学 号
11413040
题目名称
学生成绩管理系统设计
设计时间
.12.9-12.23
课程名称
数据构造课程设计
课程编号
设计地点
新实验楼四楼机房
一、 课程设计(论文)目
学生在教师指引下运用所学课程知识来研究、解决某些具备一定综合性问题专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计初步能力,为毕业设计(论文)打基本。
二、 已知技术参数和条件
(1)使用软件(VC)
(2)运营环境(Windows XP)
(3)题目使用数据构造知识(例如数组、字符串、排序)
三、 任务和规定
一、任务:
以构造体数组和文献实现一种学生成绩管理系统,规定完毕如下操作:
1.定义一种构造体数组,存储n(n>=5)个学生学号、姓名、年龄、三门课成绩。
2.从键盘输入n个学生以上内容,存入文献,关闭文献。
3.打开文献,将数据读出,查看与否对的写入,关闭文献。
4.打开文献,读出数据,将n个学生按照平均分数从高到低进行排序,分别将成果输出到屏幕上和另一文献中。
二、规定:
1.运用数据构造和C语言知识实现程序设计;
2.运用数据构造知识进行有关信息解决;
3.系统各个功能模块规定用函数形式实现;
注:1.此表由指引教师填写,经系、教研室审批,指引教师、学生签字后生效;
2.此表1式3份,学生、指引教师、教研室各1份。
四、参照资料和既有基本条件(涉及实验室、重要仪器设备等)
安装有C++计算机
[1] 黄同成,黄俊民,董建寅.数据构造[M].北京:中华人民共和国电力出版社,
[2] 董建寅,黄俊民,黄同成.数据构造实验指引与题解[M].北京:中华人民共和国电力出版社,
[3] 严蔚敏,吴伟民. 数据构造(C语言版)[M]. 北京:清华大学出版社,
[4] 刘振鹏,张晓莉,郝杰.数据构造[M].北京:中华人民共和国铁道出版社,
五、进度安排
.12.9—.12.12:收集有关参照资料
.12.13—.12.19:编程
.12.20—.12.23:撰写课程设计报告
六、教研室审批意见
教研室主任(签字): 年 月 日
七|、主管教学主任意见
主管主任(签字): 年 月 日
八、备注
指引教师(签字): 学生(签字):
邵阳学院课程设计(论文)评阅表
学生姓名 学 号 11413040
系 信息工程系 专业班级 电子科学与技术
题目名称 学生成绩管理系统设计 课程名称 数据构造课程设计
一、学生自我总结
这次课程设计把此前C语言知识重新温习了下,把数据构造知识较好运用到实践中去,在整个过程中有编程辛苦,也有成功喜悦,除了自己努力查找资料和专心编程外,固然更离不开团队合伙力量,尚有教师和同窗们对我这次程序设计协助。
我不但培养了自己独自思考问题和解决问题能力,还懂得独立思考可提高积极动手操作能力,也真正体会到合伙重要性,真正尝试到苦滋味,有时候为了要尽早完毕这项任务竟忘掉了时间。但是,收获也是不容忽视,我不但对课本知识有了更加深刻理解,也在此基本上学到了不少东西
学生签名: 年 月 日
二、指引教师评估
评分项目
资料查阅
编写规范
基本技能
设计能力
科学素养
工作量
综合成绩
权 重
10
15
25
30
10
10
单项成绩
指引教师评语:
指引教师(签名): 年 月 日
注:1、本表是学生课程设计(论文)成绩评估根据,装订在设计阐明书(或论文)“任务书”页背面;
2、表中“评分项目”及“权重”依照各系考核细则和评分原则拟定。
目 录
1 前言 1
2 需求分析 1
2.1规定 1
2.2任务 1
2.3运营环境 1
2.4开发工具 1
3 概要设计与详细设计 1
3.1系统流程图 1
3.2查询函数流程图 2
4 编码与实现 2
4.1分析 2
4.2详细代码实现 3
4.3成果截图 3
5 课程设计总结 3
参照文献 3
致 谢 3
1 前言
定义一种由构造体数组,输入任意五个学生以上学号、姓名、年龄和三门功课成绩,并将这个数一文献形式在屏幕上显示,将其信息存入文本文献中;输入姓名查询该同窗信息,并显示在屏幕上;画出程序流程图;编写代码;程序分析与调试。
2需求分析
2.1规定
(1)用C语言实现程序设计;
(2)运用数组、文献解决;
(3)画出程序流程图;
(4)系统各个功能模块规定用函数形式实现;
(5)求解用递推和递归两种方式实现;
(6)界面和谐(良好人机互交),程序要有注释。
2.2任务
以构造体数组和文献实现一种学生成绩管理系统,规定完毕如下操作:
1.定义一种构造体数组,存储n(n>=5)个学生学号,姓名,三门课成绩;
2.从键盘输入n个学生以上内容,存入文献,关闭文献;
3.打开文献,将数据读出,查看与否对的写入,关闭文献;
4.打开文献文献,读出数据,将n个学生按照平均分数从高到低进行排序,分别将成果输出到屏幕上和另一文献中。
2.3运营环境
(1)WINDOWSXP系统
(2)C++6.0编译环境
2.4开发工具
C语言
3 概要设计与详细设计
3.1系统流程图
将学生信息存入中
查看信息与否对的输入
存储排序成果
开始
结束
定义构造体数组
如图3.1所示。
图 3.1
3.2查询函数流程图
如图3.2所示。
输入学生学号
学生信息
学 号
姓 名
三门课程成绩
输 出
图3.2
4 编码与实现
4.1分析
以构造体数组和文献实现一种简朴学生成绩管理系统,规定完毕如下操作:
1.定义一种构造体数组,存储n(n>=5)个学生学号、姓名、年龄、三门课成绩。
2.从键盘输入n个学生以上内容,存入文献,关闭文献。
3.打开文献,将数据读出,查看与否对的写入,关闭文献。
4.打开文献文献,读出数据,将n个学生按照平均分数从高到低进行排序,分别将成果输出到屏幕上和另一文献中。
4.2详细代码实现
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#define ERROR 0
#define OK 1
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
typedef struct Stu
{
char name[20];//姓名
char stuno[10];//学号
int age;//年龄
int score1;//数据构导致绩
int score2;//模仿电子成绩
int score3;//大学英语成绩
}ElemType;
typedef struct LIST
{ ElemType *elem;
int length;//顺序表长度
int listsize;//链表最大值
}List;
int init(List *L)//构造一种空线性表L
{ L->elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));
if(!L->elem)exit(OVERFLOW);
L->length=0;
L->listsize=LIST_INIT_SIZE;
return OK;
}
int ListLength(List *L)
{
return L->length;
}
int Insert_SqList(List *La,int i,ElemType x)
{
ElemType *p,*q,*newbase;
if(i<1||i>La->length+1)return ERROR;
if(La->length>=La->listsize)
{
newbase=(ElemType*)realloc(La->elem,(La->listsize+LISTINCREMENT)*sizeof(ElemType)); if(!newbase)exit(OVERFLOW);
La->elem=newbase;
La->listsize+=LISTINCREMENT; }
q=&(La->elem[i-1]);
for(p=&(La->elem[La->length-1]);p>=q;--p) *(p+1)=*p; *q=x; ++La->length; return OK;
}
void printList(List *L)
{ int i; for(i=0;i<L->length;i++)
{
printf("第%d个学生信息:\n",i+1); printf("%s,%s,%d,%d,%d,%d",L->elem[i].name,L->elem[i].stuno,L->elem[i].age,L->elem[i].score1,L->elem[i].score2,L->elem[i].score3); printf("\n");
}
}
int Delete_SqList(List *La,int i,ElemType *x)
{ ElemType *p,*q;
if(i<1||i>La->length)return ERROR;
p=&(La->elem[i-1]);
x=p;
q=La->elem+La->length-1;
for(++p;p<=q;++p) *(p-1)=*p; --La->length;
return OK;
}
void main()
{
int i,w,n;
int j=1;
List list;
ElemType stuck;
init(&list);
printf("请输入要建立学生信息长度:\n",n);
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入第%d个学生信息\n",i);
printf("输入第%d个学生姓名:\n",i);
scanf("%s",list.elem[i-1].name);
printf("请输入第%d个学生学号:\n",i);
scanf("%s",list.elem[i-1].stuno);
printf("请输入第%d个学生年龄:\n",i);
scanf("%d",&list.elem[i-1].age);
printf("请输入第%d个学生数据构导致绩:\n",i);
scanf("%d",&list.elem[i-1].score1);
printf("请输入第%d个学生模仿电子成绩:\n",i);
scanf("%d",&list.elem[i-1].score2);
printf("请输入第%d个学生大学英语成绩:\n",i);
scanf("%d",&list.elem[i-1].score3);
list.length++;
}printList(&list);
}
测试数据及成果如下:
图4.1
图4.2
图4.3
图4.4
图4.5
图4.6
图4.7
图4.8
图4.9
图4.10
图4.11
5 课程设计总结
我以为,在这学期实验中,不但培养了独立思考、动手操作能力,在各种其他能力上也均有了提高。更重要是,在实验课上,咱们学会了诸多学习办法。而这是日后最实用,真是受益匪浅。要面对社会挑战,只有不断学习、实践,再学习、再实践。这对于咱们将来也有很大协助。后来,不论有多苦,我想咱们都能变苦为乐,找寻有趣事情,发现其中贵重事情。就像中华人民共和国倡导艰难奋斗同样,咱们都可以在实验结束之后变更加成熟,会晤对需要面对事情。
回顾起此课程设计,至今我仍感触颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到诸多诸多东西,同步不但可以巩固了此前所学过知识,并且学到了诸多在课本上所没有学到过知识。实验过程中,也对团队精神进行了考察,让咱们合伙起来更加默契,在成功后一起体会喜悦心情。
参照文献
[1] 黄同成,黄俊民,董建寅.数据构造[M].北京:中华人民共和国电力出版社,
[2] 董建寅,黄俊民,黄同成.数据构造实验指引与题解[M].北京:中华人民共和国电力出版社,
[3] 严蔚敏,吴伟民. 数据构造(C语言版)[M]. 北京:清华大学出版社,
[4] 刘振鹏,张晓莉,郝杰.数据构造[M].北京:中华人民共和国铁道出版社,
致 谢
本次课题设计之因此可以成功,除了自己努力查找资料和专心编程外,固然更离不开团队合伙力量,尚有教师和同窗们对我这次程序设计协助。
我不但培养自己独自思考问题和解决问题能力,还懂得独立思考可提高积极动手操作能力,也真正体会到合伙重要性,真正尝试到苦滋味,有时候为了要尽早完毕这项任务竟忘掉了时间。但是,收获也是不容忽视,我不但对课本知识有了更加深刻理解,也在此基本上学到了不少东西。在此,我由衷感谢同窗和教师对我协助!!!我也会在后来实习和学习中更加努力和加油,但愿做得更好!!!
展开阅读全文