学生学籍管理系统课程设计

发布 2022-10-04 12:46:28 阅读 7659

软件设计报告。

题目学生学籍管理系统。

1.熟悉c语言程序的编辑、编译链接和运行的过程,至少能够用一种编译器较熟练地编辑、编译及调试程序。

2.掌握c语言数据类型,如何定义一个整型,如何将整形强制转换为实形以及对它们赋值的方法。

3.熟练运用if语句和switch语句以及嵌套应用。涉及循环调用的,了解并掌握三种控制语句while、do-while和for语句。

4.学习并掌握c语言定义函数的基本方法、声明函数及调用函数的方法和过程。

5. 掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。

6.掌握结构体类型变量、数组的定义和使用。

7.掌握链表的使用,及函数的调用。

学生成绩管理主要功能:

1)能按学号完成对学生信息的录入、修改、插入以及删除。

2)能按学生的学号大小对学生进行排序。

3)能根据学号、姓名查询学生信息。

系统功能:1)能按学号对学生的信息进行录入、修改、删除、插入。

2)。能根据学生的学号进行排序。

3)能查询学生学号,姓名,出生年月日,性别,地址,**。

4)能按学号、姓名查询学生各个信息。

5)可以保存到文件(附加功能)

6)可以从文件读入已有的文件(附加功能)

7)以菜单方式工作。

性能描述:各种功能都可以满足;程序相对较小,因而运行时反应比较迅速,不存在响应不及时地问题。

2.程序可以满足以下功能:

1.各模块间通过菜单切换和调用。

2.主函数通过调用菜单函数实现对各功能模块的调用,各功能模块间根据需要可相互调用。

3.程序能够保证各模块功能的独立和数据共享。

4.安全需要,需输入密码进入系统。

1)模块流程图:

输入模块:输入学生的各种信息,并保存到文件中。

输出模块:输出学生的信息,与输入的过程相反。

排序模块:按学号排序。

查找删除模块:

添加模块:2)主要函数说明:

a) 主函数(main):

调用各功能模块。

b) 密码验证模块(login())

要求用户输入正确密码,对用户身份进行验证,保证数据安全。

c) 读取信息模块(read_inf):

将已存入e:\\的学生信息调入主函数;

d) 保存信息模块(s**e_inf):

将从输入信息模块(input_message)输入的学生信息存入e:\\

e) 创建信息模块(creat):

创建链表,录入学生信息,并返回头指针。

f) 输出信息模块(printf_inf):

显示输入的和已存学生信息;

g) 学生查询修改模块(search correct):

1)按姓名查询:searchbynum

2)按学号查询:searchbyname

修改查询信息,否则退出修改。

h) 统计信息模块(count_message):

统计学生数量。

i) 信息排序模块(sort):

按学生学号进行排序。

六、调试情况,设计技巧及体会。

1、对自己设计进行评价,指出合理和不足之处,提出改进的方案。

这个程序的主要功能包括录入、浏览、排序、查询、修改、删除、统计、保存、版本信息、退出。我自己认为都可以,就是程序的登录系统有点简单。还有一点就是删除模块太简单,一次只能删除一个人的信息,而且是全部删除,不能选择删除某一个信息,有待改进。

2、在设计过程中的感受。

刚开始,头脑里没有任何思路,不知道如何下手,经过仔细研读例题后,终于有了思绪,先编小模块:输入,输出,查询等,再编比较大的模块,我觉得所有模块中最难编的就是删除和更改模块,苦思冥想,再加上老师和例题的帮助,总算做出来了,但是非常复杂。在编译的过程中总会出现五花八门的错误,比如:

输出的学生信息不是原先输入的信息,有错误信息,或者是乱码等。后来才发现原来是定义的空间不够大,字符之间没有隔开,经过改正之后果然正确了。改正完后,当把所有的小块连接在一起时,虽然没有错误,但是总有许多警告语句,运行的结果也不尽人意。

通过老师的提示后才发现原来是自己的定义有问题。经过两个星期的上机实践学习,我才发现我的c语言上机实践能力很差,有待进步。以后不但要重视课本与习题,更要重视上机实践。

运行结果如下:

源程序如下:

#include<>

#include<>

#include<>

#define n sizeof(struct node)

struct node/*学生信息*/

char name[10];

char num[10];

char sex[5];

int age;

char address[20] ;

struct node *next;

struct node *creat()/创建链表*/

struct node *head,*p1,*p2;

char choice;

head=(struct node *)malloc(n);

p2=head;

do while(choice=='y');

p2->next=null;

return (head);

void searchbynum(struct node *p0)/*按学号查找*/

char num[10];

printf("请输入要查找的学号:")

scanf("%s", num);

while(p0->next!=null)

printf("无该学生信息");

void searchbyname(struct node *p0)/*按姓名查找*/

char name[10];

printf("请输入要查找学生的姓名:")

scanf("%s", name);

while(p0->next!=null)

printf("无该学生信息");

void searchcorrect(struct node *p)/*查找修改信息*/

struct node *p0;

int choice;

while(1)

printf("是否对学生信息进行修改?(y/n)")

getchar();

if (getchar()=y')

printf("请输入学生新的信息!")

printfn");

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

scanf("%s",p0->name);

printf("请输入学生学号:");

scanf("%s",p0->num);

printf("请输入学生性别:");

scanf("%s",p0->sex);

printf("请输入学生年龄:");

scanf("%d",&p0->age);

printf("请输入学生住址:");

scanf("%s",p0->address

printf("是否继续查找?(y/n)")

getchar();

if (getchar()=n') break

void delete_inf(struct node *head)/*删除信息*/

char num[10];

char name[10];

struct node *p,*p0;

int choice;

p0=head;

p=p0->next;

if(p==null)

printf("无该学生信息!"

while(1)

printf("输入要删除的信息:")

printf("1.学号 2.姓名");

scanf("%d",&choice);

if(choice==1)

printf("输入删除学号:");

scanf("%s",num);

p0=head;

p=p0->next;

while(p!=null)

if(strcmp(p->num,num)==0)

p0->next=p->next;

printf("姓名学号性别年龄住址");

printf("%s %s %s %d %s ",p->name,p->num,p->sex,p->age,p->address

printf("确认删除吗?(y/n)")

C语言课程设计 学生学籍管理系统

目录。一 分析系统功能,绘制系统功能结构框架图 1 1.1 分析系统功能 1 1.2 结构框架图 1 二 程序 以及界面形式 2 2.1程序 如下 2 2.2 界面形式 7 三 使用说明 7 四 日志 9 五 心得体会 12 六 参考文献 12 1 用户进入主菜单后,就会在看到,菜单选项中添加有系统...

C 课程设计学生学籍成绩管理系统

c 课程设计报告。题目 学生学籍成绩管理系统。通过本课程设计巩固 c 面向对象程序设计是用教程 课程的教学成果,深入理解c 程序设计中的中高级技术,通过课程设计的综合训练,培养学生实际分析问题 编程和动手能力 提高学生利用c 进行程序设计的能力,初步培养良好的编程习惯和编程风格,学习程序的文档的撰写...

C课程设计学籍管理系统

include include include include define n 100 struct student char num 10 char name 10 char tel 11 以下是函数原型说明,被调函数的定义在主函数后面时,要加此部分 void myprint void mycr...