学籍报告.doc
- 文档编号:236739
- 上传时间:2022-10-07
- 格式:DOC
- 页数:34
- 大小:237.50KB
学籍报告.doc
《学籍报告.doc》由会员分享,可在线阅读,更多相关《学籍报告.doc(34页珍藏版)》请在冰豆网上搜索。
华侨大学
程序设计课程设计
学生管理系统
———学籍管理系统
学院数学学院
专业信息与计算科学
学号
学生姓名
指导教师姓名
2012年月日
32
淮北师范大学计算机学院C程序设计报告
一、设计目的与内容
(1)实验目的
l进一步巩固和复习C程序设计的基础知识。
l培养学生结构化程序、模块化程序设计的方法和能力。
l提高学生调试程序的技巧和软件设计的能力。
l提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。
l了解软件的编制过程。
(2)实验内容
1)实现对学生信息的增加、修改、删除、插入。
2)使用结构体对学生信息的存储。
3)使用链表实现对学生信息的增加、修改、删除、插入;
4)使用文件完成数据的存储与读取,要求每次运行某个模块时将数据读入结构体中,并提供保存选项,将结构体中的数据保存在文件中。
二、算法的基本思想
(1)数据结构
学生成绩信息:
structstudent
{
charnumber[20];//定义学号字符串
charname[20];//定义姓名字符串
charsex[10];//定义性别字符串
charbirthday[10];//定义出生年月字符串
chardepartment[20];//定义系别字符串
charmajor[20];//定义专业字符串
charschooldate[10];//定义入校时间字符串
structstudent*next;
};
typedefstructstudentSTU;
(2)本系统涉及的知识点
结构体、数组、循环、函数、指针、链表、文件操作。
(3)功能要求功能模块
1、建立学生信息,每个学生的信息包括:
学号、姓名、性别、系别、专业、出生日期、入校时间。
2、用链表的形式对学生信息分别进行增加、修改、删除、插入。
3、结果保存在文件中
(4)功能模块
学生管理系统
1.文件操作
2.学生基本信息管理
3.学生成绩信息管理
4.退出
文件操作
1.从文件中读取信息
2.学生信息存入文件
学生成绩信息管理
1.增加学生信息
2.修改学生信息
3.删除学生信息
4.插入学生信息
插入学生信息
删除学生信息
修改学生信息
5.增加学生信息
学生信息存入文件
保存学生信息
从文件中读取信息
读取学生信息
(4)算法功能描述
①总体功能说明:
本系统可以做到对:
学生信息:
学号、姓名、性别、系别、专业、出生年月、入校时间。
分别进行添加、修改、删除、插入功能
②学生成绩信息管理功能说明:
可以添加学生学号、姓名、性别、系别、专业、出生年月、入校时间。
并可以通过对输入的学生学号或者姓名进行学生信息的修改。
四、系统测试
1.主程序界面
2.增加一条记录
3..修改一条记录
4.删除一条记录。
5.插入一条记录
6.显示所有记录
7.保存的文档
五、结论
通过这次课程设计,我感觉到要真正做出一个程序并不很容易,但只要用心去做,总会有收获,特别是当我遇到一个问题,想办法去解决,最后终于找到方法时,心里的那份喜悦之情真是难以形容。
编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查。
直到最终搞清为止。
我对于链表也有了更深层次的理解,尤其是采用动态内存分配malloc函数的使用。
但我的程序仍让不够完美,对同名学生方面不完善。
参考文献:
谭浩强,《C程序设计(第二版)》,清华大学出版社。
六、源程序及系统文件使用说明
学生成绩信息管理中各模块的功能说明程序代码设计
一:
结构体:
structstudent
{
charnumber[20];//定义学号字符串
charname[20];//定义姓名字符串
charsex[10];//定义性别字符串
charbirthday[10];//定义出生年月字符串
chardepartment[20];//定义系别字符串
charmajor[20];//定义专业字符串
charschooldate[10];//定义入校时间字符串
structstudent*next;
};
typedefstructstudentSTU
二:
添加学生信息函数:
STU*create(STU*h)
1)函数原形:
STU*create(STU*h)
2)功能:
采用动态内存分配malloc函数和链表结构。
利用指针创建链表,将信息保存在链表里。
3)变量及类型:
STU*p,*q=h;
p=NEW;
5)源程序:
STU*create(STU*h)
{
STU*p,*q=h;
p=NEW;
if(p==NULL)
{
printf("Noenoughmemorytoalloc");
exit(0);
}
fflush(stdin);//清除缓冲区域
printf("请输入编号:
");
scanf("%s",p->number);
printf("请输入姓名:
");
scanf("%s",p->name);
printf("请输入性别:
");
scanf("%s",p->sex);
printf("请输入生日:
");
scanf("%s",p->birthday);
printf("请输入系别:
");
scanf("%s",p->department);
printf("请输入专业:
");
scanf("%s",p->major);
printf("请输入入校日期:
");
scanf("%s",p->schooldate);
p->next=NULL;
if(h==NULL)h=p;
else
{
while(q->next!
=NULL)
{
q=q->next;///查找到表尾
}
q->next=p;
}
return(h);
}
STU*InputFile()//保存到文档
{
STU *p=NULL,*q;
staticSTU*h;
charc[20];
if((fin=fopen("student.doc","r"))==NULL)
{
printf("\n请创建文档\n");
return(NULL);
}
else
{
h=NULL;
while(fscanf(fin,"%s",c)&&c)
{
if(feof(fin))break;
q=p;
p=NEW;
strcpy(p->number,c);
fscanf(fin,"%s",p->name);
fscanf(fin,"%s%s%s%s%s",p->sex,p->birthday,p->department,p->major,p->schooldate);
if(h==NULL)h=p;
elseq->next=p;
}
p->next=NULL;
if(h!
=NULL)printf("\n读取成功\n");
elseprintf("\n请创建文档\n");
}
fclose(fin);
return(h);
}
相关知识:
flush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃;
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:
(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
①遇空格、“回车”、“跳格”键。
②遇宽度结束。
③遇非法输入。
键盘缓冲区就可能有残余信息问题。
scanf()函数应该只是扫描stdin流,这个残存信息是在stdin中
解决就要在scanf()函数之后加个fflush(stdin)
fflush(stdin);清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)
三:
删除学生信息函数(STU*delnode(STU*h))
1)函数原形:
STU*delnode(STU*h)
2)功能:
通过学号或者姓名找到要删除的学生并利用链表执行删除操作。
将信息保存在内存中建立的链表里。
3)变量及类型:
STU*p=h,*q=p;
charc[20];//输入学号或者学生姓名进行判断;
4)源程序
STU*delnode(STU*h)
{
STU*p=h,*q=p;
charc[20];
fflush(stdin);//清除缓冲区域
if(h==NULL)
{
printf("没有记录!
\n");
return(h);
}
printf("请输入编号或姓名:
");
gets(c);
while(p!
=NULL)
{
if((strcmp(p->name,c)!
=0)&&(strcmp(p->number,c)!
=0))
{
q=p;
p=p->next;
}
else
{
if(p==h)h=p->next;
elseq->next=p->next;
free(p);
printf("删除记录成功!
\n");
return(h);
}
}
printf("未找到记录,无法删除!
\n");
return(h);
}
相关知识:
flush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃;
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:
(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
①遇空格、“回车”、“跳格”键。
②遇宽度结束。
③遇非法输入。
键盘缓
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 报告