收藏 分销(赏)

学生成绩管理系统数据结构程序设计实验报告2.doc

上传人:精*** 文档编号:2553280 上传时间:2024-05-31 格式:DOC 页数:14 大小:126.04KB
下载 相关 举报
学生成绩管理系统数据结构程序设计实验报告2.doc_第1页
第1页 / 共14页
学生成绩管理系统数据结构程序设计实验报告2.doc_第2页
第2页 / 共14页
学生成绩管理系统数据结构程序设计实验报告2.doc_第3页
第3页 / 共14页
学生成绩管理系统数据结构程序设计实验报告2.doc_第4页
第4页 / 共14页
学生成绩管理系统数据结构程序设计实验报告2.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、学生成绩管理系统数据结构程序设计实验报告2 作者: 日期:14 个人收集整理 勿做商业用途实 验 报 告课程名称 数据结构综合设计实验 实验项目 学生成绩管理系统 系 别_ _计算机学院 _ _专 业_ 网络工程 _班级/学号_网工1202/2012011411_学生姓名 _王宇涵_实验日期 _2014年6月6日 成 绩 _ 指导教师 黄改娟 田英爱 数据结构综合实验设计-学生成绩管理系统1. 需求分析系统主要管理学生信息及成绩信息排序等事项。根据需要可以查询学生的信息。主要功能包括如下。(1) 使用中文菜单,界面升级和用户输入要人性化.(2) 将学生信息保存到文本文档中,具体对学生信息进行插

2、入删除查询操作时,将保存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后在对该数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文本文档中。(3) 具有数据输入功能,输入的数据能最终保存在文件中。(4) 具有数据删除功能,能最终从文件中删除。(5) 排序功能,根据自己设计的数据结构,升级排序算法。(6) 具有多种查询及输出功能。(7) 其他功能。(8) 学生信息的修改。2. 设计方案总体功能结构 输入学生成绩 输出学生成绩 查询学生成绩 插入学生成绩 按总分排名主界面 删除学生信息 退出系统3函数Struct Student/结构体Int term;/学期I

3、nt num;/学号Char name12;姓名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 stdio。hinclude std

4、lib。hinclude malloc。hdefine MAXLEN 100#define Null 0/*/int count = 0;/*/typedef struct node int num; / 学号 char nameMAXLEN; / 姓名 /*/char sex2; /性别/char sex;/*/float sum; /总分float ave; /平均分int computer; /计算机成绩int english; /英语成绩int math; /数学成绩int chinese; /语文分数struct node next; / 指针域list;/*/void input(

5、list head) /输入函数/*/list *p,*r;int i,n; / n 为学生人数 /p=(list *)malloc(sizeof(list));pnext=Null;/r=head; printf(请输入学生人数。n”); scanf(”d”,&n);for(i=1;ichinese); printf(请输入英语成绩:n”); scanf(%d,&p-english); printf(请输入数学成绩:n); scanf(”d”,&p-math); printf(请输入计算机成绩:n); scanf(d”,&p-computer); (psum)=(p-chinese)+(p-

6、computer)+(pmath)+(p-english);(p-ave)=(psum)/4;p-next=Null; rnext=p; r=r-next;/*/count +;/*/ void output(list h) /输出函数 /*/if (h = NULL)printf(”记录为空!”);/*/list p; printf(”学号t姓名t性别t语文成绩t数学成绩t英语成绩t计算机成绩t平均分t总成绩tn”); p=hnext; while (p!=NULL) printf(”dntststdtdtdtdt5。1ft%5。1fn,pnum,p-name,p-sex,pchinese,

7、pmath,p-english,p-computer,p-ave,p-sum);p=p-next;void sortsum(list head) /总成绩排序/ struct node temp;/ const int n=20;/ int i,j,k;/ printf(”按照总成绩排序:t);/ for(i=0;in;i+)/ / k=i;/ for(j=i+1;jn;j+)/ if(listj.sumlistk.sum)/ k=j;/ temp=listk;listk=listi;listi=temp;/ output(p);/ int i=count, j, k;printf(按照总成绩

8、排序:n”);if (count=0 | count=1)return;list *p, temp;while(i 0)p=head;for(j=0; ji1; j+)if(pnext-sum p-nextnextsum) temp = p-next ;p-next = p-next-next;temp-next = pnextnext;pnextnext = temp;p = pnext; i-; /*/void sortnum(list *head)int i=count, j, k;printf(”按照学号排序:n);if (count=0 | count=1)return;list p

