1、攀 枝 花 学 院 学生课程设计(论文) 题 目: 学生证管理程序 学生姓名: 高 健 学 号:201210804017 所在院(系): 数学与计算机学院 专 业: 软件工程 班 级: 2012级1班 指导教师: 吕俊瑞 职 称: 助 教
2、 2013年01月 02日 攀枝花学院本科学生课程设计任务书 题 目 学生证管理程序 1、课程设计的目的 是学习结构数组或链表的建立,文件的输入及输出、函数及其指针的使用方法。 2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等) 一、用C实现如下功能: (1)程序可以按默认文件名或指定文件名将记录读入内存。 (2)程序可以按默认文件名或指定文件名存储记录文件。 (3)可以通过键盘连续输入学生的学生证信息,如果已经从文件中导入记录,新录入的记录应追加在已有记录之后。 (4)给定某位学生的学号,显示某位学生的学生证信息。
3、 (5)给定某位学生的学号,修改该学生的学生证信息。 (6)给定某位学生的学号,删除该学生的学生证信息。 (7)给定某个班级的班号,显示该班所有学生的学生证信息。 (8)提供一些统计各类信息的功能(自行定义统计项目如性别,年龄)。 (9)学生证应该包含的信息请参看自己的学生证。 (10)为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。 二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不
4、及格记。 3、主要参考文献 [1]谭浩强,《C程序设计》,清华大学出版社 [2]刘振安,孙忱,刘燕君,《C程序设计课程设计》,机械工业出版社 [3]汪诗林,《数据结构算法与应用》,机械工业出版社 4、课程设计工作进度计划 课程设计时间为一周,分四个阶段完成: 1. 分析设计阶段。引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行。这一阶段前第1天完成。 2. 编码调试阶段:根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能。这一阶段在第2-3天完成。 3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求
5、学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容。这一阶段在第4-5天完成。 4. 考核阶段。这一阶段在第5天完成。 指导教师(签字) 日期 年 月 日 教研室意见: 年 月 日 学生(签字): 接受任务时间: 年 月 日 注:任务书由指导教师填写。 课程设计(论文)指导教师成绩评定表 题目名称 学生证管理程序 评分项目 分值 得分 评价内涵 工作 表现 20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。 02 科学实践、调研 7
6、 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。 03 课题工作量 7 按期圆满完成规定的任务,工作量饱满。 能力 水平 35% 04 综合运用知识的能力 10 能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。 05 应用文献的能力 5 能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。 06 设计(实验)能力,方案的设计能力 5 能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、
7、可靠;研究思路清晰、完整。 07 计算及计算机应用能力 5 具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。 08 对计算或实验结果的分析能力(综合分析能力、技术经济分析能力) 10 具有较强的数据收集、分析、处理、综合的能力。 成果 质量 45% 09 插图(或图纸)质量、篇幅、设计(论文)规范化程度 5 符合本专业相关规范或规定要求;规范化符合本文件第五条要求。 10 设计说明书(论文)质量 30 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。 11 创新 10
8、 对前人工作有改进或突破,或有独特见解。 成绩 指导教师评语 指导教师签名: 年 月 日 摘要 随着科学技术的飞速发展,经济知识和信息产业初见端倪,特别是信息技术和网络技术的迅速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻。C语言作为国际上广泛流行的通用程序语言,在计算机的研究和应用中以展现强大的生命力。C语言是一种功能强大,使用灵活的计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言特点,它既可用于编写系统软件又可用于编写应用软件。它是由美国贝尔研
9、究所的D.M.Ritchie于1972年推出,1978年后,c语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到c语言,在操作系统和系统使用系统程序以及需要对硬件进行操作的场合,用c语言明显优于其他高级语言,许多大型应用软件都是用c语言编写的。C语言绘图能力很强,具有可移植性,并具有很强的数据处理能力,因此适用于编写系统软件,三维,二维图形和动画。它是数值计算的高级设计。 本次课程设计利用c语言编写一个学
10、生证管理程序。实现建立学生数据结构体、使用多个函数。对学生证上的信息进行管理,如浏览学生信息、查询学生信息,修改学生信息,删除学生信息,统计男女生人数等功能。 关键词:c程序设计、结构体、学生信息 目 录 摘要 1 需求分析·······················································1 1.1 需求概述···················································1 1.2 需求环境·········································
11、··········1 1.3 功能描述···················································1 2 概要设计·······················································1 2.1 程序功能模块···············································1 2.2 程序流程图·················································2 2.3 数据结构的设计·····················
12、························3 3 详细设计·······················································4 3.1 程序初始化·················································4 3.1.1 代码功能···········································4 3.1.2 功能实现代码·······································4 3.2 程序的操作过程·······
13、······································4 3.2.1 录入函数···········································4 3.2.2 浏览函数···········································5 3.2.3 增加函数···········································5 3.2.4 查询某学生信息函数·································6 3
14、2.5 查询某班的学生信息函数·····························7 3.2.6 修改函数···········································8 3.2.7 删除函数···········································9 3.2.8 统计函数··········································10 3.2.9 菜单函数·········································
15、·10 4 测试与运行····················································11 结束语··························································16 参考文献························································16 附录····························································17 1. 需求分析 1.1 需求概述 根据题目要
16、求,由于学生信息是一个有不同类型的变量组成,因此,应提供结构体操作,在程序中需要浏览学生信息,应提供显示、查找、修改、删除、统计等操作。另外还应该提供键盘式的选择菜单实现功能选择。 1.2 需求环境 本课程设计需要的设备为硬件要求和软件配置要求具体要求如下: 1.硬件要求:一台计算机。 2.软件配置:WINDOWS 7 + Visual C++6.0 1.3 功能描述 使用学生证管理程序程序对学生证上的学生信息进行存储、浏览、添加、搜索、修改、删除以及统计男女生的人数等操作。 2.概要设计 2.1
17、程序功能模块 该程序在c语言知识的基础上,在Visual C++环境下进行学生证管理的 全过程,编写了9个子函数,其基本的功能描述如下: 1. 运行程序,首先会出现一个菜单,有0~8的数字选择项; 2. 选择1,录入全部学生信息; 3. 选择2,浏览全部学生信息; 4. 选择3,增加某位学生信息; 5. 选择4,查询某位学生信息; 6. 选择5,查询该班所以学生证信息; 7. 选择6,修改某位学生的学生证信息; 8. 选择7,删除某位学生的学生证信息; 9. 选择8,分别统计男女生的人数;
18、 10. 选择0,退出程序。 24 2.2 程序框图 图 2.2.1 choice=0 结束 返回菜单 统计人数 删除信息 修改信息 按班号查询信息 录入信息 浏览信息 增加学生信息 按学号查询信息 choice=8 choice=7 choice=6 choice=5 choice=4 choice=3 choice=2 choice=1 菜单 开始 2.3数据结构的设计 1. 用一个结构体typedef struct
19、Student{char Class[30];char number [100];char name[100];char sex[10];int birthday;int ruxue; }str;分别来定义一个学生的所在班级、学号、姓名、性别、出生日期和入学时间。 2.用一个main函数作为主菜单,运用switch选择结构,形成8个选择项。 3.定义七个函数int input(str s[],int n); void scan(str s[],int n); int add(str s[],int n);void searchstudent(str s[],int n);vo
20、id searchclass(str s[],int n); void amend(str s[],int n);int Delete(str s[],int n);void statistics(str s[],int n)。分别表示输入学生信息,浏览所有学生信息、 添加学生的信息、查找某位学生信息、查找某班的所有的学生的学生证信息、修改某学生的信息、删除某学生信息、统计男女生的人数。 4.根据main函数中设定的选择分支,进行不同的选择,从而调用不同的子函数。 5.每进行一项工作后,按Enter键即可返回到主菜单,再进行下一个选择。 6.如果按0键,就说明选项不在这个选择结构的范
21、围内,那么它将直接跳出,这样整个过程就直接结束了。 3. 详细设计 3.1 程序初始化 3.1.1 代码功能 实现菜单中选项的功能 3.1.2 功能实现代码 各函数实现菜单中选项的功能 3.2 程序的操作过程 3.2.1 录入函数 选择choice的值为1,输入需要存储的学生信息的个数,然后输入学生的班级、学号、姓名、生日、入学日期,将信息存储在结构体str中,录入成功后,按enter 键返回menu函数。返回主函数后,执行其他的函数操作。
22、
[程序]
int input(str s[],int n) /*输入学生信息*/
{
int i,a;
system("cls");
printf("请输入学生信息个数:");
scanf("%d",&a);
printf("\n");
n=a;
for(i=0;i 23、 scanf("%s",&s[i].number);
printf("请输入学生的名字:");
scanf("%s",&s[i].name);
printf("请输入学生的性别(man or woman):");
scanf("%s",&s[i].sex);
printf("请输入学生生日:");
scanf("%d",&s[i].birthday);
printf("请输入学生入学日期:");
scanf("%d",&s[i].ruxueriqi);
printf("\n");
24、 if((strcmp(s[i].sex,"man")!=0)&& /*判断是否符合要求*/
(strcmp(s[i].sex,"woman")!=0))
{
i=i-1;
printf("此次输入错误请重新输入\n");
}
}
printf("录入信息成功!\n");
getch(); /*保存在结构体中*/
return n;
}
3.2.2 浏览函数
25、 选择choice的值为2,显示全部已录入的学生信息。浏览完后,按enter键,返回menu函数,执行其他的函数操作。
[程序]
void scan(str s[],int n) /*浏览所有学生信息*/
{
int i;
system("cls");
printf("\nclass_number\tnumber\tname\tsex\tbirthday\truxueriqi\n");
for (i=0;i 26、t%s\t%s\t%s\t%s\t%d\t\t%d\n",
s[i].class_number,s[i].number,s[i].name,s[i].sex,s[i].birth day,s[i].ruxueriqi); /*依次输出已保存的信息*/
}
getch();
}
3.2.3 增加函数
选择choice的值为3,输入需要增加的学生信息的个数,然后输入学生的班级、学号、姓名、生日、入学日期,将信息也存储在结构体str中,添加成功后,按enter 键返回menu函数。返回主函数后,执行其他的函数操作。






