陈晨C语言课程设计学生学籍管理系统.docx
《陈晨C语言课程设计学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《陈晨C语言课程设计学生学籍管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
![陈晨C语言课程设计学生学籍管理系统.docx](https://file1.bdocx.com/fileroot1/2022-12/30/8856f34a-227f-49df-942a-03d641698bd5/8856f34a-227f-49df-942a-03d641698bd51.gif)
陈晨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;iif(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;iif(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;kfor(i=0;iif(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;iif(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