(完整版)C语言程序设计——学生信息管理系统

(完整版)C语言程序设计——学生信息管理系统
(完整版)C语言程序设计——学生信息管理系统

C语言课程设计

姓名:徐宗博

学号:************

班级:061092

指导教师:曹老师

2011 年 6 月25 日

目录

第一章:实习内容

1.1实习内容简介 (2)

1.2程序代号说明 (3)

第二章:程序流程图

第三章:函数模块介绍

3.1读取文件、存储文件 (6)

3.2 管理系统模块 (8)

3.3 恢复区系统模块 (12)

3.4 功能展示 (12)

第四章:实习总结 (16)

第五章:实习体会 (17)

附录:

参考文献 (19)

源代码 (19)

第一章:实习内容

1.1实习内容简介

题目:学生通讯录管理系统

要求:1.可实现信息的添加、删除,可按学号、姓名查询;

2.学生信息必须包含学号、姓名、学院、专业、籍贯。地址、电话号码;

3.必须有注释。

日期:2011年6月20日至27日,共8个半天。

地点:信息楼301

指导老师:曹雪莲

完成情况:

1.程序可完成信息的添加,可按学号、姓名分别查询;

2.程序可按姓名、学号分别删除,并在删除前显示删除学生的全部信息;按姓名删除,

若出现同名情况,会依次出现系统提示是否删除,可选择删除或跳过;

3.在程序文件夹中有一“学生信息库”的txt文件,可查看学生系统里全部学生信息;

4.设置有一个恢复区系统,可输出、查询删除的信息,并在可同文件夹中“删除信息库”

的txt文件中查看删除信息;

总体结构如下:

1.2程序代号说明

此外,局部变量的含义比较固定:

第二章:程序流程图程序流程图:

本次实习我的思路就是,先从二进制文件中读取信息,形成链表,对链表进行基本操作,如输出、添加、删除、查找。程序结束时将链表保存在二进制文件和文本文件中。

管理系统流程图:

运行管理系统部分时,先从文件“information.xls”中读取数据(若无该文件则创建文件),构建链表;后续操作都是对于链表进行操作,如添加、查找、删除、输出等;离开该部分时则保存链表里的信息到已存在的“information.xls”,并以ASCII形式存储至“学生信息库.txt”,方便检查。

恢复区系统流程图:

恢复区系统思路与管理系统思路类似,连函数调用都是一样的,二进制文件名为“dinformation.xls”,文本文件名为“删除信息库.txt”。

具体函数模块功能将在第三章中具体介绍。

第三章:函数模块介绍

程序分为管理系统和恢复区系统两部分和读取文件、存储文件四部分,以下分别介绍。

3.1读取文件、存储文件

读取文件

该函数模块(程序名为creat)于管理系统或恢复区系统运行前运行,目的是读取二进制文件信息,构建链表;若无目标文件,则创建文件。返回值为头指针。

函数主体为:struct stu *p1,*p2;

struct stu *head;

while(fread(&(p1->inf),LEN,1,fp))//读取数据

{

n=n+1;//若读取数据成功节点数加一

if(n==1) head=p1;//给头结点赋值

else p2->next=p1;//加新的结构体

p2=p1;

p1=(struct stu *)malloc(LENS);

}

fclose(fp);

p2->next=NULL;//尾结点处指针置0

return(head);

存储文件

该函数模块分为两部分,以二进制形式存储链表信息(程序名为save)和以文本形式存储(程序名为txtsave)。二进制形式文件是为了读取文件,优点是快速;文本文件是为了方便检查,优点是明确可见。无返回值。

二进制形式存储程序为:

void save(struct stu *head,char filename[20])//存储链表信息

{

FILE *fp;

struct stu *p;

p=head;

fp=fopen(filename,"wb");//以二进制方式打开文件

while((p!=NULL)&&fwrite(&(p->inf),LEN,1,fp))//写入文件

{

p=p->next;

}

fclose(fp);

}

//其中head为链表头指针,filename为存储文件名,在主函数中已有定义。

存储在文本文件程序为:

void txtsave(struct stu *head,char filename[20])//以文本形式将链表输入文件

FILE *fp;

struct stu *p;

p=head;

fp=fopen(filename,"w");//以文本形式打开

while(p!=NULL)//链表不到尽头不停止

{

fprintf(fp,"%ld",(p->inf).num);//向文本文件中写入数据

fprintf(fp,"%10s",(p->inf).name);

fprintf(fp,"%10s",(p->inf).academy);

fprintf(fp,"%10s",(p->inf).majoy);

fprintf(fp,"%10s",(p->inf).province);

fprintf(fp,"%10s",(p->inf).address);

fprintf(fp,"%20s\n",(p->inf).phone);

p=p->next;

}

}

3.2管理系统模块

管理系统(名为system)主要有四个函数功能部分,分别为添加、删除、查找、输出,以下依次介绍:

添加

该模块函数名为add,无返回值,参数为链表头指针,功能为向已建立的链表中从键盘上输入信息。函数主体为:

struct stu *p1,*p2;//建立结构体指针

p2=head;

p1=(struct stu *)malloc(LENS);//输入信息

printf("\n学号(输入数值请小于32756):");scanf("%d",&((p1->inf).num));

printf("\n姓名:");scanf("%s",(p1->inf).name);

printf("\n学院:");scanf("%s",(p1->inf).academy);

printf("\n专业:");scanf("%s",(p1->inf).majoy);

printf("\n省份:");scanf("%s",(p1->inf).province);

printf("\n地址:");scanf("%s",(p1->inf).address);

printf("\n电话号码:");scanf("%s",(p1->inf).phone);

while((p2->next)!=NULL)//移动指针到链表尾

{

p2=p2->next;

}

p2->next=p1; //移动指针

p2=p1;

p2->next=NULL;

删除

函数名为delet,返回值为指向结构体的链表头指针,参数为链表头指针,可按姓名和学号删除。若按姓名删除时,为防止同名情况,则查询到一个目标,就显示出信息,并提示是否删除。

1.按学号查找的函数主体为:

printf("请输入拟删除学生学号:\n");

long snum=0;

scanf("%ld",&snum);

struct stu *p1,*p2;

p1=head;

while(snum!=p1->inf.num&&p1->next!=NULL)//p1指向的学号不是要找的节点,并且后面还有节点

{ p2=p1;p1=p1->next;}//p1后移

if(snum==p1->inf.num)//找到目标

