文档库 最新最全的文档下载
当前位置:文档库 › C语言课程设计报告 学生选课系统加源代码

C语言课程设计报告 学生选课系统加源代码

C语言课程设计报告  学生选课系统加源代码
C语言课程设计报告  学生选课系统加源代码

*******************

实践教学

*******************

兰州理工大学

计算机与通信学院

2011年春季学期

C程序设计课程设计

题目:学生选课系统

专业班级:通信工程1班

姓名:

学号:

指导教师:周小健

成绩:

摘要

学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以学生选课管理系统应该能够为广大学、师生提供充足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高对学生信息管理的效率。利用C语言开发,实现了简单的学生课程信息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的保留原始数据。

目录

一、需求分析 (1)

二、总体设计 (1)

三、详细设计 (2)

1、数据定义...................................................... 错误!未定义书签。

2、算法流程图 (2)

四、编码 (6)

五、调试 (7)

六、设计总结 (10)

致谢 (11)

参考文献 (12)

附录 (13)

一、需求分析

语言文字描述系统要做什么

数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。

二、总体设计

系统由哪几个功能模块构成,给出功能模块图。C 中模块化的工具是函数

根据上面的需求分析,可以将这个系统的设计分为如下七大模块:

选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。

菜单选择模块

录入学生信息

学生选课

系统信息查看及储存

退出系统

完成选择模块

学生信息 管 理

录入课程信息

课程 管理

三、详细设计

1.数据定义

2,算法流程图

(1)录入课程信息表

显示一系列功能选项

输入n,判断n是否是1-7 根据n的值调用各功能模块函数

录入课程信息

从文件输入

输入课程编号

保存信息到student.txt

显示录入成功,转入完成选择菜单

(2)课程管理

新增课程

Y

输入课程信息

显示失败

保存

(3)录入课程信息

录入课程信息

输入数据

Y

保存

(4)学生信息管理

Y Y

