班级档案管理系统.docx
- 文档编号:30728330
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:28
- 大小:104.08KB
班级档案管理系统.docx
《班级档案管理系统.docx》由会员分享,可在线阅读,更多相关《班级档案管理系统.docx(28页珍藏版)》请在冰豆网上搜索。
班级档案管理系统
应用技术学院
课程设计报告
课程名称C语言课程设计
课题名称班级档案管理系统
专业机械设计
班级0781
学号200713090108
姓名谭文敏
指导教师王颖
2008年7月8日
湖南工程学院
课程设计任务书
课程名称C语言课程设计
课题班级档案管理
专业班级机械设计
学生姓名谭文敏
学号200713090108
指导老师王颖
审批
任务书下达日期:
2008年6月20日
任务书完成日期:
2008年7月8日
C语言程序课程设计任务书
一课程设计性质与目的:
C语言程序设计是一门实践性很强的课程。
C程序课程设计是学习C语言
程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所
学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程
序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识
,提高动手操作能力及分析问题和解决问题的能力。
二课程设计包含的知识点:
1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语
句。
2.掌握数组的基本概念。
掌握一维数组与二维数组的使用,掌握字符数组与
字符串的关系。
3.熟练掌握指针、地址、指针类型的概念及其使用。
掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系
4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。
5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。
结构体与指针、函数的关系。
三课程设计的要求:
1.学生从以下八个题目中任意选择并完成一个题目。
要求每个学生能够独立思考
并按时完成本课程设计所包含的所有内容。
2.要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务,分析过程和算法,给出程序流程图和全部源程序,并做出总结。
3.设计报告的完整格式应包含以下内容:
a)设计总体思路
b)主程序及各个模块说明
c)总体模块框图
d)各个程序模块说明
e)程序流程图
f)程序清单
g)总结与体会
四.时间安排:
时间
上午
下午
晚上
1—4节(四学时)
5—6节(四学时)
6:
00—10:
00(四学时)
6月30号
布置课题,
7月1号
上机编程
7月2号
上机编程
7月3号
7月4号
上机编程
五.课程设计考核办法:
根据学生所完成课程设计报告的完整性,正确性,和算法实现的质量,分为优,良,中,及格和不及格五个等级。
六.课程设计指导老师:
王颖
七.课程设计题目:
设计课题二:
班级档案管理系统
1、问题描述:
班级档案管理系统
2、功能描述:
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除等操作的管理。
3、算法提示:
数据结构:
结构体类型数组
数据库结构:
下表构成该系统的基本数据库
姓名
学号
性别
年龄
备注
char
Char
char
int
char
4、测试数据:
学生人数N=10,基本信息包括:
学号,姓名,班级,年龄,电话号码,QQ号、电子邮件、寝室号等。
5、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
课程设计主文档
一.课程设计题目:
班级档案管理系统
二.内容摘要:
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除等操作的管理。
三.关键字:
函数数组结构体文件循环语句多分支结构
四.总体设计方案的选定:
程序的功能要求:
1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
2)本系统显示这样的菜单:
--------班级档案管理系统--------
学生基本信息录入
学生基本信息显示
学生基本信息删除
学生基本信息修改
学生基本信息查找
退出系统
课程设计报告规范
一、需求分析
1、程序的功能。
2、输入输出的要求。
二、概要设计
1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。
2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
三、详细设计
1、采用C语言定义相关的数据类型。
2、写出各模块的类C码算法。
3、画出函数的调用关系图。
四、调试分析以及设计体会
1、测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。
2、程序调试中遇到的问题以及解决问题的方法。
3、课程设计过程经验教训、心得体会。
五、使用说明
用户使用手册:
说明如何使用你编写的程序,详细列出每一步的操作步骤。
六、附录
1、参考书目
2、源程序清单(带注释)
附1:
●课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
●正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
●正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
●正文总字数要求在5000字以上(不含程序原代码)
前言
《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
一、目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;
7.务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;
8.008年7月4日之前,请各班班长收齐课程设计报告和源程序软盘交王颖老师,联系电话:
8883238。
三、进度安排
第19周 星期一:
总体设计,详细设计
星期二:
编程,上机调试、修改程序
星期三:
上机调试、完善程序
星期四:
完善程序
星期五:
答辩
第20周星期二0;/:
撰写课程设计报告
目录
前言4
目的4
设计要求4
进度安排5
课程设计报告规范6
需求分析6
概要设计6
详细设计6
调试分析以及设计体会6
使用说明6
附录6
C语言程序课程设计任务书8
课程设计性质与目的8
课程设计包含的知识点8
课程设计的要求8
时间安排9
课程设计考核办法9
课程设计指导老师9
课程设计题目9
问题描述………………………………..…………………………………………10
功能描述…………………………………………………………………………..10
算法提示…………………………………………………………………………..10
测试数据…………………………………………………………………………..10
其它………………………………………………………………………………..10
课程设计主文档11
课程设计题目11
内容摘要11
关键字11
总体设计方案的选定11
程序的模块组成以及各个函数的功能12
模块组成12
各函数的主要功能12
详细设计12
相关的数据类型13
函数间的调用关系图13
函数的下属子功能函数及其调用示意图13
函数及其调用示意图13
流程图15
源程序清单错误!
未定义书签。
心得体会25
参考资料28
应用技术学院课程设计评分表28
程序的模块组成以及各个函数的功能:
1.程序的模块组成:
主菜单函数、主函数:
main();
自定义子菜单函数:
voidadd();voiddisplay();voidfind();
voiddelete();voidmodify();
2.各函数的主要功能:
主函数:
显示主菜单;
自定义子菜单函数:
显示子菜单;
详细设计
1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
2)本系统显示这样的菜单:
--------班级档案管理系统--------
学生基本信息录入
学生基本信息显示
学生基本信息删除
学生基本信息修改
学生基本信息查找
退出系统
请选择系统功能项(0…5):
3)执行一个具体的功能之后,程序将重新显示菜单。
相关的数据类型:
数据结构:
结构体类型数组
数据库结构:
该系统的基本数据库如下:
姓名学号性别年龄备注
Charcharcharintchar
*函数间的调用关系图
⑴main函数的下属子功能函数及其调用示意图
main()
进入系统
退出系统
⑵子功能函数及其调用示意图
按学号查找
信息查找
备注
性别
年龄
姓名
学号
信息输入
按姓名查找
五、流程图:
六.源程序清单:
#include
#include
#include
FILE*fp;
structstudent/*定义一个结构体student*/
{
charnumber[5];/*结构体中包含了学号、姓名、性别、年龄、备注5个成员*/
charname[15];
charsex[10];
intage;
charzb[100];
};
voidadd();/*设置了输入、显示、查找、删除、修改5个函数*/
voiddisplay();
voidfind();
voiddelete();
voidmodify();
main()
{
charm;
for(;;)
{
clrscr();
printf("\n\tMENU\t");/*显示主菜单*/
printf("\n\n");
printf("\n\n\t*1*.addtheinformationofthestudents\n");/*主菜单包括输入、显示、修改、删除、查找*/
printf("\t*2*.showtheinformationofthestudents\n");
printf("\t*3*.modifytheinformationofthestudents\n");
printf("\t*4*.deletetheinformationofthestudents\n");
printf("\t*5*.searchtheinformationofthestudents\n");
printf("\t*0*.exittheinformationofthestudents\n");/*按0退出系统*/
printf("pleasechoose1,2,3,4,5,0toenter\n");/*请选择按键*/
printf("\npleasepressthenumber:
");
m=getchar();
if(m>='0'&&m<='5')
{
switch(m)/*按键进入系统*/
{
case'1':
add();/*1-输入*/
break;
case'2':
display();/*2-显示*/
break;
case'3':
modify();/*3-修改*/
break;
case'4':
delete();/*4-删除*/
break;
case'5':
find();/*5-查找*/
break;
case'0':
exit(0);/*0-推出*/
}
printf("pleasepressanykeytoquit!
");/*按其他键停止*/
getchar();
getchar();
}
else
{
printf("\n\nError!
!
");
getchar();
getchar();
}
}
}
voidadd()/*输入函数系统*/
{
structstudentstu[11];
inti;
if((fp=fopen("d:
\\filename.txt","w"))==NULL)/*为输出打开的文件为0*/
{
printf("\ncan'topenthefile!
");/*显示不能打开*/
exit(0);
}
for(i=0;i<10;i++)
{
printf("\n\npleaseinputtheinformation");/*输入学生的信息*/
printf("\nnumber:
");
scanf("%s",stu[i].number);
printf("\nname:
");
scanf("%s",stu[i].name);
printf("\nsex:
");
scanf("%s",stu[i].sex);
printf("\nage:
");
scanf("%d",&stu[i].age);
printf("\nzb:
");
scanf("%s",stu[i].zb);
getchar();
fprintf(fp,"\n\n%s%s%s%d%s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb);
}/*以一定格式把信息输送到所指定的文件中*/
fclose(fp);/*关闭文件*/
}
voiddisplay()/*显示学生信息系统*/
{
structstudentstu[11];
inti;
clrscr();
if((fp=fopen("d:
\\filename.txt","r"))==NULL)/*为输入打开的为0*/
{
printf("can'topenthefile");
exit(0);
}
printf("\nnumbernamesexagezb\n");/*显示学生信息*/
for(i=0;i<10;i++)
{
fscanf(fp,"%s%s%s%d%s",stu[i].number,stu[i].name,stu[i].sex,&stu[i].age,stu[i].zb);/*以格式化形式把数据送到所指定的文件中*/
printf("\n\n\n%s%s%s%d%s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb);/*显示学生信息*/
}
fclose(fp);/*关闭文件*/
}
voidfind()/*查找学生信息系统*/
{
inti,j;
structstudentstu[11];
charNO[5];
charname[15];
clrscr();
if((fp=fopen("d:
\\filename.txt","r"))==NULL)/*为输入打开的文件为0*/
{
printf("\ncan'topenthefile!
");
exit(0);
}
printf("\nsearchintheorderofNO,pleaseinput1!
");/*用学号查找按1*/
printf("\nsearchintheorderofname,pleaseinput2!
");/*用名字查找按2*/
printf("\npleasechoose:
");/*请选择*/
scanf("%d",&j);
if(j==1)/*如果用学号查找*/
{
printf("pleaseinputthenumber:
");
scanf("%s",NO);
for(i=0;i<10;i++)
{
if(strcmp(NO,stu[i].number))/*如果输入的学号与结构体的学号相同*/
{
fscanf(fp,"%s,%s,%s,%d,%s",stu[i].number,stu[i].name,stu[i].sex,&stu[i].age,stu[i].zb);
printf("%s,%s,%s,%d,%s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb);/*显示找到的学生信息*/
break;
}
}
}
elseprintf("can'tfindtheinformation!
");
if(j==2)/*如果用名字查找*/
{
printf("pleaseinputthename:
");
scanf("%s",name);
for(i=0;i<10;i++)
{
if(!
strcmp(name,stu[i].name))/*输入的名字与结构体的相同*/
{
fscanf(fp,"%s,%s,%s,%d,%s",stu[i].number,stu[i].name,stu[i].sex,&stu[i].age,stu[i].zb);
printf("%s,%s,%s,%d,%s",stu[i].number,stu[i].name,stu[i].sex,stu[i].age,stu[i].zb);/*显示找到的学生信息*/
break;
}
}
}
elseprintf("can'tfindtheinformation!
");
fclose(fp);
}
voiddelete()/*删除学生信息系统*/
{
inti;
structstudentstu[11];
charnum[5];
if((fp=fopen("d:
\\filename.txt","r+"))==NULL)/*为读写打开的文件为0*/
{
printf("\ncan,topenthefile!
");
exit(0);
}
printf("\ninputthenumber:
");/*输入学号*/
scanf("%s",num);
for(i=0;i<=10;i++)
{
if(!
strcmp(num,stu[i].number))/*如果输入的学号与结构体中的相同*/
{
for(;i<=10;i++)
{
strcpy(stu[i].number,stu[i+1].number);/*将后一项的数据赋给前一项重而删除了前一项*/
strcpy(stu[i].name,stu[i+1].name);
strcpy(stu[i].sex,stu[i+1].sex);
stu[i].age=stu[i+1].age;
strcpy(stu[i].zb,stu[i+1].zb);
}
}
break;
}
printf("\ncan'tfindtheinformation!
");
fclose(fp);
}
voidmodify()/*修改学生信息系统*/
{
inti;
structstudentstu[11];/*插入一个结构体成员*/
charNO[5],xm[15],xb[10],bzh[100];
intnl;
intk=0;
if((fp=fopen("d:
\\filename.txt","r+"))==NULL)/*为读写打开的文件为0*/
{
printf("\ncan'topenthefile!
");
exit(0);
}
printf("\npleaseinputthexuehao:
");/*插入一个学号*/
scanf("%s",NO);
for(i=0;i<10;i++)
{
fscanf(fp,"%s",stu[i].number);
if(!
strcmp(NO,stu[i].number))/*如果输入的学号与结构体的不相同*/
{
k=1;break;/*退出*/
}
}
if(k)/*如果相同*/
{
printf("\npleaseinputnewinformation:
");
scanf("%s%s%s%d%s",NO,xm,xb,&nl,bzh);
strcpy(stu[i].number,NO);/*将数据赋值到相应的变量中,从而修改了学生的信息*/
strcpy(stu[i].sex,xb);
strcpy(stu[i].name,xm);
stu[i].age
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 班级 档案管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)