{

print1(p1);deletinput(p1);//print1()为输出相应指针指向的节点信息deletinput()为向恢复区系统链表输入信息的函数,在后续3.3中会提及

if(p1==head) head=p1->next;//若p1指向头节点,将第二个节点位置赋予head

else p2->next=p1->next;//否则将下一结点位置赋给前一节点位置

n--;

}

else printf("该学生不存在");

return(head);

2.按姓名查找(包含同名情况):

int select=0,count=0;//selet选择删除与否,count代表删除次数

char sname[20];//定义要搜的名字

struct stu *p1,*p2;

p1=head,p2=head;

printf("请输入学生姓名:\n");

scanf("%s",sname);//输入学号

while(p1!=NULL)//历遍链表

{

if(strcmp(sname,p1->https://www.360docs.net/doc/427540391.html,)==0) //与目标名字是否一致,相同为0

{

print1(p1);//若符合姓名条件,显示信息

printf("删除该生信息?\n删除选1\n按其它键不删除\n");//保证达到目标姓名时显示学生信息,可选择不删除

scanf("%d",&select);

if(select!=1)

{p2=p1;p1=p1->next;continue;}//不删除就再次循环

else

{

n--;

deletinput(p1);

count++;//删除数加一

if(p1==head) head=p1->next;//删除信息

else p2->next=p1->next;//更改指针,绕过目标

}

}

p2=p1;p1=p1->next;

}

if(count==0) printf("该生信息不存在");//若未删除则视为未发现目标学生 return(head);

查找

函数名为search,参数为链表头指针,无返回值。其中查找可按姓名与学号进行查找,若找到目标即出现在屏幕;若出现同名情况,则依次显示。

查找与删除函数语句类似,但是删除要求目标的前一个节点的指针与目标节点的指针都能知道;而查找要求则低多了。因为这个原因,在加上我是先写的查找,所以删除中未调用查找函数。

按学号查找函数主体如下:

long snum;//定义要查询学号变量

printf("请输入学号:\n");

scanf("%ld",&snum);//输入学号

while(p!=NULL)//历遍链表

{

p=search_num(p,snum);//此为调用函数,效果是查找到与目标相同的信息然

后返回相应指针

if(p!=NULL) print1(p);//若查找到目标,输出

else break;

p=p->next;//传递指针,继续

}

按姓名查找函数主体如下:

char sname[20];//定义要查询姓名的变量

printf("请输入姓名:\n");

scanf("%s",sname);//输入姓名

while(p!=NULL)

{

p=search_name(p,sname);//与上文中search_num类似,返回同名目标的指针

if(p!=NULL) print1(p);//若查找到目标,输出

else break;

p=p->next;//传递指针

}

输出

函数名为print,参数为链表头指针head,无返回值。函数作用就是沿链表依次输出学生信息。函数主体为:

printf("全体学生数据如下:\n");

if(n==0) {printf("无学生信息");return;}//若节点为0则返回

struct stu *p;

p=head;

while(p!=NULL)//循环输出

{

printf("\n学号 %d",(p->inf).num);

printf("\n姓名 %s",(p->inf).name);

printf("\n学院 %s",(p->inf).academy);

printf("\n专业 %s",(p->inf).majoy);

printf("\n省份 %s",(p->inf).province);

printf("\n地址 %s",(p->inf).address);

printf("\n电话号码 %s\n",(p->inf).phone);

p=p->next;

}

3.3恢复区系统模块

恢复区系统(其名为recover)是为了显示被删除信息而建立的,在函数运行之初便建立了恢复区链表,头指针设为rhead,与管理系统头指针head相区别。并且,rhead被设为全局变量,方便被函数调用。

恢复区系统主要有查找、输出功能,其功能模块基本调用管理系统的函数,所以不再赘述。而恢复区的输入函数,即管理区删除信息时将信息输入恢复区链表的函数,上文已提及,即deletinput,此为连接恢复区与管理系统的桥梁,只不过是单行的。函数为:void deletinput(struct stu *p)//将删除信息导入恢复区链表,p为要删除信息的指针{

struct stu *p1,*p2;

p1=rhead;//恢复区链表头节点位置

while(p1->next!=NULL)//指针置于链表尾端

{p1=p1->next;}

p2=p1;

p1=(struct stu *)malloc(LENS);//复制结构体信息

p1->inf.num=p->inf.num;

strcpy(p1->https://www.360docs.net/doc/427540391.html,,p->https://www.360docs.net/doc/427540391.html,);

strcpy(p1->inf.academy,p->inf.academy);//复制字符数组,以下类似strcpy(p1->inf.majoy,p->inf.majoy);

strcpy(p1->inf.province,p->inf.province);

strcpy(p1->inf.address,p->inf.address);

strcpy(p1->inf.phone,p->inf.phone);

p2->next=p1;

p1->next=NULL;//链表尾设为NULL

}

以上程序函数模块基本介绍完毕,由于篇幅有限,很多函数模块只摘录了主体,若仍有疑惑处,可参考附录中的源代码。

3.4功能展示

主界面:

管理系统:

void system()

添加:

void add(struct stu *head)

可连续添加

查找:

void search(struct stu *head)

删除:

struct stu *delet(struct stu *head) 按学号删除:

按姓名查询,可面对重名情况:

输出:

void print(struct stu *head)

恢复区系统菜单:

void recover()

文本形式保存:

void save(struct stu *head,char filename[20])

删除信息导入恢复区链表:

void deletinput(struct stu *p)

第四章:实习总结

本次实习,我制作了两个版本的程序,一个是简版,一个是升级版。其实,简版就是管理系统,升级版在简版的基础上还包含了恢复区系统。这也算是实现了程序的升级吧,安全性方面算是达标了。

本次实习的不足主要有:

1.实用性不足。程序中学生信息定义的是长整型,故范围有限,不能大于32756,否则就会溢出;如果定义为无符号的长整,也不过翻一番而已,并未增添多少位,我校学号可是有11位。但这样方便比较给变量赋值,并且在查找中已有查找姓名字符串的应用了,用长整型丰富了查找类型;

其实完全可以定义学号为字符型数组,虽说浪费空间,但是方便输入较长数值,且比较也很方便,可以直接调用查找姓名字符串的函数。

2.程序中函数模块利用率不高,除了读取、存储、查找、输出这四个模块被两个系统调用外,其他删除、添加只有管理系统用到;倒是print1这么一个输出单一节点信息的程序被调用多次;

3.函数模块十分庞大,很多程序语句充斥在其中,没有很好的分成几部分子函数,方

便调用,这也导致了函数调用率不高;

4.因为思路原因,程序中有三个全局变量,不利于程序的移植,可移植性不高;

5.程序中查找模块与删除模块没有结合好,导致在删除中又查找了一遍;

说到底还是目标不一样,查找函数只要求目标节点的指针,而删除函数要前一个节点和目标节点的指针,而且链表是单向的,知道后一个节点但不能知道前一个节点。若用双向链表,那样就可以将删除与查找较好的结合在一起了。

6.恢复区只有查找、输出功能,没有恢复与删除功能,如此只能添加不能删除,恢复区文件会越来越大;因为时间问题没有建立恢复函数,其实建立也不难,只是会与恢复区导入函数类似,再增加一全局变量而已;

7.使用链表所以未排序。如果要给链表排序,可以在插入信息时就按顺序插入,但是这势必增加程序运行负担,而且效率不高,因为链表是单向的。

可以用二叉树,如果那样的话效率就高多了,但是二叉树我还不会。

8.程序视图就是C语言的黑框,没有美观可言。C++的视图好一些,我也想过用C++编译一个窗口,然后在程序中调用。但是C++还没学会,而且在调试程序的过程中遇到一些困难让我遗忘了这个想法,曾看程序看到凌晨两点,所以想法没有实践。

9.在软件技术普及的今天,做个数据库已是小菜一碟,很到软件可以使用,如Microsoft Office Access,并且功能极其强大,比我花了几天时间做出来的高级不知多少倍。与那些专业程序相比,我的这程序不值一提,也就是练习练习C语言而已。

第五章:实习感受

此次实习在一个凉爽的夏日开始,这在武汉极反常。因为我们考试基本考完了,只剩下一门英语了,所以实习时间比较充裕。

实习的题目也不算太难,思路很清晰,总共三步走:1.读取文件;2.处理链表;3.保存文件。操作的主体是链表,原以为会很轻松,但还是遇到很多问题,以前上课时从未想到过。

经历过基本一天都在看程序的时间,我发现我懂的太少,要学的太多。对文件的操作我一直都没注意,现在才发现其乐无穷;以前觉得链表很难,现在轻松写出程序。学习与实践果然是不可分割的。

实习中,大家八仙过海各显神通,用链表是比较传统的,而且节省内存,有的用数组,这也可以理解,方便使用,排序便利;有的直接用文件C语句查询、删除,让我大开眼界,文件还能这么用!在写报告时看到一篇用指针数组做的程序,相当有意思。

发现水平还是不够,同学可以用C语言编出一个比较漂亮的界面,还可以随意调用文件操作,实在让人赞叹不已。

此次实习加强了我对链表的理解,很多以前迷糊的概念得到了明确,亦让我感到C语

言强大之处,直接操作内存,实在很暴力。

一句诗概括此次实习,“山重水复疑无路,柳暗花明又一村”;如今C语言实习已然结束,但是对于计算机语言的学习决不能放松,“雄关漫道真如铁,而今迈步从头越”。现在的世界是信息化的,我们现在对于Matlab的要求也很大,C语言也是其基础。

路漫漫其修远兮,吾将上下而求索。

感谢曹老师抽出时间将C语言实习提前和这八天来的指导,同时亦感谢大家这些天来的支持与帮助,此外额外感谢武汉夏天罕见的凉爽天气,感谢生活。

附录

参考书目

1.谭浩强著《C语言程序设计》 2005年7月第3版298-299、300、302-303、338页

2.https://www.360docs.net/doc/427540391.html,/view/4be08c81e53a580216fcfefb.html 吴煌坚学长的实习报告

源代码

#include

#include

#include

#define NULL 0

#define LEN sizeof(struct student)

#define LENS sizeof(struct stu)

struct student//学生信息结构体

{

long num;//学生学号

char name[20];//学生姓名

char academy[20];//学院

char majoy[10];//专业

char province[10];//省份

char address[20];//地址

char phone[11];//电话号码

};

学生信息管理系统

全国学前教育管理信息系统 培训上机指南 一、网址、用户名及密码 1、专题网址:https://www.360docs.net/doc/427540391.html,/,系统由专题右上方《管理系统入口》进入。 2、用户名(另发)。 3、测试系统初始密码统一为xueqian@2014(仅在培训时为此密码),请勿在培训时修改此密码。在使用正式系统时请修改密码。 二、系统登录注意事项 1、建议电脑为XP系统的情况下使用火狐或谷歌浏览器登录系统。 2、登录系统前,须进行浏览器设置,设置方法如下:“工具”→“Internet选项”→“隐私”→“高级”→勾选“替代自动cookie处理”和“总是允许会话cookie”。 3、不要使用同一浏览器登录多个用户。 4、在输入用户名和密码时注意键盘大小写的切换。 5、登录系统时,如密码连续五次输入错误,系统会自动锁定该账号,锁定时间为15分钟,15分钟以后才能再登录系统,建议骨干学校和市州在登录时如输错4次密码时不要再进行第5次密码的输入,可用同级或上级的系统管理员账号(A开头的账号)重置密码,再进行系统登录。

三、需完成任务 各学校使用学校级系统,市州使用县、市级系统,骨干学校与市州配合完成各项流程(机构管理、幼儿管理、业务管理、一期数据管理、机构在园幼儿情况、系统管理),具体操作步骤如下(以县级学校为例): (一)机构管理 1、使用机构级账号(普通用户)登录系统,进入“机构管理”->“基本信息管理”,进行学校扩展信息的填写(基本信息由系统自动导入),此处应注意“提交”与“保存”两个按钮的区别。 2、使用区县级账号(审核用户)登录系统,进入“业务管理”->“机构数据管理” ->“基本信息审核”,审核学校提交的基本信息。 3、使用机构级账号(普通用户)登录系统,进入“机构管理”->“办学条件信息管理”,根据提示编辑办学条件基本信息与办学条件建筑信息(该页面有两个选项卡),并提交审核。 4、使用区县级账号(审核用户)登录系统,进入“业务管理”->“机构数据管理” ->“办学条件信息审核”,审核学校提交的基本信息。 5、使用机构级账号(普通用户)登录系统,进入“机构管理”->“班级信息管理”,至少创建5个以上的班级(最好有连续的年级)。

学生信息管理系统(完整)

学生信息管理系统(总体设计) 1、管理系统功能模块设计 本系统需要完成的功能主要有: (1)、输入学生基本信息、所在班级、所学课程和成绩等。 (2)、学生信息的查询,包括查询学生基本信息、所在班级、已学课程和成绩等。(3)、学生信息的修改。 (4)、班级信息的输入,包括输入班级设置、年级信息等。 (5)、班级信息的查询。 (6)、班级信息的修改。 (7)、班级课程信息的输入。 (8)、班级课程信息的修改。 (9)、学生课程添加和修改。 (10)、学生成绩信息的输入。 (11)、学生成绩信息的修改。 (12)、学生成绩信息的查询。 (13)、学生成绩信息的统计。 2、功能模块设计:

3、数据库设计:

学生信息管理系统(需求分析)

1.系统开发背景分析 系统的功能取决开用户的需求。随着科技进步和信息时代的到来,教育的普及程度起来起高,学校的人数也在迅速的增长,怎样的管理好成千上万的学生,已经成为一个学校的管理者必须面对的问题。编写本报告的目的就是用最少的代价,尽可能短的时间内确定问题是否能够解决,通过对学校的一些管理软件的调研分析,发现了一些不足,所以拟做此系统,使学生信息的管理更加准确,安全和快捷。 在本次试验中包括的模块有学生信息管理、课程信息管理、成绩信息管理和班级信息管理等几项,各项管理工作涉及到的内容用下面的关系模式表示。a)学生(学号,姓名,性别,年龄,班级,电话,备注,出生日期,入学时间, 班级编号,家庭地址) b)课程(课程编号,课程名称,课程类别,学分,学时) c)班级(系,班级号,指导老师) 2.系统分析 1.抽象出当前系统的逻辑模型 画出反映当前系统工作的数据流程图。数据流程图是逻辑模型的图形表示,即使不是专业的计算机技术人员也能非常容易理解,它是一种很好的系统构造的表示方法。画数据流程图是应该从已获得的人工处理流程中去掉物理因素,只保留数据、信息处理部分。 2.系统功能分析 系统主要用于学校学生信息管理,主要任务是用计算机对学生各种信息进行日常管理,如:查询、修改、增加、删除。 3.系统目标设计 根据本校的实际情况,利用校园网而设计一套针对性和功能都比较强的学生信息管理系统,对学生信息管理系统进行科学的分类、录入、查询. 4.开发设计思想 尽量采用学校现有的软硬件环境及先进的管理系统开发方案,从而达到充分利用资源,提高系统开发的水平和应用效果的目的。系统应该符合学校学生信息管理的规定,满足学校学生日常管理的需要,达到操作过程中的直观、方便、实用、安全等要求。强调多部门合作,学生工作设计面广泛,应该考虑各部门各

