c语言课程设计学生信息管理系统

更新时间:2023-08-21 02:02:01 阅读量: 高等教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计报告

课程名称:

姓 名: 汤璞君 班级学号: BX1209 121003410937 指导教师: 吉顺如 完成日期: 2013.6.15

目录

1 课程设计目的与要求 ..................................... 1

1.1课程设计目的 ................................................ 1 1.2课程设计要求 ................................................ 1 1.3课程设计的评价 .............................................. 2

2 问题描述 ............................................... 3 3总体设计 ............................................... 4 3.1 功能分析 ............................................. 4 5 功能测试 .............................................. 15 6 程序设计调试情况分析 .................................. 19 7 课程设计小结 .......................................... 20 参考文献 ................................................ 20 附录 系统源程序 ........................................ 21

学生信息管理系统

1 课程设计目的与要求

1.1课程设计目的

本课程设计是在学习C++基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼:

1.能根据实际问题的具体情况,结合C++的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。

2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。

1.2课程设计要求

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下:

(1)数据组织方面尽量使用到:数组、链表、结构体、文件; (2)程序结构方面做到函数调用,尽量采用指针运算; (3)代码编写规范,形成良好的编程习惯;

(4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。

(5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面:

程序的总体设计和算法分析。 程序流程图、函数说明

1

源程序代码清单

测试数据和测试过程记录 遇到的问题及解决方法分析 课程设计小结

1.3课程设计的评价

通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。

2

2 问题描述

设计一个学生信息管理系统,其中包括:

学生基本信息:如学号、姓名、性别、年龄、地址、电话等。 功能包括:

1. 系统菜单形式显示 2.学生信息录入功能—输出 3.学生信息浏览功能—输出 4.查询、排序功能—算法 按学号查询 按姓名查询 5.学生信息的删除与修改 3

3总体设计

3.1 功能分析

3.1.1菜单模块 通过while语句 给出信息提示; 清屏;

绘制菜单(包含输入,浏览,查询,修改,删除,排序,保存,退出);

提示菜单选择并读入到变量;

根据读入变量的值调用不同的模块函数; 3.1.2信息录入模块 打开文件 While() { 清屏;

按照提示输入各种信息; While

显示各种信息;

通过选择1.确认并继续 2.重新填写 3.放弃并返回 4.确认并返回 选择四种功能; } }

3.1.3信息浏览模块

打开文件

While() { 清屏;

用for语句依次按照顺序输出学生信息 通过选择可以翻页 1.上一页 2.下一页 0.退出

4

}

3.1.4信息查询

While()

{ 通过菜单式的选择 是学号查询 还是姓名 printf("******学生信息管理系统******");

printf("\n----------检 索----------"); printf("\n您想要:");

printf("\n 1.按学号检索"); printf("\n 2.按姓名检索"); printf("\n 3.返回主菜单");

printf("\n****************************\n"); }

如果选择学号进入学号模块 通过输入学号 If( 学号存在继续) {输出学生信息

}

Else 输出无此学生 如果选择姓名进入姓名模块

If(根据比较姓名判断学生是否存在) {输出学生信息

}

Else 输出无此学生

3.1.5删除模块

while( 继续删除 )

5

{

提示并读入待删除的学生的学生号; 显示要删除的信息 } 删除成功

3.1.6信息修改模块

输入要修改学生信息的学号:

If (判断是否有此学生)

{ 菜单形式显示要修改的项目

printf("\n1.姓名 2.年龄 3.性别 4.出生年月 5.地址 6.电话 7.E-mail \n"); } Swich()

{ 选择要修改的项目进行修改 }

3.1.7打开文件模块 void fileopen() {

printf("\n8.数学 9.英语 \n");

FILE *fp; int n;

if((fp=fopen("data","r+"))==NULL) fp=fopen("data","w+"); for(n=0;n<100;n++)

fread(&stu[n],sizeof(struct student),1,fp); fread(&stunum,4,1,fp); fclose(fp);

6

}

3.1.8保存文件模块

void filesave() {

int n; FILE *fp;

fp=fopen("data","r+"); for(n=0;n<100;n++)

fwrite(&stu[n],sizeof(struct student),1,fp); fwrite(&stunum,4,1,fp); fclose(fp);

printf("保存成功!press Enter to continue.."); }

3.1.9退出模块

case '8':ma=0;break; 用的是跳出while语句 回到安全模块

3.1.10排序模块

通过 冒泡排序法

for(m=0;m<y-1;m++) for(x=m+1;x<y;x++)

7

getch();

if(stu[m].sum<stu[x].sum)

{

stu[99]=stu[m];

stu[m]=stu[x]; stu[x]=stu[99]; stu[99].id=stu[x].id ; stu[x].id =stu[m].id; stu[m].id =stu[99].id ;

}

printf("排序后的顺序为:\n");

然后显示排序好后的学生信息;

3.2系统主要函数

多功能计算器采用结构化程序设计思想,程序中除主函数外,共设计了23个函数,函数原型 及功能说明如表3.2.1所示。

表3.2.1 函数原型及功能说明

8

9

4 详细设计

主模块

10

4.1 程序总体结构图

11

4.2 主函数流程图

各部分模块

12

4.3 信息的录入流程图

4.4 学生信息浏览流程图

13

4.5 按姓名或学号查询流程图

4.6信息的删除流程图

14

5 功能测试

5.1系统主界面

5.1系统主界面

5.2录入学生信息功能

5.2.1录入学生信息界面

15

5.2.2录入学生信息界面

5.2信息浏览功能

5.2信息浏览界面

16

5.3信息修改功能

5.3.1信息修改界面

5.4信息检索功能

5.4.1信息检索界面

17

本文来源:https://www.bwwdw.com/article/upuj.html

Top