学生成绩管理系统 课程设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中南大学

《C语言程序设计》

课程设计报告课题名称:学生成绩管理系统

专业电气信息

学生姓名舒畅

班级0914

学号0909091424

指导教师穆帅

完成日期2010年7月10日

信息科学与工程学院

目录

1 课程设计的目的 (1)

2 设计内容与要求 (1)

3 主要技术指标及特点 (2)

3.1 登录界面显示 (2)

3.2登记学生资料 (4)

3.3保存学生资料 (5)

3.4 删除学生资料 (6)

3.5修改学生资料 (7)

3.6 查询学生资料 (8)

3.6统计学生资料(自加功能) (8)

3.8对学生资料进行排序 (9)

3.9程序主要代码 (9)

4 设计小结 (31)

成绩管理系统

1 课程设计的目的

1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;

2.进一步掌握和利用C语言进行程设计的能力;

3.进一步理解和运用结构化程序设计的思想和方法;

4.初步掌握开发一个小型实用系统的基本方法;

5.学会调试一个较长程序的基本方法;

6.学会利用流程图或N-S图表示算法;

7.掌握书写程设计开发文档的能力(书写课程设计报告)。

2 设计内容与要求

设计内容:成绩管理系统

现有学生成绩信息,内容如下:

姓名学号 C 数学英语

shuchang 12 99 98 99

jiutian 32 87 68 87

changzi 33 98 89 99

jiutia 13 7 43 45

设计要求:

✧封面(参见任务书最后一页)

✧系统描述:分析和描述系统的基本要求和内容;

✧功能模块结构:包括如何划分功能模块,各功能模块之间的结构图,以及各模块

的功能描述;

✧数据结构设计:设计数据结构以满足系统的功能要求,并加以注释说明;

✧主要模块的算法说明:即实现该模块的思路;

✧运行结果:包括典型的界面、输入和输出数据等;

✧总结:包括C语言程序设计实践中遇到的问题,解决问题的过程及体会、收获、

对程序开发的认识与思考等。

附录:包括主要程序清单,要有适当的注释,使程序容易阅读。

3 主要技术指标及特点

程序流程图如下:

3.1 登录界面显示

此登录界面是预先设定好作为菜单来显示的,在主函数中以menu()来实现的,在函数中,是通过switch……case来实现选择功能的,用户可以通过需要进行选择,方便了用户的使用,非常人性化。

当系统中没有保存学生信息时,就会提示没有学生记录!也就是说不能从文件中导出,这时就需要用户进行学生资料的导入,当输入的学号已经存在时,系统会提示用户重新输入一个未被占用的学号信息,否则就重新分配内存空间。

该操作是将用户输入的学生信息进行保存,用文件的方法进行调试,当用户输入对象的个数超过0时,显示保存成功,否则提示,系统连接为空。

这里又是通过switch……case函数的调用,让用户进行选择,共有两种方法:1.按照学号2.按照姓名,操作完成后,系统会自动提示,该学生已经成功删除,当再次显示的时候,函数中的链表就不再指向该学号,从而起到删除的作用。删除完成后,再次保存一下学生资料,不然系统仍然默认为原始人数。

通过选择到达修改界面:此时将呈现出现有的学生资料,按照要求将新的信息输入其中,再保存资料,如果输入的学号系统中未显示,那么系统则提示没有资料可以修改。

这个为修改完的图片

按照选择,则会呈现出用户需要查找的所有信息,每次呈现出来的时候都要用之前定义的printheader()函数,这个很好地将数据按照格式化的形式显现出来。此为按照学号查找的例子,按照姓名查找是同样道理。

3.6 统计学生资料(自加功能)

统计学生资料主要还是用的switch……case函数,通过选择,用printheader(),printdata(r),printf(END)等函数用表格的形式将符合条件的学生信息全部显示出来,不过唯一不足的就是所有的学生信息没有能够连贯起来,每个学生信息前面都有表头,没处理好。

3.8 对学生资料进行排序

该图显示的是按照语文成绩排序完的结果,用链表将数据进行一个接一个的比较,按照降序将学生信息排列下来,最后提示排序已经完成,并将所有结果按照用户要求显示出来。

3.9 程序主要代码

主函数

#include "stdio.h" /*标准输入输出函数库*/

#include "stdlib.h" /*标准函数库*/

#include "string.h" /*字符串函数库*/

#include "conio.h" /*屏幕操作函数库*/

#define HEADER1 " ----------------------------student's information---------------------------- \n"

#define HEADER2 " | Number | Name |C|Math|English| Total | Average | \n"

#define HEADER3 " |---------------|---------------|----|----|----|--------|-------|"

#define FORMAT " | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |\n"

#define DATA p->data.num,p->,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.total,p->data.ave

#define END " -------------------------------------------------------------- \n"

int shoudsave=0; /* */

struct student

{

char num[10];/* Number */

char name[20];

char sex[4];

int cgrade;

int mgrade;

int egrade;

int total;

float ave;

char neartime[10];/* 最近更新时间*/

};

typedef struct node

{

struct student data;

struct node *next;

}Node,*Link;

菜单函数

void menu()

{

system("cls"); /*调用DOS命令,清屏.与clrscr()功能相同*/

cprintf("\n");

printf("@@@@@Students' performance management system@@@@@@\n\n");

printf("@@@@@@@@@@@@@@@@@@@@@@@Menu@@@@@@@@@@@@@@@@@@@ @@@@@\n");

printf(" *1 input 2 delete *\n");

printf(" *3 search 4 modify *\n");

printf(" *5 insert 6 count *\n");

相关文档
最新文档