c语言程序设计。
课程设计材料。
学生姓名学号。
系 (院信息工程学院。
专业: 信息管理与信息系统。
设计(**)题目: 学生信息管理系统
完成日期: 2024年9月6日-2024年10月15日
指导教师徐永安。
一、课程设计目的。
1. 通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析,并设计合理的模块化结构。
2. 通过课程设计,进一步掌握c有并重要的数据结构。掌握并熟练运用指针、链表、结构体、文件等数据结构。
3. 通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。
4. 通过课程设计,培养c语言知识运用和自学能力,真正的把课堂上获得的知识运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个中小型系统。
5. 通过课程设计,加强了自己的程序分析能力。
二、 课程设计内容。
此系统以计算机系的学生为背景,提供对学生个人简历信息的录入、编辑、查找、统计等功能。具体功能实现如下:
1) 信息录入:实现学生简历信息的录入功能,并能将其以文件形式加以保存。
2) 编辑功能:实现对学生简历信息的添加,并对指定学生的简历信息进行删除或修改等功能。
3) 信息浏览功能:实现对指定班级或全部学生的学生简历信息浏览。
4) 查询功能:实现按学号查询、按姓名查询学生简历信息的功能。
5) 统计功能:实现对男生、女生人数的统计功能。
6) 系统以菜单方式工作,界面清晰,易于操作。
三、 总体设计。
本系统的功能模块如图1所示,主要有以下模块:
1) 课程名称界面:构造函数void auther(),实现课程设计名称以及作者的显示。
2) 系统欢迎界面:构造函数void welcome(),实现欢迎使用学生简历管理系统的显示。
3) 主菜单界面:构造函数void mainmenu(),实现系统主菜单的显示。
4) 学生信息录入:构造函数void record(),实现学生简历信息的录入及显示。并通过调用函数void insert(struct student *stu),实现对学生简历信息的添加录入以及对学生总数的统计。
5) 学生信息修改:构造函数void change(),实现对需要修改简历信息的学生的查找,并通过调用修改函数void devise(struct student *p),实现学生信息修改界面的显示并对其简历信息进行修改。
6) 学生信息查询:构造函数void query(),实现查询界面的显示。并通过对按学号查询函数void query_by_num()、按姓名查询函数 void query_by_name()的调用,实现相应的学生简历信息的查询。
7) 学生信息删除:构造函数void del(),实现对指定学生的学生简历信息的删除。并通过函数free(),释放内存空间。
8) 学生信息浏览:构造函数void see(),实现学生简历信息浏览界面的显示。并通过对按班级浏览函数display_by_class()、全部学生浏览函数displayall()的调用,实现相应的学生简历信息的浏览。
9) 统计男女人数:构造函数void male_female_num(),实现对指定性别学生的人数统计。
图1系统功能模块图。
四、详细设计。
一)数据结构设计。
本程序用到的数据结构主要有:指针、链表、结构体、文件等。先声明一个类型为struct student的结构体,其成员为学生的简历信息。
然后通过对指针、链表、文件等数据结构的操作,实现对学生简历信息的录入,插入,存盘,查询,浏览,删除,修改等一系列操作。其中,结构体定义如下:
struct student
char class[10];
int num;
char name[10];
int age;
char sex[10];
char address[20];
char tele_num[15];
struct student *next;
二)模块接口设计。
1.所有函数模块声明如下:
void auther();显示课程名称*/
void welcome();显示欢迎界面*/
void mainmenu();主菜单函数*/
void record();录入学生简历信息*/
void insert(struct student *stu); 添加录入学生简历信息并统计学生总人数*/
void see();显示浏览界面*/
void display(struct student *stu); 打印学生简历信息*/
void display_by_class();实现按班级学生信息浏览*/
void displayall();实现全部学生信息浏览*/
void query();显示查询界面*/
void query_by_num();实现按学号查询*/
void query_by_name();实现按姓名查询*/
void readdata();从磁盘读出学生信息*/
void writedata();向磁盘写入学生信息加以保存*/
void freeall();释放内存空间*/
void del();实现指定学生的信息删除*/
void change();查找需要修改的学生*/
void devise(struct student *p); 实现学生信息的修改*/
void male_female_num();实现男女人数统计*/
2.并定义两个全局变量:
int total_num = 0;
struct student *head = null;
3.主要模块的实现。
系统以主函数void main()为入口,首先通过textcolor(yellow)以及textbackgroud(green)将文本颜色置为黄色,背景颜色置为绿色。
调用void auther()函数,显示课程设计名称及作者信息。调用void welcome()函数,显示系统欢迎界面。
然后调用void mainmenu()函数,进入主菜单界面。系统接收用户输入的选择,调用相应的函数,进入到下一级菜单进行相关工作。
以下是几个主要模块的流程图:
1)主菜单函数:
图2 主函数流程图。
2)信息浏览函数:
(3)信息修改函数:
五、 运行结果。
主菜单界面:
图5主菜单界面。
输入功能选择,系统自动进入相应功能界面。
信息录入界面:
图6 信息录入界面。
信息浏览界面:
图6 全部信息浏览。
图7 指定班级浏览。
信息查询界面:
从键盘中输入选择,可以按学号和姓名进行查询,并显示结果。
图8 按姓名查询的结果。
信息修改界面:
从键盘中输入需要修改的信息**,自动提示输入新的信息。
六、程序调试。
程序在经过了许多次调试之后,终于运行成功。在这样一个过程中,通过查资料、请教同学、上网查询等途径,主要克服了以下问题:
1) 怎样实现对界面的美化,即对文档、背景颜色的控制;尽管还没有掌握,但是能有一定的了解,以后可以进一步学习。
2) 关于清屏函数在c环境的实现,即转化为〈stdlib〉里的system(clr);
3) 在实现按班级并有序浏览学生信息时,首先通过strcmp()函数实现查找指定班级学生信息,然后通过冒泡法排序,实现学号由大到小有序排列。
4) 通过分析、查找资料,实现了把相似模块运用相同技术加以实现,大大缩小了程序的编辑量。
七、编程体会。
这次的课程设计给了我很多启示,让我对c语言这门课的学习有了全新的看法。
刚接触这门课程时,并不感兴趣,我一直认为编程是男生的工作,加上没有学习兴趣,尽管老师们一再强调其重要性,仍然没有引起重视,上课时也没有太用心,加上老师的授课方法比较特殊,主要靠课后自己钻研,所以上学期的c语言考试成绩很不理想。这学期我们安排了c语言的课程设计,本来也想学其他同学随便down一篇草草了事,但最后在学长及老师的教导下,还是选择认真对待。因为是第一次写程序,所以还是找了一个程序为模版,弄懂之后,按照自己的想法重新敲了一遍,并在同学的帮助下完成这个程序。
这段时间可以说是从一个c语言门外汉慢慢学会了写程序,在这之前,我甚至连最基本的知识都不清楚,没办法,从头学起,从算法(老师觉得不需要讲的知识,可我发现这对数据结构的学习很重要,更是编程的基础),到数据类型,然后慢慢接触到程序,而徐老师没有讲的知识则去请教了计科班的同学, 这是个漫长而艰难的过程,还好留了上学期老师的课件,从第一章看起,期间,不厌其烦的骚扰同学,一遇到解决不了的问题就上网查找,实在不懂的就跑去请教学姐学长……
c语言这门课不好学,我感觉尤其是对女生,需要有活跃的思维,灵活运用已有的知识,对于程序更是要有相当的耐心去调试,要有探索的精神,不断钻研,不断思考。
渐渐的,我发现我对c语言产生了莫名的情愫,尽管它的水很深很深,而我现在所了解的连皮毛都算不上,可是我愿意一步步摸索下去,从这个课程设计开始,将c语言学到最后……
C语言课程设计报告样本
hubei university of automotive technology c语言程序设计。课程设计报告。课设题目 填写本人做的课设题目名称 专业 填写本人的专业名称。班级 填写本人的自然班名称。姓名 填写本人的姓名。成绩 该处不填。完成日期 2013年5月27日 2012年6月21日 指导...
C语言课程设计报告样本
c语言程序设计。综合实验报告。设计题目 图书管理系统。班级。学号。姓名。指导教师梁国业。起止时间 2015 1 18 至 2015 2 25 2014 2015 学年第一学期。该系统包含图书馆馆藏图书的信息,供读者查询。建立一个文件,存放图书信息,包括 编号 书名 类别 出版社 作者 出版日期 存放...
C课程设计报告样本
姓名 张阳阳。学号 0121107250129 课程 c程序设计课程设计。报告题目 箱包的资料管理系统。完成日期 2012年6月1日。目录。1 软件功能和模块设计。2.各模块详细说明。2.1 主程序模块。2.2 数据文件载入模块。2.3 箱包资料添加模块。2.4 数据文件保存模块。2.5箱包计数模块...