汇编语言程序设计教学大纲

《汇编语言程序设计》课程教学大纲 二、课程简介 汇编语言是计算机能够提供给用户使用的最快最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而,对程序的空间和时间要求很高的场合及需要直接控制硬件的应用场合,汇编语言的应用是必不可少三、课程目标 汇编语言课程是计算机专业的一门专业选修课。通过本课程的学习,应使学 生系统地了解计算机组成原理与内部的运行机理,掌握汇编语言程序设计及相关 知识,为学习本专业后继课程和进行与硬件有关的技术工作打下良好基础。通过 上机实验,使学生受到软硬件实验的初步训练,并培养学生分析问题和解决问题 的能力。 四、教学内容及要求 第一章基础知识 1.教学内容 (1) 为什么要用汇编语言编写程序 (2) 进位计数制与不同基数的数之间的转换 (3) 二进制数和十六进制数运算 (4) 计算机中数和字符的表示 (5) 几种基本的逻辑运算 2.基本要求 了解机器指令、代码指令、机器语言、汇编指令、汇编语言、汇编语言源程 序、汇编程序、汇编等概念;掌握进位计数制与不同基数的数之间的转换及

运算;计算机中数和字符的表示;“与”、“或”、“非”、“异或”等几种基本的逻辑运算; 第二章80X86计算机组织 1.教学内容 计算机系统概述、存储器、中央处理机和外部设备。 2.基本要求 理解计算机的硬件和软件系统及其关系。掌握计算机的基本结构及总线;存储器的内容、地址及存储器的分段;中央处理机的组成、80X86系列CPU工作寄存器构成和功能,特别是段寄存器和标志寄存器;外设接口、端口和8086/8088的端口地址范围和访问方法。 第三章80X86的指令系统 1.教学内容(重点内容) IBM PC机的寻址方式、IBM PC机的指令系统。 2.基本要求 熟练掌握IBM PC机寻址方式及物理地址的计算;数据传送、算术、逻辑、串处理、控制转移和处理机控制指令六组中的所有指令的格式、操作、及影响的标志位。了解机器语言的指令组成; 第四章汇编语言程序格式 1.教学内容 汇编程序功能、伪操作、汇编语言程序格式、汇编语言程序的上机过程。 2.基本要求 掌握DEBUG程序和命令及能用DEBUG 程序调试和运行简单小程序;汇编语言上机步骤、汇编程序的功能;数据定义及存储器分配、表达式赋值“EQU”和“=”、段定义、程序开始和结束、对准、基数控制等六类伪操作;汇编语言程序格式中的名字、操作、操作数和注释等项。 第五章循环与分支程序设计 1.教学内容 程序设计的一般步骤和基本结构、循环程序设计和分支程序设计 2.基本要求 掌握汇编语言程序的编制步骤和结构化程序设计的三种基本结构;循环的设计方法和多层循环的设计;分支程序的设计方法,并能编制相应的程序。第六章子程序结构 1.教学内容 子程序的设计方法、嵌套与递归子程序、子程序举例和DOS系统功能调用