9、, temp;while(i 0)p=head;for(j=0; jnum pnext-nextnum) temp = pnext ;p-next = pnextnext;temp-next = pnextnext;pnext-next = temp;p = pnext; i-; /*/*int sortnum(node list) /学号排序struct node temp;const int n=20;int i,j,k;printf(按照总成绩排序:t”);for(i=0;in;i+)k=i;for(j=i+1;jn;j+)if(listj.numlistk。num)k=j;temp=l

10、istk;listk=listi;listi=temp;return 0;/void find (list h) /查找函数 int k; / 要找的学生学号 list p; p=h-next; printf(”请输入要查找的学生学号:n); scanf(d”,&k); while (p pnum!=k) p=pnext; if(p) printf(学号t姓名t性别t语文成绩t数学成绩t英语成绩t计算机成绩t平均成绩t总成绩n); printf(%dt%ststdtdt%dtd%5。1ft%5。1fn,pnum,pname,p-sex,p-chinese,p-math,p-english,p-

11、computer,p-ave,psum); else printf(”目标没找到n”);list *del (list h) /删除函数 int k; / 要删除的学生学号 list *p,q; q=h; p=hnext; printf(”请输入待删除的学生学号:n”); scanf(”d,&k); while (p & p-num!=k) q=p; p=p-next; if(p) q-next=p-next; free(p); count -; else printf(没有此学生的记录,无法删除!n”); return (h);list *insert(list *h) /插入函数 list

12、 p,q,r,*head; head=h; r=h; p=h-next; / 下面构造一个学生的信息 q=(list )malloc(sizeof(list); printf(请输入待插入学生的学号:n”); scanf(d”,q-num); printf(请输入待插入学生性别:n); scanf(”%s,qsex);printf(”请输入待插入学生的姓名:n”); scanf(%s,qname); printf(”请输入待插入的语文成绩:n); scanf(”%d,&q-chinese); printf(”请输入待插入的英语成绩:n”); scanf(d,&qenglish); printf

13、(请输入待插入的数学成绩:n”); scanf(”d”,&qmath); printf(请输入待插入的计算机成绩:n); scanf(%d”,qcomputer); (qsum)=(qchinese)+(q-computer)+(q-math)+(q-english);(q-ave)=(qsum)/4;q-next=Null; / 找到链表的结尾结点 count ;while(p!=Null) r=p; p=pnext; / 将新结点插入表尾rnext=q; r=rnext; return (head);void main() /主函数 list *p; /*/p=(list )malloc(

14、sizeof(list);pnext=Null;/*/int k; / 控制循环的标志 while (1) printf( -n”); printf(” 学生成绩管理系统 |n); printf(” -n”); printf( 1. 登记成绩 n”); printf(” | 2. 查询成绩 n”); printf( | 3。 插入成绩 |n”); printf( 4。 删除成绩 |n”); printf(” 5. 按学号排序 |n);printf( 6。 按总成绩排序 n”);printf(” | 7。 输出所有学生成绩 |n); printf( | 8. 退出系统 n); printf( -

15、n); printf(”请输入你的选择n”); scanf(%d,k); switch(k) case 1:/ p=input();/*/input(p);/*/break; case 2:find(p);break; case 3:p=insert(p);break; case 4:p=del(p);break; case 5:sortnum(p);output(p);break; case 6:sortsum(p); output(p);break; case 7:output(p);break; case 8:exit(0); default:printf(”选择错误,重新开始n”);

16、5实验总结 由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找.在用的时候难免出现这样那样的错误。如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱.解决的这个问题的办法是调整。一个系统的菜单和提示信息非常重要.如果没有这些用户根本不知道怎么用你设计的这个系统.在设计的调试过程中也无法顺利的完成调试工作.有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。回顾起此次课程设计,我感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了

17、理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,提高自己的实际动手能力和独立思考的能力.在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体通过这次课程设计之后,一定把以前所学过的知识熟悉了,本次课程设计结束了,我们通过这次实践学到了许多知识。学到了设计一个简单的系统。要注意哪些方面。也使我们知道自己哪些方面做得还不够。这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废.但我们总结出了一点点的经验如下:本文为互联网收集,请勿用作商业用途本文为互联网收集,请勿用作商业用途1、要对系统的功能和要求做出详细的分析,并合理分解任务。2、把分解出来的子任务,做给一个相对独立的模块。3、在设计一个模块之前,要简单构想一下总界面的显视情况。4、针对构想出来的界面进行程序的编写。

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服