ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:393.72KB ,
资源ID:19753423      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19753423.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言学生选课管理系统Word格式文档下载.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言学生选课管理系统Word格式文档下载.docx

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

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

3、的信息,使最后一个结构体指针值为删除课程信息(void delc(int num1)II 输入要增加的课程编号,从头指针指向的结构体依次向后,直到找到课程编号为输入值的那个结构体;III 将其删除,其前一个的结构体指针指向其后一个结构体3、学生信息录入函数(void input()从键盘录入(void putin( )III 直到输入的结构体成员的编号为0,录入结束,从文件录入(void putin2( )4、学生信息管理(void managements()增加学生信息(void inserts(struct student * incouse)II 输入要增加的学生编号,从头指针指向的结构

4、体依次向后,直到链表的最后;III 输入学生结构体各个成员的信息,使最后一个结构体指针值为删除学生信息(void dels(int num2)II 输入要增加的学生编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体;5、学生选课管理(void elective()学生选课(void elect()I 分别定义指向课程和学生结构体变量的指针;:II 输入要选课的学生的编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体,如不存在则显示要录入学生信息;III 输入要选课程的编号,从头指针指向的结构体依次向后,直到找到课程编号为输入值的那个结构体;IV 在学

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

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

7、h2()I定义指向结构体变量的指针;II 输入要查询的学生的姓名,从头指针指向的结构体依次向后,直到找到学生姓名为输入值的那个结构体;III 将该学生结构体成员的各信息依次输出按学生编号查询(void search1()II 输入要查询的学生的编号,从头指针指向的结构体依次向后,直到找到学生编号为输入值的那个结构体;3 调试分析错误显示及分析 a.编译时出现错误,回看程序发现漏掉符号等细节错误。 b.运行时,界面格式与最初的设想不一致,通过重新编排,符号的增减及一进,最终达到理想界面。 c.运行时,输入一个信息后,第二次输入数据时很难将输入光标移到想要的位子,通过按键的摸索,最终了解了输入要领

8、。 d.对输入的信息查询时没有记录,发现文件读取错误。修改完善1、开始程序执行时,各项大的功能每一次只能执行一个就自动跳出,为了使程序保持连续性和更好的实用性,使用了start,goto start,break,sysyem(“clx”)等实现了逐渐免于更功能的循环。2、对于学生信息中已选课程的存储,一直不知如何存储。后用实型数组,并进行循环,依次读入课程的编号,将课程编号进行存储。4 用户使用说明适用范围 适用于管理者将课程信息和学生信息录入到系统,并可以将课程信息和学生信息进行保存,日后如果有需要在对课程和学生信息进行增加可删除。同时也适用于学生在登录自己的学号后,浏览课程信息选课,进行选

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

10、览 课程信息存储 录入学生信息 学生信息浏览 学生信息存储 学生选课# 选课后学生信息浏览 选课后课程信息浏览 课程信息管理 学生信息管理 学生信息查找 退出系统7 附录$课设小结通过这次课程设计,我对C语言有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念也又模糊逐渐变的清晰了。在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我终于完成了这段程序。在调试过程中,我认识到了C语言的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。当然我也认识到了自

11、己的薄弱之处,如对链表相关知识的欠缺,文件运用的不熟练,在以后的学习中我要集中精力、端正态度,争取把知识学得更扎实、更全面。 存在不足1、系统不够强大,有点脆弱。2、当输入信息(课程信息,学生信息)后,不能自动保存,需手动保存。对于以上不足,以后将进行改进,以确保达到更好。详细代码#include:int N1,N2;struct student int num2; char name220; int nelenum50; 键盘录入); printf(n2.从文件录入n3.返回主菜单n请选择1-3: scanf(%d,&i); switch(i) case 1: zhang(); break;

12、 case 2:zhang1();break;! case 3: void insert(struct course *incourse) 加课程n2.删除课程n3.返回n请输入1-3:n p1=(struct course *)malloc(sizeof(struct course); printf(课程编号t课程名称t主修t课程性质t学分t课时t教师n%d%s%s%s%d%d%sp1-num1,p1-name1,p1-major,p1-type,&credit,&period,p1-teacher); p1-people=0; insert(p1); break;printf(请输入您要删

13、除的课程编号: scanf(num1); delc(num1);void putin(void) 键盘录入n2.从文件录入n3.返回主菜单nputin();putin2();void inserts(struct student * incouse) 加学生信息n2.删除学生信息n;p1=(struct student *)malloc(sizeof(struct student);nelen=0;nelenum0=0;numtnamen%d%snum2,p1-name2); inserts(p1);break;printf(请输入您要删除的学生编号:num2); dels(num2);voi

14、d elect() 课n2.退课nelect();back();void listc() 程信息存储n2.学生信息存储tn请输入1-3n% case(1):intoc(); case(2):intos(); case(3):void store() 程信息浏览n2.学生信息浏览n3.信息存储n4.返回主菜单n请输入1-4:listc();lists();】into(); case(4):void search1() 学号查找n2.按姓名查找n3.返回主菜单n请输入1-3:search1();search2();void main() 入课程信息nttt2.课程信息管理nttt3.录入学生信息nttt4.学生信息管理nttt5.学生选课nttt6.信息存储与浏览nttt7.查找学生信息nttt8.退出系统tttn请输入1-8: if(scanf(i) if(i8)请重新输入: goto start;%cm)输入错误,请重新输入:system(cls load(); goto start;managementc();goto start;input(); case 4:managements(); case 5:elective(); case 6:store(); case 7:search(); case 8:system(Thank you!nnBye-Bye!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1