C简单学生成绩管理系统

C++学生成绩管理系统 要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。 学生成绩管理系统分析: 学生成绩管理系统分为8个模块,分别是:添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。 学生成绩管理系统结构:

各个子函数功能及其流程: 1.首先定义一个学生类Class Student;并定义其各个私有变量和公有函数 2.Student();构造函数,用于初始化学生类中的各个变量并记录 3.Add();函数:用于添加学生信息的函数包括学号姓名成绩等的内容 4.Output();函数:用于输出学生信息,包括学号姓名各科及总分平均成绩

5.Find();函数:用于查找学生各项信息。 6.modify();函数:用于修改学生各项信息。 7.delete();函数:用于删除学生信息。

8.sort();函数:对学生各项信息进行排序操作。 8.save()和load();函数:将学生信息保存到文件中,并在需要的时候调用该文件将其中 的学生信息显示出来

9.“=”“<<”“>>”符号的重载:在各个函数处理数据过程中对这些的调用处理函数源代码: 此函数源代码在VisualC++6.0环境下编译通过。具体如下: #include"iostream.h" #include"conio.h" #include"iomanip.h" #include"stdio.h" #include"string.h" #include"stdlib.h" #include"fstream.h" class student //定义学生类 { private://定义学生类的私有成员 char name[20]; //名字 char sex[5]; //性别 int number; //学号 int score[3]; //分数 int total; //总分 int average; //平均分 public: //公有成员 student(); //学生构造函数,用于学生数据的初始化及保存学生数据 void add(); //添加学生信息函数 void output(); //输出学生信息函数 void find(); //查找学生数据函数 void modify(); //修改学生信息函数 void deleted(); //删除学生信息函数 void sort(); //排序函数 void save(); //保存学生信息并写入文件函数 void load (); //打开写有学生信息的文件的函数

