1、数据结构成绩管理系统 成绩:三峡大学*数据结构课程设计报告书学号: 姓名: 信息管理与信息系统教研室课程设计报告目录1. 任务书 (?)2. 课题说明与分析(?)3 程序流程图 (?)4 数据结构与程序模块说明 (?)结束语(?)致谢 (?)参考文献 (?)数据结构课程设计:成绩管理系统学生姓名:*指导老师:*三峡大学* 三 峡 大 学 课程设计任务书2009学年 秋季学期课题名称成绩管理系统指导教师XX学生姓名*性别*专业*学号*课题概述:任何一个学校或者公司都离不开一个高效的管理系统。对于学校而言,学生的成绩管理系统是最经常使用的一个系统,因而,开发一个高效,方便的成绩管理系统是我们要研究
2、的课题。设计要求:1、 进行认真、系统的信息采编,取得系统设计与开发的相关资料。2、 要求开发的同一个课题最多不超过20人。3、 制作过程中要求设计成果不得抄袭他人。 4、 设计报告书要求详细具体,并按照要求的格式打印。5、 将设计成果中主要页面拷贝到报告书中,报告书中最后应该附程序清单。6、 设计工具语言可以选择C、C+。7、 问题描述:假设斯瑞公司对学员的成绩进行管理,有关的数据存储在srkcj.dat文件中。数据结构如下:字段名类型长度描述xingming字符型10姓名chengji整型成绩用C语言完成如下功能:输入学生的姓名和成绩,保存到srkcj.dat文件中,然后按要求显示出来。主
3、界面:学员成绩管理:(请选择数字)1、 重新输入2、 增加输入3、 按姓名顺序查询4、 按成绩顺序查询5、 退出请输入:主要参考资料:1、信息系统分析与设计 清华大学出版社。2、数据结构清华大学出版社 严蔚敏等编著。3、C程序设计 清华大学出版社。4、C+程序设计 清华大学出版社。5、VB程序设计 清华大学出版社。设计成果要求:1、课程设计报告书。2、设计开发的程序清单或者软件。进度计划安排起 止 日 期要 求 完 成 的 内 容18周星期一选定开发对象,收集资料。18周星期二整理资料,并进行系统的分析与研究。18周星期三系统初步设计,并将设计流程整理存档。18周星期四编写程序、调试、运行。设
4、计成果初步形成。18周星期五修改设计成果、修改源程序。编写设计报告书并上交。审核(教研室主任)课题说明与分析课题概述:任何一个学校或者公司都离不开一个高效的管理系统。对于学校而言,学生的成绩管理系统是最经常使用的一个系统,因而,开发一个高效,方便的成绩管理系统是我们要研究的课题。问题描述:假设斯瑞公司对学员的成绩进行管理,有关的数据存储在srkcj.dat文件中。数据结构如下:字段名类型长度描述xingming字符型10姓名chengji整型成绩用C语言完成如下功能:输入学生的姓名和成绩,保存到srkcj.dat文件中,然后按要求显示出来。主界面:学员成绩管理:(请选择数字)6、 重新输入7、
5、 增加输入8、 按姓名顺序查询9、 按成绩顺序查询10、 退出请输入:程序流程图数据结构与程序模块说明#include stdio.h#include string.h#define MAXSIZE 100#define INCREAMENT 10typedef struct char xingming10; /* 姓名 */ int chengji; /* 成绩 */Node;typedef structNode *elem;int last;int size;xueyuan; /*采用线性表存储结构*/void initlist_xueyuan( xueyuan *XY) /* 构造线性表
6、 */XY-elem=(Node *) malloc (MAXSIZE * sizeof(Node);if (!XY-elem) printf(initlist failed);XY-last=0;XY-size=MAXSIZE;void listinsert_xueyuan( xueyuan *XY , char *xm , int cj ) /*向线性表中插入元素*/Node *newbase;if(XY-last=XY-size)newbase=(Node *) realloc (XY-elem , (MAXSIZE+INCREAMENT) * sizeof(Node);if (!new
7、base) printf(realloc failed) ;XY-elem=newbase;XY-size+=INCREAMENT;strcpy(XY-elemXY-last.xingming,xm); /*字符数组赋值*/XY-elemXY-last.chengji=cj;XY-last+;void main_screen() /*主界面*/printf(student achievement management:(please chose the number)n 1.re-inputn 2.input newn 3.select by name ordern 4.select by a
8、chievement ordern 5.backnnplease input:);void save(xueyuan *XY) /*将输入的数据保存到文件*/FILE *fp;if (fp=fopen(E:srkcj.dat,r+)=NULL) /*fopen(文件名 , r+),读写,打开且该文件已经存在*/printf(cannot open filen);return;if (fwrite(XY-elem ,sizeof(Node) , 1 , fp) !=1) /*/printf(file write errorn);fclose(fp);void re_input(xueyuan *
9、XY) /*重新输入*/void add_input(); /*函数声明*/FILE *fp;char *xm;int cj;char a;if(fp=fopen(E:srkcj.dat , w)=NULL) /*fopen(文件名 , w),只写,若原文件不存在则新建并打开,若原文件存在则删除原文件再新建并打开*/printf(cannot open filen);return;printf(name: achievement:n);scanf(%s %d,xm,&cj);listinsert_xueyuan( XY , xm , cj );save(XY);printf(continue
10、input ? y/nn);a=getch();if(a=y) add_input(XY);else if(a=n) printf(nnn);main_screen();else printf(ERRORn);void add_input(xueyuan *XY) /*增加输入*/FILE *fp;char *xm;int cj;char a;if(fp=fopen(E:srkcj.dat , a)=NULL) /*fopen(文件名 , a),追加,该文件必须已存在,打开文件并向文件尾添加数据*/printf(cannot open filen);return;printf(name: ac
11、hievement:n);scanf(%s %d,xm,&cj);listinsert_xueyuan( XY , xm , cj );save(XY);printf(continue input ? y/nn);a=getch();if(a=y) add_input(XY);else if(a=n) printf(nnn);main_screen();else printf(ERRORn);void select_by_name_order(xueyuan *XY) /* 按姓名顺序查询,即按输入的实际存储顺序依次打印在屏幕上 */FILE *fp;int i;printf (name ac
12、hievementn);if(fp=fopen(E:srkcj.dat , r)=NULL) /*fopen(文件名 , r),只读,该文件必须已存在才能打开*/printf(cannot open filen);return;for(i=0 ; ilast ; i+)printf(%s %dn , XY-elemi.xingming , XY-elemi.chengji);fclose(fp);void select_by_achievement_order(xueyuan *XY) /*按成绩顺序查询,即先按成绩顺序排序再依次打印在屏幕上*/FILE *fp;int i,j,k;char
13、*b;Node *a;printf (name achievementn);if(fp=fopen(E:srkcj.dat , r)=NULL)printf(cannot open filen);return;for(i=0 ; ilast ; i+ )ai.chengji=XY-elemi.chengji;strcpy(ai.xingming,XY-elemi.xingming); /*按成绩查询时不应该改变数据在文件中的存放位置,否则按姓名查询无效,故把文件中的数据赋给结构体数组a再对a进行操作*/for(i=0 ; ilast ; i+)for(j=i ; jlast ; j+)if(a
14、i.chengji=aj.chengji)k=aj.chengji;aj.chengji=ai.chengji;ai.chengji=k;strcpy(*b,aj.xingming);strcpy(aj.xingming,ai.xingming);strcpy(ai.xingming,*b);for(i=0 ; ilast ; i+)printf(%s %dn,ai.xingming,ai.chengji);fclose(fp);void main() /*主函数*/int N;xueyuan *XY;main_screen();scanf(%d,&N);while(N!=NULL)if(N=
15、1) re_input(XY);else if(N=2) add_input(XY);else if(N=3) select_by_name_order(XY);printf(nnn);else if(N=4) select_by_achievement_order(XY);printf(nnn);else if(N=5) exit(0);else printf(ERROR);scanf(%d,&N);getch();结束语通过这次数据结构 课程设计,我锻炼了动手能力,能把学到的知识加以运用,而不是仅仅像考试那样纸上谈兵,收获很大。同时也认识到自己所学的知识还很少,今后更应该好好学习。致谢:感谢xx老师在课程设计期间对我的指导和帮助,也感谢同学对我的帮助。参考文献1书籍严蔚敏 吴伟明 编著,数据结构C语言版,北京清华大学学研大厦,清华大学出版社,1997年4月。2书籍唐浩强 著,C程序设计第三版,北京清华大学学研大厦,清华大学出版社,2008年7月,p330。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1