资源描述
如有你有帮助,请购买下载,谢谢!
1 系统菜单的主要功能 .
(1)输入若干条记录
(2)显示所有记录
(3)按学号排序
(4)插入一条记录
(5)按姓名查找,删除一条记录
(6)查找并显示一条记录
(7)输出统计信息 (新增)
(8)从正文中添加数据到结构体数组中
(9)将所有数据写入文件中
(0)退出程序
2. 题目分析
该题主要考察学生对结构体,指针,文件的操作,以及 C 语言算法的掌握,所以完成此道题目要求较
强的设计能力,尤其是要有一种大局观的意识。如何调程序也非常重要,通过这个程序可以学习到以前
调试短程序没有的的经验。
菜单中的每一个选项都对应一个子程序,子程序的算法几乎囊获了所有 C 语言学过的技巧,下面就
各个子程序中的功能进行说明:
功能 1 和 4 的算法相似,输入一条记录到结构体中去,其中有一部很关键,就是通过 gets 将所有的
多余的字符,回车读去,否则就会出错。
功能 2 是显示所有的记录,通过循环输出,格式也比较重要。
功能 3 为按学号排序,因为学号定义成了字符数组的形式,因此在运用冒泡法进行排序的时候,要
用到 strcmp,strcpy 等函数。
功能 5 为按姓名删除记录,先输入姓名,再一一比较,如果没有则返回失败信息,如果找到就将此
记录都向前移一位,返回 n-1。
1页
如有你有帮助,请购买下载,谢谢!
功能 6 的算法在 5 中就已经体现了,输入姓名,一一比较。
功能 7 为新增的功能,因为考虑到原来给出的函数中竟然没有对学生成绩的统计功能,因此新增此
功能,可以得出所有的记录个数,最高、最低、平均分,并输出相关的学生信息等。
功能 8 和 9 是对文件的操作,提前准备好数据。
3. 感受
学了将近一个学期的 C 语言了,说实话,挺疲惫的,特别是最后的课设,调得好烦。但现在想想收
获也不小,以前高中学 VB 的时候,一直觉得计算机语言挺简单的,现在看来当时根本没有接触到计算
机语言的精髓。
看到了自己做出的这个小程序,挺自豪的,以前一直以为做出一个软件一样的程序是遥不可及的事
情。我选择的是第二个程序,因为自我觉得它涉及面更广,把以前学过的算法几乎都过了一遍。以后在
碰到像等级考试这样的事情我就再也不怕了。
感谢藏洌老师的热情指导。
恭维的话就不多说了,感受大概就这么多吧。
4. 程序正文部分
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
typedef struct
{
/*引用库函数*/
/*定义结构体数组*/
char num[10]; /*学号*/
char name[20]; /*姓名*/
int score; /*成绩*/
}Student;
2页
如有你有帮助,请购买下载,谢谢!
Student stu[80]; /*结构体数组变量*/
int menu_select() /*菜单函数*/
{
char c;
do{
system("cls"); /*运行前清屏*/
printf("\t\t****Students' Grade Management System****\n"); /*菜单选择*/
printf("\t\t | 1. Input Records |\n");
printf("\t\t | 2. Display All Records |\n");
printf("\t\t | 3. Sort |\n");
printf("\t\t | 4. Insert a Record |\n");
printf("\t\t | 5. Delete a Record |\n");
printf("\t\t | 6. Query |\n");
printf("\t\t | 7. Statistic |\n");
printf("\t\t | 8. Add Records from a Text File|\n");
printf("\t\t | 9. Write to a Text file |\n");
printf("\t\t | 0. Quit |\n");
printf("\t\t*****************************************\n");
printf("\t\t\tGive your Choice(0-9):");
c=getchar(); /*读入选择*/
}while(c<'0'||c>'9');
return(c-'0'); /*返回选择*/
}
int Input(Student stud[],int n) /*输入若干条记录*/
3页
展开阅读全文