学生信息管理系统c语言.docx

上传人:b****6 文档编号:7872809 上传时间:2023-01-26 格式:DOCX 页数:16 大小:139.60KB
下载 相关 举报
学生信息管理系统c语言.docx_第1页
第1页 / 共16页
学生信息管理系统c语言.docx_第2页
第2页 / 共16页
学生信息管理系统c语言.docx_第3页
第3页 / 共16页
学生信息管理系统c语言.docx_第4页
第4页 / 共16页
学生信息管理系统c语言.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学生信息管理系统c语言.docx

《学生信息管理系统c语言.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统c语言.docx(16页珍藏版)》请在冰豆网上搜索。

学生信息管理系统c语言.docx

学生信息管理系统c语言

 

学年论文

(课程论文、课程设计)

 

题  目:

学生信息管理系统小程序

作  者:

 

所在学院:

 

专业年级:

  

指导教师:

 

职  称:

        

 

201年月日

 

学生

学号

班级

课程名

任课教师

学期

得分

C程序设计

一、大作业题目,目的。

大作业题目:

学生信息管理系统小程序

大作业目的:

本课题主要的目的是让我们通过这次课程设计更加了解C的应用。

学习基本的思考过程,而不能仅仅学习程序的实现技巧。

学会课本上学的内容使用在编写的程序中。

还要学会写论文为毕业论文打好基础。

三设计一个实际使用学生信息管理系统。

具有添加学生信息,查询学生成绩的,删除学生信息以及显示所有学生信息。

它使用循环语句和多分制语句来实现,充分体现C程序设计特点。

二.大作业内容

1.输入考试时间

输入考试年份、月份、日期。

2.输入完日期返回操作选单

选单中有四种选项。

分别为添加学生信息、删除学生信息、删除学生信息以及退出学生信息

3.添加学生信息

在操作选单中选〈1〉进入添加学生信息输入该学生的ID,姓名,成绩。

再选择是否继续输入。

若所输入的ID不正确,则会出现输入不合法或输入的ID已存在。

并重新输入。

4.删除学生信息

在操作选单中选〈2〉进入删除学生信息输入该学生的ID。

系统将自动删除该学生的所有信息。

若该学生的ID不存在结果为删除失败。

5.显示所有学生信息

在操作选单中选〈3〉进入显示所有学生信息。

添加若干个学生的ID,姓名,成绩。

系统将自动显示所有输入过的学生信息。

6.退出学生信息管理系统

在操作选单中选〈4〉进入退出学生信息,系统将自动退出。

三.大作业总体设计及源代码

3.1总体设计

 

开始

学生信息管理系统小程序

先输入考试时间。

输入考试年份

输入考试月份

输入考试日期

传入一个年月份,返回一个结构体

操作选单:

请用数字键选择需要的功能:

输入该学生的ID

 

a=1

输入该学生的姓名

输入该学生的成绩

是否继续输入

YN

输入ID,姓名,成绩

返回结构体住菜单

a=2

输入要删除的学生ID

删除成功删除的ID并不存在

a=3

显示所有学生信息

直到执行完再转入操作选单

声明:

输入该学生的ID

输入不合法或

继续输入输入的ID已存在,请重新输入

 

操作选单

a=4

推出学生信息管理系统

#include//标准输入输出

#include//内存分配

#include

#include//执行过程

#include

#include//成一串

#defineN50/预处理命令宏名(参数)

structdate/数据定义结构体名(注明日期){成员表列};

{

intyear;/整型年

intmonth;/整型月

intday;/整型日

};

structstudent/数据定义结构体名{成员表列};

{

intid;/整型序号

charname[20];/字符型姓名[20];

floatscore;/实型记分

structdatetestday;/注明日期

};

 

structstudentstud[N];/数据定义结构体名学生[N]

intlength;/整型长度;

//判断日期是否合理

intJudge();整型判断();

//传入一个年月份,返回一个结构体

voidCreateDay(int,int,int);空建立日期(整型,整型,整型);

//调用CreateDay

