1、 课程设计任务书设计题目:学生成绩管理系统的设计与实现学生姓名 高跃跃课程名称C语言课程设计专业班级自动化2013地 点计算机基础自主学习中心起止时间2014.9.9-2014.9.26设计内容及要求内容强化C语言中有关结构体数组及外部文件的内容,独立设计学生成绩管理系统,并编程实现以下功能:1、整个系统均用C语言实现;2、利用结构体数组来实现学生成绩的数据结构设计;3、系统具有输入、显示、查询、删除、排序、插入、保存、读取等基本功能;4、系统的各个功能模块都用函数的形式来实现;5、要求能将学生成绩信息保存在文件中;6、要求能从文件中读取学生信息并进行相关处理。设计参数1、每一条记录包括一个学
2、生的学号、姓名、3门成绩、平均成绩。2、输入功能:进入后可以进行多条记录的输入并保存。3、显示功能:完成全部学生或满足指定条件记录的显示。4、查找功能:完成按学号或姓名查找学生记录,并显示。5、排序功能:按学生学号或平均成绩进行排序。6、插入功能:按学生学号或平均成绩高低插入一条学生记录。7、保存功能:将学生记录保存在自定义名称的文件中。8、读取功能:将保存在文件中的学生记录读取出来。9、有一个文本菜单来调用各个功能。进度要求1.布置设计题目,讲解要求和说明 2014.9.92.确定设计任务,确定具体的功能,熟悉相关知识 2014.9.93.按功能需求确定程序的主要模块 2014.9.10 4
3、.编程实现程序的功能 2014.9.11 2014.9.155.调试并完善程序 2014.9.16 2014.9.226.撰写课程设计报告 2014.9.23 - 2014.9.24 7.提交课程设计报告并答辩 2014.9.25其它谭浩强,C语言程序设计(第三版),清华大学出版社,2005.2说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共享的,在设计内容、参数、要求等方面应有所区别。摘要学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。它完全取代了原来
4、一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。学生成绩管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。本系统是在以Microsoft Visual C+ 。学生成绩管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了学生成绩管理计算机化。关键词:成绩 管理系统 C语言 1 4 6 7 8 10 11 18 191. 软件需求说明 整个系统均用C语言实现; 利用结构体数组来实现学生成绩的数据结构设计; 系统具有输入、显示、
5、查询、删除、排序、插入、保存、读取等基本功能; 系统的各个功能模块都用函数的形式来实现; 要求能将学生成绩信息保存在文件中; 要求能从文件中读取学生信息并进行相关处理。 程序的功能1 每一条记录包括一个学生的学号、姓名、3门成绩、平均成绩。2 输入功能:3 显示功能:4 查找功能:5 排序功能:6 插入功能:7 保存功能:8 读取功能:9 有一个文本菜单来调用各个功能。2. 系统分析与设计 程序的数据(结构)分析 本程序需要定义多个结构体,用于存放学生的相关信息typedef struct CStudent char Name32; /* 学生姓名 */ int Sno; /* 学号 */ d
6、ouble dDataStruct; /* 数据结构成绩 */ double dMath; /* 数学成绩 */ double dEnglish; /* 英语成绩 */ double aver; /* 平均成绩 */ CStudent; main()主函数 主函数功能比较简单,用while循环语句和switch多重选择语句来显示主界面和调用函数。在主函数的前面要写必须的头文件,预定义语句以及全局变量的结构体。 del( )删除函数在C语言中无法做到删除和移动数据,所以删除记录要先将所有记录从文件中读出,删除后再将记录写回文件中。每读出一条记录,按其在文件中的顺序做好指针链接关系,然后查处要删除
7、的学生信息,将其在链表中删除,最后再将变动的记录重新写回文件中。用指针,else/if结构来实现查找出要删除的学生。 insert( )插入函数 在插入函数中利用指针,while循环和else/if语句来实现输入的数据按照插入相 应的位置。 读取函数利用指针、链表打开已经储存的信息。void Read() /* 从文档读取 */ char p128 = ;FILE *fp; if (fp=fopen(,r)=NULL) printf(Open file %s error! Strike any key to exit!,p); system(pause); exit(0); SavePos =
8、 0; while(!feof(fp) fscanf(fp,Name:%sn,exampleSavePos.Name);Sno:%dn,&exampleSavePos.Sno);Score(DS)%lfnexampleSavePos.dDataStruct) ;Score(M)%lfnexampleSavePos.dMath) ;Score(E)%lfnexampleSavePos.dEnglish) ;Score(Average)%lfnexampleSavePos.aver) ;*n SavePos+; fclose(fp); Display(); save( )保存函数主要利用指针来把信
9、息保存在文件中。void Save() /* 保存到文档 */ int j=0; const char fname128 = FILE* fp; /open file fp = fopen(fname, w /write in file for(j=0;jSavePos;j+) /fprintf(fp,This is the file.n) fprintf(fp,examplej.Name) ;,examplej.Sno);Score(DS)%fn,examplej.dDataStruct) ;Score(M)%fn,examplej.dMath) ;Score(E)%fn,examplej.
10、dEnglish) ;Score(Average)%fn /close file printf(保存成功n 程序的算法设计 学生成绩管理系统功能模块图 2按9 按0 查询模块 Y N3. 程序的实现int main() int choice1 = 1,choice2; int i = 1,s = 1; do printf(欢迎使用学生成绩管理系统n请选择程序功能n1、信息录入n2、信息查询n3、插入n 4、排序n5、保存n6、删除n7、读取并显示n8、退出程序n scanf(%dchoice1);3.2 定义数据结构用一个类的嵌套定义struct student *next;用整型数据定义学号和成绩,用char定义姓名。CStudent;CStudent example1024;int SavePos
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1