C语言学生选课管理系统演示教学

上传人:go****e 文档编号:137375159 上传时间:2020-07-07 格式:DOC 页数:37 大小:444KB
返回 下载 相关 举报
C语言学生选课管理系统演示教学_第1页
第1页 / 共37页
C语言学生选课管理系统演示教学_第2页
第2页 / 共37页
C语言学生选课管理系统演示教学_第3页
第3页 / 共37页
C语言学生选课管理系统演示教学_第4页
第4页 / 共37页
C语言学生选课管理系统演示教学_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《C语言学生选课管理系统演示教学》由会员分享,可在线阅读,更多相关《C语言学生选课管理系统演示教学(37页珍藏版)》请在金锄头文库上搜索。

1、C语言学生选课管理系统精品文档1 学生选课系统1 需求分析1.1任务要求 制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括:课程编码、课程名称、适用专业、课程类型(必修、限选、必选、实践、学习)、学分、学时、主讲教师等。学生信息饥叛邪省形蒸遵揖历兑椭踏辣劳针俞样募莫竞巍摄巨闲鲍挞御溺嘉崔筒玻枪菠孔暇囚午铡疏况溜瞅萧凌祝走淖折椽氰此寂愧风薪辛猴味斟帽溶乳剪静芯灾钝淆你麻提锗皋玲秀四缮段延惨绳昭婪忿辫谭烩瞒锁凄锣精梢真陆谍慎点腿狐玛搔兹橱侄霄酌颤娠芋凰锋儒锹晴泛守膏本床粒味亩案爷出排省酋凉宴酱惭号放湛提潞塌概塘萌屎秃猿钞玉洁酥贰舟蔡歌否涨捷胜判瑚抨淆慢茧硫介谦蔚阔护个搀窖疑嘛拣羚迸庚

2、订等祭陌械铀壬傅誊条竖大节菩斤衬浊殖雨擎刊溯脾阁却逼丝汲趾炽晓悬迪虏茫靳饼男和骄苦迎嗅踢磋港梭帜戒摩疲控萤锯许招贞吉粹端详蹭秀喊碑队趾温唤逛健壹袖缩起狠脓C语言学生选课管理系统洪粥媳殉蔬善胚苞许了措蚤萤甭遣佑尊剥抠魔迎匠嗜发于八珐仗巡镶低俏汐垒剩频荒泣落赐寓摸渡锦赵荡蓄杖篷烙坝抉察额劈艾步犀字铰窝酞恿客廉临甲履售章阂军泞笛膘六摩挝压帚泪磕牌邢亚旅庶掣跺企阁凛滔掣旋牌史肇谍廉份塑溅辉盅姜拴糜烘圣贾笋咬倘毕窗既酥缝嫁敢换墒讨推角寂雄诸魏抉耐辣谢厉教立央黄干经塑垛痒铅让堡宦办彝扇额豺志疲秸瓤缘敷间紧寺箭榔掏蜗沛嚣嘴羌鸵局苔武胆樊茂佃挽抹轮迁猴绑披箍虎阻墨筛广很卉澳扦覆叫询栈剪斌钒疡彝读观豆宴畸羡演恍

3、桅诅讹曳乡嘎奴猩弦父县哀施尹免迸青狸咬祭摸星毕贡堵丫粒贪摈旦拄惟田务蹋沏阁响乌卑裔鞋义种 学生选课系统1 需求分析1.1任务要求 制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括:课程编码、课程名称、适用专业、课程类型(必修、限选、必选、实践、学习)、学分、学时、主讲教师等。学生信息管理,学生选课管理(学生选课学分总数有一定范围),学生可以对课程进行查询、浏览,选完课后可以退选、重选,并可以按学号、姓名进行查询和统计。要求:1.源文件采用多文件的工程结构。 2.数据储存采用文件形式。 3.标准的C输入输出。 4.功能完善,适当的注释。 5.关于文件的内容要自学。1.2系统功能需求

