收藏 分销(赏)

C语言专业课程设计学生成绩标准管理系统程序设计.doc

上传人:天**** 文档编号:2864527 上传时间:2024-06-07 格式:DOC 页数:51 大小:580.04KB
下载 相关 举报
C语言专业课程设计学生成绩标准管理系统程序设计.doc_第1页
第1页 / 共51页
C语言专业课程设计学生成绩标准管理系统程序设计.doc_第2页
第2页 / 共51页
C语言专业课程设计学生成绩标准管理系统程序设计.doc_第3页
第3页 / 共51页
C语言专业课程设计学生成绩标准管理系统程序设计.doc_第4页
第4页 / 共51页
C语言专业课程设计学生成绩标准管理系统程序设计.doc_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、C语言课程设计论文 题 目: 学生成绩管理系统程序设计 学 院: 地球物理和空间信息学院 专 业: 级地球物理专业061103班 姓 名: 宁章桂 指导老师: 曹雪莲 6月7日目录第一章 绪论1 1.1 课题背景和意义1 1.2 项目开发目标1 1.3 开发工具1第二章 设计任务分析2 2.1 题目2 2.2 目标2 2.3 要求2 2.4 学生成绩管理系统功效2第三章 算法和步骤图3第四章 运行结果截屏分析4 4.1 主菜单4 4.2 输入学生信息4 4.3 显示目前全部学生信息5 4.4 按多种排序显示全部学生信息6 4.5 查询学生信息10 4.6 修改学生信息10 4.7 添加学生信息

2、12 4.8 删除学生信息13 4.9 从文件读入学生信息14 4.10 删除文件中学生信息16 4.11 保留学生信息到文件17第五章 实习感想19附录一 关键参考文件20附录二 源程序代码21第一章 绪论1.1课题背景和意义该项目开发软件为学校学生信息管理系统软件,是鉴于现在学校学生人数剧增,学生信息呈爆炸性增加前提下,学校对学生信息管理自动化和正确化要求日益强烈背景下构思出来,该软件设计完成后可用于学校,学院等教育单位学生信息管理. 现在社会上信息管理系统发展飞快,各个企机关全部引入了信息管理软件来管理自己日益增加多种信息,学生管理系统也是有了很大发展,商业化学生信息管理软件也不少.但本

3、系统完全独立开发,努力争取使系统功效简练明了,功效齐全且易于操作。 学生信息管理系统是一个教育单位不可缺乏部分。一个功效齐全、简单易用信息管理系统不仅能有效地减轻学校相关工作人员工作负担,它内容对于学校决议者和管理者来说全部至关关键。所以学生信息管理系统应该能够为用户提供充足信息和快捷查询手段。但一直以来大家使用传统人工方法管理文件档案、统计和查询数据,这种管理方法存在着很多缺点,如:效率低、保密性差,人工大量浪费;另外时间一长,将产生大量文件和数据,这对于查找、更新和维护全部带来了不少困难。伴随科学技术不停提升,计算机科学日渐成熟,其强大功效已为大家深刻认识,它已进入人类社会各个领域并发挥着

4、来越关键作用。作为计算机应用一部分,使用计算机对学校各类信息进行管理,含有手工管理所无法比拟优点.比如:检索快速、查询方便、效率高、可靠性好、存放量大、保密性好、寿命长、成本低等。这些优点能够极大地提升学校信息管理效率,也是一个单位科学化、正规化管理,和世界接轨关键条件。1.2项目开发目标 建立学生信息管理系统,采取计算机对学生信息进行管理,深入提升办学效益和现代化水平。帮助广大老师提升工作效率,实现学生信息管理工作步骤系统化、规范化和自动化。1.3开发工具 本系统在Microsoft Visual C+6.0下开发。第二章、设计任务分析2.1题目 设计一个学生成绩管理系统,要求: 1、有简单

5、操作界面,用户可经过数字选择功效; 2、录入成绩(链表建立,每个结点包含:学号、 姓名、数学、物理、英语、计算机、总分); 3、输出成绩(链表输出,按学号排序、按总分排序); 4、查找成绩(按学号或姓名查找结点, 按学号次序插入结点,按学号或姓名删除结点); 5、保留到文件, 和从文件中读出。2.2目标 (1)掌握和利用C语言进行程序设计能力; (2)了解和利用结构化程序设计思想和方法; (3)掌握开发一个小型实用系统基础方法; (4)学会调试一个较长程序基础方法; (5)掌握书写课程设计汇报能力。2.3要求 (1)用C语言实现系统; (2)利用结构体数组实现学生成绩数据结构设计; (3)系统

