学生信息管理报告程序设计报告.docx
- 文档编号:3187436
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:17
- 大小:147.20KB
学生信息管理报告程序设计报告.docx
《学生信息管理报告程序设计报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理报告程序设计报告.docx(17页珍藏版)》请在冰点文库上搜索。
学生信息管理报告程序设计报告
课程设计目的:
本次课程设计是《C语言程序设计》课程的综合实验,作为课堂教学和课内正常上机实验的补充。
通过对《C语言程序设计》课程的学习,学生已初步掌握C语言的基本概念、结构化程序设计的基本方法,但是实际编程和上机调试程序的能力还远远不足。
通过《C语言程序设计》课程设计,加强学生自主学习、收集资料和动手编程的能力,为后续专业课程打好基础。
课程设计(论文)题目及内容
学生信息管理系统
学生信息包括:
学号,姓名,年龄,出生年月,地址,电话,邮箱等。
设计一学生信息管理系统,使之能提供以下功能:
(1)学生信息录入功能——输入
(2)学生信息浏览功能——输出
(3)查询、排序功能——算法
1)按学号查询
2)按姓名查询
(4)学生信息的删除与修改
考查内容及相关知识点:
(1)主要考查对实际问题的分析能力以及如何用程序解决实际问题。
(2)运用循环结构,一维数组和二维数组,结构体等知识点,涉及判断数据的大小,数组元素的排序、插入、删除及查找,数据的格式化输入和输出,函数的定义和调用。
设计(论文)指导教师:
(签字)___________
2010年7月9日
摘要
C语言程序设计”是计算机学科的一门专业基础课程,对后继课程的学习有着较大的影响,提高这门课程的教学质量对于培养学生的编程思想和实际编程能力至关重要。
C语言是一门很好的语言,他的语言功能高,可移植性能好,既有高级语言的优点,又有低级语言的许多特点,表达能力强、使用灵活方便、应用面广、目标程序效率高因此特别适合与编写系统软件。
学习程序设计课程的目的是掌握设计程序的思路,学会用计算机语言编写程序,一实现所需处理的任务。
要正确处理算法与语法的关系,算法是程序设计的核心、是灵魂,语法是外壳、是工具。
C程序设计是一门实践性很强的课程,既要掌握概念,又要动手编程,还要上机调试运行,所以要掌握好这门课程,一定要重视实践环节。
1设计目的
本次课程设计是《C语言程序设计》课程的综合实验,作为课堂教学和课内正常上机实验的补充。
通过对《C语言程序设计》课程的学习,学生已初步掌握C语言的基本概念、结构化程序设计的基本方法,但是实际编程和上机调试程序的能力还远远不足。
通过《C语言程序设计》课程设计,加强学生自主学习、收集资料和动手编程的能力,为后续专业课程打好基础。
2课程设计要求
Ø课程设计内容和要求的安排与讲解在短学期进行。
Ø上机机时安排:
7月7-9号7:
50~10:
25,2号机房,不足部分自行安排。
三、课程设计说明:
Ø本次课程设计平台使用VisualC++6.0。
Ø独立或分组(不超过2人)完成,每组选择一个题目(题目一~六)。
分组中每人必须独立完成该题目的一个部分。
Ø本次课程设计要求每个程序要调试通过;课程设计结束后,每人上交课程设计报告一份。
Ø每人提交的课程设计成果包括:
⏹程序一套,要求演示,由各小组(个人)同学边演示边讲解编程思路。
⏹上机报告一份,报告中包括源代码,源代码要求加注释。
⏹源代码及报告同时以电子版形式提交。
文件注明学号及姓名)
3设计题目分析
3.1题目简介
学生信息包括:
学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:
(1)学生信息录入功能(学生信息用文件保存)---输入
(2)学生信息浏览功能---输出
(3)查询、排序功能---算法
1)按学号查询
2)按姓名查询
(4)学生信息的删除与修改(如有兴趣,可考虑采用第八章的链表结构)
3.2设计要求
课程设计内容和要求的安排与讲解在短学期进行。
Ø上机机时安排:
7月7-9号7:
50~10:
25,2号机房,不足部分自行安排。
三、课程设计说明:
Ø本次课程设计平台使用VisualC++6.0。
Ø独立或分组(不超过2人)完成,每组选择一个题目(题目一~六)。
分组中每人必须独立完成该题目的一个部分。
Ø本次课程设计要求每个程序要调试通过;课程设计结束后,每人上交课程设计报告一份。
Ø每人提交的课程设计成果包括:
⏹程序一套,要求演示,由各小组(个人)同学边演示边讲解编程思路。
⏹上机报告一份,报告中包括源代码,源代码要求加注释。
⏹源代码及报告同时以电子版形式提交。
文件注明学号及姓名)
4课程设计的内容
4.1总体设计(系统框架)
4.2详细设计
#include
#include
#include
intn=0;/*定义全局变量来统计人数*/
structstudent/*定义结构体数组*/
{
charnumber[20];/*学生学号*/
charname[15];/*学生姓名*/
charage[5];/*学生年龄*/
charsex[4];/*学生性别*/
charchusheng[20];/*学生出生年月*/
charadds[50];/*学生住址*/
charMPN[15];/学生电话*/
charEM[30];/*学生邮箱*/
};
(1)对学生信息输入的实现
voidp1(structstudentb[100])/*输入函数*/
{
inti=0;
intH;
do
{
printf("请你输入第%d个学生的个人信息:
\n",i+1);
printf("输入学生姓名:
");
scanf("%s",b[i].name);printf("\n");
printf("输入学生学号:
");
scanf("%s",b[i].number);printf("\n");
printf("输入学生年龄:
");
scanf("%s",b[i].age);printf("\n");
printf("输入学生性别:
");
scanf("%s",b[i].sex);printf("\n");
printf("输入学生出生年月:
");
scanf("%s",b[i].chusheng);printf("\n");
printf("输入学生所住的地址:
");
scanf("%s",b[i].adds);printf("\n");
printf("输入学生的电话号码:
");
scanf("%s",b[i].MPN);printf("\n");
printf("输入学生的邮箱:
");
scanf("%s",b[i].EM);printf("\n");
i++;n++;
printf("1继续输入;0退出\n");
scanf("%d",&H);
}while(H!
=0);/*控制输入的结束*/
printf("\n");
}
(2)对显示学生所有信息的实现
voidp2(structstudentF[100])/*显示函数*/
{
inti=0,t,k,p,m;
t=n/10;
printf("所以学生的信息如下;");
printf("姓名\t学号\t年龄\t性别\t出生年月\t地址\t电话号码\t邮箱\n");
if(t==0)
{for(i=0;i printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[i].name,F[i].number,F[i].age,F[i].sex,F[i].chusheng,F[i].adds,F[i].MPN,F[i].EM); } else { for(k=0;k {for(i=0;i<10;i++) printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[10*k+i].name,F[10*k+i].number,F[10*k+i].age,F[10*k+i].sex,F[10*k+i].chusheng,F[10*k+i].adds,F[10*k+i].MPN,F[10*k+i].EM); printf("输入'1'显示下一页\n"); scanf("%d",&p); if(p==1) system("cls");/*清屏函数*/ } m=10*t; for(i=0;m printf("%s\t%s\t%s\t\t%s\t\t%s\t%s\t%s\n",F[m].name,F[m].number,F[m].age,F[m].sex,F[m].chusheng,F[m].adds,F[m].MPN,F[m].EM); } } (3)对学生信息的查询功能 voidp3(structstudentd[100],inte[100]) { charx[20],p[2]; intD,i; do { intm=0; printf("请你输入你所需要查询的学生的姓名或学号: \n"); scanf("%s",&x); for(i=0;i if(! strcmp(d[i].name,x)||! strcmp(d[i].number,x))/*判断所输入的是否是学生的姓名或学号*/ { D=e[i];/*记录查找人数组下标*/ printf("要查询的联系人信息如下: \n"); printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",d[D].name,d[D].number,d[D].age,d[D].sex,d[D].chusheng,d[D].adds,d[D].MPN,d[D].EM);/*输出学生的信息*/ } printf("输入Y或y继续查询,输入N或n退出\n");/* scanf("%s",&p); } while(! strcmp(p,"Y")||! strcmp(p,"y")); } (4)删除学生信息 voidp4(structstudentc[100],intk[100]) { chard[20];charp[2]; intj,i,x; do { printf("请输入要删除的学生信息: \n"); scanf("%s",&d); for(i=0;i if(! strcmp(d,c[i].name)||! strcmp(d,c[i].number)||! strcmp(d,c[i].age)||! strcmp(d,c[i].sex)||! strcmp(d,c[i].chusheng)||! strcmp(d,c[i].adds)||! strcmp(d,c[i].MPN)||! strcmp(d,c[i].EM))/*比较所输入的学生信息与原信息是否相同*/ j=k[i]; for(x=j;x k[x]=x+1; n--; printf("输入Y或y继续,输入N或n退出\n"); scanf("%s",&p); } while(! strcmp(p,"Y")||! strcmp(p,"y")); } (5)添加学生信息 voidp5(structstudentb[100])/*添加函数*/ { intH; do { printf("请输入添加的学生的信息: \n"); printf("请输入学生姓名: "); scanf("%s",b[n].name);printf("\n"); printf("请输入学生学号: "); scanf("%s",b[n].number);printf("\n"); printf("请输入学生年龄: "); scanf("%s",b[n].age);printf("\n"); printf("请输入学生性别: "); scanf("%s",b[n].sex);printf("\n"); printf("请输入学生的出生年月: "); scanf("%s",b[n].chusheng);printf("\n"); printf("请输入学生的地址: "); scanf("%s",b[n].adds);printf("\n"); printf("请输入学生电话: "); scanf("%s",b[n].MPN);printf("\n"); printf("请输入学生邮箱: "); scanf("%s",b[n].EM);printf("\n"); n++; printf("1继续添加;0退出\n"); scanf("%d",&H); }while(H! =0);/*控制输入结束*/ printf("\n"); } (6)修改学生信息 voidp6(structstudentT[100],intr[100]) { charp[2],d[20]; inti,t; do { printf("请输入要修改的学生的信息: \n"); scanf("%s",&d); for(i=0;i if(! strcmp(d,T[i].name)||! strcmp(d,T[i].number)||! strcmp(d,T[i].age)||! strcmp(d,T[i].sex)||! strcmp(d,T[i].chusheng)||! strcmp(d,T[i].adds)||! strcmp(d,T[i].MPN)||! strcmp(d,T[i].EM))/*依次比较要修改的学生的信息是否相同*/ { t=r[i]; printf("请你输入修改后学生的信息: \n"); printf("请输入学生姓名: "); scanf("%s",T[t].name);printf("\n"); printf("请输入学生学号: "); scanf("%s",T[t].number);printf("\n"); printf("请输入学生年龄: "); scanf("%s",T[t].age);printf("\n"); printf("请输入学生性别: "); scanf("%s",T[t].sex);printf("\n"); printf("请输入学生出生年月: "); scanf("%s",T[t].chusheng);printf("\n"); printf("请输入学生的地址: "); scanf("%s",T[t].adds);printf("\n"); printf("请输入学生电话: "); scanf("%s",T[t].MPN);printf("\n"); printf("请输入学生邮箱: "); scanf("%s",T[t].EM);printf("\n"); } printf("输入Y或y继续,输入N或n退出\n"); scanf("%s",&p); } while(! strcmp(p,"Y")||! strcmp(p,"y"));} (7)对主菜单的生成和函数的调用 voidmain() { structstudenta[100];/*定义结构体数组*/ intA[100],i,x; for(i=0;i<100;i++) A[i]=i; do { printf("*************************菜单************************\n"); printf("1: 请输入学生信息\n"); printf("2: 学生信息浏览\n"); printf("3: 查找学生信息\n"); printf("4: 删除学生信息\n"); printf("5: 增加学生信息\n"); printf("6: 修改学生信息\n"); printf("0: 退出\n"); scanf("%d",&x);/*对菜单的选择*/ printf("*************************菜单************************\n"); switch(x) { case1: p1(a);break;/*对函数p1的调用*/ case2: p2(a);break;/*对函数p2的调用*/ case3: p3(a,A);break;/*对函数p3的调用*/ case4: p4(a,A);break;/*对函数p4的调用*/ case5: p5(a);break;/*对函数p5的调用*/ case6: p6(a,A);break;/*对函数p6的调用*/ } } while(x! =0);/*推出程序*/ } 5设计新的与总结 C语言课程设计和现代计算机技术的实际应用相结合,是我们在本阶段学完理论课程之后对自己该方面的能力的一次很好的检验,从开始的算法思路到运行调试后的美观的图形界面以及另人兴奋的可用程序,都是一个很好的学习和锻炼的过程。 使我们巩固了原有的理论知识,培养了我们灵活运用和组合集成所学过知识及技能来分析、解决实际问题的能力。 使我们体会到自身知识和能力能在实际中的应用和发挥。 不但可以激发创新意识,还可以开发创造能力、培养沟通能力。 这次实习时间虽然仅有一个星期,但确实使我受益非浅。 通过实习我丰富了计算机操作经验,更加深了对C语言的了解,熟悉了其环境,更增强了对TurboC的使用技巧。 另外,实习中老师对我们进行了细心、耐心的指导,鼓励我们对程序进行合理改进,培养了我们的创新意识和创新能力。 原来是我认为可怕的课程设计,就在种种辅助条件下完成了,心里有说不出的高兴。 一个星期的时间里,我有过失望,有过山穷水尽的困惑,也有过柳暗花明的惊喜,虽然累点,但是收获也很多,经过这次的实训,我不仅学到了一些知识和技能,更重要的是我学会了如何运用学过的知识来解决实际的问题。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 报告 程序设计