软件设计报告。
题目学生学籍管理系统。
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...