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

上传人:wj 文档编号:256929 上传时间:2023-04-28 格式:DOCX 页数:14 大小:24.38KB
下载 相关 举报
学生信息管理系统c语言-课程设计.docx_第1页
第1页 / 共14页
学生信息管理系统c语言-课程设计.docx_第2页
第2页 / 共14页
学生信息管理系统c语言-课程设计.docx_第3页
第3页 / 共14页
学生信息管理系统c语言-课程设计.docx_第4页
第4页 / 共14页
学生信息管理系统c语言-课程设计.docx_第5页
第5页 / 共14页
学生信息管理系统c语言-课程设计.docx_第6页
第6页 / 共14页
学生信息管理系统c语言-课程设计.docx_第7页
第7页 / 共14页
学生信息管理系统c语言-课程设计.docx_第8页
第8页 / 共14页
学生信息管理系统c语言-课程设计.docx_第9页
第9页 / 共14页
学生信息管理系统c语言-课程设计.docx_第10页
第10页 / 共14页
学生信息管理系统c语言-课程设计.docx_第11页
第11页 / 共14页
学生信息管理系统c语言-课程设计.docx_第12页
第12页 / 共14页
学生信息管理系统c语言-课程设计.docx_第13页
第13页 / 共14页
学生信息管理系统c语言-课程设计.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《学生信息管理系统c语言-课程设计.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统c语言-课程设计.docx(14页珍藏版)》请在冰点文库上搜索。

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

学生信息管理系统c语言

目录1

一、课程设计的目的与要求1

二、题目说明2

2.1程序开发背景2

2.2开发工具介绍2

三、需求分析3

四、总体设计4

4.1〃系统开发平台:

4

A.前端系统使用C与C++程序设计学习与实验系统2008.10中文版设计;4

B..后台数据库使用C与C++程序设计学习与实验系统2008.10设计。

4

4.2〃系统流程图:

4

4.3功能结构图:

4

4.4〃数据库设计:

6

五、详细说明6

5.1系统实施6

六、遇到的问题和解决方法11

七、课程设计总结11

八、参考文献12

附录(源程序代码)12

一、课程设计的目的与要求

目的:

应用所学C语言知识完成相对复杂的任务,进一步巩固C语言。

理解并将

其应用到实际问题中去。

要求:

(1)整个程序用C语言来实现

(2)利用指针等来实现学生信息管理的数据结构设计

(3)系统具有查询、输入、输出、修改、排序、删除、退出

基本功能

(4)系统的各个功能模块都用函数的形式来实现

(5)可以将学生信息从文件中读取出来

二、题目说明

学生信息包括:

学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作

学生信息录入功能(学生信息用文件保存)---输入

学生信息浏览功能---输出

查询、排序功能---算法

按学号查询

按姓名查询

学生信息的删除与修改(可选项)

2.1程序开发背景

随着社会发展,近年来大学不断扩招,大学生人数不断的增加,因此如此底

大的人如果不进行有效的管理就大大的增加了工作人员的工作强度,现在电子

计算机技术和软件业的日趋完善给现代办公带来了极大的便利,利用软件就很容

易的解决了这种问题从而帮助工作人员高效的合理的管理。

本学生信息管理系统

就是本着这个目的,帮助老师进行有效的管理,减轻工作强度和提高工作效率,

使管理更方便快捷。

2.2开发工具介绍

名字:

C与C++程序设计学习与实验系统2008.10。

原名《TurboC/C++for

Windows集成实验与学习环境》,现在已全面支持最新操作系统VISTA,它是从

事一线教学的大学教师根据C/C++初学者的特点,量身定制的一个简单易用的

C/C++学习与实验软件。

软件集成了高校C/C++教学中使用最多的三种编译器

VisualC++6.0、TurboC++3.0和TurboC2.0,给高校C/C++语言的实验

教学提供了简单易用的软件实验环境(软件没有使用日期限制,可以无限期使用)。

与软件配套的《C/C++入门教程(配有同步实验、流程控制语句动画演示)》融入

