C语言课程设计报告材料--学生成绩管理系统.doc

C语言课程设计报告材料--学生成绩管理系统.doc

ID:56794167

大小:279.19 KB

页数:30页

时间:2020-07-12

C语言课程设计报告材料--学生成绩管理系统.doc_第1页
C语言课程设计报告材料--学生成绩管理系统.doc_第2页
C语言课程设计报告材料--学生成绩管理系统.doc_第3页
C语言课程设计报告材料--学生成绩管理系统.doc_第4页
C语言课程设计报告材料--学生成绩管理系统.doc_第5页
资源描述:

《C语言课程设计报告材料--学生成绩管理系统.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《学生成绩管理系统》课程设计报告2010-7-9一、程序整体规划:1.系统的基本功能²数据的录入:如录入学生的基本信息,以及该学生选修课程的基本信息;²数据的修改:如修改指定学号、或者指定的学生信息,或者修改其选修课程信息;²数据的插入:插入某个学生信息;²数据的查询:如按学号查询、按查询等;²数据的删除:如删除指定学号、或者指定的学生及其选修课程信息;²平均成绩的计算:计算每个学生各门功课的平均成绩,并按平均成绩从高到低的次序输出学生信息;²考虑用文件把数据保存起来2、首先是结构体的定义:typedefstructm

2、essage_studentcharnumber[6];charname[20];charsex[4];floatsubject[numsubs];floatscore;floataverage;intindex;}student;intnumstus;定义学生数目student*pointer;指向结构体数组intlens;次迟到时候分配存3、部分重要函数声明:intmenu_select();决定主界面的函数intopenfile(studentstu[]);打开文件的函数intfindrecord(student

3、stud[]);查找信息的函数intwritetotext(studentstud[]);保存文件的函数voidsort(studentstu[]);查找信息的函数voiddeleterecord(studentstu[],inti);删除信息的函数voidaddrecord(studentstud[]);增加学生信息的函数voiddisplay(studentstud[],intn1,intn2);数据的显示函数voidsortnum(studentstud[]);以下几个均为排序函数voidsortnum2(stu

4、dentstud[]);voidsortname(studentstud[]);voidsortname2(studentstud[]);voidsortcount(studentstud[]);voidsortcount2(studentstud[]);4、设计思路1、主函数以switch和case语句引出其他子函数。然后进行其他子函数的调用。2、定义结构体student,让其包含如性别等基本信息。同时定义结构体指针,以便后面子函数对某一项排序后输出该学生的全部信息。LENS给结构体数组分配存。3、各个函数运行并相互

5、调用其他子函数,例如几个排序函数全部被其它函数调用并输出结果。具体各子函数之间的关系见源代码。4、studentstu[i]表示的是一个结构体,[]填大于等于0的数,这可以解释各个子函数中出现此类情况:例如strcmp(str,stud[i].name)==0是该结构体的第i+1个学生满足上述条件。由Stud[i].变量来引用各结构体中的变量,然后用输出函数相应输出该结构体的信息。二.程序模板细致分析:1.程序涉及的模板:主程序模板.查询模块.删除模板.将所有记录写入文件.输出模板.修改信息模板.录入信息模板.和排序模

6、板.排序模板可按如下进行分类:按学号:按学号降序排序模块.按学号升序排序模块.按:按降序排序模块.按升序排序模块.按名次:按名次降序排序模块.按名次升序排序模块.2.功能结构联系图如下图所示:主函数模板增加学生记录查询学生记录修改学生记录学生纪录排序保存文件打开文件统计信息现对各个功能的实现及个人认为每个功能中所用到的程序的闪光点和难点:1.增加学生记录增加学生记录已有记录是否覆盖当输入数据过多时内存的扩展输入数字为1.0,但是结果输出为男.女2.已有记录是否覆盖:if(numstus!=0){printf("已有记录

7、存在是否覆盖?(y/n)");fflush(stdin);gets(str);if(str[0]=='Y'

8、

9、str[0]=='y')i=0;当输入数据过多时存的扩展:(通过定义LENS开辟增加存)if(numstus>lens){lens+=50;pointer=(student*)realloc(pointer,lens*LEN);输入数字为1.0,但是结果输出为男.女:printf("请输入性别(男/女1/0):");gets(stud[i].sex);if(stud[i].sex[0]=='0')strcp

10、y(stud[i].sex,"女");elsestrcpy(stud[i].sex,"男");2.查询学生记录查询学生记录按学号,姓名,名次进行查询如何根据学号输出其相应的成绩,性别等例:按学号查找:if(str[0]=='1'){printf("请输入学号:");fflush(stdin);亮点:清除数据缓冲区间gets(str

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。