6、含有录入、修改、查询、插入、排序信息和将信息保留到文件、从文件中读出信息等基础 功效; (4)系统各个功效模块要求用函数形式实现; (5)完成设计任务并书写课程设计汇报;2.4学生成绩管理系统功效 1-输入学生信息 2-显示目前全部学生信息 3-按多种排序显示全部学生信息 4-查询学生信息 5-修改学生信息 6-添加学生信息 7-删除学生信息 8-从文件读入学生信息 9-删除文件中学生信息 10-保留学生信息到文件 11-退出第三章、算法和步骤图按英语由高到低排列按数学由高到低排列按学号由低到高排列按总分由高到低排列按物理由高到低排列按计算机由高到低排列按多种排序显示全部学生信息删除学生信息输

7、入学生信息显示目前学生信息查询学生信息添加学生信息修改学生信息退出保留信息到文件删除文件信息从文件读入信息开始 主菜单选择1选择2选择3选择7选择10选择9选择8选择6选择4选择5选择11选择1选择2选择4选择3选择5选择6按姓名查询按姓名修改按学号删除结束1.系统结构图第四章、运行结果截屏分析1、主菜单2、 输入学生信息(1)、选择功效1(2)、输入学生信息3、显示目前学生信息(1)、选择功效2(2)、显示目前学生信息4、按多种排序显示全部学生信息(1)、选择功效3(2) 、进入选择排列方法菜单(3)、选择按学号由低到高排列学生信息(4)、按总分由高到低排列学生信息(5)、按数学由高到低排列

8、学生信(6)、按物理由高到低排列学生信息(7)、按英语由高到低排列学生信息(8)、按计算机由高到低排列学生信息5、查询学生信息(1)、选择功效4(2) 、输入要查询学生姓名(3)、显示所查询学生信息6、修改学生信息(1) 、选择功效5(2) 、输入要修改学生姓名(3)、修改成功该同学原来信息:7、添加学生信息(1) 、选择功效6(2) 、输入新插入同学信息(3)、添加成功8、删除学生信息(1) 、选择功效7(2) 、选择要删除同学(3)、删除成功9、从文件读入信息(1) 、文件“学生信息”(2) 、选择功效8(3)、读入成功10、删除文件信息(1) 、文件“11”(2) 、选择功效9(3)、选

9、择删除信息文件及删除成功11、保留信息到文件(1)、学生信息(2)选择功效10(3)、选择用来保留文件及保留成功第五章、实习感想 C语言确实是一门很有用不过又是不轻易一门课程。起初刚开始实习时,认为这个课程设计不会有多难,只不过是把多个函数组合起来就好了,不过,经过这十来天编程,发觉要完完整整把程序根据要求编出来是一件很不轻易事情。在整个编程过程中,能够说碰到了很多难题,不过让我印象最深刻是在编写从某文件中读取学生信息这个程序时所碰到困难。起初,程序时编写出来了,在组建时也没有错误,不过就是实现不了这个功效,接着就是整整一天苦战;最终,能够读取文件中信息了,可是,新问题又来了,在显示读取信息时

10、出现了乱序。自己弄了整整半天还是没有找出问题所在,只好请教她人,在一个热心学长帮助下,最终把这个程序完完整整没有错误地编好了。就编这个函数我就用了差不多两天时间!在这个程序完整地编写下来,我认为编写程序需要很大耐心,一个稍微大点程序就有个几百甚至上千行,没有耐心是极难做得成功。当然细心也很需要,在编程过程中有很多错误全部是自己粗心造成,有时甚至自己数次检验全部看不出来,这么一来,会造成时间大量浪费。这次实习也是一次很好对自我检验。它让我知道了自己在C语言学习上还不够认真刻苦,很多知识点还是没有很好掌握,甚至有些知识点很生疏,这可能就是我在编写从某文件中读取学生信息这一函数时老碰壁原因所在!从这

