陈晨C语言课程设计学生学籍管理系统.docx

上传人:b****5 文档编号:5654731 上传时间:2022-12-30 格式:DOCX 页数:15 大小:121.78KB
下载 相关 举报
陈晨C语言课程设计学生学籍管理系统.docx_第1页
第1页 / 共15页
陈晨C语言课程设计学生学籍管理系统.docx_第2页
第2页 / 共15页
陈晨C语言课程设计学生学籍管理系统.docx_第3页
第3页 / 共15页
陈晨C语言课程设计学生学籍管理系统.docx_第4页
第4页 / 共15页
陈晨C语言课程设计学生学籍管理系统.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

陈晨C语言课程设计学生学籍管理系统.docx

《陈晨C语言课程设计学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《陈晨C语言课程设计学生学籍管理系统.docx(15页珍藏版)》请在冰豆网上搜索。

陈晨C语言课程设计学生学籍管理系统.docx

陈晨C语言课程设计学生学籍管理系统

中国地质大学

 

课程名称C语言课程设计

教师姓名顾老师

本科生姓名陈晨

本科生学号20091000614

本科生专业应用化学

所在院系材化学院

类别:

C.本科生

日期:

2010年07月15日

 

课程设计评语

对课程论文的评语:

平时成绩:

课程论文成绩:

总成绩:

评阅人签名:

 

目录

目录............................................1

一、分析系统功能,绘制系统功能结构框架图2

1.1分析系统功能2

1.2结构框架图2

二、程序代码以及界面形式.......................2

2.1程序代码如下2

2.2界面形式...................................7

三、使用说明..................................7

四、编程中遇到的困难及解决方法.......................................9

五、总结心得及良好建议...................................11

六、致谢...................................12

七、参考文献

 

一、分析系统功能,绘制系统功能结构框架图

1.1、分析系统功能

(1)用户进入主菜单后,就会在看到,菜单选项中添加有系统的各项功能,进入的

应的选项就可进行相应的操作.其主要功能有:

1、录入学生信息2、删除学生信息

3、查询学生信息4、学生信息排序

5、改学生信息6、保存退出系统

(2)用户选择所需操作的选项,进入相应的操作界面,在这里用户就可开始进行操作。

1.2、结构框架图

二、程序代码以及界面形式

2.1程序代码如下

#include"stdio.h"

#include"conio.h"

#include"string.h"

#include"stdlib.h"

#definePFprintf

#defineSFscanf

staticintn,i;

structaddress_book

{

charname[20];

intnum;

charsex;

charclas[40];

longtelephone;

charaddr[40];

}stud[200];

 

voidadd()

