C语言课程设计---学生选课系统加源代码
- 格式:doc
- 大小:187.00 KB
- 文档页数:31
C程序设计课程设计
题目:学生选课系统专业班级:通信工程1班姓名:
学号:
指导教师:
成绩:
摘要
学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以学生选课管理系统应该能够为广大学、师生提供充足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高对学生信息管理的效率。利用C语言开发,实现了简单的学生课程信息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的保留原始数据。
目录
一、需求分析 (1)
二、总体设计 (1)
三、详细设计 (2)
1、数据定义......................................................... 错误!未定义书签。
2、算法流程图 (2)
四、编码 (6)
五、调试 (7)
六、设计总结 (10)
致谢 (11)
参考文献 (12)
附录 (13)
一、需求分析
语言文字描述系统要做什么
数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。
二、总体设计
系统由哪几个功能模块构成,给出功能模块图。C中模块化的工具是函数根据上面的需求分析,可以将这个系统的设计分为如下七大模块:
选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。
三、详细设计
1.数据定义
2,算法流程图
(1)录入课程信息表
(2)课程管理
(3)录入课程信息
(4)学生信息管理
(5)学生选课
(6)系统信息及查看系统
(7)退出系统
四、编码
1.struct couse * head1;结构
2.void keyboardc()//录入课程子函数(从键盘录入)
3.void filec()//录入键盘子函数(从文件录入)
4.void inputc()//录入课程主函数
5.void insertc(struct couse *incouse)//课程管理子函数(增加课程)
6.void delc(int num1)//课程管理子函数(删除课程)
7.void elect(struct student * s)//选课
8.void cheak()//学生选课子函数(查询可选课程)
9.void back(struct student * p)//退课
10.void hcheak()//学生选课子函数(查询已选课程)
11.void elective()//学生选课主函数
12.void listc()//输出课程信息
13.void lists()//输出学生信息
14.void intoc()//存储课程信息
15.void intos()//存储学生信息
16.void into()//存储信息
17.void store()//信息主函数
18.int main()//主函数
五、测试1.主菜单
2.录入课程信息
3,从文件输入4,学生选课菜单
5,学生信息管理
6,管理员输入课程信息界面:
六、设计总结
问题一:无法读取文txt文件。
困难就是txt 无法读取,输入路径后没有文件显示。
解决办法是,向老师求助。
最后,在老师细心的指导下,才知道是自己的计算机操作水平缘故,没有很好的了解计算机路径结构,最后做出了一定的修改,才得以实现。
问题二:程序错误。
这是一个比较典型的错误,通过查阅书本相关资料。才发觉是函数相关问题,没有能够很好的理解函数思想,导致程序运行错误。
致谢
在这次c语言课程设计中,首先得感谢周老师给予我们指导与帮助,在她的指导帮助下,才使得我们能够顺利的完成课程设计,更重要的是在这次课程设计中,极大的提高我的c语言设计能力,也让我深刻的了解到自己在这方面的诸多不足,使得我能更清楚的了解自己的水平,加强了我对这门学科的认识。同时也感谢和我一起完成这课设的王云龙同学,我们在互相交流帮助中也相互学习到许多小的应用技巧,解决了一些列问题。还要感谢那些给予我们帮助的同学,也给了我很大的帮助。
参考文献
1.姜灵芝,余健. C语言课程设计案例精编.北京:清华大学出版社,2008 2.王新,孙雷. C语言课程设计.北京:清华大学出版社,2009
3.游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,2011
4.王连相.C/C++程序设计上机指导与测试. 北京:中国铁道出版社,2006 5.C语言函数手册,机械工业出版社,1999
附录
#include
#include
int N1,N2,kk1,kk2,kk3;
struct couse * head1;
struct student * head2;
struct couse//课程信息结构体
{
int num1;//课程编号
char name1[20];//课程名称
char xinzhi[30];//课程性质i
int ztime;//课程总学时
int stime;//授课学时
int shiyan;//实验学时
int score;//学分
long int date;//开学学期
int nelepeo;//课程已选人数
int Melepeo;//课程人数上限
struct couse * next;
};
struct student//学生信息结构体
{
int num2;
char name2[20];
int nelenum[50];//已选课程编号
int nelen;//已选课程数量
struct student * next;
};
void Ms()
{
for(kk1=0;kk1<1100;kk1++)
for(kk2=0;kk2<1200;kk2++)
for(kk3=0;kk3<1200;kk3++);
}
void keyboardc()//录入课程子函数(从键盘录入)
{
struct couse *p1,*p2;
N1=0;
p1=p2=(struct couse*)malloc(sizeof(struct couse));
printf("课程编号课程名称课程性质总学时授课学时实验学时学分开课学期人数