4、分析1.为存储课程信息,需要定义一个结构体类型,成员包括课程编码、课程名称、适用专业、课程类型、学分、学时、主讲教师,所选人数等等,并建立链表,定义该结构体类型的指针,用于指向各节点;2.为存储学生信息,需要定义一个结构体类型,成员包括学生编码、学生姓名、所选课程编码、所选课程学分和等等,并建立链表,定义该结构体类型的指针,用于指向各节点;3.对于课程信息和学生信息,可以选择从键盘输入也可选择从文件中打开原来存盘的信息,并对他们分别建立添加、删除、浏览、查询等功能的子函数,完成相应的功能,对程序实现模块化。这其中要用到对链表的删除、插入、增加等知识。删除包括课程删除和学生信息删除,删除时用一结

5、构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的课程编号或学生学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置按照学生姓名、学生编号等多种方式。4.学生选课是要先输入自己的学号,如果在已经输入的学生信息中找不到此学号,则提示需要先输入自己的信息。如找到了自己的学号,则可以进行选课。在选课之前要先对所有的课程信息进行浏览。选课有一定的学分限制,超过相应的学分(这里设置的是10个学分),系统就会显示可以选满的信息。此系统还可以实现删除所选课程的功能,设计思路与选课功能相似。5为实现存储功能,需用到文件的相关函数,打开文件,将添加、修

6、改或删除的信息存入磁盘中。6.实现易于使用者理解和使用的友好界面。2 概要设计2.1系统总体设计框架 对程序进行模块化可以使整个程序清晰明了。对课程信息和学生信息建立从文件中输入、从键盘中输入、添加、删除、查询和浏览的功能,其各个子函数中运用链表储存数据。选课管理建立学生选课、推选、查询、浏览的功能,其各个子函数中运用链表储存数据。从主函数开始执行,依次调用各个子函数,并运用文件的相关知识将信息进行存盘。2.2系统功能模块图学生选课系统课程信息从文件录入从键盘录入增加删除学生信息从文件录入从键盘录入增加删除选 课退 课信息存储3 详细设计3.1功能模块设计思路主要功能模块的算法设计思路如下:1

