学籍报告文档格式.doc
- 文档编号:13167087
- 上传时间:2022-10-07
- 格式:DOC
- 页数:34
- 大小:237.50KB
学籍报告文档格式.doc
《学籍报告文档格式.doc》由会员分享,可在线阅读,更多相关《学籍报告文档格式.doc(34页珍藏版)》请在冰豆网上搜索。
(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程序设计(第二版)》,清华大学出版社。
六、源程序及系统文件使用说明
学生成绩信息管理中各模块的功能说明程序代码设计
一:
结构体:
typedefstructstudentSTU
二:
添加学生信息函数:
STU*create(STU*h)
1)函数原形:
2)功能:
采用动态内存分配malloc函数和链表结构。
利用指针创建链表,将信息保存在链表里。
3)变量及类型:
STU*p,*q=h;
p=NEW;
5)源程序:
{
STU*p,*q=h;
if(p==NULL)
{
printf("
Noenoughmemorytoalloc"
);
exit(0);
}
fflush(stdin);
//清除缓冲区域
printf("
请输入编号:
"
scanf("
%s"
p->
number);
请输入姓名:
name);
请输入性别:
sex);
请输入生日:
birthday);
请输入系别:
department);
请输入专业:
major);
请输入入校日期:
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);
}
h=NULL;
while(fscanf(fin,"
c)&
&
c)
{
if(feof(fin))break;
q=p;
p=NEW;
strcpy(p->
number,c);
fscanf(fin,"
%s%s%s%s%s"
sex,p->
birthday,p->
department,p->
major,p->
if(h==NULL)h=p;
elseq->
next=p;
}
p->
if(h!
=NULL)printf("
\n读取成功\n"
elseprintf("
fclose(fin);
相关知识:
flush(stdin)刷新标准输入缓冲区,把输入缓冲区里的东西丢弃;
scanf()函数接收输入数据时,遇以下情况结束一个数据的输入:
(不是结束该scanf函数,scanf函数仅在每一个数据域均有数据,并按回车后结束)。
①遇空格、“回车”、“跳格”键。
②遇宽度结束。
③遇非法输入。
键盘缓冲区就可能有残余信息问题。
scanf()函数应该只是扫描stdin流,这个残存信息是在stdin中
解决就要在scanf()函数之后加个fflush(stdin)
fflush(stdin);
清空输入缓冲区,通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);
)
三:
删除学生信息函数(STU*delnode(STU*h))
STU*delnode(STU*h)
通过学号或者姓名找到要删除的学生并利用链表执行删除操作。
将信息保存在内存中建立的链表里。
STU*p=h,*q=p;
charc[20];
//输入学号或者学生姓名进行判断;
4)源程序
STU*p=h,*q=p;
fflush(stdin);
if(h==NULL)
printf("
没有记录!
\n"
return(h);
请输入编号或姓名:
gets(c);
while(p!
=NULL)
if((strcmp(p->
name,c)!
=0)&
(strcmp(p->
number,c)!
=0))
p=p->
else
if(p==h)h=p->
next=p->
free(p);
删除记录成功!
return(h);
未找到记录,无法删除!
键盘缓
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学籍 报告