voidCreateStudent(structstudent*);////在这个ID必须唯一性,调用IsIdArray

intInputinfo(structstudent*);整型(数据定义学生*);

//显示全部

voidDisplay(structstudent*);/数据定义结构体名{成员表列};

//按ID显示一个

voidDisplayOne(structstudent*,int);

//删除

voidDelete(int,structstudent*);//成功0失败-1空-2

//添加

intAdd(structstudentstu,structstudent[]);//成功0失败-1满-2

 

voidmain()

{

intm,year,month,day;

structstudent*stu;

intidd,name;/综合数据,姓名

charch,chp;/字符串控制序文,标题

stu=stud;

for(;;)

{

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

printf("☆请先输入考试时间.\n");

printf("☆请输入考试年份:

");

scanf("%d",&year);

fflush(stdin);/清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件(标准输入)

printf("☆请输入考试月份:

");

scanf("%d",&month);

fflush(stdin);//清除文件缓冲区,文件以写方式打开时将缓冲区内容写入文件(标准输入)

 

printf("☆请输入考试日期:

");//格式化输出到stdout(标准输出)流

scanf("%d",&day);//格式化输入函数

fflush(stdin);清除文件缓冲区(标准输入);

if(year<0&&month<=0&&month>12&&day<=0&&day>31)首先运行关系运算,再运行逻辑运算(&&与)

{

printf("☆输入错误请重新输入。

\n");

continue;//继续

}

else

{

for(;;)

{

CreateDay(year,month,day);//执行日期(年,月,日)

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

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

printf("\t☆★1★☆-------------------→添加学生信息\n");

printf("\t☆★2★☆-------------------→删除学生信息\n");

printf("\t☆★3★☆-------------------→显示所有学生信息\n");

printf("\t☆★4★☆-------------------→退出学生信息管理系统\n");

printf("\n*********************请输入你需要的功能*********************\n");

scanf("%c",&chp);

fflush(stdin);--------//清除文件缓冲区(标准输入)

switch(chp)//多分支选择语句

{

Case'1':

fflush(stdin);//清除文件缓冲区(标准输入)

CreateStudent(stu);//添加学生信息

break;//中断透露

case'2':

//事例

fflush(stdin);//清除文件缓冲区

printf("☆请输入你要删除的学生ID号:

");

scanf("%d",&idd);//地址输入(取数据的地址)

fflush(stdin);//清除文件缓冲区(标准输入)

Delete(idd,stu);//删除学生信

break;//中断透露

case'3':

fflush(stdin);//清除文件缓冲区(标准输入)

Display(stu);//显示所有学生信息

break;//中断透露

case'4':

fflush(stdin);//清除文件缓冲区(标准输入)

exit(0);//程序中止执行,返回调用过程

default:

//语句N+1(默认)弃权

fflush(stdin);//清除文件缓冲区(标准输入)

printf("☆输入有误请重新输入☆\n");

}

}

}

}

}

//传入一个年月日,返回一个结构体

voidCreateDay(intyear,intmonth,intday)

{

structstudent*stu;数据定义学生

stu=stud;/对日期进行检测

stu->testday.year=year;

stu->testday.month=month;

stu->testday.day=day;

}

//调用CreateDay建立,执行

voidCreateStudent(structstudent*stu)//在这个ID必须唯一性,调用IsIdArray

{

intm=0,i;

charch;

structstudent*stu1;//数据定义结构体名{成员表列}

stu1=(structstudent*)malloc(N*sizeof(structstudent));//内存分配(N的大小)

for(i=length;;)//

{

printf("☆请输入该学生ID:

");

scanf("%d",&(stu1+i)->id);/取Stu1的ID地址

m=IsIdArray(stu,(stu1+i)->id);

fflush(stdin);

if(1==m)

{

(stu+i)->id=(stu1+i)->id;

printf("☆请输入该学生姓名:

");

gets((stu1+i)->name);//语言获取字符串函数

fflush(stdin);//清除文件缓冲区(标准输入)

strcpy((stu+i)->name,(stu1+i)->name);//语言字符串拷贝函数

printf("☆请输入该学生成绩:

");

scanf("%f",&(stu1+i)->score);//记分

fflush(stdin);//清除文件缓冲区(标准输入)

if((stu1+i)->score>=0)//记分

{

(stu+i)->score=(stu1+i)->score;//记分

}

else

{

printf("☆输入成绩非法,请重新输入☆\n");

continue;//继续

}

i++;

length=i;

printf("☆是否继续输入(Y/N):

");

ch=toupper(getchar());//转换字母(字符输入)

fflush(stdin);//清除文件缓冲区(标准输入)

if('N'==ch)

{

break;

}

elseif('Y'==ch)

{

m=0;

continue;//继续

}

else

{

printf("☆输入错误请重新输入☆\n");

exit(0);//退出

}

}

elseif(-1==m)

{

printf("☆输入不合法或输入的ID已存在,请重新输入☆");

m=0;

continue;//继续

}

}

}

//显示全部

voidDisplay(structstudent*stu)数据定义结构体名({成员表列};

{

inti;

printf("\tID\t姓名\t成绩\t考试时间\n");

printf("=============================================================\n");

for(i=0;i

{

printf("\t%d\t%s\t%.2f\t%d年%d月%d日\n",(stu+i)->id,(stu+i)->name,(stu+i)->score,stu->testday.year,stu->testday.month,stu->testday.day);//记分,进行日期测试

}

}

//删除

voidDelete(intid,structstudent*stu)//成功0失败-1空-2

{

inti,j,tmp=0;

for(i=0;i

{

if(id==(stu+i)->id)

{

tmp=1;

length=length-1;

break;

}

}

if(1==tmp)

{

for(j=i;j

{

*(stu+j)=*(stu+j+1);

}

printf("☆删除成功☆\n");

}

else

{

printf("☆※你要删除的ID并不存在※☆.\n");

}

 

}

//添加

{*//*intAdd(structstudentstu,structstudentstus[])//成功0失败-1满-2

}

3调试结果

图片1输入考试时间

图片2输入完日期返回操作选单

图片3从操作选但中选1(添加学生信息)以及输入该学生的

ID,姓名,成绩。

再选择是否继续输入。

图片4添加若干个学生的ID,姓名,成绩。

若所输入的ID不正确,则

会出现输入不合法或输入的ID已存在。

并重新输入。

图片5添加完若干个学生的信息后,返回选操作选但。

从操作选单

中选3(显示全部学生信息)。

结果为显示所输入过的所有学

生信息。

图片6从操作选单中选择2(删除学生信息)。

若ID不存在,结果为

删除失败。

1

 

四、总结:

编完此程序后,我体会到学C语言不能死记硬背,一定要灵活的使用才行。

在编写程序过程中我遇到了不少问题。

也学到了不少东西。

经过两个星期的上机实践学习,使我对C语言有了更进一步的认识和了解,要想学好它重在实践,要不断的上机操作才能更好地学好C语言。

从中又发现我对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,对C语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。

在学习当中,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,以后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机。

通过这次实习我认识了自己取得怎样利用C语言的函数,数组,关键字来设计自己所需要程序等的收获即有了深刻的认识,对我今后的学习以及将来走向工作岗位打下了稳固的基础。

在完成大作业中使我进一步了解学C语言,并体会到设计程序并不是那么容易的。

在解决这些问题中,同时学到了许多函数的实际用途。

这对我学C语言起了很大作用。

我领悟到运用c语言可以解决许多实际问题,它在我们的学习和工作中解决很多问题,尤其是在信息管理方面,c语言作为一门高级和计算机编辑语言,有其强大的功能。

而我们应严格要求自己,不断培养各方面的能力。

只有这样才能更好的适应这个日新月异的飞速发展的社会。

 

新疆大学课程论文(设计)、学年论文评分表

题目

学生信息管理系统小程序

作者

专业年级

指导教师

指导教师评语及

评分建议

 

指导教师:

201年月日

(部)

同意指导老师评分建议。

学院或教研室主任:

201年月日

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1