2022年《学生成绩管理系统》C语言课程设计 .pdf





《2022年《学生成绩管理系统》C语言课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年《学生成绩管理系统》C语言课程设计 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、湖南文理学院课程设计报告课程名称:计算机软件技术基础学院:电气与信息工程学院专业班级:自动化 06102 班姓名:王康学号: 200615010201 指导教师 : 朱明旱完成时间: 2008年 5 月 8 日报告成绩 : 评阅意见:评阅老师:评阅时间:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 学生成绩管理系统C语言课程设计一、 设计要求1) 收集资料,全面分析课题,分解问题,形成中体编程思路;2) 深入分析各个小问题,
2、编写个部分程序模块;3) 对于设计中用到的关键函数,要联系实际问题进行具体介绍;4) 上机调试,确保程序能正确运行;二、 设计目的:1) 通过设计,了解 C语言的实际运用,加强对C语言的重视;2) 通过设计,强化 C语言的基本运用及C语句的准确掌握;3) 通过设计,掌握设计软件一般方法,了解软件设计的一般思路;4) 通过设计,锻炼撰写报告的水平。三、 课题分析:编写一个学生成绩管理系统的C程序,包括以下功能:1) 学号段查询功能;2) 输入功能;3) 添加功能、修改功能;4) 成绩处理功能等5) 可实现数据输入、数据显示、数据插入、数据访问、数据保留、数据更新等存储功能,以及各学科平均分、最高
3、分、最低分的提取等数据处理功能。该程序运行相对只能化,可通过学号比较来插入数据、根据姓名查找数据以及更新数据。其操作简单,查找方便,修改迅速,普遍适合学校学生成绩管理,可大大减少人工管理的工作量,提高工作效率。四、 定义数据结构及相关解释:1) 在学生成绩管理系统中,各模块功能系统之间构成的数据结构关系为非线性数据结构的树结构。2) 树结构:每一个结点只有一个前件,称为父结点。没有前件的结点只有一个,称为树的根结点,简称树的根。在学生成绩管理系统中的数据结构图中“图书馆管理程序”为根;在树结构中,每一个结点都可以有多个后件,他们都称为该结点的子结点,没有后件的结点称为叶子。例如,在学生成绩管理
4、系统中的数据结构图中“查看数据”、 “ 通过比较学号来插入数据” 、 “ 通过姓名查找查看数据” 、 “ 通过姓名查找来更新数据” 、 “ 保名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - 留数据”以及求各学科的“平均分、最高分、最低分”为“学生成绩管理系统”的子结点,也是该树结构的叶子。五、 软件的模块划分:根据对学生成绩管理系统功能分析的情况,可将学生成绩管理系统做如下模块划分:1)main( ) 主函数 - 学生成绩管理
5、系统程序主函数;2)print( ) 打印函数 - 设置学生成绩管理系统界面;3)cin( ) 数据输入函数 - 数据多格式输入;4)cindata( ) 其他数据继续输入函数;5)lookdata( ) 查看数据函数 - 查看已保存的数据;6)insert( ) 插入数据的函数 - 通过比较学号来插入数据;7)find( ) 查看数据的函数 - 通过姓名查找查看数据;8)update( ) 更新数据的函数 - 姓名查找来更新数据;9)save( ) 保留数据函数 - 储存处理后的数据;10)caverage(); 求各学生语文平均分、最高和最低分成绩的函数;11)maverage(); 求各
6、学生数学平均分、最高和最低分成绩的函数;12)eaverage(); 求各学生英语平均分、最高和最低分成绩的函数;13)comaverage(); 求各学生计算机平均分、最高和最低分成绩的函数注:(2)(13)为自定义功能函数, 通过 main()主函数调用实现其功能。六、 程序流程设计:根据学生成绩管理系统功能分析绘制流程图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 21 页 - - - - - - - - - 注:其他功能的流程图可参照“其他数据输入”的流程图绘
7、制。初始界面开始passwords 功能选择用户信息输入其他数据插入数据查找查看数据查找更新数据保留数据显示或打印数据求学生语文平均分求学生计算机平均分求学生数学平均分求学生英语平均分空操作返回主程序流程图,学生成绩管理系统操作流程。其他数据输入姓名学号性别成绩语文数学英语计算机其他数据输入过程选择继续输入返回名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - 七、 各功能模块编写内容详细情况及调试:1) 数据类型的定义。在定义数
8、据类型时,由于学生成绩管理信息需要由不同类型的数据反映出来。如:姓名、性别都需要用char 型数据,而学号和成绩则需要用int型数据,并且每位同学的以上信息都需要一次性输入,所以采用结构体类型定义。如:typedef struct student /*定义结构体 */ char nameMAX; - 定义 char 型姓名int numMAX; - 定义 int 型学号char sexMAX; - 定义 char 型性别int chinese; - 定义 int 型语文成绩int mathematic; - 定义 int 型数学成绩int english; - 定义 int 型英语成绩int
9、computer; - 定义 int 型计算机成绩struct student *next; - 结构体指针stu; 说明:在定义结构体类型和变量时,可采用先定义结构体类型再定义结构提变量,也可同时定义结构体类型和变量,还可以直接定义结构提变量。上例中的定义方式为同时定义结构体的类型和变量。结构体定义的格式如下:2)函 数 的 命名和库函数的使用。A. 函数命名是遵循标识符的命名规则,并且要尽量做到顾名思义的效果。如:lookdata( )为查看数据函数。B. 库函数使用时要提前声明(#include 等)用到的函数必须包括在库函数或者已自定义的函数中,否则编译出错。C. 函数调用时要注意形参
10、和实参数据类型的对应。struct结构体名 类型标识符成员名;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - 3) 函数结构和功能实现。A. 数据输入函数“ cin( )”B. 查看数据函数“ lookdata( )”C. 插入数据的函数“ insert( )”D. 查看数据的函数“ find( )”E. 更新数据的函数“ update( ) ”F. 保留数据函数“ save( )”注:以上的六个功能函数为学生成绩管理系统的输
11、入、读取、修改等主要功能函数,其中主要运用字符串比较,定义指针变量,输入输出等多种函数和操作实现其对外界输入内容进行处理功能以及防止出错的备份功能。G. 管理系统中的各个模块函数的功能实现基本都依靠与以上三中函数类似的编辑方法编写。主要通过以下结构实现对应功能。for 循环结构 对使用者输入内容与内部资料内容进行核对。switch 选择结构 对使用者所选择的项目进行判断并调用对应的函数。if-else 选择结构 配合 for 循环核对内容的正确与否选择对应的操作。while 、do-while 循环结构 条件判断并进行对应的操作。H. 具体功能函数源程序的编辑内容见后文的图书馆管理系统源程序。
12、八、 源程序内容及调试结果。1)源程序(原始密码是 123456):#includestdio.h #includestddef.h #includestddef.h #includestring.h #define MAX 10 typedef struct student /*定义结构体 */ char nameMAX; /*姓名 */ int numMAX; /* 学号 */ char sexMAX; /*性别 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共
13、21 页 - - - - - - - - - int chinese; /*语文 */ int mathematic; /* 数学 */ int english; /*英语 */ int computer; /*计算机 */ struct student *next; /*结构体指针 */ stu; stu *head; /*头指针 */ void print() /*显示或打印函数*/ system(cls); printf(tttScore Manage Systemn); /*成绩管理系统*/ printf(Enter Recordt); /* 输入数据 */ printf(Displa
14、yt); /*显示 */ printf(Insertt); /*插入数据 */ printf(Questt); /*访问数据 */ printf(Updatet); /*以前数据 */ printf(Savet); /*保留数据 */ printf(Fresht); /*更新数据 */ printf(Chinese Averaget); /*语文平均成绩*/ printf(Math Averaget); /*数学平均成绩 */ printf(English Averaget); /*英语平均成绩*/ printf(Computer Averaget); /*计算机平均成绩*/ printf(Q
15、uittn); /*退出 */ void cin(stu *p1) /*输入相关数据的函数*/ printf(Enter name:n); scanf(%s,&p1-name); printf(Enter num:n); scanf(%d,&p1-num); printf(Enter sex:n); scanf(%s,&p1-sex); printf(Enter score:n); printf(Enter chinese:n); scanf(%d,&p1-chinese); printf(Enter math:n); scanf(%d,&p1-mathematic); 名师资料总结 - -
16、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - printf(Enter English:n); scanf(%d,&p1-english); printf(Enter Computer:n); scanf(%d,&p1-computer); stu *cindata() /*其他数据是否继续输入的函数*/ stu *p1,*p2; int i=1; char ch; p1=(stu *)malloc(sizeof(stu); head=p1; w
17、hile(i) cin(p1); printf(Do you Want to Continue?yes or no); /*是否继续输入数据*/ ch=getchar(); ch=getchar(); if(ch=n|ch=N) i=0; p1-next=NULL; else p2=p1; p1=(stu *)malloc(sizeof(stu); p2-next=p1; return(p1-next); stu *lookdata(stu *p1) /*查看数据的函数*/ while(p1!=NULL) printf(Num:%dt,p1-num); printf(Name:%st,p1-n
18、ame); printf(Sex:%st,p1-sex); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - printf(Chinese:%dt,p1-chinese); printf(Math:%dt,p1-mathematic); printf(English:%dt,p1-english); printf(Computer:%dt,p1-computer); printf(n); p1=p1-nex
19、t; return p1; void insert() /*通过比较学号来插入数据的函数*/ stu *p1,*p3,*p2; char ch; p1=head; p3=(stu *)malloc(sizeof(stu); p3-next=NULL; if(head=NULL) head=p3; return; cin(p3); while(p1!=NULL&(p1-numnum) /* 通过学号的比较来插入*/ p2=p1;p1=p1-next; if(p2=head) p3-next=head; head=p3; return; p3-next=p1; p2-next=p3; find(s
20、tu *p2) /*通过姓名查找查看数据的函数*/ char name20; int b=0; printf(Enter the name of the student you want to find:); /*通过姓名查看*/ scanf(%s,name); while(p2!=NULL) if(strcmp(name,p2-name)=0) printf(The data you want has be foundn); printf( Name:%st,p2-name); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
21、名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - printf(Num:%dt,p2-num); printf(sex%st,p2-sex); printf(n); printf(Chinese:%dt,p2-chinese); printf(Math:%dt,p2-mathematic); printf(English:%dt,p2-english); printf(Computer:%dt,p2-computer); printf(n); b=1; else if(b=0) printf(sorry not find data!); p
22、2=p2-next; if(b=1) print(); printf(Find onen); else print(); printf(Not findn); void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/ stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1=NULL) printf(not data!); else for(i=0;p1!=NULL;i+,p1=p1-next) sum+=p1-chinese; aver=sum/i; 名师资料总结 -
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生成绩管理系统 2022年学生成绩管理系统C语言课程设计 2022 学生 成绩管理系统 语言 课程设计

限制150内