(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("课程编号课程名称课程性质总学时授课学时实验学时学分开课学期人数

上限\n");

scanf("%d%s%s%d%d%d%d%d",&p1->num1,p1->name1,&p1->xinzhi,&p1->ztime,&p1->stime ,&p1->shiyan,&p1->score,&p1->date,&p1->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%s%d%d%d%d%d",&p1->num1,p1->name1,&p1->xinzhi,&p1->ztime,&p1->stime ,&p1->shiyan,&p1->score,&p1->date,&p1->Melepeo);

p1->nelepeo=0;

}

p2->next=NULL;

}

void filec()//录入键盘子函数(从文件录入)

{

FILE * fp;

char filepath[20];

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%s%d%d%d%d%d",&p1->num1,&p1->name1,&p1->xinzhi,&p1->ztime,&p1-> stime,&p1->shiyan,&p1->score,&p1->date,&p1->Melepeo);

printf("课程编号课程名称课程性质总学时授课学时实验学时学分开课学期人数上限\n");

fprintf(stdout,"%d\t %s\t%s\t %d\t%d\t%d\t%d\t%d\t%d\n",p1->num1,p1->name1,p1->xi

nzhi,p1->ztime,p1->stime,p1->shiyan,p1->score,p1->date,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%s%d%d%d%d%d",&p1->num1,p1->name1,&p1->xinzhi,&p1->ztime,&p1->sti me,&p1->shiyan,&p1->score,&p1->date,&p1->Melepeo);

fprintf(stdout,"%d %s %s %d %d %d %d %d %d\n",p1->num1,p1->name1,p1->xinzhi,p1->z time,p1->stime,p1->shiyan,p1->score,p1->date,p1->Melepeo);

}

p2->next=NULL;

}

void inputc()//录入课程主函数

{

int i;

printf("\t\t\t录入课程信息\n");

printf("\n1.从键盘录入\n");

printf("2.从文件录入\n");

printf("3.返回主菜单\n");

printf("请选择(1~3):\n");

scanf("%d",&i);

switch(i)

{

case(1):keyboardc();break;

case(2):filec();break;

case(3):break;

}

}

void insertc(struct couse *incouse)//课程管理子函数(增加课程)

{

struct couse *p0,*p1,*p2;

p1=head1;

p0=incouse;

if(head1==NULL)

{

head1=p0;

p0->next=NULL;

}

else

{

while((p0->num1 > p1->num1) && (p1->next!=NULL))

{

p2=p1; p1=p1->next;

}

if(p0->num1 <= p1->num1)

{

if(head1==p1) head1=p0;

else p2->next=p0;

p0->next=p1;

}

else

{

p1->next=p0; p0->next=NULL;

}

}

N1=N1+1;

}

void delc(int num1)//课程管理子函数(删除课程)

{

struct couse *p1,*p2;

if(head1==NULL)

{

printf("\n没有课程,无法删除!\n");

goto end;

}

p1=head1;

while(num1!=p1->num1 && p1->next!=NULL)

{

p2=p1; p1=p1->next;

}

if(num1==p1->num1)

{

if(p1==head1) head1=p1->next;

else p2->next=p1->next;

printf("已删除该编号课程!\n");

N1=N1-1;

}

else printf("无该编号的课程!\n");

end:;

}

void managementc()//课程管理主函数

{

struct couse * incouse;

int i,num1;

printf("\t\t\t课程管理\n");

printf("1.新增课程\n");

printf("2.删除课程\n");

printf("3.返回主菜单\n");

printf("请选择(1~3):\n");

scanf("%d",&i);

switch(i)

{

case(1):

{

incouse=(struct couse *)malloc(sizeof(struct couse));

printf("课程编号课程名称课程性质总学时授课学时实验学时学分开课学期人数上限\n");

scanf("%d\n%s\n%s\n%d\n%d\n%d\n%d\n%d\n%d\n",&incouse->num1,&incouse->name1,&inc ouse->xinzhi,&incouse->ztime,&incouse->stime,&incouse->score,&incouse->date,&incouse->M elepeo);

incouse->nelepeo=0;

insertc(incouse);

break;

}

case(2):

{

printf("请输入要删除课程的编号:\n");

scanf("%d",&num1);

delc(num1);

break;

}

case(3):break;

}

}

void keyboards()//录入学生信息子函数(从键盘录入)

{

int i;

struct student *p1,*p2;

N2=0;

学生管理系统源代码

#include #include #include #include #define INIT_SIZE 10 #define INCRE_SIZE 10 #define SUBJECT_NUM 3 #define LEN 3 void show_Start(); void show_Table(); void addRecord(); void Info_delete(); void deleteRecord(); void delete_Num(int); void delete_Name(char tarName[]); void Info_modify(); void modifyRecord(); void modify_Num(int); void modify_Name(char[]); void Info_query(); void queryRecord(); void query_Num(int); void query_Name(char[]); void display(); void quit(); void menu_CMD(); char *subject[SUBJECT_NUM] = struct STUDENT

{ int num; char name[20]; char sex; float score[SUBJECT_NUM]; }; //struct STUDENT stu[LEN + 1]; //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); int static stuNum = 0; // STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE);; int main() { //record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); //STUDENT *record = (STUDENT*)malloc(sizeof(STUDENT)*INIT_SIZE); /* record[1].num = 1001; strcpy(record[1].name,"Jason"); record[1].sex = 'M'; record[1].score[0] = 85.0; record[1].score[1] = 90.0; record[1].score[2] = 95.0; record[2].num = 1002; strcpy(record[2].name,"Jerry"); record[2].sex = 'M'; record[2].score[0] = 85.0; record[2].score[1] = 90.0; record[2].score[2] = 95.0; record[3].num = 1003; strcpy(record[3].name,"Jessie");

C语言课程设计-学生成绩管理系统-完整版

#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/

void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;

学生选课管理系统软件课程设计报告(精)

山东交通学院 面向对象课程设计学生选课管理系统软件 院(系别信息工程系 班级计算091 学号xxxxxxxxxxxx 姓名 xxxxx 指导教师 xxxxx 时间2011-04-05—2011-04-17 课程设计任务书 题目学生选课管理系统 系 (部信息工程系 专业计算机 班级计算091 学生姓名 xxxxx 学号 xxxxx 0 4 月 05日至 04 月 17 日共 2 周 指导教师(签字 系主任(签字 年月日

成绩评定表

abstract In order to improve everyone's hands-on time ability and the content of the later work have certain knowledge, at the same time for everybody in a database of a learning inspection study; School for everybody arranged for a two-week course design, make everyone working environment to the database, and understand more about curriculum design is several classmates to do the same projects, the regulation of the people's operation, is later programming work strengthened the personal programming specifications. This document on the database and VC briefly simply introduces, in the form of using graphic combined with written by the students elective course system in detail. Students elective course system is a more perfect record course information, her students can add students' information, new information, show the modified students of information and inquires the student students of information, etc. For the record students' information provides convenient records. Key words: database, VC, source program, students' course selection 目录 1课程设计概述 (1 1.1学生选课管理系统软件功能概述 (1 1.2Visual C++6.0概述 (1 2学生选课管理系统软件总体设计 (1 2.1学生选课管理系统软件总体设计思想 (1 2.2总体设计流程图 (3

c语言课程设计机房机位预定系统绝对正确,附源代码

1 设计目的 机房机位预定系统 2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求: (1)系统以菜单方式工作 (2)查询,根据输入时间,输出机位信息。 (3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。 (4)退出预定,根据输入的时间,机器号撤销该事件的预定! (5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。 ......... 3 模块划分 4 主要函数说明及其N-S图 1.主函数: int main() { Menu(); /*当前状态函数*/ } void Menu() /*主界面*/ { int n,w; do { puts("\t\t****************机房机位预约系统*******************\n"); puts("\t\t*************************菜单

***************************\n"); puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/ puts("\t\t\t 2.预定空机位"); /*预定空机位*/ puts("\t\t\t 3.取消预订"); /*取消预订*/ puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/ puts("\t\t\t 5.退出"); /*退出*/ puts("\t\t********************************************************\n"); printf("选择菜单号(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case 1:Situation();break; case 2:Book();break; case 3:Cancel();break; case 4:SearchWaiting();break; case 5:exit(0);break; } getch(); } 2.机位查询: void Situation() { int time; printf("输在 (8-20)范围内的时间:"); scanf("%d",&time); if(time<8||time>20) {printf("\t时间输入错误!\n"); printf("输入在 (8-20)范围内的时间:"); scanf("%d",&time); } detail(time); /*函数调用*/ getchar(); Menu();} 3.机位预定:

C++学生管理系统课程设计 源代码

//===================================================================== ============================================ //student.h 定义了抽象类Person,派生了student(及为信息类)、定义了节点类Node、定义了链表类List //===================================================================== ============================================ #ifndef STUDATA_H #define STUDATA_H #include //================================================================ int GetID(); class List; //------------------------------------- class Person{ //抽象类 protected: int ID; //学号 char Name[15]; //姓名 public: virtual bool operator<(Person&)=0; //<运算符重载 virtual bool operator>=(Person&)=0; //>=运算符重载 }; //--------------------------------------------------------------------------------------- class Student:public Person{ //学生类 int Score[4]; //成绩 void SwapData(Student*); //交换数据 public: Student(int =0,char* =NULL,int* =NULL); //构造函数 bool operator<(Person&); //<运算符重载 bool operator>=(Person&); //>=运算符重载 friend ofstream&operator<<(ofstream&,Student*); //<<运算符重载输出到文件 friend ifstream&operator>>(ifstream&,Student*); //>>运算符重载从文件输入 friend ostream_withassign& operator<<(ostream_withassign&,Student*); //<<运算符重载输出到显示器 friend istream_withassign& operator>>(istream_withassign&,Student*); //>>运算符重载从键盘输入 friend class List; }; //---------------------------------------------------------------------------------------------------------------- class Node{ //结点类 Student *Stup; //指向学生对象指针 Node *Prev,*Next; //指向前后结点指针 public: Node(); //构造函数 Node(Student*); //构造函数

C语言课程设计学生选修课程系统设计

学生选修课系统设计 一、设计目的 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息系统的环境。计算机的最到好处的于利用它能够进行信息管理,使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。 尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。本系统就是为了管理好学生选课信息而设计的。 数据处理手工操作,工作量大,出错率高,出错后不易更改,造成了时间上的浪费。 基于这个问题,我认为有必要建立一个学生选课系统,使学生选课信息管理工作规范化、系统化、程序化,避免学生选课管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改选课情况。 二、题目说明 假定有n门课程,每门课程都有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供一下功能: (1)系统以菜单方式工作; (2)课程信息和学生信息的录入功能(课程信息有文件保 存)----输入; (3)课程信息浏览功能----输出; (4)查询功能(至少一种查询方式)---算法; (5)按学分查询; (6)某门课程学生选修情况(可选项)。 [提示] 数据结构可用结构体,包括课程和选秀两个结构体,其中课程结构体包括课程编号、课程名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况.。 三、数据结构设计 本系统的实现,全部采用链表这种数据结构,用链表实现课程的查找、添加、删除、课程的选修、追加选修的课程,课程信息采用结构体这种数据结构。 typedef struct subjects {

学生选课系统设计报告

大理学院数学与计算机学院《数据库系统设计》课程设计报告 班级:2012级计算机科学与技术1班 学号:201211514 姓名:刘秀珍 系统名称:学生选课系统 总分:

实验报告内容及撰写要求: 一、需求分析 程序的主要功能描述,可以用文字、框图、用例等方式。 参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。 主要应当包含分析的过程及分析后得到的数据流图和数据字典。 二、数据库设计 2.1 数据库概念设计 实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。 2.2数据库的逻辑设计 根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQL SERVER 2005)的表结构,并根据规范化理论对表结构进行优化调整。 同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。 三、系统实现 3.1 数据库访问 1)数据访问类及实现代码 2)SQL语句 3.2 业务逻辑层类及代码 描述业务流程、数据处理功能的模块代码 3.3表示层的实现 可以用界面截图及其实现类及核心代码描述

四、总结

一、需求分析 1.1背景 全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。 网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。 1.2系统设计要求: 设计出一个学生选课数据库系统的简要要求如下: 1)设计要求 ①建立相应的数据库及相关的表、属性、约束、规则、默认等; ②输入相应的记录(每个表不少于20条记录); ③编写进行数据管理的存储过程。 2)系统用户由系统管理员、学生用户和教师用户三类组成。 (1)系统管理员的主要功能: ①用户管理(对教师、学生信息的管理和维护); ②课程管理(对课程信息的管理和维护); ③选课管理(实现选课功能开放和禁止、老师成绩输入开放和禁止)。

学生成绩管理系统源代码

学生成绩管理系统源代码-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

#include #include #include #include #include #include #include #include #define PRINT1 textcolor(12); cprintf("\r 请按任意键返回主菜单 \n\r");textcolor(10); getch();clrscr(); break; int shoudsave=0; struct student /* 学生信息结构体定义*/ { char num[10],name[20],cla[4]; int score1,score2,score3,total,ave; }; typedef struct node { struct student data; struct node *next; }Node,*L; void print1() { cprintf("\r============================================================= ==================="); } void print2() { cprintf("\n\r 1.输入学生成绩信息在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n"); cprintf("\n\r 2.注销学生成绩信息在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n"); cprintf("\n\r 3.查询学生成绩信息在这里你可以按照学号或姓名查询某一名学生的信息.\n"); cprintf("\n\r 4.修改学生成绩信息在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩."); cprintf("\n\r 5.学生成绩信息排序在这里你可以看到所有学生的各科成绩.\n"); cprintf("\n\r 6.学生成绩信息统计在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n"); cprintf("\n\r 7.显示学生成绩信息在这里你可以看到系统中所有学生的信 息.\n"); cprintf("\n\r 8.保存学生成绩信息在这里你可以将学生你信息保存到内存 中.\n");

学生的的选课管理系统体系结构设计报告模板总结模板计划模板.doc

精品文档 目录 0. 文档介绍 (2) 0.1 文档目的 (2) 0.2 文档范围 (2) 0.3 读者对象 (2) 0.4 参考文献 (2) 0.5 术语与缩写解释 (2) 1. 系统概述 (3) 1.1 概述 (3) 1.2 功能描述 (3) 2. 设计约束 (5) 2.1 需求规定 (5) 2.2 运行环境 (5) 2.3 接口约束 (6) 2.4 质量约束 (7) 2.5 隐含约束 (7) 3. 设计策略 (8) 3.1 关键技术 (8) 3.2 扩展策略 (8) 3.3 复用策略 (8) 4. 系统总体结构 (10) 4.1 逻辑设计 (12) 4.2 用户接口逻辑设计 (12) 4.3 物理设计 (12) 5. 子系统的结构与功能 (13) 6. 开发环境的配置 (18) 7. 运行环境的配置 (19) 8. 测试环境的配置 (20) 9. 其他 (20)

0.文档介绍 0.1 文档目的 该文档描述了学生选课管理系统的主要功能,阐述了系统的总体构架,包括物理、逻辑结构,并说明了体系结构所采取的设计策略和所有技术。 0.2 文档范围 学生选课管理系统 0.3 读者对象 项目组长,项目负责小组,各功能模块负责人及程序员。 0.4 参考文献 资料名称资料来源 《学生选课管理系统项目计划书》学生选课管理系统《学生选课管理系统需求规格说明书》学生选课管理系统《计算机软件文档编写指南》图书馆 《 CMMI+3级软件过程改进方法与规范》图书馆 0.5 术语与缩写解释 缩写、术语解释 SPP简并行过程(Simplified Parallel Process) PM项目管理(project management) 实体实体是一个可持久化的域对象,比如电脑、书等。 数据字典对数据流程图中对象的详细描述

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇的程序设计报告) 设计人: 班级: 201 年月号

目录一:概述 1:研究背景及意义 2:设计的任务与需要知识点3:具体完成设计内容 二:需求分析 1:功能需求 2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七::结束语 八:程序清单 九:参考文献

一. 概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C语言技术为基础,使用Turbo C++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1、1 研究的背景及意义 随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正就是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的与那个发,技术与工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习与将来实际软件开发打下坚实的基础。 1、2 设计的任务与需要的知识点 1、2、1 课程设计主要完成的任务 1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。 2) 有同步播放动画,声音效果。 3) 设计好数组元素与蛇,食物的对应关系。 4) 随机产生食物。 5) 有分数统计,排行榜,分数存储等功能。 通过此次课程设计,希望使读者能更深入的理解与掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题与解决问题的能力。 1、2、2需要掌握与运用的知识点 1、2、3本次课程设计需要掌握与运用如下的知识点: 1) 数组的应用。 2) 全局变量的使用。 3) 按键处理。 4)结构体的应用。 5)图形,音乐与动画的有关知识。 6)随即函数的使用。 7)文件的基本出操作。 8) 结构化,模块化的设计方法。