8086汇编语言程序设计

实验1 简单汇编语言程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握简单汇编语言程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG 工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG 工具调试程序,验证程序的正确性。 1. 若X、Y、R、W 是存放8 位带符号数字节单元的地址,Z 是16 位字单元的 地址。试编写汇编程序,完成Z←((W-X) ÷5-Y)?(R+ 2) 。 2.试编写一个程序,测试某数是否是奇数。如该数是奇数,则把DL 的第0 位置1,否则将该位置0。 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验2 分支及循环程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握分支程序和循环程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,汇编连接汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编写汇编程序,统计某存储区若干个数据中英文字母的个数,并将结果在屏幕上显示。 2.从键盘任意输入一组字符数据,请编写汇编程序将该组数据加密后在屏幕上显示。参考加密方法是:每个数乘以2。(说明:本题的加密方法,同学们可以自己拟定) 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

实验3 子程序程序设计 一、实验目的与要求 1.熟悉汇编语言运行、调试环境及方法。 2.掌握子程序的设计方法。 3.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。 二、实验内容 根据下列要求,编写汇编源程序,并利用DEBUG工具调试程序,验证程序的正确性。 1.编程以十进制形式和十六进制形式显示AX的内容,并把两个显示功能分别封装成子程序dispDEC和dispHEX。 2.设在以EXAMSCORE为首地址的数据缓冲区依次存放某班10名同学5门功课的成绩,现要统计各位同学的总分,并将总分放在该学生单科成绩后的单元,并调用第1个程序封装好的子程序,以十进制方式显示统计情况,显示格式自行设计。请编程完成此功能。数据缓冲区参考数据定义如下: EXAMSCORE DB 01 ;学号 DB 89,76,54,77,99 ;单科成绩 DW ? ;该学生的总分 DB 02 ;学号 DB 79,88,64,97,92 ;单科成绩 DW ? ;该学生的总分 三、实验报告要求 1.程序算法流程图。 2.源程序清单。 3.程序运行结果。 4.调试过程中遇到的问题和解决的方法。

学生信息管理信息系统

管理信息系统 课程设计报告 专业:电子商务 学号: 姓名: 2011年12 月 29 日

实验内容和评分项目

学生信息管理信息系统的分析与设计 一. 总体规划: 1.系统开发的背景 学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。特别是近几年来,国家政策的调整,我国高等院校大规模的扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依人工管理,而且传统的人工管理方式既不易于规范化,管理效率也不高,目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,尤其是中、小学对学生档案的管理更是落后,这样的管理机制已经不能适应时代发展的要求,其管理方法将浪费许多人力和物力。随着科学技术的不断提高,计算机科学与技术日渐成熟,计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。 作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。 2.系统功能需求 学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管 理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。推行学校信息管理系统的应用是进一步推进学生管理规范化、电子化、控制辍学和提高义务教育水平的重要举措。 学生信息的内容包括: 1. 能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。 2. 能够将指定的信息从文件中删除。 3. 能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。 4. 可以统计全部学生的总成绩,及其在班上的排名。 5. 能够统计各科的平均成绩及及格率。 6. 要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。 7. 如果检索不到相应的信息应提示用户。

c学生信息管理系统

洛阳理工学院 课程设计报告课程名称高级语言C#课程设计 设计题目学生信息管理系统 专业计算机科学与技术 班级 B130506 学号 姓名张葵 完成日期 课程设计任务书 设计题目:学生信息管理系统 教务员可以输入学生、教师、班级、课程信息,一个班级只属于一个专业,一个学生只属于一个班级。教务员负责输入每个专业、每个班级需要学习哪些课程,指定课程的任课教师。一个教师可以教授多个班的多门课程。 教师可以查看学习该课程的学生名单。课程结束后,教师可以录入课程成绩。 课程分两类,必修课和选修课。学生可以选修课程,每学期几门。学生可以查看自己各门课程的成绩。学生还可以进行评教,给老师打分。 系统管理员可以输入教室信息,并结合班级、课程、教室信息实现自动排课。

指导教师:张文学 2015 年 12 月 27 日 课程设计评语成绩: 指导教师:_______________ 2015 年 12 月 31 日

目录

第 1 章需求和可行性分析 需求分析 学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要。学校的管理人员可以通过电脑对学生信息进行有效的管理,避免了以往人工管理的复杂和耗时费力的劳动,也大大的能够减少管理人员的工作量,可以有效的节约学校的开支。

功能需求 作为一个学生的信息管理系统,必须要有管理人员能够进行对学生的信息进 行有效的管理,因此,系统必须预留一个管理员的登录窗口和登录之后所能进行的操作,在学生信息管理系统中,管理员具有最高的权限,可以对学生、老师、班级、专业等等进行添加、删除、修改个查询。除了拥有管理员之外,还应该拥有教务处对学生进行管理,例如:对学生课程,成绩等等具有一定的权限。此外,还应该有老师的一个权限,老师在带完一门课之后可以对学生进行一个成绩录入和平时布置作业的功能。最后是学生自己拥有的功能,学生在考试结束后可以利用系统登录自己的账户对成绩进行查询。 在学生信息管理系统中,要明确各类用户所能拥有的最高权限,如果一旦权限的问题搞错以后,整个系统就会变得没有价值。例如:学生只有对成绩的查询功能,而不能对成绩拥有修改和删除以及插入的功能。老师只能够对学生进行成绩的录入和平时布置作业,而不能删除学生的个人信息等权限。 要设立不同的异常机制,这样不会因为用户的错误的操作而使得系统瞬时奔溃。我们要在代码中设置不同的异常抛出机制,这样就可以使得用户在进行了错误的或者违反规则的操作之后,系统不会出现突然的停止运转。 可行性分析 随着计算机语言和数据服务的不断发展,使得许多的现实问题都可以利用计算机来帮助人类实现轻巧,方便的管理。在教育上,学生是一个庞大的群体,因此技术人员早早就开始想办法解决这个问题,因此,目前对于学生信息的管理各种语言都能够编写出一套完整的、可用的学生信息管理系统。 技术可行性 在这套系统的开发中,采用的是开发语言是C#,软件是Visio Studio2010,C#是微软对问题的解决方案。C#是一种最新的、面向对象的编程语言。它使得程序员可以快速地编写各种基于Microsoft?平台的应用程序,Microsoft .NET提供