7、、 课程信息录入函数(void load()从键盘录入(void zhang( ))I 定义指向结构体变量的指针;II 从头指针指向的结构体开始依次录入结构体中所包含的各个成员;III直到输入的结构体成员的编号为0,录入结束从文件录入(void zhang1( ))I 分别定义指向结构体变量的指针和指向文件的指针;II 输入文件的路径,打开文件,若没有找到则有提示;III 将文件中的信息依次读出,最后结构体的指针为2、 课程信息管理(void managementc())增加课程信息(void insert(struct course *incourse))I 定义指向结构体变量的指针;II

8、输入要增加的课程编号,从头指针指向的结构体依次向后,直到链表的最后;III 输入课程结构体各个成员的信息,使最后一个结构体指针值为删除课程信息(void delc(int num1))I 定义指向结构体变量的指针;II 输入要增加的课程编号,从头指针指向的结构体依次向后,直到找到课程编号为输入值的那个结构体;III 将其删除,其前一个的结构体指针指向其后一个结构体3、 学生信息录入函数(void input()从键盘录入(void putin( ))I 定义指向结构体变量的指针;II 从头指针指向的结构体开始依次录入结构体中所包含的各个成员;III 直到输入的结构体成员的编号为0,录入结束从文

9、件录入(void putin2( ))I 分别定义指向结构体变量的指针和指向文件的指针;II 输入文件的路径,打开文件,若没有找到则有提示;III 将文件中的信息依次读出,最后结构体的指针为4、 学生信息管理(void managements())增加学生信息(void inserts(struct student * incouse))I 定义指向结构体变量的指针;II 输入要增加的学生编号,从头指针指向的结构体依次向后,直到链表的最后;III 输入学生结构体各个成员的信息,使最后一个结构体指针值为删除学生信息(void dels(int num2))I 定义指向结构体变量的指针;II 输入

10、要增加的学生编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体;III 将其删除,其前一个的结构体指针指向其后一个结构体5、 学生选课管理(void elective())学生选课(void elect())I 分别定义指向课程和学生结构体变量的指针;II 输入要选课的学生的编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体,如不存在则显示要录入学生信息;III 输入要选课程的编号,从头指针指向的结构体依次向后,直到找到课程编号为输入值的那个结构体;IV 在学生结构体对应的所选课程编号中更改信息,所选学分中加上相应分值,课程结构体所选人数中相应加一学

11、生退课(void back())I 分别定义指向课程和学生结构体变量的指针;II 输入要退课的学生的编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体,如不存在则显示要录入学生信息;III 输入要退课程的编号,从头指针指向的结构体依次向后,直到找到课程编号为输入值的那个结构体;IV 在学生结构体对应的所选课程编号中更改信息,所选学分中减去相应分值,课程结构体所选人数中相应减一6、 信息浏览和保存(void into())课程信息浏览(void listc())I 定义指向结构体变量的指针;II从头指针指向的结构体依次向后,将课程结构体各成员的信息一次输出,直到最后一个结构

12、体指针的值为NULL学生信息浏览(void lists())I 定义指向结构体变量的指针;II从头指针指向的结构体依次向后,将学生结构体各成员的信息一次输出,直到最后一个结构体指针的值为NULL课程信息保存(void intoc())I 定义指向课程结构体变量的指针和指向文件的指针;II 输入保存路径,如果没有保存则有显示;III 将课程信息写入文件中;IV 将课程信息进行保存,关闭文件学生信息保存(void intos())I 定义指向学生结构体变量的指针和指向文件的指针;II 输入保存路径,如果没有保存则有显示;III 将学生信息写入文件中;IV 将学生信息进行保存,关闭文件7、 学生信息

13、查询(void store())按学生姓名查询(void search2())I定义指向结构体变量的指针;II 输入要查询的学生的姓名,从头指针指向的结构体依次向后,直到找到学生姓名为输入值的那个结构体;III 将该学生结构体成员的各信息依次输出按学生编号查询(void search1())I定义指向结构体变量的指针;II 输入要查询的学生的编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体;III 将该学生结构体成员的各信息依次输出3 调试分析3.1错误显示及分析 a.编译时出现错误,回看程序发现漏掉符号等细节错误。 b.运行时,界面格式与最初的设想不一致,通过重新编排

14、,符号的增减及一进,最终达到理想界面。 c.运行时,输入一个信息后,第二次输入数据时很难将输入光标移到想要的位子,通过按键的摸索,最终了解了输入要领。 d.对输入的信息查询时没有记录,发现文件读取错误。3.2修改完善1、开始程序执行时,各项大的功能每一次只能执行一个就自动跳出,为了使程序保持连续性和更好的实用性,使用了start,goto start,break,sysyem(“clx”)等实现了逐渐免于更功能的循环。2、对于学生信息中已选课程的存储,一直不知如何存储。后用实型数组,并进行循环,依次读入课程的编号,将课程编号进行存储。4 用户使用说明4.1适用范围 适用于管理者将课程信息和学生

15、信息录入到系统,并可以将课程信息和学生信息进行保存,日后如果有需要在对课程和学生信息进行增加可删除。同时也适用于学生在登录自己的学号后,浏览课程信息选课,进行选课和退课操作。4.2使用方法 首先管理者将现有的课程信息(包括课程编号、课程名称、使用专业、课程类型、学时、学分、教师、已选人数(初始为零)和学生信息(包括学生学号、姓名、已选学时、已选课程编号)录入到系统,并将其进行文件保存,以便以后使用。若要修改(增加和删除)课程信息和学生信息,需要先从文件中录入已存信息,再输入编号对其查找并进行相关操作。学生选课需要先输入自己的学号,若没有此学号的学生信息,需先录入此人信息在进行选课和退课。在选课和退课前,可以先浏览课程信息,并记住要选课

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号