c语言程序设计报告学生信息管理系统 精品.docx
- 文档编号:28008439
- 上传时间:2023-07-07
- 格式:DOCX
- 页数:20
- 大小:145.30KB
c语言程序设计报告学生信息管理系统 精品.docx
《c语言程序设计报告学生信息管理系统 精品.docx》由会员分享,可在线阅读,更多相关《c语言程序设计报告学生信息管理系统 精品.docx(20页珍藏版)》请在冰豆网上搜索。
c语言程序设计报告学生信息管理系统精品
C语言程序设计实践报告
题目学生信息管理系统
1.设计任务及设计目标
学生信息管理系统是基于系统主菜单的操作来实现学生数据的录入、修改、查询和统计等系统的基本功能。
达到对学生信息的存储、统计、管理的目的。
需要处理的数据如:
班级、学号、姓名等。
实现的功能模块如:
数据的录入、数据的修改、数据的插入、数据的查询和数据的统计等。
在实践过程中熟练掌握C语言的基本知识:
数据类型(整型、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。
进一步掌握函数嵌套调用、文件的读写、链表的应用等。
2.总体设计
我们将整个系统分成若干子模块,每个模块有自己的函数,通过选择结构来实现子模块的选择。
设计流程图如下:
学生信息管理系统
【1】输入学生信息
【2】浏览学生信息
【3】查询学生信息
【4】删除学生信息
【5】修改学生信息
【6】不及格学生列表
【7】成绩信息查询
【8】学生平均成绩
【0】退出系统
3.详细设计
预处理模块:
此模块主要是头文件,结构体的定义,以及函数的说明。
#include
#include
#include
#include
struct student
{
long int num;
char name[20];
int age;
char sex[4];
int class;
int pt;/*定义一个变量来储存大学物理的考试成绩*/
int ps;/*定义一个变量来储存大学物理的平时成绩*/
int et;/*定义一个变量来储存英语的考试成绩*/
int es;/*定义一个变量来储存英语夫人平时成绩*/
int ct;/*定义一个变量来储存微积分的考试成绩*/
int cs;/*定义一个变量来储存微积分的平时成绩*/
int xt;/*定义一个变量来储存信号的考试成绩*/
int xe;/*定义一个变量来储存信号的平时成绩*/
};
int n=0;
struct student stu[100];
struct student *p;
void tc();void tc()
void lr();/*录入函数*/
void ll();
void cx();/*查询函数*/
void xg();/*修改函数*/
void sc();/*删除函数*/
void bj();/*不及格学生列表函数*/
void pj();/*平均成绩计算函数*/
void kc();/*课程查询函数*/
主函数模块:
一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。
void main()
{
int z;
printf("\t\t\t +---------------------------+\n");
printf("\t\t\t | 学生信息管理系统欢迎您 |\n");
printf("\t\t\t +---------------------------+\n");
printf("\t\t\t + 设计者:
张眼\n");
printf("\t\t\t + 指导老师:
刘伟荣\n");
printf("重要提示:
为保证您的操作得到保存,请按正常顺序退出系统!
谢谢合作\n");
do
{
printf("\n\t\t\t+++++++++++++++++++++++++++++\n");
printf("\t\t\t|** 菜单 **|\n");
printf("\t\t\t+++++++++++++++++++++++++++++++++\n");
printf("\t\t\t* [1]----录入/插入学生信息 *\n");
printf("\t\t\t* [2]----浏览学生信息 *\n");
printf("\t\t\t* [3]----查询学生信息 *\n");
printf("\t\t\t* [4]----删除学生信息 *\n");
printf("\t\t\t* [5]----修改学生信息 *\n");
printf("\t\t\t* [6]----不及格学生列表 *\n");
printf("\t\t\t* [7]----成绩信息查询 *\n");
printf("\t\t\t* [8]----平均成绩 *\n");
printf("\t\t\t* [0]----退出系统 *\n");
printf("\t\t\t********************************\n");
printf("请输入您的选择:
");
scanf("%d", &z);
switch(z)
{
case 0 :
tc();break;
case 1 :
lr();break;
case 2 :
ll();break;
case 3 :
cx();break;
case 4 :
sc();break;
case 5 :
xg();break;
case 6 :
bj();break;
case 7 :
kc();break;
case 8 :
pj();break;
default:
printf("\n无效选项!
");
}
}
while(z!
= 0);
}
运行结果:
输入模块:
输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。
用一个指向结构体的指针来进行数据的储存。
void lr()/*录入函数*/
{
int y;
if(n==0)
p=stu;
do
{
printf("--------------------\n");
printf("请输入学生的学号:
");
scanf("%ld",&p->num);
printf("请输入学生的姓名:
");
scanf("%s",p->name);
printf("请输入学生的年龄:
");
scanf("%d",&p->age);
printf("请输入学生的性别:
");
scanf("%s",p->sex);
printf("请输入学生的班级:
");
scanf("%d",&p->clas);
printf("请输入大物考试成绩:
");
scanf("%d",&p->pt);
printf("请输入大物平时成绩:
");
scanf("%d",&p->ps);
printf("请输入英语考试成绩:
");
scanf("%d",&p->et);
printf("请输入英语平时成绩:
");
scanf("%d",&p->es);
printf("请输入微积分考试成绩:
");
scanf("%d",&p->ct);
printf("请输入微积分平时成绩:
");
scanf("%d",&p->cs);
printf("请输入信号考试成绩:
");
scanf("%d",&p->xt);
printf("请输入信号平时成绩:
");
scanf("%d",&p->xe);
n++;
p++;
printf("\n1.继续输入.\n0.输入完毕.\n");
printf("请选择:
");
scanf("%d",&y);
}
while(y==1);
printf("提示:
输入完毕!
你一共输入%d个\n",n);
}
运行结果:
查询模块:
该模块是通过输入的学生信息(学号或姓名)来查找学生的所有信息并且显示在屏幕上。
主体通过选择结构对用户的选择进行判断,而后执行相应选择后的语句实现查询。
通过函数void cx()来实现。
void cx()/*查询函数*/
{
int c;
int w,i,j=0;
char name[20];
if(n!
=0)
{
do{ printf("\n");
printf("+--------------------+\n");
printf("| 按学号查询 请按 1 |\n");
printf("| 按姓名查询 请按 2 |\n");
printf("| 取消 请按 0 |\n");
printf("+--------------------+\n");
printf("请输入选择:
");
scanf("%d", &c);
switch(c)
{
case 0:
break;
case 1:
printf("请输入学生的学号;");
scanf("%ld", &w);
printf("\n");
for(i=0;i if(stu[i].num==w) { printf("\n学号\t姓名\t年龄\t性别\t班级\n"); printf("%ld\t%s\t%d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas); j=1; } if(j==0) printf("提示: 没有该学生记录,请核对! "); break; case 2: printf("请输入学生的姓名: "); scanf("%s", name); printf("\n"); for(i=0;i if(strcmp(name,stu[i].name)==0) { printf("\n学号\t姓名\t年龄\t性别\t班级\n"); j=1; printf("%ld\t%s\t%d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas); } if(j==0) printf("提示: 没有该学生记录,请核对! "); break; default: printf("\n提示: 无效选项! "); break; } }while(c! = 0); }else printf("提示: 无学生数据,请输入数据! "); } 删除模块: 该模块通过输入要删除的学生学号,通过学号查找并删除记录。 如果没有学生信息输出提示: 无学生数据,请输入数据! 通过函数void sc()实现 void sc()/*删除函数*/ { long int num; int i,j,e; if(n! =0) { printf("学号\t姓名\t年龄\t性别\t班级\n"); printf("-----------------------------------------------------\n"); for(i=0;i printf("%ld\t%s\t%d\t%s\t%d\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas); printf("请输入您要删除的学生的学号: "); scanf("%ld", &num); printf("\n"); for(i=0;i if(num==stu[i].num) j=i; if(j! =(n-1)) { for(e=j;e<(n-1);e++) { stu[e].num=stu[e+1].num; strcpy(stu[e].name,stu[e+1].name); strcpy(stu[e].sex,stu[e+1].sex); stu[e].age=stu[e+1].age; stu[e].clas=stu[e+1].clas; stu[e].pt=stu[e+1].pt; stu[e].ps=stu[e+1].ps; stu[e].et=stu[e+1].et; stu[e].es=stu[e+1].es; stu[e].ct=stu[e+1].ct; stu[e].cs=stu[e+1].cs;} n--; } else n--; printf("提示: 删除完毕! "); }else printf("提示: 无学生数据,请输入数据! "); } 运行结果: 修改信息模块: 该模块通过输入要修改的学生学号查找学生信息,并显示用户修改的内容信息,供用户选择,根据选项进行修改。 主体是通过一个switch语句来实现选择的,根据用户的选择进行语句的执行。 通过函数void xg()实现。 void xg()/*修改函数*/ { long int num; int i,j,c; if(n! =0) { printf("请输入您要修改的学生的学号: "); scanf("%ld", &num); printf("\n"); for(i=0;i if(stu[i].num==num) j=i; do{ printf("请选择您要修改的学生的信息内容: \n"); printf("+----------------------+\n"); printf("| 姓名 请按 1 |\n"); printf("| 年龄 请按 2 |\n"); printf("| 性别 请按 3 |\n"); printf("| 学号 请按 4 |\n"); printf("| 班级 请按 5 |\n"); printf("| 大物考试成绩 请按 6 |\n"); printf("| 大物平时成绩 请按 7 |\n"); printf("| 英语考试成绩 请按 8 |\n"); printf("| 英语平时成绩 请按 9 |\n"); printf("| 微积分考试成绩 请按10 |\n"); printf("| 微积分平时成绩 请按 11 |\n"); printf("| 信号考试成绩 请按12 |\n"); printf("| 信号平时成绩 请按13 |\n"); printf("| 取消 请按 0 |\n"); printf("+----------------------+\n"); printf("请输入您的选择: "); scanf("%d", &c); printf("\n"); switch(c) { case 0: break; case 1: printf("请输入新姓名: "); scanf("%s",stu[j].name); break; case 2: printf("请输入新年龄: "); scanf("%d",&stu[j].age); break; case 3: printf("请输入新性别: "); scanf("%s",stu[j].sex); break; case 4: printf("请输入新学号: "); scanf("%ld",&stu[j].num); break; case 5: printf("请输入新班级: "); scanf("%d",&stu[j].clas); break; case 6: printf("请输入大物考试成绩: "); scanf("%d",&stu[j].pt); break; case 7: printf("请输入大物平时成绩: "); scanf("%d",&stu[j].ps); break; case 8: printf("请输入英语考试成绩: "); scanf("%d",&stu[j].et); break; case 9: printf("请输入英语平时成绩: "); scanf("%d",&stu[j].es); break; case 10: printf("请输入微积分考试成绩: "); scanf("%d",&stu[j].ct); break; case 11: printf("请输入微积分平时成绩: "); scanf("%d",&stu[j].cs); case 12: printf("请输入信号考试成绩: "); scanf("%d",&stu[j].xt); case 13: printf("请输入信号考试成绩: "); scanf("%d",&stu[j].xe); break; default: printf("\n无效选项! "); break; } }while(c! = 0); }else printf("提示: 无学生数据,请输入数据! "); } 运行结果: 不及格学生计算模块: 该模块通过对已经输入的学生数据进行处理,当四门功课中有一门成绩小于60,就输出此学生的信息及不及格科目的成绩。 函数的主体是一个for循环语句的嵌套,外循环来实现成绩的计算,内循环实现不及格的选择。 此功能通过函数void bj()实现。 void bj()/*不及格学生列表函数*/ { int i,j; char a[4][10]={"大学物理","大学英语"," 微积分","信号"}; float l[4]; if(n! =0) { printf("\n学号\t姓名\t课程\t\t成绩\n"); for(i=0;i { l[0]=stu[i].pt*0.7+stu[i].ps*0.3; l[1]=stu[i].et*0.7+stu[i].es*0.3; l[2]=stu[i].ct*0.7+stu[i].cs*0.3; l[3]=stu[i].xt*0.7+stu[i].xe*0.3; for(j=0;j<4;j++) if(l[j]<60.0) {printf("%ld\t%s\t%s\t%3.1f\n",stu[i].num,stu[i].name,a[j],l[j]); } } } else printf("提示: 无学生数据,请输入数据! "); } 运行结果: 学生课程信息查询模块: 该模块通过用户输入的选项来查询该学生的各个科目的信息,信息包括课程名称,课程编号,学分,平时成绩,考试成绩,综合成绩,并最终以表格的形式输出。 此函数主要部分是一个switch()选择语句以及输出函数printf()。 该功能通过函数void kc()来实现。 void kc()/*课程查询函数*/ { int c; int w,i,j=0; char name[20]; if(n! =0) { do{ printf("\n"); pr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计报告学生信息管理系统 精品 语言程序设计 报告 学生 信息管理 系统