学生信息管理系统C程序

#include #include #include #include//getch();kibhit()的头文件struct student { int id; char name[20]; char password[11]; char classs[6]; struct like { float physics;//物理 float biology;//生物 float chemistry;//化学 }grade; int age; int ranking; }; typedef struct student ST;//为已有的数据类型命名struct administrator { char name[20]; char password[11]; }ad={"lichao","12343456"}; void Chushihua();//系统初始化函数 void Stucpw(int i);//学生改密函数 void Ssave(ST stu[30],int r);//系统保存函数 void Stuadd();//添加学生函数 int Save_enquiry();//修改确定询问函数 void Studelete();//删除学生函数 void Stualter();//修改学生函数 void Sturefer();//学生查询函数 void Sturank(ST stu0[30],int i);//终极排名函数void Stuclassesrank();//学生班级挑选函数 void Stuallout();//少女通灵之术 char* Passwordinputhide(); int main() { int flag0=0;//选择登陆方式的标志 int flag1;//密码错误次数标志 int flag3;//选择操作方式的标志 char ad_name[20];//输入的管理员名字 char ad_password[11];//输入的管理员密码

第四章MCS-51汇编语言程序设计

第四章MCS-51汇编语言程序设计 重点及难点: 单片机汇编语言程序设计的基本概念、伪指令、单片机汇编语言程序的三种基本结构形式、常用汇编语言程序设计。 教学基本要求: 1、掌握汇编语言程序设计的基本概念; 2、掌握伪指令的格式、功能和使用方法; 3、掌握顺序结构、分支结构和循环结构程序设计的步骤和方法; 4、掌握常用汇编语言程序设计步骤和方法。 教学内容 §4.1汇编语言程序设计概述 一、汇编语言的特点 (1)助记符指令和机器指令一一对应,所以用汇编语言编写的程序效率高,占用存储空间小,运行速度快,因此汇编语言能编写出最优化的程序。 (2)使用汇编语言编程比使用高级语言困难,因为汇编语言是面向计算机的,汇编语言的程序设计人员必须对计算机硬件有相当深入的了解。 (3)汇编语言能直接访问存储器及接口电路,也能处理中断,因此汇编语言程序能够直接管理和控制硬件设备。 (4)汇编语言缺乏通用性,程序不易移植,各种计算机都有自己的汇编语言,不同计算机的汇编语言之间不能通用;但是掌握了一种计算机系统的汇编语言后,学习其他的汇编语言就不太困难了。 二、汇编语言的语句格式 [<标号>]:<操作码> [<操作数>];[<注释>] 三、汇编语言程序设计的步骤与特点 (1)建立数学模型 (2)确定算法 (3)制定程序流程图 (4)确定数据结构 (5)写出源程序 (6)上机调试程序 §4.2伪指令 伪指令是程序员发给汇编程序的命令,也称为汇编命令或汇编程序控制指令。 MCS- 51常见汇编语言程序中常用的伪指令:

第四章MCS-51汇编语言程序设计91 1.ORG (ORiGin)汇编起始地址命令 [<标号:>] ORG <地址> 2.END (END of assembly)汇编终止命令 [<标号:>] END [<表达式>] 3.EQU (EQUate)赋值命令 <字符名称> EQU <赋值项> 4.DB (Define Byte)定义字节命令 [<标号:>] DB <8位数表> 5.DW (Define Word)定义数据字命令 [<标号:>] DW <16位数表> 6.DS (Define Stonage )定义存储区命令 [<标号:>] DW <16位数表> 7.BIT位定义命令 <字符名称> BIT <位地址> 8.DA TA数据地址赋值命令 <字符名称> DATA <表达式> §4.3单片机汇编语言程序的基本结构形式 一、顺序程序 [例4-1]三字节无符号数相加,其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、5414和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。 MOV R0 ,# 52H ;被加数的低字节地址 MOV R1 ,# 55H ;加数的低字节地址 MOV A ,@ R0 ADD A ,@ R1 ;低字节相加 MOV @ R0 , A ;存低字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;中间字节带进位相加 MOV @ R0 , A ;存中间字节相加结果 DEC R0 DEC R1 MOV A ,@ R0 ADDC A ,@ R1 ;高字节带进位相加 MOV @ R0 , A ;存高字节相加结果 CLR A

学生信息管理系统程序设计

学生信息管理系统程序设计 1、软件开发目的 该软件主要是实现对学生基本信息进行系统化的管理,首先可以对学生基本信息进行录入和存取,其次可以浏览学生的相关信息,然后可以删除和插入学生的相关信息,还有就是可按学号或按学生姓名查询此学生的相关信息。由此来系统化管理学生基本信息,并达到简易操作的目的。 2、功能分析说明图 3、各项功能说明 (1)学生基本信息的录入和保存: 在链表中的适当位置插入一个学生信息节点,一次添加一条学生信息(添加内容包含学号、姓名、年龄),如果添加的学号已经在文件中存在,则不能添加到文件中去,应显示错误提示语;如果添加成功,则显示成功提示语。添加操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (2)显示学生信息: 此功能是显示一个学生信息节点中的信息,并在屏幕上显示出来。 (3)删除学生信息: 进入该项功能界面后,删除学生信息,一次删除一条学生信息。 (4)按学号查找学生信息: 按学号查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (5)按姓名查找学生信息: 按姓名查询学生信息,要求显示文件中与用户输入的学号相匹配的学生信息,要求显示学号、姓名、年龄等字段,如果文件中没有学生信息,则显示提示语。查询操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (6)修改学生信息 修改学生信息中的某一项信息,一次更新一条学生信息(更新内容包含学号、姓名、年龄等字段值),如果更新的学号在文件中不存在,则不能更新,应该显示错误提示语;如果更新成功,则显示成功提示语。更新操作完毕后,应该询问用户是否继续执行此操作。如果用户不继续,则退回到程序初始界面。 (7)退出系统,结束任务。 4、软件功能的验收标准 1.有较为美观简洁大方的菜单,能保证用户方便、直观、快捷的熟悉并使用软件的各项功能。 2.有严密正确的数据验证功能和数据处理功能,能够查询、插入、修改和删除学生信息。

