学生管理系统论文(C语言)[全文]_c语言学生管理系统
学生管理系统论文(C语言)[全文]由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言学生管理系统”。
目 录
摘要..............................................................................................................................................3 第1章
绪论...................................................................................................................................4 第2章
系统分析...........................................................................................................................5
2.1设计目的.............................................................................................................................5 2.2需求分析.............................................................................................................................5 2.3、系统模块的实现..............................................................................................................5 第3章
数据库设计.......................................................................................................................6
3.1.设计原则........................................................................................................................6 3.2 数据库组成.....................................................................................................................7 3.1 面向对象数据库设计方法...............................................................................................7 第4章
系统设计...........................................................................................................................7
4.1 登录界面设计....................................................................................................................7 4.2菜单设计...........................................................................................................................11 第五章总结与展望.........................................................................................................................42 致
谢............................................................................................................................................42
摘要
随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。
学生管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我采用微软公司的Microsoft Visual C++ 6.0.中的c语言平台开发,后台建立在文件的读取基础上,尤其是数据窗口能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成高可行性系统。通过对计算机硬件和软件方面的了解,来论证本系统的解决方案。另外对学校等领域进行调研和分析,参照相关各种资料进行数据库编程实践。在指导老师的大力帮助下,基本上完成了设计任务书的要求。
用户模块和管理员模块。对于用户模块来说,只能浏览属于本用户(学生)的相关信息;而管理员模块,则可以添加、查询、修改、删除、查看所有学生的信息,并且可以对班级信息、课程信息、学生成绩和教师信息进行简单的管理。
关键字:MIS
数据库
C语言
模块
Microsoft Visual C++ 6.0.[1]
第1章
绪论
1.1设计思想
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生信息管理系统本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生信息管理系统
1.2 数据库种类选择
C语言中可以调用数据库,但是想到数据库的复杂性,我们采用C语言用的文件的读取,与存储,用文件把数据存入记事本用,在调用记事本用的数据,记事本就相当于一个数据库,完成数据的存储与读取。
1.3 程序语言简介
1、C语言把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。[15]
3、C语言功能齐全:具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。[15]
4、C语言适用范围大:适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,优于其它高级语言,有一些大型 应用软件也是用C语言编写的。[15]
5、C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前二名。
第2章 系统分析
2.1 设计目的作为C课程结课设计,验证自身的学习效果,同时希望利用所学的基本知识和技能,进行简单程序设计。希望通过项目实践,熟悉巩固所学知识,以使自身达到熟练掌握C的基本知识和技能,基本掌握面向过程程序开发的基本思路和方法,了解C语言的文件读取和储存开发基本知识,为今后的进一步深入学习,奠定基础。
2.2 需求分析
学生管理系统的开发目的是为了实现学生课程、学籍的信息化管理。本系统需要完成的功能有:学籍基本信息、班级信息、课程基本信息、学生成绩信息以及系统管理员才具有的教师管理和用户管理。
1.学籍基本信息:可对学生基本信息进行添加、删除、修改、查找等功能,学籍基本信息有:学号、姓名、性别、出生日期、民族、电话、政治面貌、健康情况、身高、专业、班级、籍贯、毕业学校、家庭住址、特长、备注等属性。2.班级信息:可对班级信息进行添加、删除、修改、查找和报表输出等功能,班级信息:班级名,年级、专业、辅导员、备注属性。
3.课程基本信息:可对课程进行添加、删除、修改、查找和报表输出等功能,课程基本信息:科目编号、课程名称、修课性质、考核性质、开课学期、开课单位、专业名称等属性。
4.学生成绩信息:可对每一个学生成绩信息进行添加、删除、修改、查找和报表输出等功能,学生成绩信息有:学号、专业名称、科目编号、成绩属性。5.系统用户表:可对系统设置权限,分为老师和学生权限,分别完成不同的工作,成绩属性有:用户名、密码、权限属性。
2.3 系统模块的实现
在系统中包括以下功能:学籍基本信息、班级信息、课程基本信息、学生成绩息系统用户表。系统各模块关系如图所示:
登录主界面 12班级基本信息3课程基本信息4学生成绩信息学籍信息 教师界面 10学生界面 输入信息显示信息查找信息删除信息添加信息修改信息退 出查找信息退
3.1 设计原则
1.密码管理:学生修改学生查询密码;教师可以修改查询密码。
2.每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。
3.学生根据自己的学号查询本人的成绩。
4.教师可以登记、修改、查询自己所讲授课程的学生的成绩、该课程的总分、平均成绩、各分数段成绩人数统计、不及格学生的名单、成绩等等。
第3章
数据库设计
出
3.2 数据库组成数据表3个:
学生表(5个字段: xh, xm, xb, csrq, bj),其中有各班学生的记录 课程表(4个字段:kch,kcm, js, xf),其中有课程的记录; 成绩表(3个字段:xh, kch, cj),其中有学生成绩的记录。登录表(2个字段,tt,)有用户名,密码
3.1 面向对象数据库设计方法
1)考虑对象的静态和动态属性
对象属性决定了数据库或包含具有相同类型对象的表的内容。
2)描述数据实体及其属性
包含所有静态属性的单个对象被称作数据实体。每个单独的数据实体必须唯一,这样可以与其他实体区分。包含在数据实体中的对象的性质被称作为属性。(attribute)3)用方法来说明对象的行为
关系数据库对象的行为决定了数据对象参与事务的特征。事务的发生对应着事件,通过使用响应事件的方法来实现事务。
4)在单个表中合并不同实体
可以在单个表中包含不同对象类型的说明,只要可以按照相同方式描述 属性和行为,以及区分不同对象类型即可。
第4章
系统设计
4.1 登录界面设计
(1)功能描述
登录界面是学生信息管理系统的入口,它可以使学生、教师和管理员以不同权限登录管理系统。其结构如图6所示:
图6 登录界面结构图
(2)源代码设计
登录界面是利用C技术的窗口创建工具生成登录窗体 void langing(){
int paword1,i,t,aa=1,bb,y;char teacher[2][5];system(“cls”);
printf(“nn”);printf(“*******************************欢迎进入学生管理系统*****************************”);while(1){
printf(“请选择你的身份:老师------1,学生---------0n”);
scanf(“%d”,&i);
if(i==0||i==1)
break;
printf(“输入的代号不正确,请重新输入n”);}
printf(“这是第1次输入n”);for(aa=1;;aa++)
{
printf(“请输入你的账号:”);
scanf(“%s”,teacher[0]);
printf(“请输入你的密码:”);for(y=0;y
{ teacher[1][y] = getch();/*逐次赋值,但不回显*/ if(teacher[1][y]=='b')//important,e { printf(“b”);putch(' ');printf(“b”);y--;continue;
} if(teacher[1][y] == 'x0d')/*回车则终止循环*/
{ teacher[1][y]=' ';break;
} printf(“*”);/*以星号代替字符个数*/
}
printf(“n”);load1(debark,fname2);
if(i==1&&strcmp(teacher[0],debark[0].paword)==0&&strcmp(teacher[1],debark[0].user)==0)
{
printf(“是否修改密码1------修改,任意键--------不修
改n”);
scanf(“%d”,&paword1);
if(paword1==1)
{
correct1();
}
printf(“请选择要完成的操作:1-学籍信息 2-班级基本信息 3-课程基本信息 4-学生成绩信息n”);scanf(“%d”,&differentiate);switch(differentiate)
{
case 1: menu();break;
case 2: menu2();break;
case 3: menu3();break;
case 4: menu4();break;
}
} else
{
for(t=1;t
if(i==0&&strcmp(teacher[0],debark[t].paword)==0&&strcmp(teacher[1],debark[t].user)==0)
{
printf(“是否修改密码1------修改,任意键--------不修改n”);scanf(“%d”,&paword1);
if(paword1==1)
{
correct1();
} printf(“请选择要完成的操作:1-学籍信息 2-班级基本信息 3-课程基本信息 4-学生成绩信息n”);scanf(“%d”,&differentiate);studentboundary();switch(differentiate)
{case 1: search(student,Global);break;
case 2: search2(ClaInfo,Global2);break;
case 3: search3(d,Global3);break;case 4: search4(StuGrade,Global4);break;
}
}
}
bb=aa+1;
if(aa==3)
{
printf(“输入错误,将退出程序n”);
exit(0);
} printf(“输入有错,请重新输入,超过三次将退出,这是第%d次输入n”,bb);
} } void main(){ langing();} 4.2菜单设计
登陆成功之后就开始进入要查找的信息的窗口,分为学籍信息、班级基本信息、课程基本信息、学生成绩信息窗口,选过之后就开始进入菜单窗口,分为8个选项,分别完成为输入信息、显示、查找信息、删除、添加、修改、返回主菜单、退出。
截屏如下:
代码如下:
void menu()//菜单函数 {
void langing();char n;printf(“请按任意键进入系统。n”);getch();while(1){ treachboundary();scanf(“%c”,&n);if(n>='1'&&n
{ switch(n)
{
case '1': import(student,30);break;
case '2': display(student);break;
case '3':search(student,Global);break;
case '4':del(student,Global);break;
case '5':insert(student,20);break;
case '6':correct();break;
case '7':langing();break;
case '8':out();break;
}
} } }
void menu2(){ void langing();char n;printf(“请按任意键进入系统。n”);getch();while(1){ treachboundary();scanf(“%c”,&n);if(n>='1'&&n
{
case '1': import2(ClaInfo,30);break;
case '2': display2(ClaInfo);break;
case '3':search2(ClaInfo,Global2);break;
case '4':del2(ClaInfo,Global2);break;
case '5':insert2(ClaInfo,20);break;
case '6':correct2();break;
case '7':langing();break;
case '8':out();break;
} } } }
void menu3(){ void langing();char n;printf(“请按任意键进入系统。n”);getch();while(1){ treachboundary();scanf(“%c”,&n);if(n>='1'&&n
{
case '1': import3(d,30);break;
case '2': display3(d);break;
case '3':search3(d,Global3);break;
case '4':del3(d,Global3);break;
case '5':insert3(d,20);break;
case '6':correct3();break;case '7':langing();break;
case '8':out();break;
} } } }
void menu4(){ void langing();char n;printf(“请按任意键进入系统。n”);getch();while(1){ treachboundary();scanf(“%c”,&n);
if(n>='1'&&n
{
case '1': import4(StuGrade,30);break;
case '2': display4(StuGrade);break;
case '3':search4(StuGrade,Global4);break;
case '4':del4(StuGrade,Global4);break;
case '5':insert4(StuGrade,20);break;
case '6':correct4();break;
case '7':langing();break;
case '8':out();break;
} } } } 下面的输入信息、显示、查找信息、删除、添加、修改、返回主菜单、退出的代码如下
void save(aa f[],char fn[100])//保存数据 { int i;FILE *fp;if((fp=fopen(fn,“wb”))==NULL){
printf(“文件打开失败!系统将结束,欢迎再次使用n”);
exit(0);} for(i=0;i
void save1(bb f[],char fn[100])//保存数据 { int i;FILE *fp;if((fp=fopen(fn,“wb”))==NULL){
printf(“文件打开失败!系统将结束,欢迎再次使用n”);
exit(0);}
for(i=0;i
void save2(cc f[],char fn[100])//保存数据 { int i;FILE *fp;if((fp=fopen(fn,“wb”))==NULL){
printf(“文件打开失败!系统将结束,欢迎再次使用n”);
exit(0);} for(i=0;i
void save3(dd f[],char fn[100])//保存数据 { int i;FILE *fp;if((fp=fopen(fn,“wb”))==NULL){
printf(“文件打开失败!系统将结束,欢迎再次使用n”);
exit(0);} for(i=0;i
void save4(ee f[],char fn[100])//保存数据 {
int i;FILE *fp;if((fp=fopen(fn,“wb”))==NULL){
printf(“文件打开失败!系统将结束,欢迎再次使用n”);
exit(0);} for(i=0;i
/////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////// //从文件中提取数据
void load(aa f[],char fn[100])//下载数据 { int i=0;FILE *fp;
if((fp=fopen(fn,“rb”))==NULL){ printf(“文件打开失败!系统将结束,欢迎再次使用n”);exit(0);} for(i=0;i
//3.读取size个字节的次数(count)// 4.提供数据的文件指针(stream)
{ fclose(fp);Global=i;return;} fclose(fp);
}
void load1(bb f[],char fn[100])//下载数据 { int i=0;FILE *fp;
if((fp=fopen(fn,“rb”))==NULL){ printf(“文件打开失败!系统将结束,欢迎再次使用n”);exit(0);} for(i=0;i
{ fclose(fp);Global1=i;return;} fclose(fp);}
void load2(cc f[],char fn[100])//下载数据 { int i=0;FILE *fp;
if((fp=fopen(fn,“rb”))==NULL){ printf(“文件打开失败!系统将结束,欢迎再次使用n”);exit(0);} for(i=0;i
//3.读取size个字节的次数(count)// 4.提供数据的文件指针(stream)
{ fclose(fp);Global2=i;return;
} fclose(fp);}
void load3(dd f[],char fn[100])//下载数据 { int i=0;FILE *fp;
if((fp=fopen(fn,“rb”))==NULL){ printf(“文件打开失败!系统将结束,欢迎再次使用n”);exit(0);} for(i=0;i
{ fclose(fp);Global3=i;return;} fclose(fp);}
void load4(ee f[],char fn[100])//下载数据 { int i=0;FILE *fp;
if((fp=fopen(fn,“rb”))==NULL){ printf(“文件打开失败!系统将结束,欢迎再次使用n”);exit(0);} for(i=0;i
//3.读取size个字节的次数(count)// 4.提供数据的文件指针(stream)
{ fclose(fp);
Global4=i;return;} fclose(fp);}
//////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////// //输出到显示器上
void shuchu(aa student[]){ int i,c;for(i=0;i
%sn“, student[i].ID,student[i].name,student[i].sex, student[i].birthdate ,student[i].notion, student[i].telephone,student[i].politics,student[i].healthy, student[i].height,student[i].profeion, student[i].claes,student[i].native,student[i].school,student[i].home,student[i].speciality,student[i].remark);
} }
void shuchu2(cc ClaInfo[]){ int i,c;for(i=0;i
%sn”, ClaInfo[i].cla_name,ClaInfo[i].grade,ClaInfo[i].major, ClaInfo[i].instructor,ClaInfo[i].remark);
} }
void shuchu3(dd a[]){ int i,c;for(i=0;i
} }
void shuchu4(ee a[]){ int i,c;for(i=0;i
} }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //把数据输入到文件中
void import(aa f[],int n)//输出 { int number,i,c,t;printf(“要输入的信息的个数n”);scanf(“%d”,&number);
printf(“(注:输入汉字用CTrl+空格)n”);for(i=0;i
printf(“请输入第%d个学籍的信息n”,t);printf(“学号: ”);
scanf(“%s”,&student[i].ID);
printf(“姓名: ”);
scanf(“%s”,&student[i].name);
printf(“性别: ”);
scanf(“%s”,&student[i].sex);
printf(“出生日期: ”);
scanf(“%s”,&student[i].birthdate);
printf(“民族: ”);
scanf(“%s”,&student[i].notion);
printf(“电话: ”);
scanf(“%s”,&student[i].telephone);
printf(“政治面貌: ”);
scanf(“%s”,&student[i].politics);
printf(“健康情况: ”);
scanf(“%s”,&student[i].healthy);
printf(“身高: ”);
scanf(“%s”,&student[i].height);
printf(“专业: ”);
scanf(“%s”,&student[i].profeion);
printf(“班级: ”);
scanf(“%s”,&student[i].claes);
printf(“籍贯: ”);
scanf(“%s”,&student[i].native);
printf(“毕业学校: ”);
scanf(“%s”,&student[i].school);
printf(“家庭住址: ”);
scanf(“%s”,&student[i].home);
printf(“特长: ”);
scanf(“%s”,&student[i].speciality);
printf(“备注: ”);
scanf(“%s”,&student[i].remark);}
printf(“是否保存:是------Y,不保存任意键n”);
Global=i;c=getchar();c=getchar();if(c=='Y')
{
printf(“您的信息将保存到名为friend的文件中n”);save(student,fname1);
} }
void import2(cc f[],int n)//输出 { int number,i,c,t;
printf(“要输入的信息的个数n”);scanf(“%d”,&number);printf(“(注:输入汉字用CTrl+空格)n”);for(i=0;i
printf(“请输入第%d个班级的信息n”,t);printf(“班级名: ”);
scanf(“%s”,&ClaInfo[i].cla_name);
printf(“年级: ”);
scanf(“%s”,&ClaInfo[i].grade);
printf(“专业: ”);
scanf(“%s”,&ClaInfo[i].major);
printf(“辅导员: ”);
scanf(“%s”,&ClaInfo[i].instructor);
printf(“备注: ”);
scanf(“%s”,&ClaInfo[i].remark);}
printf(“是否保存:是------Y,不保存任意键n”);
Global2=i;c=getchar();c=getchar();if(c=='Y')
{
printf(“您的信息将保存到名为friend的文件中n”);save2(ClaInfo,fname3);
} }
void import3(dd f[],int n)//输出 { int number,i,c,t;printf(“要输入的信息的个数n”);scanf(“%d”,&number);printf(“(注:输入汉字用CTrl+空格)n”);for(i=0;i
printf(“请输入第%d个课程的信息n”,t);printf(“科目编号: ”);
scanf(“%s”,&d[i].a1);
printf(“课程名称: ”);
scanf(“%s”,&d[i].a2);
printf(“修课性质: ”);
scanf(“%s”,&d[i].a3);
printf(“考核性质: ”);
scanf(“%s”,&d[i].a4);
printf(“开课学期: ”);
scanf(“%s”,&d[i].a5);printf(“开课单位: ”);
scanf(“%s”,&d[i].a6);
printf(“专业名称: ”);
scanf(“%s”,&d[i].a7);}
printf(“是否保存:是------Y,不保存任意键n”);
Global3=i;c=getchar();c=getchar();if(c=='Y')
{
printf(“您的信息将保存到名为friend的文件中n”);save3(d,fname4);
} }
void import4(ee f[],int n)//输出 { int number,i,c,t;printf(“要输入的信息的个数n”);scanf(“%d”,&number);printf(“(注:输入汉字用CTrl+空格)n”);for(i=0;i
printf(“请输入第%d个学生成绩的信息n”,t);printf(“学号: ”);
scanf(“%s”,&StuGrade[i].ID_1);
printf(“专业名称: ”);
scanf(“%s”,&StuGrade[i].a7_1);
printf(“科目编号: ”);
scanf(“%s”,&StuGrade[i].a1_1);
printf(“成绩: ”);
scanf(“%s”,&StuGrade[i].result);}
printf(“是否保存:是------Y,不保存任意键n”);
Global4=i;c=getchar();c=getchar();if(c=='Y')
{
printf(“您的信息将保存到名为friend的文件中n”);save4(StuGrade,fname5);
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////// //输入数据
void display(aa f[])//输出数据 { load(student,fname1);shuchu(student);getch();}
void display2(cc f[])//输出数据 { load2(ClaInfo,fname3);shuchu2(ClaInfo);getch();}
void display3(dd f[])//输出数据 { load3(d,fname4);shuchu3(d);getch();}
void display4(dd f[])//输出数据 { load4(StuGrade,fname5);shuchu4(StuGrade);getch();}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //查找
void search(aa f[],int n)//查找
{ int c;load(student,fname1);while(1){
printf(“请输入1-----查找,2------退出:n”);scanf(“%d”,&c);
switch(c)
{ case 1:
{ int i,m=0;
char one[21];
printf(“请输入要查找的学号:n”);scanf(“%s”,one);for(i=0;i
{ if(strcmp(one,f[i].ID)==0)
{ printf(“ 学号:%sn 姓名: %sn 性别: %sn 出生日期: %sn 民族: %sn 电话: %sn 政治面貌: %sn 健康情况: %sn 身高: %sn 专业: %sn 班级: %sn 籍贯: %sn 毕业学校: %sn 家庭住址: %sn 特长: %sn 备注:
%sn”, student[i].ID,student[i].name,student[i].sex, student[i].birthdate ,student[i].notion, student[i].telephone,student[i].politics,student[i].healthy, student[i].height,student[i].profeion, student[i].claes,student[i].native,student[i].school,student[i].home,student[i].speciality,student[i].remark);
}
}
} break;case 2: return;
} } }
void search2(cc f[],int n)//查找 { int c;load2(ClaInfo,fname3);while(1){
printf(“请输入1-----查找,2------退出:n”);scanf(“%d”,&c);
switch(c)
{ case 1:
{ int i,m=0;
char one[21];printf(“请输入要查找的班级名:n”);scanf(“%s”,one);for(i=0;i
{ if(strcmp(one,f[i].cla_name)==0)
{ printf(“ 班级名:%sn 年级: %sn 专业: %sn 辅导员: %sn 备注:
%sn”, ClaInfo[i].cla_name,ClaInfo[i].grade,ClaInfo[i].major, ClaInfo[i].instructor,ClaInfo[i].remark);
}
}
} break;
case 2: return;
} } }
void search3(dd f[],int n)//查找 { int c;load3(d,fname4);while(1){
printf(“请输入1-----查找,2------退出:n”);scanf(“%d”,&c);
switch(c)
{ case 1:
{ int i,m=0;
char one[21];printf(“请输入要查找的科目编号:n”);scanf(“%s”,one);for(i=0;i
{ if(strcmp(one,f[i].a1)==0)
{ printf(“ 科目编号:%sn 课程名称: %sn 修课性质: %sn 考核性质: %sn 开课学期: %sn 开课单位: %sn 专业名称: %sn”,[1]
d[i].a1,d[i].a2,d[i].a3,d[i].a4,d[i].a5,d[i].a6,d[i].a7);
}
}
} break;
case 2: return;
} } }
void search4(ee f[],int n)//查找 { int c;load4(StuGrade,fname5);while(1){
printf(“请输入1-----查找,2------返回:n”);
scanf(“%d”,&c);
switch(c)
{ case 1:
{ int i,m=0;
char one[21];
printf(“请输入要查找的学号:n”);scanf(“%s”,one);for(i=0;i
{ if(strcmp(one,f[i].ID_1)==0)
{
printf(“ 学号:%sn 专业名称: %sn 科目编号: %sn 成绩: %sn ”, f[i].ID_1,f[i].a7_1,f[i].a1_1,f[i].result);
}
}
} break;
case 2: return;
} } }
////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////// //删除
void del(aa a[],int n)//删除 { int i,j=0,m=0,x;char one[20];char c[2];load(a,fname1);x=Global;printf(“请输入要删除的人的学号:”);scanf(“%s”,one);for(i=0;i
void del2(cc a[],int n)//删除 { int i,j=0,m=0,x;char one[20];char c[2];load2(a,fname3);x=Global2;printf(“请输入要删除的人的班级名:”);
scanf(“%s”,one);for(i=0;i
void del3(dd a[],int n)//删除 { int i,j=0,m=0,x;char one[20];char c[2];load3(a,fname4);x=Global3;printf(“请输入要删除的人的课程信息:”);scanf(“%s”,one);for(i=0;i
{ m=1;Global3--;} else if(!m&&i==(Global-1)){ printf(“记录中没有此人!n”);printf(“按任意键返回”);getch();return;} } printf(“是否保存删除后的文件?(是-Y,否-其他键)”);scanf(“%s”,c);if(strcmp(c,“Y”)==0)save3(a,fname4);printf(“按任意键返回”);getch();}
void del4(ee a[],int n)//删除 { int i,j=0,m=0,x;char one[20];char c[2];load4(a,fname5);x=Global4;printf(“请输入要删除的人的学号:”);scanf(“%s”,one);for(i=0;i
} } printf(“是否保存删除后的文件?(是-Y,否-其他键)”);scanf(“%s”,c);if(strcmp(c,“Y”)==0)save4(a,fname5);printf(“按任意键返回”);getch();}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //添加
void insert(aa a[],int n)//添加 { int i;char c;load(a,fname1);printf(“请输入要插入的数据(输入'E'结束):n”);for(i=Global;i
scanf(“%s”,&a[i].ID);
if((strcmp(a[i].ID,“E”))==0)break;
printf(“姓名: ”);
scanf(“%s”,&a[i].name);
printf(“性别: ”);
scanf(“%s”,&a[i].sex);
printf(“出生日期: ”);
scanf(“%s”,&a[i].birthdate);
printf(“民族: ”);
scanf(“%s”,&a[i].notion);
printf(“电话: ”);
scanf(“%s”,&a[i].telephone);
printf(“政治面貌: ”);
scanf(“%s”,&a[i].politics);
printf(“健康情况: ”);
scanf(“%s”,&a[i].healthy);
printf(“身高: ”);
scanf(“%s”,&a[i].height);
printf(“专业: ”);
scanf(“%s”,&a[i].profeion);
printf(“班级: ”);
scanf(“%s”,&a[i].claes);
printf(“籍贯: ”);
scanf(“%s”,&a[i].native);
printf(“毕业学校: ”);
scanf(“%s”,&a[i].school);
printf(“家庭住址: ”);
scanf(“%s”,&a[i].home);
printf(“特长: ”);
scanf(“%s”,&a[i].speciality);
printf(“备注: ”);
scanf(“%s”,&a[i].remark);
printf(“----------------n”);} printf(“是否保存?(是-Y,不是-其他键)”);scanf(“%c”,&c);scanf(“%c”,&c);Global=i;if(c=='Y')save(a,fname1);printf(“按任意键返回”);getch();}
void insert2(cc a[],int n)//添加 { int i;char c;load2(a,fname3);printf(“请输入要插入的数据(输入'E'结束):n”);for(i=Global2;i
scanf(“%s”,&a[i].cla_name);
if((strcmp(a[i].cla_name,“E”))==0)break;
printf(“年级: ”);
scanf(“%s”,&a[i].grade);
printf(“专业: ”);
scanf(“%s”,&a[i].major);
printf(“辅导员: ”);
scanf(“%s”,&a[i].instructor);
printf(“备注: ”);
scanf(“%s”,&a[i].remark);
printf(“------------------------------[1]
-----------------n”);} printf(“是否保存?(是-Y,不是-其他键)”);scanf(“%c”,&c);scanf(“%c”,&c);Global2=i;if(c=='Y')save2(a,fname3);printf(“按任意键返回”);getch();}
void insert3(dd a[],int n)//添加 { int i;char c;load3(a,fname4);printf(“请输入要插入的数据(输入'E'结束):n”);for(i=Global3;i
scanf(“%s”,&a[i].a1);
if((strcmp(a[i].a1,“E”))==0)break;
printf(“课程名称: ”);
scanf(“%s”,&a[i].a2);
printf(“修课性质: ”);
scanf(“%s”,&a[i].a3);
printf(“考核性质: ”);
scanf(“%s”,&a[i].a4);
printf(“开课学期: ”);
scanf(“%s”,&a[i].a5);
printf(“开课单位: ”);
scanf(“%s”,&a[i].a6);
printf(“专业名称: ”);
scanf(“%s”,&a[i].a7);
printf(“----------------n”);} printf(“是否保存?(是-Y,不是-其他键)”);scanf(“%c”,&c);scanf(“%c”,&c);Global3=i;if(c=='Y')save3(a,fname4);printf(“按任意键返回”);getch();
}
void insert4(ee a[],int n)//添加 { int i;char c;load4(a,fname5);printf(“请输入要插入的数据(输入'E'结束):n”);for(i=Global4;i
scanf(“%s”,&a[i].ID_1);
if((strcmp(a[i].ID_1,“E”))==0)break;
printf(“专业名称: ”);
scanf(“%s”,&a[i].a7_1);
printf(“科目编号: ”);
scanf(“%s”,&a[i].a1_1);
printf(“成绩: ”);
scanf(“%s”,&a[i].result);
printf(“----------------n”);} printf(“是否保存?(是-Y,不是-其他键)”);scanf(“%c”,&c);scanf(“%c”,&c);Global4=i;if(c=='Y')save4(a,fname5);printf(“按任意键返回”);getch();}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //修改函数
void correct1()//修改函数 { char c;int i,m=0;bb change;load1(debark,fname2);for(i=0;i
{
printf(“ 请输入修改后的内容 n”);
printf(“账号: ”);
scanf(“%s”, change.user);
printf(“密码: ”);
scanf(“%s”, change.paword);
m=1;
debark[i]=change;
printf(“是否保存修改?(是-Y,不是-其他键)”);
scanf(“%c”,&c);
scanf(“%c”,&c);
if(c=='Y')
{
save1(debark,fname2);
return;
}
else
{ printf(“密码不被保存!!n”);
return;
} } }
void correct()//修改函数 { char one[20],c;int i,m=0;aa change;load(student,fname1);shuchu(student);printf(“请输入要修改的人的学号(不超过20字符):”);gets(one);scanf(“%s”,one);for(i=0;i
{
printf(“ 请输入修改后的内容 n”);
printf(“学号: ”);
scanf(“%s”,&change.ID);
printf(“姓名: ”);
scanf(“%s”,&change.name);
printf(“性别: ”);
scanf(“%s”,&change.sex);
printf(“出生日期: ”);
scanf(“%s”,&change.birthdate);
printf(“民族: ”);
scanf(“%s”,&change.notion);
printf(“电话: ”);
scanf(“%s”,&change.telephone);
printf(“政治面貌: ”);
scanf(“%s”,&change.politics);
printf(“健康情况: ”);
scanf(“%s”,&change.healthy);
printf(“身高: ”);
scanf(“%s”,&change.height);
printf(“专业: ”);
scanf(“%s”,&change.profeion);
printf(“班级: ”);
scanf(“%s”,&change.claes);
printf(“籍贯: ”);
scanf(“%s”,&change.native);
printf(“毕业学校: ”);
scanf(“%s”,&change.school);
printf(“家庭住址: ”);
scanf(“%s”,&change.home);
printf(“特长: ”);
scanf(“%s”,&change.speciality);
printf(“备注: ”);
scanf(“%s”,&change.remark);
m=1;
student[i]=change;
}
else if(!m&&i==(Global-1))
{ printf(“记录中没有此人!n”);printf(“按任意键返回”);getch();return;
}
printf(“是否保存修改?(是-Y,不是-其他键)”);
scanf(“%c ”,&c);
scanf(“%c”,&c);if(c=='Y')save(student,fname1);printf(“按任意键返回”);getch();}
void correct2()//修改函数 { char one[20],c;int i,m=0;cc change;load2(ClaInfo,fname3);shuchu2(ClaInfo);printf(“请输入要修改的人的班级(不超过20字符):”);gets(one);scanf(“%s”,one);for(i=0;i
scanf(“%s”,&change.cla_name);
printf(“年级: ”);
scanf(“%s”,&change.grade);
printf(“专业: ”);
scanf(“%s”,&change.major);
printf(“辅导员: ”);
scanf(“%s”,&change.instructor);
printf(“备注: ”);
scanf(“%s”,&change.remark);
m=1;
ClaInfo[i]=change;}
else if(!m&&i==(Global-1)){ printf(“记录中没有此人!n”);printf(“按任意键返回”);getch();return;} printf(“是否保存修改?(是-Y,不是-其他键)”);scanf(“%c ”,&c);scanf(“%c”,&c);if(c=='Y')save2(ClaInfo,fname3);printf(“按任意键返回”);getch();}
void correct3()//修改函数 {
char one[20],c;int i,m=0;dd change;load3(d,fname4);shuchu3(d);printf(“请输入要修改的人的课程信息(不超过20字符):”);gets(one);scanf(“%s”,one);for(i=0;i
void correct4()//修改函数
{ char one[20],c;int i,m=0;ee change;load4(StuGrade,fname5);shuchu4(StuGrade);printf(“请输入要修改的人的学号(不超过20字符):”);gets(one);scanf(“%s”,one);for(i=0;i
///////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////// //退出
void out()//退出 { char c;printf(“真的要退出吗?(是-Y,不是-其他键:)”);c=getchar();if((c=getchar())=='Y'){ printf(“感谢您的支持!请多提宝贵意见!再见!n”);exit(0);} else return;} 定义的字符串代码为 #include #include #include #include int Global,Global1,Global2,differentiate,Global3,Global4;char fname1[100]=“friend.txt”;char fname2[100]=“friend1.txt”;char fname3[100]=“friend2.txt”;char fname4[100]=“friend3.txt”;char fname5[100]=“friend4.txt”;char fname[100] =“null”;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////// //结构体
typedef struct { char ID[20];//学号
char name[20];//姓名
char sex[20];//性别
char birthdate[20];//出生日期
char notion[20];//民族
char telephone[20];//电话
char politics[20];//政治面貌
char healthy[20];//健康情况
char height[20];//身高
char profeion[20];//专业
char claes[20];//班级
char native[20];//籍贯
char school[20];//毕业学校
char home[20];//家庭住址
char speciality[20];//特长
char remark[20];//备注 } aa;aa student[30];//学生的信息个数 typedef struct { char user[20];//用户名 char paword[20];//密码 } bb;bb debark[6]={{“001”,“001”},{“002”,“002”},{“003”,“003”},{“004”,“004”},{“005”,“005”},{“006”,“006”}};typedef struct { char cla_name[20];//班级名 char grade[20];//年级 char major[20];//专业 char instructor[20];//辅导员 char remark[20];//备注 } cc;cc ClaInfo[30];typedef struct { char a1[20];//科目编号 char a2[20];//课程名称 char a3[20];//修课性质 char a4[20];//考核性质 char a5[20];//开课学期 char a6[20];//开课单位 char a7[20];//专业名称 } dd;dd d[30];typedef struct { char ID_1[20];//学号 char a7_1[20];//专业名称 char a1_1[20];//科目编号 char result[20];//成绩 } ee;ee StuGrade[30];
第五章 总结与展望
学生信息管理系统(课程设置和打印统计)的完成,它在审核这一功能中能够对不同情况的资料进行设置和打印,针对需要的信息进行设置和打印。在本系统的开发过程中,由于本人是初次开发软件,在知识、经验方面都存在着不足。另外,在整个开发的过程中,时间也比较仓促。因此,该系统必然会存在一些缺陷和不足。因为对学生管理的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。虽然网络在学生管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
这个系统的主要不足存在于3个方面:第一、在于性能测试方面系统做好以后需要很多方面的测试但是由于本设计时一个人独立完成的能力有限所有只进行了负荷测试和压力测试。第二、安全性能方面:学生管理系统应该有一个很好的安全保密性能,登陆页面应该有验证码的输入功能由于时间的关系本设计没有体现出来这个功能。第三、数据库方面的信息欠缺、数据库应该全部显示每个专业,每个年级、班级、以及个人的全方面的信息但是本设计没有完整的把所有功能全部实现。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了的项本过程,了解了的基本知识巩固了我对C的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
致 谢
作为河南化工学院的学生,我倍感荣幸,也非常珍惜这次难得的学习机会。在学习过程中,我有幸得到了尊敬的邵华老师的精心指导和关怀。尤其在论文辅导过程中,邵老师对我要求严格,他以丰富的教育技术理论与实践经验给了我很多启发,在论文选题上和撰写中悉心指导,其严谨治学的作风给我很大的影响。在此,我表达对导师的深深感激之情!其次,感谢学校为我毕业论文的完成提供场所给予大力的支持。再次,感谢我的同学给予我的帮助、鼓励和支持。最后,我还要感谢我的家人在这些年来给予我的大力支持,他们是我精神和情感的寄托,是他们让我在无助中能够找到奋斗的动力,让我在迷茫中能够找到前进的方向,谢谢你们!
[1] Benjamin B.Bederson and Jon Meyer and Lance Good, Jazz: an extensible zoomable user interface graphics toolkit in Java, {UIST}, 2000, pp,171-180 [2] The Evolution of Microsoft SQL Server: 1989 to 2000 [3] Kalen Delaney(2001).“Inside SQL Server 2000”.Microsoft Pre.[4]C语言程序设计 谭浩强 清华大学出版社 1999年
[5] 安全信息管理和安全管理信息系统[J].工业安全与防尘 谢贤平,李怀宇..1995,21 [6]数据结构 严蔚敏 吴伟民著 清华大学出版社 1990年