学生信息管理系统C语言课程设计报告.docx
《学生信息管理系统C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统C语言课程设计报告.docx(14页珍藏版)》请在冰豆网上搜索。
学生信息管理系统C语言课程设计报告
通信工程C语言强化训练实验报告
学号:
姓名:
提交日期:
2011年7月8日
成绩:
评语:
教师签字:
东北大学秦皇岛分校
学生信息管理系统
强化训练目的
C语言基本知识的巩固和综合运用。
基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体。
C语言高级编程。
链表基本操作、文件的基本操作、图形和声音制作。
程序的结构化设计。
编辑、设置、编译、调试、执行。
C语言结合实际问题的综合设计。
设计题目功能
通过计算机对数据文件的存储和读取,对学生信息进行管理,能够完成学生信息的增、删、改、查找等功能。
设计题目要求
名片信息至少包括学号、姓名、性别、出生日期、宿舍号等基本信息。
具体要求包括:
1有主界面和主菜单
2以班级为单位用链表存放学生信息
3可以实现按学号、姓名、宿舍号查询和统计并在屏幕上输出查询结果
4友好的界面和操作提示
[A]信息录入
[D]信息删除
[F]信息查询
[Q]退出
4、程序流程图
总体设计
详细设计
【程序】主函数
voidmain()/*主函数即用户的操作界面*/
{
system("color1E");/*设计文本颜色*/
intb,flag=0;/*声明局部变量*/
while
(1)/*循环输出以下信息*/
{
printf("\n\t\t\t欢迎来到学生成绩管理系统!
\n");
printf("\n\t\t\t\t###制作\n");
printf("\t\t\t-------------------------------\n");
printf("\t\t\t1.键入学生的信息\n\n");/*键入学生的信息*/
printf("\t\t\t2.查看录入的学生信息\n\n");/*查看录入的学生信息*/
printf("\t\t\t3.按姓名查看学生的信息\n\n");/*按姓名查看学生的信息*/
printf("\t\t\t4.按学号查看学生的信息\n\n");/*按学号查看学生的信息*/
printf("\t\t\t5.按宿舍号查看学生的信息\n\n");/*按宿舍号查看学生的信息*/
printf("\t\t\t6.删除学生信息\n\n");/*删除学生信息*/
printf("\t\t\t7.保存学生信息\n\n");/*保存*/
printf("\t\t\t8.打开文件\n\n");/*打开文件*/
printf("\t\t\t9.我的个人信息\n\n");/*我的个人信息*/
printf("\t\t\t0.退出\n\n");/*退出*/
printf("\t\t\t请输入你的选择:
");
scanf("%d",&b);
switch(b)
{
case1:
type();break;/*调用键入学生信息函数*/
case2:
look();break;/*调用查看函数*/
case3:
search_name();break;/*调用姓名查看函数*/
case4:
search_number();break;/*调用学号查看函数*/
case5:
search_dorm();break;/*调用宿舍号查看函数*/
case6:
del();break;/*调用删除函数*/
case7:
save();break;/*调用保存函数*/
case8:
see();break;/*调用打开文件函数*/
case9:
welcome();break;/*调用我的个人信息函数*/
case0:
flag=1;break;/*退出SWITCH语句*/
default:
printf("错误!
");
}
if(flag)break;/*如果选择0就退出循环*/
}
}
5、程序设计源代码
#include"stdio.h"
#include"conio.h"
#include"string.h"
#include"stdlib.h"
voidlook();/*声明查看函数*/
voidsave();/*声明保存函数*/
voidsearch_name();/*声明按姓名查看函数*/
voidsearch_number();/*声明按学号查看函数*/
voidsearch_dorm();/*声明按宿舍号查看函数*/
voiddel();/*声明删除函数*/
intopenl();/*声明打开函数*/
voidwelcome();/*声明我的个人信息函数*/
voidtype();/*声明输入函数*/
voidsee();/*声明打开并查看文件函数*/
structstudent/*定义学生信息的结构体类型*/
{
charnum[15];/*学号*/
charname[20];/*姓名*/
charsex[4];/*性别*/
chardorm[15];/*宿舍号*/
charbirthday[20];/*出生日期*/
}stu[100];
intn;/*声明一个全局变量*/
voidmain()/*主函数即用户的操作界面*/
{
system("color1E");/*设计文本颜色*/
intb,flag=0;/*声明局部变量*/
while
(1)/*循环输出以下信息*/
{
printf("\n\t\t\t欢迎来到学生成绩管理系统!
\n");
printf("\n\t\t\t\t赖伟玮制作\n");
printf("\t\t\t-------------------------------\n");
printf("\t\t\t1.键入学生的信息\n\n");/*键入学生的信息*/
printf("\t\t\t2.查看录入的学生信息\n\n");/*查看录入的学生信息*/
printf("\t\t\t3.按姓名查看学生的信息\n\n");/*按姓名查看学生的信息*/
printf("\t\t\t4.按学号查看学生的信息\n\n");/*按学号查看学生的信息*/
printf("\t\t\t5.按宿舍号查看学生的信息\n\n");/*按宿舍号产看学生的信息*/
printf("\t\t\t6.删除学生信息\n\n");/*删除学生信息*/
printf("\t\t\t7.保存学生信息\n\n");/*保存*/
printf("\t\t\t8.打开文件\n\n");/*打开文件*/
printf("\t\t\t9.我的个人信息\n\n");/*我的个人信息*/
printf("\t\t\t0.退出\n\n");/*退出*/
printf("\t\t\t请输入你的选择:
");
scanf("%d",&b);
switch(b)
{
case1:
type();break;/*调用键入学生信息函数*/
case2:
look();break;/*调用查看函数*/
case3:
search_name();break;/*调用姓名查看函数*/
case4:
search_number();break;/*调用学号查看函数*/
case5:
search_dorm();break;/*调用宿舍号函数*/
case6:
del();break;/*调用删除函数*/
case7:
save();break;/*调用保存函数*/
case8:
see();break;/*调用打开文件函数*/
case9:
welcome();break;/*调用我的个人信息函数*/
case0:
flag=1;break;/*退出SWITCH语句*/
default:
printf("错误!
");
}
if(flag)break;/*如果选择0就退出循环*/
}
}
voidwelcome()/*我的个人信息函数*/
{
system("CLS");
printf("\n\n\t\t------------个人信息------------");/*在屏幕上输出一下信息*/
printf("\n\n\n\n\t\t姓名:
赖伟玮");
printf("\t\t\tSex:
男\n");
printf("\t\t年龄:
21\n");
printf("\n\t\t\t--------学习经历--------\n\n\n");
printf("\t\t小学:
高梧小学\n\n");
printf("\t\t初中:
武平三中\n\n");
printf("\t\tS高中:
武平一中\n\n");
printf("\t\t大学:
东北大学秦皇岛分校\n\n");
printf("\n\n\t\t按任意键返回欢迎屏幕!
");
getch();/*按任意键返回主函数*/
}
voidtype()/*定义键入学生信息函数*/
{
system("CLS");
inti;/*定义局部变量*/
printf("\t\t输出你想输入的学生信息个数:
");
scanf("%d",&n);
for(i=0;i{
printf("\n\t\t\t----------------\n");
printf("\t\t\t学号:
");
scanf("%s",&stu[i].num);/*输入学号*/
printf("\t\t\t姓名:
");
scanf("%s",&stu[i].name);/*输入姓名*/
printf("\t\t\t性别:
");
scanf("%S",&stu[i].sex);/*输入性别*/
printf("\t\t\t宿舍号:
");
scanf("%s",&stu[i].dorm);/*输入宿舍号*/
printf("\t\t\t出生日期:
");
scanf("%s",&stu[i].birthday);/*输入出生日期*/
}
printf("\n\n\t\t\t按任意键返回菜单!
!
");
getch();
save();
}
voidsave()/*建立保存文件函数*/
{
system("CLS");
FILE*fp;/*定义文件型指针*/
inti;
if((fp=fopen("student.txt","wb"))==NULL)/*打开输出文件*/
{
printf("不能打开文件!
\n");
return;/*终止程序*/
}
for(i=0;iif(fwrite(&stu[i],sizeof(structstudent),1,fp)!
=1)
printf("文件写入错误\n");
fclose(fp);/*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!
\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!
!
");
getch();
}
voidlook()/*定义查看函数*/
{
system("CLS");
inti;
//n=openl();/*调用openl函数*/
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\t\n");
for(i=0;i{
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
voidsearch_name()/*按姓名查看函数*/
{
system("CLS");
inti;
charname[20];/*声明字符数组*/
printf("\t\t\t请输入学生姓名:
\n");
scanf("%s",name);
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\t\n");
for(i=0;iif(strcmp(stu[i].name,name)==0)/*将输入的姓名与结构体中的姓名进行比较*/
{
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
printf("\n\n\n\t\t\t按任意键返回菜单");
}
getch();
}
voidsearch_number()/*定义按学号查看函数*/
{
system("CLS");
inti;
charnumber[15];/*声明字符数组*/
printf("\t\t\t请输入学号:
\n");
scanf("%s",number);
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\n");
for(i=0;iif(strcmp(stu[i].num,number)==0)/*将输入的学号与结构体中的学号进行比较*/
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
voidsearch_dorm()/*按宿舍号查看函数*/
{
system("CLS");
inti;
chardorm[15];/*声明字符数组*/
printf("\t\t\t请输入学生宿舍号:
\n");
scanf("%s",dorm);
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\t\n");
for(i=0;iif(strcmp(stu[i].dorm,dorm)==0)/*将输入的宿舍号与结构体中的宿舍号进行比较*/
{
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
printf("\n\n\n\t\t\t按任意键返回菜单");
}
getch();
}
voiddel()/*定义删除学生信息函数*/
{
inti;
chara;
charname[20];
system("CLS");
printf("\t\t\t输入学生名字:
\n");
scanf("%s",name);
system("CLS");
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\t\n");
for(i=0;iif(strcmp(stu[i].name,name)==0)
{
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
getch();
printf("真的删除?
(yorn)");
getchar();
scanf("%c",&a);
if(a=='y')/*是否删除该信息*/
{
for(;istu[i]=stu[i+1];
n=n-1;
printf("你已经删除信息");
}
else
printf("退出");
getch();
}
save();
}
intopenl()/*定义打开文件函数*/
{
system("CLS");
inti;
FILE*fp;
if((fp=fopen("student.txt","rb"))==NULL)
{
printf("Cannotopenfile.\n");
exit(0);
}
for(i=0;!
feof(fp);i++)
fread(&stu[i],sizeof(structstudent),1,fp);
fclose(fp);
return(i-1);
}
voidsee()/*打开并查看文件*/
{
system("CLS");
inti;
n=openl();
printf("文件打开成功!
\n");
printf("按任意键查看!
\n");
getch();
printf("\t学号\t姓名\t性别\t宿舍号\t出生日期\t\n");
for(i=0;i{
printf("%10s\t%s\t%2s\t%10s\t%10s\t\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].dorm,stu[i].birthday);
}
printf("\n\n\n\t\t\t按任意键返回菜单");
getch();
}
6、强化训练心得体会
通过为期一周的课程设计,我们对《C语言》这门课程有了更深一步的了解。
它是计算机程序设计的重要理论技术基础,在我们通信工程专业的学习中占据着十分重要的地位。
同时也使我们知道,要学好这门课程,仅学习书本上的知识是不够的,还要有较强的实践能力。
因为我们学习知识就是为了实践。
而只有多实践,多编写程序,才能更好的理解与掌握书本上的东西。
运用《C语言》中的算法思想作数据结构,结合C语言基本知识,编写一个学生信息管理系统。
通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的基本数据类型、基本控制结构、数组、指针、函数、结构体和共用体,进一步熟悉指针的用法,数组的建立运用和函数的调用等。