c大作业学生信息管理系统源代码

c大作业学生信息管理系统源代码

学生信息管理系统源代码: #include #include #include #include #include #include struct student { char num[30]; int maths; char name[30]; int chinese; char clas[30]; int english; int total; float average; student *next; }; //◆1(1) void createlist(student * & head) //学生成绩文件导入功能(用链表储存) { char t[80],num0[30],name0[30],clas0[30]; int chinese0,maths0,english0;

student *s,*p; ifstream instuf("student-score.txt",ios::in); if (!instuf) {cerr<<"file could not be open."<>num0>>name0>>clas0>>chinese0>>maths0>>english0) { s=new student; strcpy(s->num,num0);strcpy(s->name,name0);strcpy(s- >clas,clas0); s->chinese=chinese0;s->maths=maths0;s->english=english0; s->total=s->chinese+s->maths+s->english; s->average=float(s->total)/3; if (head==NULL) head=s; else p->next=s; p=s; } p->next=NULL; instuf.close();

《汇编语言程序设计》考核方式

考核方式与要求 期末总成绩构成:期末开卷考试60% + 平时作业10% + 实验和实验报告30%。 1、试卷考核方式与要求 “汇编语言程序设计”的课程要求是使学生具有一定的程序设计能力。虽然课程是通过80x86微处理机来开展教学的,但学习的重点不仅仅是学会80x86指令的语法和规范,更重要的是通过多读程序、多练习编写程序来掌握程序设计的基本方法和技术,要求学生在工作中遇到其他机型,都应该能利用所掌握的方法和技术顺利解决实际问题。因此,我们在教学过程的各个环节,特别是具有指挥棒作用的考核环节中,着重体现了“能力培养是首位”的指导思想。 为此,汇编课一直实行多元化考核方式,在考核评分上,平时练习和上机实验占40%,期末考试占60%。期末考试实行开卷考试,这样学生平时学习的关注点就会放在分析问题和编程实现的方法上,有利于学生开阔思路,发挥自身创造力。每年设计开卷考试的考题是有一定难度的,教师必须非常熟悉课程的知识点、重点和难点,以及体现这些知识和能力水平的多种题目类型。 2、实验方式与要求 实验的目标为:加强课堂上相关理论和技术学习的有效性;提高学生上机编程和调试的能力;培养学生科学实践的理念和独立分析问题、解决问题的能力。其设计思想是:实验内容兼顾基础性和综合性,实验题目由简单→复杂,程序功能由单一→综合,实验安排有基本要求题+自选题,实验题类型有验证型和自主创新设计型。 √实验课组织形式: 1.系教学实验室按课程要求负责上机环境配置及实验设备管理; 2.以班为单位组织上机实验,并将上机时间安排表发至每位同学; 3.每单元实验课安排一位助教(助博)负责实验指导和答疑; 4.学生每做完一个实验即可提交老师验收,老师将实验运行结果记录下来作为实验成 绩的依据。验收时教师要注意发现比较突出的好的实验例题(完成时间短、程序运行效率高); 5.要求提交实验报告,根据实验报告及实验运行结果的记录,评出实验成绩,实验成 绩一般占总成绩的30%。 √教师指导方法: 1.大课集体指导。每学期实验前教师安排一次实验指导课,讲解实验方法和实验要求; 2.每次实验课都安排助教(助博)进行个别或集体的实验指导和答疑; 3.对具有共性的、问题比较多的实验,主讲教师在课堂上再进行集体指导; 4.每学期对实验中出现的问题,对照实验题目进行分析、总结,以利于以后的教学。 5.对于实验中有创新点的学生,还可以请他上讲台为同学们介绍他的设计思路,引发大家展开讨论。

学生学籍信息管理系统C

一、学生学籍信息管理系统设计 1、需求分析 学生基本信息、学生成绩基本信息要存入文件当中,因而要提供文件的输入输出操作;查询功能要求提供查找和显示操作;删除功能要求实现删除操作;排序功能要求实现排序操作;另外还应该提供键盘式选择菜单以实现功能选择。 2、总体设计 整个系统可以设计为数据录入模块、数据修改模块、数据查询模块、数据删除模块和数据排序模块。 成绩包括数学、英语、程序设计基础三门课成绩 基本信息存放在一个文件,成绩信息存放在另一个文件。 (1)数据录入模块 学生基本信息文件可以在磁盘建立,采用写文件方式录入学生基本信息、各门课程的成绩单。综合成绩通过平时成绩和卷面成绩获得计算得到(平时30%,卷面70%)。(2)数据修改模块 采用读文件方式读入学生成绩基本信息,进行修改后,以写文件方式写回原文件中。修改时,首先询问要修改信息学生的姓名或学号,然后选择要修改的内容,并输入新的数据进行修改。

(3)查询模块 通过菜单选择查询功能,再选择学生基本情况查询和成绩查询,若选择前者,再通过菜单选择学号、姓名或宿舍号码,然后把查找结果输出。若选择后者,则先查找学号对应的姓名,再查找该学生的课程情况,并统计科目和实得总学分,输出结果。 (3)删除模块 通过菜单选择删除学生的功能,输入要删除学生的学号,则分别在两个文件中查找该生信息,删除之。 (4)排序模块 通过菜单选择排序依据,采用排序算法(冒泡、插入、选择等)对数据进行排序并输出结果,排序标准包括总分、某课成绩、某课卷面成绩等。 (5)追加模块 追加学生信息 #include #include #include #include #include

河北工业大学汇编语言知识程序设计实验

汇编语言程序设计实验 网络*** *** 实验一 顺序与分支程序设计 一 、实验目的 1) 掌握顺序程序设计方法。 2) 掌握分支程序的结构及分支程序的设计,调试方法。 2) 学习数据传送及算术和逻辑运算指令的用法。 3) 熟悉在pc 机上建立、汇编、连接、调试和运行汇编语言程序的过程。 二、实验内容 1.实验六 从键盘上接收一位十进制数x ,计算y 值,并以十六进制形式显示出来,y 按下列公式计算。 ???????===-=+=) 6(2/) 5()4(2) 3(22 2 2X X X X X X X X X X Y 2..实验七 实验内容:从键盘上接收两个一位十六进制数x 和y ,然后再输入一个a-d 之间的一个字符,按下列要求计算。 a) 当输入字符为a ,则计算x+y ,并以十六进 制形式显示出来 b) 当输入字符为b ,则计算|x-y|,并以十六进制形式显示出来 c) 当输入字符为c ,则计算x*y ,并以十六进制形式显示出来 d) 当输入字符为d ,则计算x/y ,并以十六进制形式显示出来 三、实验代码 实验六 DATE SEGMENT X DB ?

