用C语言实现学生信息管理系统设计及源代码.docx
- 文档编号:7904308
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:30
- 大小:118.94KB
用C语言实现学生信息管理系统设计及源代码.docx
《用C语言实现学生信息管理系统设计及源代码.docx》由会员分享,可在线阅读,更多相关《用C语言实现学生信息管理系统设计及源代码.docx(30页珍藏版)》请在冰豆网上搜索。
用C语言实现学生信息管理系统设计及源代码
一、 课程设计目的
让学生综合应用所学的计算机基础知识和所掌握的程序设计语言(C语言),自主实现一个较为完整的小型管理信息系统的设计与开发。
其主要目的是使学生通过系统分析、系统设计、编程调试,写实验报告等环节,初步掌握软件系统设计的方法和步骤,训练灵活运用程序设计语言进行软件开发的能力,提高分析问题和解决问题的能力,提高程序设计水平,培养必要的工程实践动手二、课程设计内容
序号
阶段名称
具体内容
要求
1
数据录入
录入系统所需的数据
用链表或结构体数组组织数据
2
数据存储数据读写
将录入的数据存储,
对数据进行读写操作
用文件的形式将录入的数据存储,
并进行读写操作
3
数据修改
对数据进行更新操作
可以进行新数据的插入,旧数据的修改操作
4
数据删除
对数据进行删除操作
根据具体题目将对应记录删除
5
数据查询
按要求对数据进行查询
含简单查询及组合查询
6
数据统计
按要求对数据进行统计
含简单统计及综合统计
7
数据排序
按要求对数据进行排序
含升序排序及降序排序
8
数据报表
按要求对数据打印报表
依规定的报表格式对数据打印报表
9
界面
设计总体菜单界面
简单菜单、下拉式或弹出式
三、需求分析
(1)学生信息管理系统是用结构体数组来实现,该结构体数组中包括整型,字符型及其数组,实现系统功能的调用函数。
(2)学生信息系统的功能是对学生的学生信息的录入、显示、修改、添加、删除、查询、排序、保存、读取来对学生信息进行管理。
(3)该学生信息管理程序的要求是:
结构清晰,书写规范;各种信息都保存在文件中;界面采用最简单的菜单,层次清楚,操作方便。
四、概要设计
1.系统结构图(功能模块图)
2.功能模块说明
<1>录入信息模块:
将要入库的学生信息加到信息数据中。
它包括学生的学号、姓名、性别、班级、年龄、电话、家庭地址等。
<2>.显示学生信息:
分为两个模块
(1)显示学生基本信息。
它包括学生的学号、姓名、性别、班级、年龄、家庭住址、电话等。
(2)显示学生成绩信息。
它包括学生的学号、姓名、数学、物理、英语、C语言成绩。
<3>.查找信息模块:
分为两个模块
(1)根据学生学号进行查找。
(2)根据学生姓名进行查找。
包括学号、姓名、成绩等。
<4>.修改信息模块:
对现存的学生信息进行修改分为两个模块
(1)根据学生学号进行修改。
(2)根据学生姓名进行修改。
它包括各科成绩。
<5>.删除信息模块:
同样分为按学号与姓名进行把某学生的学生信息删除。
<6>.学生信息排序模块:
把已存在的学生信息按照学号进行排序。
<7>.信息查询统计模块:
输入学号后,显示该生学生信息。
<8>.退出模块:
退出程序。
五、详细设计及运行结果
1:
主函数流程图
4、
2.按学号查找流程图
六、调试情况,设计技巧及体会
(1).这次课程设计和以前所做题目截然不同,在这之前,以前从未尝试过写一个较大的程序,由于上学期C语言学得不是很好,所以设计过程中遇到好多问题,比如没有思路、算法分析、不知如何下手等。
但是通过查阅资料和咨询同学终于有了想法。
所以自己就慢慢设计了这个程序。
但是程序设计有些简单,没有运用链表知识,只应用了结构体和数组。
而且设计中还存在很多问题,管理系统不够完善,实现的功能不够详尽,没有实现自己想要实现的那么复杂和完善的功能。
(2)在这两周的课程设计过程中,我感触颇深,让我深刻感受到知识总是在用的时候才知道匮乏,以前觉得自己C语言考试过了,就是合格了,对自己要求太低,以至于这次实习遇到很大的麻烦.基础知识不够扎实是我最大的问题,对很多知识点是只知其一,不知其二,或是只知其然而不知其所以然,自己的知识真的很浅薄,而且动手能力,分析问题、解决问题的的能力很差,以后一定要增加自己的知识储备,努力锻炼自己的实践能力。
在实践过程中也遇到好多困难想要放弃,但又一想这样就放弃了以后还如何面多更大地挑战,终于还是坚持下来了,虽然自己做的不是很好,但是自己也用心努力了,我相信只要自己肯努力结果就一定不会太差!
一份耕耘一份收获,两个星期的C语言实习,我终于又重新拾起了渐以模糊的C语言知识和概念,通过上机调试程序,不但熟悉了C语言的一些基本知识,而且熟练了上机实践,通过实践,又掌握了一些在书本上学不到的解决实际问题的方法
本次的课程设计不仅让我学会了如何使用C语言编程,更多的我学会了如何持之以恒,细心的去做完一件事,我深信,只要我能一直坚持实习这段时间的精神,相信我也一定会到达成功的彼岸!
七、参考文献
1.王曙燕主编,C语言程序设计,科学出版社,2005年
2.谭浩强,《C程序设计》,清华大学出版社2002年
八、附录:
源代码
(略,详见电子版实验报告)
#include
#include
#include
#include
#defineMAX50
/*studentbasicinformationstruct*/
typedefstruct
{
intnumber;
charname[10];
charsex[2];
intage;
charkind[20];
chardormitory[10];
charaddress[30];
charphone[11];
intscore1;
intscore2;
intscore3;
intscore4;
intsum;
doubleaverage;
}STUDENT;
voidpassword(void);
voidinput(void);
voidsort();
voiddisplaybasic(void);
voiddisplayscore(void);
voidrevise(void);
voidrevise_num(void);
voidrevise_name(void);
voidinquire(void);
voidinquire_number(void);
voidinquire_name(void);
voiddel(void);
voiddel_number(void);
voiddel_name(void);
voidsave(void);
voidread(void);
STUDENTstudent[MAX];
intcount=0;
voidmain()
{
intselect=-1;
password();
while(select!
=0)
{
printf("\n");
printf("========================================\n");
printf("=1---read\n");
printf("=2---Input\n");
printf("=3---Displaybasic\n");
printf("=4---Displayscore\n");
printf("=5---sort\n");
printf("=6---Revise\n");
printf("=7---inquire\n");
printf("=8---delete\n");
printf("=9---save\n");
printf("=0---Exit\n");
printf("========================================\n");
printf("Pleaseinputselect(0-9):
\n");
scanf("%d",&select);
switch(select)
{
case1:
read();
break;
case2:
input();
break;
case3:
displaybasic();
break;
case4:
displayscore();
break;
case5:
sort();
break;
case6:
revise();
break;
case7:
inquire();
break;
case8:
del();
break;
case9:
save();
break;
case0:
break;
}
}
}
/*inputthesecretcodefunction*/
voidpassword()
{
inti;
charn[8],m[8];
m[0]='0';m[1]='4';m[2]='0';m[3]='8';m[4]='2';m[5]='0';m[6]='3';m[7]='7';
printf("\n\n\n\n\n\t-----Welcometothestudent'sstatusmanagesystem-----\n\n\n\n\n\n\n\n");
printf("\n\n\n\n\n\t\t\tPleaseinputthesecretcode:
");
do
{
for(i=0;i<8;i++)
{
n[i]=getch();
if(n[i]>='0'||n[i]<='9'||n[i]>='a'||n[i]<='z'||n[i]>='A'||n[i]<='Z')
putchar('*');
}
getch();
if(n[0]==m[0]&&n[1]==m[1]&&n[2]==m[2]&&n[3]==m[3]&&n[4]==m[4]&&n[5]==m[5]&&n[6]==m[6]&&n[7]==m[7])
{
system("cls");
printf("=================================================================\n");
printf("\n\n\n\n\n\n\t-----Thesecretcodeisright!
---\n\n");
printf("\t\t\t-------------Wellcometouse!
-----\n\n\n\n\n\n");
printf("===============================================================\n");
getchar();
printf("pressanykeycontiue!
");
break;
}
else
{
system("cls");
printf("\t\tSorry!
thesecretcodeiswrong!
pleaseinputagain!
:
\n");continue;
}
}while
(1);
}
/*informationinputfunction*/
voidinput(void)
{
printf("pleaseinputstudentbasicintormation:
\n");
printf("number:
");
scanf("%d",&student[count].number);
printf("name:
");
scanf("%s",student[count].name);
printf("sex:
");
scanf("%s",student[count].sex);
printf("age:
");
fflush(stdin);
scanf("%d",&student[count].age);
printf("kind:
");
scanf("%s",student[count].kind);
printf("dormitory:
");
scanf("%s",student[count].dormitory);
printf("address:
");
scanf("%s",student[count].address);
printf("phone:
");
scanf("%s",student[count].phone);
printf("pleaseinputnumberbetween0~100:
\n");
printf("math:
\n");
scanf("%d",&student[count].score1);
printf("physics:
\n");
scanf("%d",&student[count].score2);
printf("c:
\n");
scanf("%d",&student[count].score3);
printf("English:
\n");
scanf("%d",&student[count].score4);
student[count].sum=student[count].score1+student[count].score2+student[count].score3+student[count].score4;
student[count].average=student[count].sum/4.0;
count++;
}
/*displaythebasicinformationfunction*/
voiddisplaybasic(void)
{
inti;
if(count==0)
{
printf("notinputbefore!
\n");
getch();
return;
}
printf("StudentInformationasfollows:
\n");
printf("================================================================\n");
printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n");
for(i=0;i { printf("%d\t",student[i].number); printf("%s\t",student[i].name); printf("%s\t",student[i].sex); printf("%s\t",student[i].kind); printf("%d\t",student[i].age); printf("%s\t",student[i].dormitory); printf("%s\t",student[i].address); printf("%s\n",student[i].phone); } printf("================================================================\n"); printf("Pressanykeytocontinue! \n"); getch(); } /*resultdisplay*/ voiddisplayscore(void) { inti; printf("studentresultasfollows: \n"); printf("Number\tName\tMath\tPhysic\tC\tEnglish\tEverage\n"); for(i=0;i { printf("%d\t",student[i].number); printf("%s\t",student[i].name); printf("%d\t",student[i].score1); printf("%d\t",student[i].score2); printf("%d\t",student[i].score3); printf("%d\t",student[i].score4); student[i].sum=student[i].score1+student[i].score2+student[i].score3+student[i].score4; student[i].average=student[i].sum/4.0; printf("%f\n",student[i].average); } printf("pressanykeytocometothemenu! "); getch(); } /*sortdependonthenumber*/ voidsort(void) { inti,j; STUDENTt; for(j=0;j for(i=j+1;i if(student[i].number { t=student[i]; student[i]=student[j]; student[j]=t; } printf("theresultyouwanttoknowasfollows: \n"); printf("================================================================\n"); printf("number\tname\tsex\tkind\tage\tdormitory\taddress\tphone\n"); for(i=0;i { printf("%d\t",student[i].number); printf("%s\t",student[i].name); printf("%s\t",student[i].sex); printf("%s\t",student[i].kind); printf("%d\t",student[i].age); printf("%s\t",student[i].dormitory); printf("%s\t",student[i].address); printf("%s\n",student[i].phone); } printf("number\tname\tmath\tphysic\tC\tEnglish\tsum\taverage\n"); for(i=0;i { printf("%d\t",student[i].number); printf("%s\t",student[i].name); printf("%d\t",student[i].score1); printf("%d\t",student[i].score2); printf("%d\t",student[i].score3); printf("%d\t",student[i].score4); printf("%d\t",student[i].sum); printf("%f\n",student[i].average); } printf("================================================================\n"); printf("\n"); } /*revisestudentresultfunction*/ voidrevise() { intin; do { printf("---pleasechoicethenumberrevisenumber----\n"); printf("=============================================\n"); printf("-1inquirerevisedependonnumber-\n"); printf("-2inquirerevisedependonname-\n"); printf("-3nottorevise-\n"); printf("=============================================\n"); printf("\n"); printf("pleasechoicebetween(1~3)\n"); scanf("%d",&in); fflush(stdin); if(in<1||in>3) { printf("theinputiswrong! pleaseinputagain! "); continue; } elsebreak; }while (1); switch(in) { case1: revise_num(); break; case2: revise_name(); break; case3: break; } } /*revisethescoredependonthenumber*/ voidrevise_num(void) { inti=0,choice,flag,revise_num; do { printf("pleaseinputtherevisenumber: \n"); scanf("%d",&revise_num); for(i=0;i { if(student[i].number==revise_num) { printf("thestudentresultinformationasfollows: \n"); printf("\nchoicebetween(0~8)\n"); printf("pleasechoicethenumberyouwanttorevise\n"); printf("===========================================\n"); printf("-1reviseMath-\n")
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 学生 信息管理 系统 设计 源代码