11、一点上来看,发觉我对待学习态度还不够端正,有待加强。不管怎么说,经过这一次课程设计,在C语言方面收获最大,让我读代码能力大大提升了不少,也巩固了很多知识。最终,在这多谢我指导老师曹雪莲老师,也多谢各位为我提供帮助同学。附录1 参考文件张基温 C语言程序设计案例教程 清华大学出版社谭浩强 C程序设计 清华大学出版社 baidu文库及其它网络平台附录2 源程序代码#include #include /清屏 #include /显示目录 #include #define MAX 1000 /定义一个全局变量void input();/学生信息输入函数 void display();/显示目前全部学生

12、信息函数void display1();/按多种排序显示全部学生信息函数 void find();/查找某学生信息函数void modify();/修改某学生信息函数void del(); /删除某学生信息函数 void insert(); /添加新学生信息函数 void read(); /读取某文件中学生信息函数 void del_file(); /删除某文件中学生信息函数 void save();/保留全部学生信息到某文件函数void average();/求平均值函数 void sum();/求总分函数void sort();/按总分由高到低排列学生信息void Sort_by_num(

13、);/按学号由低到高排列学生信息void sort1();/按数学由高到低排列学生信息void sort2();/按物理由高到低排列学生信息void sort3();/按英语由高到低排列学生信息void sort4();/按计算机由高到低排列学生信息int now_no=0; struct student /申明结构体类型 struct student unsigned long no; /以下10行为结构体组员 char name20; char sex4; float score1; float score2; float score3; float score4; float sort;

14、 float ave; float sum; ; struct student stuMAX,*p;/定义结构体struct student类型变量stuMAX和指向struct student类型数据指针变量*p void main()/主函数 int as; char ch; do printf(nnnntt&*&*&*&*&*&*&); start: printf(nnnnttt 欢迎使用学生成绩管理系统n); printf(nnnntt&*按任意键继续*&); ch=getch(); while(!ch); system(cls); /以下为功效选择模块 do printf(nttt欢

15、迎使用学生成绩管理系统n); printf(&*&n); printf(ntttt1.输入学生信息ntttt2.显示目前全部学生信息ntttt3.按多种排序显示全部学生信息ntttt4.查询学生信息ntttt5.修改学生信息ntttt6.添加学生信息ntttt7.删除学生信息ntttt8.从文件读入学生信息ntttt9.删除文件中学生信息ntttt10.保留学生信息到文件ntttt11.退出nn); printf(&*&nn); printf(ttt选择功效:); fflush(stdin); /用于清除缓存预防下次用scanf输入是出现错误 scanf(%d,&as); switch(as)

16、 case 1:system(cls); input(); break; case 2:system(cls); display(); break; case 3:system(cls); display1(); break; case 4:system(cls); find(); break; case 5:system(cls); modify(); break; case 6:system(cls); insert(); break; case 7:system(cls); del(); break; case 8:system(cls); read(); break; case 9:s

17、ystem(cls); del_file(); break; case 10:system(cls); save(); break; case 11:system(exit); exit(0); default:system(cls); goto start; while(1); /while(1),1表示真,所以while(1)表示永远循环下去 /至此功效选择结束void input() /原始数据录入模块 int i=0; char ch; do printf(tttt1.录入学生信息n输入第%d个学生信息n,i+1); printf(n输入学生学号:); scanf(%u,&stui.n

18、o); fflush(stdin); printf(n输入学生姓名:); fflush(stdin); gets(stui.name); printf(n输入学生性别:); fflush(stdin); gets(stui.sex); printf(n输入学生数学成绩:); scanf(%f,&stui.score1); printf(n输入学生物理成绩:); fflush(stdin); scanf(%f,&stui.score2); printf(n输入学生英语成绩:); fflush(stdin); scanf(%f,&stui.score3); printf(n输入学生计算机成绩:);

19、 fflush(stdin); scanf(%f,&stui.score4); printf(nn); i+; now_no=i; printf(是否继续输入?(Y/N); fflush(stdin); ch=getch(); system(cls); while(ch!=n&ch!=N); system(cls); void display()/显示目前全部学生信息函数 int i; char as; average(); do printf(ttt班级学生信息列表nn); printf(&*&n); printf(t学号t姓名t性别t数学t物理t英语t计算机t平均t总分nn); for(i

20、=0;inow_no&stui.name0;i+) printf(t%ut%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2fnn,stui.no,stui.name,stui.sex,stui.score1,stui.score2,stui.score3,stui.score4,stui.ave,stui.sum); printf(&*&nn); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); while(!as); system(cls); void display1()/按多种排序显示全部学生信息函数 int a; st