DATE ENDS ;数据段 CODE SEGMENT ASSUME CS:CODE,DS:DATE START:MOV AX,DATE ;代码段 MOV DS,AX ;初始化ds寄存器 MOV AH,1 INT 21H ;读文件到缓冲区 CMP AL,33H ;比较指令 JB L0 ;A

学生信息管理系统c语言

学生信息管理系统 1 课程设计目的与要求 1.1课程设计目的 本课程设计是在学习C语言基本理论之后的实践教学环节。该实践教学是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计基本技能和技巧。要求学生在设计中逐步提高程序设计能力,培养科学的软件工作方法。学生通过课程设计在下述各方面得到锻炼: 1.能根据实际问题的具体情况,结合C语言的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。 2.提高程序设计和调试能力。学生通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,迅速找出程序代码中的错误并且修改,进一步提高程序设计水平。 1.2课程设计要求 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用。具体如下: (1)数据组织方面尽量使用到:数组、链表、结构体、文件; (2)程序结构方面做到函数调用,尽量采用指针运算; (3)代码编写规范,形成良好的编程习惯; (4)程序须有一定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。 (5)课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面: ●程序的总体设计和算法分析。 ●程序流程图、函数说明

●源程序代码清单 ●测试数据和测试过程记录 ●遇到的问题及解决方法分析 ●课程设计小结 1.3课程设计的评价 通过此次课程设计,我的知识面得到了扩展,发现课本上的东西是远远不够的,需要上网找资料寻找补充,而且小组合作的形式可以互相交流知识,弥补自己的不足。通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。 1

汇编语言的编程步骤与调试方法

汇编语言的编程步骤与调试方法 一、汇编源程序的建立 1. 使用工具 (1)EDIT,记事本等文本编辑软件,编辑源程序,保存为.asm文 件; (2)ASM,MASM汇编程序,对源程序进行汇编,生成.obj文件- 目标文件,以及调试用.LST-列表文件和.CRF-交叉引用表; (3)Link连接程序,对使用的目标文件和库文件进行连接,生 成.exe文件,同时调试用.map-地址映像文件; 如果源程序无语法错误,上述三步将生成可运行的.exe文件, 如果运行结果无误,则完成对汇编程序的编程,如果运行后结果存 在错误,需要进行调试。 (4)Debug调试程序,对.exe文件进行调试,修改,直到程序正 确。 图3 目标程序生成步骤图2. 编程过程 (1)用文本编辑软件,编写扩展名为.asm的源文程序文件。 (2)用汇编程序对编好的源文件进行汇编。 命令行:masm [*.asm] ↙ 如果源文件中存在语法错误,则汇编程序将指出错误类型及位置,可根据这些信息重新编辑源文件,直至无语法错误,汇编后,将生成指定名称的目标文件.obj。 使用MASM50汇编程序进行汇编,输入命令行masm或者masm *.asm后,根据提示,输入文件名,在汇编没有错误的情况下,如屏幕所示:汇编程序可生成三个文件,*.obj,*.lst和*.crf。 *.obj-目标文件,用于连接生成可执行文件; *.lst-列表文件(可选),汇编语言汇编的机器语言与汇编语言对照表,可用于

调试; *.crf-交叉引用文件(可选),给出了用户定义的所有符号和对每个符号定义、引用的行号。 (3)目标文件的连接 命令行:link [*.obj] [*.obj] [*.lib] ↙ 连接程序,将多个目标程序及库文件,连接生成可执行的*.exe文件,同时可选择生成*.map文件。 *.map-地址映像文件,给出内存地址分配的有关信息。 下图所示屏幕,为Link连接两个目标文件,没有错误的情况下,生成*.exe 文件。 (4)执行程序 执行*.exe文件,观察程序运行结果,如果存在错误,需要进行调试。调试工具DEBUG是针对汇编语言程序设计的一种调试工具,熟练使用DEBUG有助于汇编语言程序员对于逻辑错误的调试。 二、汇编程序的调试

学生个人信息管理系统

学生信息管理系统 需求描述与系统边界 当今时代是飞速发展的信息时代,在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。 管理信息系统是进行信息的采集、存储、加工、维护和使用的系统,它是随着管理科学和技术科学的发展而形成的。学生信息管理与分析系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理与分析系统应该能够为用户提供充足的信息和快捷的查询手段,对学生来说可以轻松的查阅自己在校的成绩以及信息等。但是一直以来人们都是靠传统人工的方式管理学生成绩,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据, 这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,有着手工管理所无法比拟的优点.例如: 检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生信息管理与分析的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样的一套信息管理与分析系统成为很有必要的事情。 学生信息管理与分析系统提供了强大的学生信息管理与分析管理功能,方便系统管理员对学生成绩等信息的添加、修改、删除、查询等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。 需求分析 业务需求及处理流程

汇编语言程序设计课程教学大纲

课程教学大纲 (理论课) 课程名称:汇编语言程序设计 适用专业:计算机科学与技术 课程类别:学科基础课 制订时间: 2006年8月 数学与计算机科学学院制

汇编语言程序设计课程教学大纲 (2002年制订,2006年修订) 一、课程代码:0502121009 二、课程类别:学科基础课程 三、预修课程:计算机导论、高级语言程序设计等 四、学分: 4学分 五、学时: 86学时(其中实验部分32学时) 六、课程概述: 汇编语言是计算机能提供给用户最快也最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言,因而在对于程序的空间和时间要求很高的场合,汇编语言是必不可少的,至于对于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。 汇编语言作为计算机专业的一门必修课程是了解计算机体系结构和操作系统的最佳切入点。通过汇编语言课程的学习,对计算机理论中包括CPU体系结构、指令调度方式、存储器管理、基本输入输出接口的理解都会有一个比较本质而且直观的认识。在对汇编语言实际运用的基础上同时还能帮助对高级语言程序设计的深入体会,包括变量的组织,地址的访问,循环与分支在机器码中的处理,调用函数时参数的传递等,所以汇编语言在本专业中是一门核心的课程,通过对本课程的学习是加深对后续课程认识的基础。 七、教学目的: 通过对本课程的学习,掌握8086微处理器的寄存器组和基本寻址方式,学生要达到对程序在计算机中的基本调度有一定认识,对二进制基础理论有深入的理解,同时熟练掌握8086汇编语言的编写方式,掌握基本的系统调用,具备良好的源程序调试能力以及最基本的、实模式下的反汇编能力。

相关文档
最新文档