C课程设计·学生成绩管理系统.doc
《C课程设计·学生成绩管理系统.doc》由会员分享,可在线阅读,更多相关《C课程设计·学生成绩管理系统.doc(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 成绩:江西理工大学理学院C语言课程设计实验学生成绩管理应用程序 姓名: 学号: 班级: 实 验 任 务 书计划学时: 2周 实验设备:计算机实验目的:在掌握C语言基础知识的基础上,熟练掌握选择结构、循环结构的应用,熟悉结构体、文件等相关知识并能够运用这些方法实现特定功能,会开发有一定使用价值的应用程序。实验要求:在规定的时间内,制作出具有简单界面、能够实现基本功能的学生成绩管理应用程序。写出课程设计报告并附源程序主要部分, 源程序的全部代码以班级为单位刻盘交指导教师。实验内容:1、进行人机界面设计,界面具有提示信息,可以选择、查询每门课程的平均成绩及最高分最低分、查询每个学生的各科成绩及总成
2、绩、查询所有学生的平均总成绩、插入一个学生并录入信息及其各科成绩、修改任一个学生的任一门课程成绩、删除一个学生及其成绩、退出程序。2、将所有学生信息及成绩存入以你的学号命名的数据文件内,在所有查询、修改操作前打开该文件,选择退出程序则关闭该文件;3、所有的查询功能、修改功能、插入功能都用子程序(函数)来实现。4、分析总结。实现步骤: 1、主函数设计; 2、查询模块设计;3、插入模块设计; 4、修改模块设计;实验结果提交:1.结果提交时间: 下学期第1周周二前提交课程设计报告2.课程设计报告的内容:l 源代码(要求有代码注释)以及源文件说明l 可执行程序l 软件文档 分析部分:此部分用于定义你的
3、程序功能或者说是设计目标。主要包括:问题背景、运行环境、问题分析,确定程序功能。 设计部分:内容包括程序的总体结构、函数间调用关系、数据的组织方式、关键性问题的解决方法、程序流程图等等。 编码部分:给出关键问题的源代码,代码中要有注释。 测试部分:此部分用于说明你是如何证明程序确实实现了预期功能的。描述相应测试过程。 使用文档:给出程序的使用说明书。要注明运行环境(操作系统,程序运行所需的其他必要条件)。l 课程设计报告将每天的设计内容,观察分析结果,疑难问题,以及收获体会写入报告中l 时间安排周一周二周三周四周五18周上午(1-4)下午(5-8)12信息12班12数学12班12信息12班12
4、数学12班12信息12班19周上午(1-4)下午(5-8)12信息12班12数学12班12信息12班12数学12班12数学12班附注:数学班19周周四的56节课调整到周二晚上的910节 附:参考程序代码一、自定义函数说明1、 void MenuHandle(void); 菜单处理函数函数功能:对菜单进行处理入口参数:void输出参数:void2、 int MenuSelect(void);菜单选择函数函数功能:对菜单进行选择入口参数:void输出参数:void3、 void New(void);新建学生记录函数函数功能:重新建立输入信息记录入口参数:void输出参数:void4、void Qu
5、it(void);退出系统函数函数功能:结束程序运行入口参数:void输出参数:void5、void ShowTable(void);打印表头函数函数功能:打印表头入口参数:void输出参数:void6、void Display(void);显示所有学生信息函数函数功能:显示内存中的学生信息入口参数:void输出参数:void7、void Add(void); 增加学生信息函数函数功能:增加记录入口参数:void输出参数:void8、int Index(float sum);输出在记录中安升序排序的位置函数功能:找出总分为sum在0至num-1个记录中按升序排序的位置入口参数:float输出参
6、数:int9、int Save(void);文件存储操作函数函数功能:将记录存入指定文件入口参数:void输出参数:失败0,成功110、int Load(void);文件读取操作函数函数功能:将指定文件中的记录读入内存入口参数:void输出参数:失败0,成功111、int Find(char* target,int targetType,int from);查找记录函数 函数功能:查找指定记录入口参数:char* target 查找记录的某一项int targetType 查找方式,0 学号,1 姓名,2 名次int from 从第from个记录开始查找输出参数:int 找到的记录序号12、v
7、oid Query(void);查询学生信息函数 函数功能:将一个文件的内容追加到另一个文件的尾部入口参数:void输出参数:void13、void Delete(void);删除记录函数函数功能:删除内存数组中指定的记录入口参数:void输出参数:void14、void copy(stu *src, stu *dest);记录复制 函数功能:将src指向的一条记录复制给dest指向的记录入口参数:stu *src 原记录,stu *dest 目的记录输出参数:void15、void Modify(void);修改指定学生信息函数函数功能:找到指定记录并修改入口参数:void输出参数:void
8、16、void Sort(void);学生信息排序函数函数功能:对记录进行排序入口参数:void输出参数:void二、参考程序代码(C语言)#include#include#include#define STUDENT 3 /可存学生信息数-数组初始大小#define INCREASE 20 /数组每次增加的大小#define COURSE 4 /记录学生课程总数void MenuHandle(void);int MenuSelect();void New();void Quit();void ShowTable();void Display();void Add(void);int Inde
9、x();int Save();int Load(void);int Find(char* target,int targetType,int from);void Query();void Delete();void copy(struct student *src,struct student *dest);void Modify(void);void Sort(void);struct Studentint index; /排名char number12; /学号 char name16; /姓名 int scoreCOURSE; /各科成绩 float sum; /总分 float av
10、erage; /平均分;typedef struct Student stu; /简化结构体Student名称 int num=0; /记录的学生数stu* record=NULL; /记录学生信息的数组char flag=0; /信息保存标志 /其中0为未保存,1为已保存int arraysize; /数组大小char* subject=Politics,Maths, English,Computer; /结构体类型的课程数组 int main()record=(stu*)malloc(sizeof(stu)*STUDENT); if(record=NULL) printf(Memory F
11、ail!n);exit(-1);arraysize=INCREASE;printf(n);printf(t*n);printf(t| 欢迎使用 |n);printf(t| 学生成绩管理程序 |n);printf(t| 可以对学生信息进行管理 |n);printf(t| 请按提示操作 |n);printf(t*n);MenuHandle();void MenuHandle(void)for( ; ; )switch(MenuSelect() case 0: Add(); break; case 1: Modify(); break; case 2: Display(); break; case
12、3: Query(); break; case 4: Delete(); break; case 5: Sort(); break; case 6: Save(); break; case 7: Load(); break; case 8: New(); break; case 9: Quit(); int MenuSelect()char s2;int cn=0;printf(t|-|n);printf(t| Please Select The Functions |n);printf(t| Though The Following Number |n);printf(t|-|n); pri
13、ntf(t*n);printf(t| 0.Add 增加学生信息 |n);printf(t| 1.Modify 修改学生信息 |n);printf(t| 2.Display 显示学生信息 |n);printf(t| 3.Query 查询学生信息 |n);printf(t| 4.Delete 删除学生信息 |n);printf(t| 5.Sort 学生信息排序 |n);printf(t| 6.Save 保存学生信息 |n);printf(t| 7.Load 读取学生信息 |n);printf(t| 8.New 新建记录信息 |n);printf(t| 9.Quit 退出管理系统 |n); prin
14、tf(t*n);printf(t数字对应功能请选择(0-9)的功能:); for( ; ; )gets(s); cn=atoi(s);/处理键入的非数字键,过滤出数字0 if(cn=0 & (strcmp(s,0)!=0)cn=11; if(cn9) printf(n输入错误重新选择(0-9):);elsebreak; return cn;void New(void) char str2;if(num!=0)if(flag=0)printf(t管理系统文件中已经存在学生记录!n);printf(t请按提示选择处理已存记录的方法!n);printf(t是否保存原有记录?(Y/n):);gets(
15、str);if(str0!=n & str0!=N)Save();printf(n);num=0;Add();void Quit(char flag,struct student *record)char str2;if(flag=0)printf(nt是否保存原来的记录?(Y/n):);gets(str);if(str0!=n & str0!=N)Save();printf(n);free(record);exit(0);void ShowTable()int j;printf(nt学号t姓名t性别);for(j=0;jCOURSE;j+)printf(t%s,subjectj); prin
16、tf(t总分t平均分t名次n);void Display(int num)int i,j;if(num=0)printf(nt没有可供选择的记录!n);ShowTable();for(i=0;inum;i+)printf(%dt%dt%s,recordi.index,recordi.number,recordi.name);for(j=0;jCOURSE;j+)printf(t%d,recordi.scorej);printf(t%.lft%.lfn,recordi.sum,recordi.average);MenuHandle();void Add(void)char str2;int j;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 学生 成绩管理系统
限制150内