21、art: printf(nttt欢迎使用学生成绩管理系统nn);printf(&*&n); printf(nttt1.按学号由低到高排列nttt2.按总成绩由高到低排列nttt3.按数学成绩由高到低排列nttt4.按物理成绩由高到低排列nttt5.按英语成绩由高到低排列nttt6.按计算机成绩由高到低排列nttt7.返回主菜单请选择其它nn);/选择查看方法printf(&*&nn);printf(ttt选择查看方法:); scanf(%d,&a); switch(a) case 1:system(cls);Sort_by_num();break; case 2:system(cls);sor

22、t();break; case 3:system(cls);sort1();break; case 4:system(cls);sort2();break; case 5:system(cls);sort3();break; case 6:system(cls);sort4();break; default:system(cls);/选择4.返回主菜单请按其它键 void Sort_by_num()/按学号由低到高排序模快struct student temp; /定义结构体变量temp,用作交换时临时变量int i,j; char as; sum(); average(); for(i=1;

23、inow_no;+i) /使用冒泡法升序排列 for(j=1;j=now_no-i;+j) if(stuj.nostuj-1.no) temp=stuj; stuj=stuj-1; stuj-1=temp; printf(ttt班级学生信息列表nn); printf(按学号由低到高排列学生信息:n); printf(&*&n); printf(t学号t姓名t性别t数学t物理t英语t计算机t平均t总分nn); for(i=0;inow_no&stui.name0;i+) printf(t%ut%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2fnn,stui.no,stui.n

24、ame,stui.sex,stui.score1,stui.score2,stui.score3,stui.score4,stui.ave,stui.sum); printf(&*&nn); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); system(cls); while(!as); void sort() /按总分由高到低排列学生信息 struct student temp; int i,j; char as; sum(); average(); for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(

25、stuj-1.avestuj.ave) temp=stuj; stuj=stuj-1; stuj-1=temp; printf(ttt班级学生信息列表nn); printf(按总分由高到低排列学生信息:n); printf(&*&n); printf(t学号t姓名t性别t数学t物理t英语t计算机t平均t总分nn); for(i=0;inow_no&stui.name0;i+) printf(t%ut%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2fnn,stui.no,stui.name,stui.sex,stui.score1,stui.score2,stui.score

26、3,stui.score4,stui.ave,stui.sum); printf(&*&nn); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); system(cls); while(!as); void sort1()/ 按数学分数由高到低排列学生信息 struct student temp; int i,j; char as; sum(); average(); for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.score1stuj.score1) temp=stuj; stuj=st

27、uj-1; stuj-1=temp; printf(ttt班级学生信息列表nn); printf(按数学分数由高到低排列学生信息:n); printf(&*&n); printf(t学号t姓名t性别t数学t物理t英语t计算机t平均t总分nn); for(i=0;inow_no&stui.name0;i+) printf(t%ut%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2fnn,stui.no,stui.name,stui.sex,stui.score1,stui.score2,stui.score3,stui.score4,stui.ave,stui.sum); pr

28、intf(&*&nn); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); system(cls); while(!as); void sort2()/按物理分数由高到低排列学生信息 struct student temp; int i,j; char as; sum(); average(); for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.score2stuj.score2) temp=stuj; stuj=stuj-1; stuj-1=temp; printf(ttt班级学生信息列表

29、nn); printf(按物理分数由高到低排列学生信息:n); printf(&*&n); printf(t学号t姓名t性别t数学t物理t英语t计算机t平均t总分nn); for(i=0;inow_no&stui.name0;i+) printf(t%ut%st%st%.2ft%.2ft%.2ft%.2ft%.2ft%.2fnn,stui.no,stui.name,stui.sex,stui.score1,stui.score2,stui.score3,stui.score4,stui.ave,stui.sum); printf(&*&nn); printf(tt按任意键返回主菜单.); fflush(stdin); as=getch(); system(cls); while(!as); void sort3()/按英语分数由高到低排列学生信息 struct student temp; int i,j; char as; sum(); average(); for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.score3stuj.score3) temp=stuj; stuj=stuj-1; stuj-1=temp;

展开阅读全文
相似文档                                   自信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 

客服