{

charj;

front1:

system("cls");/*清屏*/

PF("\n");

PF("\n请输入要添加的姓名:

");

SF("%s",stud[n].name);

PF("\n请输入要添加的学号(8位):

");

SF("%d",&stud[n].num);

PF("\n请输入要添加的性别(F/M):

");

SF("\n%c",&stud[n].sex);

PF("\n请输入要添加的班级:

");

SF("%s",&stud[n].clas);

PF("\n请输入要添加的电话号码:

");

SF("%ld",&stud[n].telephone);

PF("\n请输入要添加的地址:

");

SF("%s",stud[n].addr);

getchar();

n++;

PF("是否继续(Y/N)?

:

");

j=getchar();getchar();

if(j=='y'||j=='Y')gotofront1;/*再输入记录*/

}

voiddel()

{intk=0,m,i;charj;

front2:

system("cls");/*清屏*/

PF("\n请输入要删除的学号:

");

scanf("%d",&m);

getchar();

for(i=0;i

if(m==stud[i].num){k=1;break;}/*查找记录*/

if(k==1)/*删除记录*/

{for(k=i;k

{stud[k]=stud[k+1];

}

n--;PF("已删除\n\n");

}

else

{

PF("找不到要删除的记录!

\n");

PF("按回车键返回:

");

getchar();

}

PF("是否继续(Y/N)?

:

");

j=getchar();getchar();

if(j=='y'||j=='Y')gotofront2;

}

voidfind()

{inti,k,s=0;charj;

front3:

s=0;

system("cls");/*清屏*/

PF("\n请输入要查询的学号:

");

SF("%d",&k);

for(i=0;i

if(k==stud[i].num)

{

PF("姓名学号性别班级电话地址\n");

PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,

stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,

stud[i].addr);

s=1;

}

if(s==0)

PF("查无此人!

\n");

getchar();

PF("是否继续查询(Y/N)?

:

");

j=getchar();getchar();

if(j=='y'||j=='Y')gotofront3;

getchar();

}

voidarrange()

{intk,i;

structaddress_bookt;

system("cls");/*清屏*/

PF("姓名学号性别班级电话地址\n");

for(k=0;k

for(i=0;i

if(stud[i].num>stud[i+1].num)

{t=stud[i];

stud[i]=stud[i+1];

stud[i+1]=t;}

elsecontinue;

for(i=0;i<=n-1;i++)

if(stud[k].num!

=0)

PF("%-10s%-8d%c%-20s%-8ld%-6s\n",stud[i].name,

stud[i].num,stud[i].sex,stud[i].clas,stud[i].telephone,

stud[i].addr);

PF("按回车键返回!

");getchar();

getchar();

}

 

voidchange()

{intk=0,m;charj;

front5:

system("cls");/*清屏*/

PF("\n请输入要修改记录的学号:

");

SF("%d",&m);

getchar();

for(i=0;i

if(m==stud[i].num){k=1;break;}/*查找*/

if(k==1)/*修改*/

{PF("\n");

PF("\n请输入修改后的姓名:

");

SF("%s",stud[i].name);

PF("\n请输入修改后的学号:

");

SF("%d",&stud[i].num);

PF("\n请输入修改后的性别(F/M):

");

SF("\n%c",&stud[i].sex);

PF("\n请输入修改后的班级:

");

SF("%s",&stud[i].clas);

PF("\n请输入修改后的电话号码:

");

SF("%ld",&stud[i].telephone);

PF("\n请输入修改后的地址:

");

SF("%s",stud[i].addr);

PF("修改成功\n");

getchar();

}

if(k==0)

{

PF("找不到要修改的记录!

\n");

PF("按回车键返回:

");

getchar();

}

getchar();

PF("是否继续(Y/N)?

:

");

j=getchar();getchar();

if(j=='y'||j=='Y')gotofront5;

}

voidmain()

{

charj;

PF("\n\n\n\n\n\n\t\t\t欢迎使用学生学籍管理系统");

PF("\n\n\n\t\t\t\t制作人:

CC");

PF("\n\n\n\t\t\t\t2010年7月");

PF("\n\n\n\n\n\t按回车键进入主菜单:

");

getchar();

loop:

system("cls");

PF("\n");

PF("\t\t\t\t************\n");

PF("\t\t\t\t*主菜单*\n");

PF("\t\t\t\t************\n");

PF("\t\t1:

录入学生信息2:

删除学生信息\n\n");

PF("\t\t3:

查询学生信息4:

学生信息排序\n\n");

PF("\t\t5:

修改学生信息6:

保存退出系统\n\n");

PF("\t请选择[1/2/3/4/5/6]:

");

j=getchar();

if(j=='\n')gotoloop;/*返回主菜单*/

switch(j)

{

case'1':

add();gotoloop;/*返回主菜单*/

case'2':

del();gotoloop;

case'3':

find();gotoloop;

case'4':

arrange();gotoloop;

case'5':

change();gotoloop;

case'6':

{FILE*fp;

fp=fopen("student.dat","w");

for(i=0;i

{fwrite(&stud[i],sizeof(structaddress_book),1,fp);}

fclose(fp);exit(0);

}

default:

gotoloop;

}

}

2.2、界面形式

三、使用说明

学生学籍管理系统是针对学生信息的管理,主要功能是添加学生信息、删除学生信息、查询学生信息、学生信息排序、修改学生信息、保存信息。

用户打开程序,进入主界面(如图1)

(1)、按回车进入主菜单,列出各项功能

(2)、输入1进入录入界面,用户即可录入信息,当录入完即会提示“是否继续”,如果输入“Y”或者“y”,则会继续录入,若输入“N”或者“n”则会退出到主菜单。

(2)、在主菜单中,输入2,则会进入删除界面,输入要删除的学生的学号即可将该学生的信息删除。

(3)、在主菜单中,输入3,则会进入查询界面,输入要查的学生的学号即可查询到信息。

(4)、在主菜单中,输入4,则会进入进入学生信息排序,在这里会显示按学号由小到大排列出的所有学生的信息。

(5)、在主菜单中,输入5,则会进入学生信息修改界面,输入想修改学生的学号后,就可在这里可以对该学生信息进行修改。

(6)、在主菜单中,输入6,则会退出系统,并且系统会自动对信息进行保存。

四.编程中遇到的困难及解决方法

在学习C语言时,最初使用的是Microsoftvisual6++计算机编程软件,但我们是使用C++SourseFile编一个.c程序。

而老师则要求我们使用工程的MFCAppWizadexe编程。

这是c++里的知识。

尽管当时听老师讲c++与C语言有许多共同之处,但我们还是无从下手。

后来老师把程序发该我们,让我们用.C的编程就好多了。

在编程的过程中,经常会在语句结束时少“;”或者把中文输入的引号输入文件,很难发现错误所在。

在编程题时也出现了一些编译中的问题。

例如,在开始未加头文件#include导致有许多未定义的errors;在输入字符串时用到“%S”,使功能无法输出。

由于原来题目要求较少,题目较简单,在编译时,我先按照题目要求将它编写好,之后又给它添加了很多功能。

在帮同学修改程序的过程中,也遇到过一个问题。

在头文件后定义了子函数,可是之后忘了编写子函数,在纠错时,有的是不会发现错误的,但是连接过程中就会报告出错。

我觉得在以后的编程过程中,最好用什么函数写什么函数,后者在写完一个子函数后再在头文件底下声明。

 

五.总结心得及良好建议

C语言实习基本上由老师引导,自己很多都靠自学,不明白的问老师,自学能力得到了很大的培养。

在实习过程中,我感觉到一点,程序是不能一气呵成的。

至少一气呵成的程序不会尽善尽美。

程序编写要一步一步的完成。

首先,对于要编的程序要有一个总体思路。

要明确想要什么。

只要把思路理清楚了,程序就好编写了。

把程序分割成几个块,即多个函数,一块一块的编写。

然后将分散的函数用另外的函数连接起来或者用main函数连接。

到这一步,程序也就初步编成了,之后便是调试,检查错误。

最后我觉得还可以对于已经编写好的程序进行一些修改添加,使它更加人性化。

优化程序的阶段是很重要的。

在编写完一担挑游戏之后,我又编写了“八皇后”的程序,在“八皇后”的编写过程中,我用了完全不同于“一担挑”的编写思路。

我采用纯数学的方法编写,在数学上总结“八皇后”的规律,把规律转换为数学公式,用穷举法最终将问题解决。

我想不仅是“八皇后”这种数学问题可以用公式解决,其实很多问题应该也能用数学方式解决,但关键就是要找到那个数学模式。

数学跟C语言编程是可以很好的结合在一起的。

六.致谢

在C语言的实习过程中,让我巩固了C语言的基础知识,以前从来没有这样编过完整的程序,实习让我有这样的一个机会,自己独立编写程序。

我觉得自己说学的东西不多,但是可以将它们运用出来。

在实习过程中,首先我要感谢我的老师,一个是带我走进C语言大门的曹老师,因为她,我开始喜欢C语言,把所学知识掌握牢固。

同时,在这次实习中,邵老师对我的帮助对我最难忘。

题目本身是很简单的,在老师的教学风格影响下,我在编写完最初程序后,有自己添加了很多功能。

之后,在邵老师介绍下,我又完成了“八皇后”的程序编译。

“八皇后”让我感觉到原来程序可以更数学方法如此紧密的结合。

这是非常有意思的事情。

邵老师也给过我其他发展的建议,在此,我要感谢他。

最后,我还要感谢给我帮助的同学,在一些程序问题上,我和同学交流经验,学到了很多在书本上学不到的东西。

总之,我真诚的感谢在这次实习中给过我帮助的人!

七、参考文献

[1]谭浩强.编著.C程序设计.北京:

清华大学出版社,1991

[2]谭浩强.编著.C程序设计题解与上机指导.北京:

清华大学出版社,1992

[3]潭浩.田淑清编著.PASCAL语言程序设计〔第二版〕.北京:

高等教育出版社,1998

[4]HerbertSchildt.著戴健鹏译.C语言大全〔第二版〕.北京:

电子工业出版社,1994

 

 

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

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

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

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