C语言课程设计学生考勤系统

附件:《学生考勤系统》主要源程序代码 #include #include /*头文件。*/ int SIZE; /*宏定义。*/ int CLASS;

struct student /*定义一个结构体数组,包含学生信息。*/ { char name[9]; char sex[4]; int number; int count; int score; }stu[300]; void main() /*主函数,选择界面。*/ { void start(); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("# 学生考勤系统 #\n"); printf("# 欢迎您 #\n"); printf("######################################\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("######################################\n"); printf("\t请输入班级人数:\n"); printf("######################################\n"); scanf("%d",&SIZE); printf("\n"); printf("######################################\n"); printf("\t请输入课程节数:\n"); printf("######################################\n"); scanf("%d",&CLASS); printf("\n"); printf("\n"); printf("\n"); printf("\n"); start(); } void start() /*主函数的辅助函数——start函数。*/ { char x; void found(); void search();

学生选课系统课程设计报告

学生选课系统课程设计报告

《数据库原理》课程设计报告 题目:实验2学生选课系统 姓名:李子甘 班级:计科0601 学号:200640274 08年1月

一.需求分析 传统的选课方式都是手写的,教务处通知各 个班级选课,各个班长再通知同学,经过统 计在上交,这样繁琐的过程比较浪费时间。 再者选课时不知道所选课人数已满,要等到 教务处统计后才知道,然后再重新选择。网 上选课为同学节省时间的同时,也减少了不 必要的步骤,也更加方便管理员的管理。 网上选课系统为同学们提供了一个自由的 平台,学生们可以选择规定范围内的课程,查看已修课程总数,还可以修改个人信息。 同时也给老师提供了很大的方便,教师可以 根据统计的人数挑选一定数量的学生,也可 以方便的在网上公布成绩,让学生可以在网 上直接查寻成绩。 我国不少高校都实行学分制,它的核心是允 许学生自由选课,即把学生的自主权交给学 生。在这里,学生的选课制约因素比较复杂,工作量也很大,而且往往需要在较短的时间 内完成。运用计算机辅助选课,即能实时地 对大量选课数据进行检验和统计,十分方便 的输出选课结果,同时也避免了人工选课时

容易产生错误。 二.概念机构设计 根据系统功能设计的要求以及功能模块 的划分,各个系统的逻辑实现如下: 1.对于学生选课系统数据库,可以列出以下数 据项和数据结构: 学生信息:学号、学生姓名、学生的系名、学生性别、学生年龄、学生密码。2.对于教师信息维护数据库,可以列出以下数 据项和数据结构: 教师个人信息:教师编号、教师名称、教师密码。 3.对于后台管理数据库,可以列出以下数据项 和数据结构: 管理员信息:管理员名称、管理员密码。 课程信息:课程号、课程名称、课程类别、开课系。 选课信息:课程号、学生学号、成 绩。 4.数据流:学生管理员和教师分别有自己的权 限,学生可以查看全部选修必修课程,查看

(完整版)JAVA学生管理系统源代码

JA V A学生管理系统源代码 一、程序 import java.util.*; public class Test {//主程序 public static void main(String[] args){ Scanner in = new Scanner(System.in); System.out.println("------请定义学生的人数:------"); Student[] stuArr = new Student[in.nextInt()]; Admin adminStu = new Admin(); while(true){ System.out.println("-----请选择你要执行的功能-----"); System.out.println("10:添加一个学生"); System.out.println("11:查找一个学生"); System.out.println("12:根据学生编号更新学生基本信息"); System.out.println("13:根据学生编号删除学生"); System.out.println("14:根据编号输入学生各门成绩"); System.out.println("15:根据某门成绩进行排序"); System.out.println("16:根据总分进行排序"); System.out.println("99:退出系统"); String number = in.next(); if(number.equals("10")){ System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next(); System.out.println("请输入学生的年龄:"); int age = in.nextInt(); adminStu.Create(num,name,age,stuArr);//添加学生}else if(number.equals("11")){ System.out.println("执行查找学生基本信息的操作"); System.out.println("请输入学生的编号进行查找:"); int num = in.nextInt(); adminStu.find(num,stuArr);//查找学生 }else if(number.equals("12")){ System.out.println("执行更新学员的基本信息操作"); System.out.println("请输入学生的编号:"); int num = in.nextInt(); System.out.println("请输入学生的姓名:"); String name = in.next();

学生选课系统设计报告

学生选课系统设计 报告

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 春季学期 C程序设计课程设计 题目:学生选课系统 专业班级:应用物理 姓名:杨维峰 学号: 指导教师:李聪 成绩:

学生选课系统 摘要 学生选课系统是教育单位不可缺少的重要系统组成部分,她对于学校的决策者、管理者管理、查看课程来说都有至关重要,因此学生选课系统应该能够为广大学、师生提供充分的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统选课方便、快捷,用简单的界面来展示学生的选课信息,能够提高对学生信息管理的效率。 关键词:方便,快捷,选课信息,选择,管理

目录 1题目要求 (4) 2需求分析 (4) 2.1功能简介 (4) 3总体设计 (4) 4详细设计 (5) 4.1 系统主要函数说明 (5) 4.1.1 主函数 (6) 4.1.2 input函数 (7) 4.1.3del函数 (8) 4.1.4find函数 (9) 4.1.5display函数 (9) 5 系统测试 (10) 6总结 (13) 参考文献 (14) 致谢 (15) 附录: (16) 源程序 (16)

文档仅供参考,不当之处,请联系改正。 1题目要求 设计一个关于学生选课方便简捷的程序,从而达到学生能够快速的选到课程。 2需求分析 数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。 2.1功能简介 此系统是一个学生选课管理系统。它包含功能有:学生选课信息的录入,学生选课信息的删除,学生选课信息的查找,学生选课信息的显示等功能。 菜单模式:此模块主要实现对本系统所有功能的显示。 录入模块:此模块主要实现对学生选课信息的录入,主要包括学生学号、学生姓名、所选课程、课程学分、授课老师。 删除模式:此模块主要实现对学生选课信息的删除。显示模块:此模块主要实现对学生选课信息的显示。 查找模块:此模块主要是经过学生学号查找该学生的选课信息。清屏模块:此模块主要是对主界面输入的信息进行清屏。退出程序:此模块主要用于退出系统。

C语言课程设计俄罗斯方块源代码

1、新建“.h”头文件,将“头文件” 代码粘贴至其中, 2、新建“.c”源文件,将“源代码” 代码粘贴到其中。 3、新建空白工程,将头文件和源代码 添加进去,调试使用。 //头文件 //1.自定义枚举类型,定义7种形态的游戏方块 typedef enum tetris_shape { ZShape=0, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape }shape; //2.函数声明 //(1)操作方块函数 int maxX();//取得当前方块的最大x坐标 int minX();//取得当前方块的最小x坐标 void turn_left();//当前方块逆时针旋转90度 void turn_right(); int out_of_table(); void transform(); int leftable(); int rightable(); int downable(); void move_left(); void move_right(); //(2)操作游戏桌面的函数 int add_to_table();

void remove_full(); //(3)控制游戏函数 void new_game(); void run_game(); void next_shape(); int random(int seed); //(4)绘图函数 void paint(); void draw_table(); //(5)其他功能函数 void key_down(WPARAM wParam); void resize(); void initialize(); void finalize(); //(6)回调函数,用来处理Windows消息 LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM); //源代码 //1.文件包含 #include #include #include #include"tetris.h" //2.常量定义 #define APP_NAME "TETRIS" #define APP_TITLE "Tetris Game" #define GAMEOVER "GAME OVER" #define SHAPE_COUNT 7 #define BLOCK_COUNT 4 #define MAX_SPEED 5 #define COLUMS 10 #define ROWS 20 #define RED RGB(255,0,0)

学生学籍管理系统(含java源代码)

学生学籍管理详细设计 学号:____________ 姓名:____________ 班级:____________ 一、设计题目: 学生学籍管理 二:设计内容: 设计GUI学生学籍管理界面,用户可以加入学生信息,并对基本信息进行修改,添加,查询,删除。 三:设计要求: 进行简单的学生信息管理。 四:总体设计 (1)登陆界面的设计 (2)主窗体的设计 (3)添加学生信息窗体 (4)查询学生信息窗体 (5)修改学生信息窗体 (6)删除学生信息窗体 (7)事件响应的处理 五:具体设计 (1)程序结构的说明: A.入口程序:; B.登陆界面程序:; C.主窗体程序:; D.添加信息窗口程序:; E.修改信息窗口程序:;

F.查询信息窗口程序:; G.删除信息窗口程序:; H.程序数据连接:; (2)程序代码及分析说明 A.程序源代码(已提交) 是程序的入口。使登录窗口位于窗口中间,并且不可改变窗口大小。 是程序的登陆窗体。输入用户名和密码(用户名和密码在数据库的password表中)点击“进入系统”,然后登陆界面消失;出现要操作的界面(屏幕左上角)。是添加信息界面。添加基本信息后,点击“添加信息”按钮,将信息加入xinxi 表中。 是修改信息界面。输入要修改的学号或姓名(两者数其一或全部输入),并输入所有信息,点击“修改信息”按钮(如果数据库中不存在此学号,则弹出对话框“无此学生信息”),若有则修改。 是删除信息界面。输入要删除的学生的学号,点击“删除信息”按钮,弹出确认删除对话框,即可删除该生信息。 是查询信息界面。输入要查询的学生学号,点击“信息查询”按钮,在相应的文本区里显示查询的信息。 H:源代码 ; import .*; etScreenSize(); Dimension frameSize=(); if> { =; } if> { =; } ( (true); } public static void main(String[] args) { try{ ()); } catch(Exception e) { (); } new student(); } }

C语言课程设计小学生四则运算

#include"stdio.h" #include"stdlib.h" void main() { int a,b,c,d,e,f,g,t; printf("****************************欢迎使用!************************\n"); printf("\n"); printf("1.加法运算\n"); printf("2.减法运算\n"); printf("3.乘法运算\n"); printf("4.除法运算\n"); printf("*****************************请选择运算类型:"); scanf("%d",&a); while(a<1||a>4) { printf("输入错误,请重新输入"); scanf("%d",&a); } if(a==1) { printf("5,一位数加一位数\n"); printf("6,一位数加两位数\n"); printf("7,两位数加两位数\n"); printf("*********************************请输入题型:"); scanf("%d",&a); while(a<5||a>7) { printf("输入错误,请重新输入"); scanf("%d",&a); } if(a==5) { loop:b=rand()%10; c=rand()%10; d=b+c; printf("%d+%d=?\n",b,c); printf("请输入答案:"); scanf("%d",&e); while(e!=d) { printf("回答错误,请重做"); printf("%d+%d=?\n",b,c); printf("请输入答案:"); scanf("%d",&e);

相关文档
相关文档 最新文档