了作者多年的教学和学习经验、编程建议、编程感悟等,同时,为了便于C语言

学习,加入C语言学习指导、入门程序实例、典型源程序、典型的函数算法,课

程设计指导、课程设计源程序、VisualC++6.0中英文编译错误信息同步显示

功能(并配有同步的语法错误程序实例)、TurboC2.0中英文编译错误信息同

步显示功能、TurboC++3.0常见编译错误信息、C语言专业词汇的中英文对照、

二级C语言的真题笔试试卷及答案与分析和上机模拟试题和详尽的答案与分析

等大量的学习资源。

另外“编程日记”功能可以让你记录你的C语言学习历

程,“资料管理”功能让你大量的下载资料不再难找。

三、需求分析

学生信息管理系统作为一个应用软件为学校师生提供一个对学生信息进行管

理和查询的平台。

用户可根据系统界面的提示信息对学生的信息进行输入、删除、

修改、排序等作。

系统功能需求描述如下:

(1)系统主菜单:

用户进入系统主菜单,可以按提示进行选择,从而完成不同的

任务。

(2)创建学生信息:

用户根据提示输入学生的学号、姓名等信息,系统将其以

文件形式存储,以便进行管理。

(3)增加学生信息:

在已有的学生信息文件中添加新的学生信息记录,并将增

加后的文件信息显示给用户。

(4)删除学生信息:

根据用户输入的学生学号,在学生信息文件中查找到该信

息并除。

(5)查询学生信息:

可根据姓名或者学号进行查找,若在学生信息文件中查找

到则在屏幕上列出其内容,若没有找到,给出提示信息。

(6)浏览学生信息:

在屏幕上列出学生信息文件中的所有内容。

分工:

负责内容:

删除学生信息

负责内容:

输入学生信息

负责内容:

查询学生信息802

学生信息管理系统c语言

负责内容:

修改学生信息

负责内容:

给学生信息排序

四、总体设计

4.1〃系统开发平台:

A.前端系统使用C与C++程序设计学习与实验系统2008.10中文版设计;

B..后台数据库使用C与C++程序设计学习与实验系统2008.10设计。

4.2〃系统流程图:

4.3功能结构图:

4.4〃数据库设计:

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结

构能充分满足各种信息的输出和输入。

收集基本数据、数据结构以及数据处理的

流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

本系统主要完成对学生信息各类数据的登记,修改,删除,查询,分析

等各项功能,按功能模块分,拟分为以下几个模块:

:

数据录入及维护模块、其他

数据处理模块、:

数据查询模块。

附表:

表1-1学生信息表

列名数据类型可否为空说明

charNotNull学号

charNotNull姓名

charNotNull性别

structNotNull出生年月

intNotNull年龄

charNotNullEmail

charNotNull地址

charNull电话

五、详细说明

5.1系统实施

1)删除学生信息的函数

VoidDelInfor(STUDENTstu[],intMax)/*删除*/

