




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1引言21.1编写目的21.2背景21.3定义21.4参考资料22程序系统的结构23程序1(标识符)设计说明33.1程序描述123.2功能123.3性能123.4输人项133.5输出项133.6算法133.7流程逻辑133.8接口133.9存储分配133.10注释设计133.11限制条件133.12测试计划133.13尚未解决的问题144程序2(标识符)设计说明14详细设计说明书1引言1.1编写目的为了更好的描述软件结构以及系统各组成成分之间的相互关系,因此撰写详细设计说明书。1.2背景a 待开发的软件系统的名称:大连交通大学学生选课系统;b 本系统主要为方便广大学选课,避免选课高峰期选不上等
2、问题;c 本系统的受益人为:老师、学生和系统管理人员。 1.3定义详见概要设计说明书。1.4参考资料【1】 张海藩,软件工程导论【M】北京:清华大学出版社 2008年2月第五版【2】 王珊、萨师煊,数据库系统概论【M】北京:高等教育出版社 2006年5月第四版2程序系统的结构 该详细设计只针对学生信息管理中的信息查询和信息维护两个子功能作说明,其程序流程图如下:图4-1 学生信息查询模块程序流程图 图4-2学生信息管理模块程序流程图3程序1(标识符)设计说明#include<stdio.h>#include<stdlib.h>int N1,N2,kk1,kk2,kk3;
3、struct couse * head1;struct student * head2;struct couse/课程信息结构体 int num1; char name120; int score; int nelepeo;/课程已选人数 int Melepeo;/课程人数上限 struct couse * next;struct student/学生信息结构体 int num2; char name220; int nelenum50;/已选课程编号 int nelen;/已选课程数量 struct student * next;void Ms() for(kk1=0;kk1<1100
4、;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("课程编号t课程名称t学分t课程人数上限n"); scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1-&g
5、t;Melepeo); p1->nelepeo=0; head1=NULL; while(p1->num1!=0) N1=N1+1;if(N1=1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);scanf("%d%s%d%d",&p1->num1,p1->name1,&p1->score,&p1->Melepeo);p1->nelepeo=0; p2->next=NULL;void f
6、ilec()/录入键盘子函数(从文件录入) FILE * fp; char filepath20; struct couse *p1,*p2; N1=0; printf("输入要读入的文件路径:"); getchar(); gets(filepath); if(fp=fopen(filepath,"r")=NULL) printf("找不到%s文件!n",filepath);exit(0); p1=p2=(struct couse*)malloc(sizeof(struct couse); fscanf(fp,"%d%s%d
7、%d%d",&p1->num1,p1->name1,&p1->score, &p1->nelepeo,&p1->Melepeo); head1=NULL; while(!feof(fp) N1=N1+1;if(N1=1)head1=p1;else p2->next=p1;p2=p1;p1=(struct couse * )malloc(sizeof(struct couse);fscanf(fp,"%d%s%d%d%d",&p1->num1,p1->name1,&p1-
8、>score,&p1->nelepeo,&p1->Mele peo); p2->next=NULL;void inputc()/录入课程主函数 int i; printf("ttt录入课程信息n"); printf("n1.从键盘录入n"); printf("2.从文件录入n"); printf("3.返回主菜单n"); printf("请选择(13):n"); scanf("%d",&i); switch(i) case(1)
9、:keyboardc();break;case(2):filec();break;case(3):break; void inputs()/录入学生信息主函数 int i; printf("ttt录入学生信息n"); printf("n1.从键盘录入n"); printf("2.从文件录入n"); printf("3.返回主菜单n"); printf("请选择(13):n"); scanf("%d",&i); switch(i) case(1):keyboards()
10、;break;case(2):files();break;case(3):break; void elective()/学生选课主函数 int i; printf("ttt学生选课n"); printf("1.查询可选课程n"); printf("2.查询已选课程n"); printf("3.返回主菜单n"); printf("请输入(13):n"); scanf("%d",&i); switch(i) case(1):cheak();break; case(2):h
11、cheak();break; case(3):break void listc()/输出课程信息 struct couse * p; p=head1; printf("课程编号 课程名称 学分 课程已选人数 课程人数上限n"); while(p!=NULL) printf("%-8d%10s%6d%8d%12dn",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo);p=p->next; void lists()/输出学生信息 struct student * p; p=h
12、ead2; printf("学生学号 学生姓名 已选课程数量n"); while(p!=NULL) printf("%-4d %10s %6dn",p->num2,p->name2,p->nelen); p=p->next; void intoc()/存储课程信息 FILE * fp; struct couse * p; char filepath30; printf("输入课程信息要保存的文件路径:"); getchar(); gets(filepath); if(fp=fopen(filepath,&quo
13、t;w")=NULL) printf("n保存失败!"); exit(0); p=head1; while(p!=NULL) fprintf(fp,"%d %s %d %d %dn",p->num1,p->name1,p->score,p->nelepeo,p->Melepeo); p=p->next; fclose(fp); printf("课程信息已保存在%s中!n",filepath); void intos()/存储学生信息 FILE * fp; struct student *
14、p; char filepath30; printf("输入学生信息要保存的文件路径:"); getchar(); gets(filepath); if(fp=fopen(filepath,"w")=NULL) printf("n保存失败!"); exit(0); p=head2; while(p!=NULL) fwrite(p,sizeof(struct student),1,fp); p=p->next; fclose(fp); printf("学生信息已保存在%s中!n",filepath); void
15、 into()/存储信息 int i; printf("1.存储课程信息n"); printf("2.存储学生信息n"); printf("3.返回主菜单n"); printf("请输入(13)n"); scanf("%d",&i); switch(i) case(1):intoc();break; case(2):intos();break; case(3):break; void store()/信息主函数 int i; printf("tt系统信息查看及存储n"
16、); printf("1.查看课程信息n"); printf("2.查看学生信息n"); printf("3.存储信息n"); printf("4.返回主菜单n"); printf("请输入(14):n"); scanf("%d",&i); switch(i) case(1):listc();break; case(2):lists();break; case(3):into();break; case(4):break; int main()/主函数 int i;
17、start: printf("nttt欢迎使用学生选课系统!n"); printf("菜单:n"); printf("1.录入课程信息n"); printf("2.课程管理n"); printf("3.录入学生信息n"); printf("4.学生信息管理n"); printf("5.学生选课n"); printf("6.系统信息查看及存储n"); printf("7.退出系统n"); printf("n请
18、输入菜单选项(17):n"); scanf("%d",&i); if(i<1 | i>7) printf("输入错误,请重输:n"); goto start; switch(i) case(1): system("cls"); inputc(); goto start; break; case(2): system("cls"); managementc(); goto start; break; case(3): system("cls"); inputs();
19、goto start; break; case(4): system("cls"); managements(); goto start; break; case(5): system("cls"); elective(); goto start; break; case(6): system("cls"); store(); goto start; break; case(7): system("cls"); printf("感谢使用本系统!nn再见!n"); return(0);3.1程序描
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桃子介绍课件
- 2025年成套双头呆扳手行业深度研究报告
- 社会责任审计与造价咨询合同
- 无金属参与光催化脱羧反应及其应用
- 基于MES管控的AGV调度方法研究及应用
- 2025-2030年中国锌粉行业市场现状供需分析及投资评估规划分析研究报告
- 物联网智能家居设备销售服务合同
- 智能智能电网设备开发合同
- 智能共享铁路租赁服务合同
- 房屋变更公证协议书
- 《基于SWOT分析的企业营销策略研究(论文)6800字》
- 幼儿园绘本故事:《小熊不刷牙》 课件
- 公路路基施工规范
- 物质安全数据表(MSDS)(车用尿素溶液)
- 华北电力大学ppt模板
- 清朝治理新疆地区系统性治理课件(16ppt+视频)2022年新疆地方史读本(中学版)
- 旅游资源分类调查评价表 2017版
- 超声波加工以及机床设计机械设计论文
- 综合教学楼建筑结构设计
- 员工分红合作协议书54559
- 国家自然科学基金项目评审打分表.xls
评论
0/150
提交评论