{

intfindID,i;

charfindNAME[10],select;

printf("*****************请选择删除方式*****************\n");

printf("\t1--按学号删除;\t2--按姓名删除\n");

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

printf("请选择(1--2):

");

select=choice();

switch(select)

{

case'1':

printf("\n按学号删除\n请输入学生的学号:

");

scanf("%d",&findID);

if((i=findStudentID(stu,findID,Max))!

=-1)

DEL(stu,Max,i);

else

printf("您输入的学号不存在!

\n");

break;

case'2':

printf("\n按姓名删除\n请输入学生的姓名:

");

scanf("%s",&findNAME);

if((i=findStudentNAME(stu,findNAME,Max))!

=-1)

DEL(stu,Max,i);

else

printf("您输入的姓名不存在!

\n");

break;

default:

printf("选择错误!

\n");

}

}

2)删除学生信息的流程图

3)截屏

1.选择菜单

2.删除学生信息

学生信息管理系统c语言

3.按学号删除

4.按姓名删除

六、遇到的问题和解决方法

(1)刚开始编写程序,对各个函数的运用不熟练,因此在开始的时候,总是出

错,在看书查看资料后,慢慢的好了起来。

也没有一开始出错的。

(2)刚开始执行输入函数,按学号顺序输入十个学生的成绩,输完后执行显示功

能,学生信息记录是按学号的反顺序显示的,所以在输入信息时只能按学号反顺

序输入,最后就按学号正常顺序输出了。

(3)刚开始行输入函数时,在学号输“0”后,不能一下子退出返回菜单,仍弹

出需要输入的信息。

但不影响输入结果。

所以在学号输“0”后,输入的学生信

息是无效的。

(5)输入太多个学生的信息时,屏幕显示不能控制为一页一页显示,所以为了

方便起见,不要输入太多记录,十七左右为最佳。

(6)在没有输入任何信息的情况下,去执行其他功能,显示“没有任何学生资

料,请先建立链表!

(7)在输入选项时不能输入字母,否则会死循环,建议不要乱输字母。

七、课程设计总结

这次课程设计,我感慨颇多,从理论到实践,在整整一星期的日子里,我学到很

多很多的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有

学到过的内容。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只

有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中

得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。

在设计的过程遇到了各种各样的问题,例如,有的程序会出现各种错误,要通过

调试和修改,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识

理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重

新温故,巩固了所学的知识。

八、参考文献

[1]:

顾小晶主编.实用C语言简明教程.中国电力出版社.2006

[2]:

廖雷主编.C语言程序设计.北京:

高等教育出版社,2008

学生信息管理系统c语言附录(源程序代码)

#include

#include

#include

#include

#defineMAX_NUM45

structstudenter{

intID;

charName[10];

intAge;

charSex[2];

intBirthday;

charAdress[15];

charTelNum[12];

charEmail[10];

};

typedefstructstudenterSTUDENT;

voidinput(STUDENTstu[],intMax,intcn);

intfindStudentID(STUDENTstu[],intfindID,intMax);

voidDisplayInfor(STUDENTstu[],intMax);

voidDispMainMenu();

voidDispQueryMenu();

charchoice();

intInforInput(STUDENTstu[],intcn);

voidQueryInfor(STUDENTstu[],intMax);

voidEditInfor(STUDENTstu[],intMax);

voidDispMainMenu()

{

printf("**************学生信息管理系统1.0**************\n");

printf("\t1--学生信息录入\t2--学生信息修改\n");

printf("\t3--学生信息查询\t4--学生信息删除\n");

printf("\t5--学生信息排序\t0--退出\n");

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

printf("请选择(0--5):

");

}

voidDispQueryMenu()

{

printf("*****************请选择查询方式*****************\n");

printf("\t1--按学号查询;\t2--按姓名查询\n");

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

printf("请选择(1--2):

");

}

charchoice()

{

charselect;

select=getche();

getch();

return(select);

}

voidDisplayInfor(STUDENTstu[],intMax)/*输入*/

{

inti;

printf("\n学号姓名年龄性别出生年月\t地址\t电话\tE-mail\n");

for(i=0;i

printf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,st

u[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i

].Email);

printf("\n");

}

voidinput(STUDENTstu[],intMax,intcn)

{

inti;

for(i=cn;i

{

printf("\n请输入第%d个学生的学号(8个字符以内):

",i+1);

scanf("%d",&stu[i].ID);

printf("\n\t\t姓名(10个字符以内):

");

scanf("%s",stu[i].Name);

printf("\n\t\t\t年龄:

");

scanf("%d",&stu[i].Age);

printf("\n\t\t\t性别(m或w):

");

scanf("%s",&stu[i].Sex);

printf("\n\t\t出生年月(8位):

");

scanf("%d",&stu[i].Birthday);

printf("\n\t\t\t地址:

");

scanf("%s",&stu[i].Adress);

printf("\n\t\t\t电话:

");

scanf("%s",&stu[i].TelNum);

printf("\n\t\t\tE-mail:

");

scanf("%s",&stu[i].Email);

}

printf("\n您的输入信息是:

\n");

DisplayInfor(stu,Max+cn);

}

intfindStudentID(STUDENTstu[],intfindID,intMax)

{

inti;

for(i=0;i

{

if(stu[i].ID==findID)

break;

}

if(i

returni;

else

return-1;

}

intInforInput(STUDENTstu[],intcn)

{

intnumber;

printf("\n请输入本次录入的学生人数:

");

scanf("%d",&number);

if(number>MAX_NUM)

{

printf("您输入的人数太多,大于%d人!

\n",MAX_NUM);

return(0);

}

input(stu,number,cn);

return(number+cn);

}

voidQueryInfor(STUDENTstu[],intMax)/*查询*/

{

charselect;

inti;

intfindID;

charfindNAME[10];

DispQueryMenu();

select=choice();

switch(select)

学生信息管理系统c语言

{

case'1':

printf("\n按学号查询\n请输入学生的学号:

");

scanf("%d",&findID);

if((i=findStudentID(stu,findID,Max))!

=-1)

{

printf("查找结果如下:

\n");

printf("学号姓名年龄性别出生年月\t地址\t电话\tE-mail");

printf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,st

u[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i

].Email);

}

else

printf("您输入的学号不存在!

\n");

break;

case'2':

printf("\n按姓名查询\n请输入学生的姓名:

");

scanf("%s",&findNAME);

if((i=findStudentNAME(stu,findNAME,Max))!

=-1)

{

printf("查找结果如下:

\n");

printf("学号姓名年龄性别出生年月\t地址\t电话\tE-mail");

printf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,st

u[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i

].Email);

}

else

printf("您输入的姓名不存在!

\n");

break;

default:

printf("选择错误!

\n");

}

}

voidEditInfor(STUDENTstu[],intMax)/*修改*/

{

inti;

intfindID;

printf("\n请输入学生的学号:

");

scanf("%d",&findID);

if((i=findStudentID(stu,findID,Max))!

=-1)

{

printf("姓名:

%s\n",stu[i].Name);

printf("原信

息:

%8d%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Age,stu[i].Sex,st

u[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);

printf("\n请输入新的学号(8个字符以内):

",i+1);

scanf("%d",&stu[i].ID);

printf("\n\t\t姓名(10个字符以内):

");

scanf("%s",stu[i].Name);

printf("\n\t\t\t年龄:

");

scanf("%d",&stu[i].Age);

printf("\n\t\t\t性别(m或w):

");

scanf("%s",&stu[i].Sex);

printf("\n\t\t出生年月(8位):

");

scanf("%d",&stu[i].Birthday);

printf("\n\t\t\t地址:

");

scanf("%s",&stu[i].Adress);

printf("\n\t\t\t电话:

");

scanf("%s",&stu[i].TelNum);

printf("\n\t\t\tE-mail:

");

scanf("%s",&stu[i].Email);

}

else

printf("您输入的学号不存在!

\n");

}

DEL(STUDENTstu[],intMax,inti)

{

for(;i

{

stu[i-1].ID=stu[i].ID;

strcpy(stu[i-1].Name,stu[i].Name);

stu[i-1].Age=stu[i].Age;

strcpy(stu[i-1].Sex,stu[i].Sex);

stu[i-1].Birthday=stu[i].Birthday;

strcpy(stu[i-1].Adress,stu[i].Adress);

strcpy(stu[i-1].TelNum,stu[i].TelNum);

strcpy(stu[i-1].Email,stu[i].Email);

}

return(--Max);

}

DelInfor(STUDENTstu[],intMax)/*删除*/

{

intfindID,i;

charfindNAME[10],select;

printf("*****************请选择删除方式*****************\n");

printf("\t1--按学号删除;\t2--按姓名删除\n");

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

printf("\n按学号删除\n请输入学生的学号:

");

scanf("%d",&findID);

if((i=findStudentID(stu,findID,Max))!

=-1)

DEL(stu,Max,i);

else

printf("您输入的学号不存在!

\n");

break;

case'2':

printf("\n按姓名删除\n请输入学生的姓名:

");

scanf("%s",&findNAME);

if((i=findStudentNAME(stu,findNAME,Max))!

=-1)

DEL(stu,Ma

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2