c语言程序设计训练指导书 指导书及报告格式

上传人:第*** 文档编号:55634144 上传时间:2018-10-03 格式:PDF 页数:40 大小:231.77KB
返回 下载 相关 举报
c语言程序设计训练指导书 指导书及报告格式_第1页
第1页 / 共40页
c语言程序设计训练指导书 指导书及报告格式_第2页
第2页 / 共40页
c语言程序设计训练指导书 指导书及报告格式_第3页
第3页 / 共40页
c语言程序设计训练指导书 指导书及报告格式_第4页
第4页 / 共40页
c语言程序设计训练指导书 指导书及报告格式_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《c语言程序设计训练指导书 指导书及报告格式》由会员分享,可在线阅读,更多相关《c语言程序设计训练指导书 指导书及报告格式(40页珍藏版)》请在金锄头文库上搜索。

1、1C C 语言程序设计训练报告语言程序设计训练报告姓姓名名:李康李康班班级级:电子电子 13-1学学号号:13034520123指指 导导 教教 师师:姚明姚明设设 计计 时时 间:间:2014.6.232014.6.27广东石油化工学院计算机与电子信息学院广东石油化工学院计算机与电子信息学院2目目录录一.训练目的.3二.训练题目描述和要求.3三.训练报告内容.53.1 需求分析53.2 概要设计.53.3 详细设计.53.4 主要源程序代码 53.5 测试分析.63.6 设计结果.6四.结论与心得.403一一.训练目的训练目的(报告正文部分(报告正文部分) :(要求:正文部分一律用小四号字,

2、宋体,1.5 倍行距。)1、 通过本次课程设计, 锻炼我们应用 C 语言的语法规则和已经掌握的一些较为简单的算法,自己解决一个较简单的课题,初步积累编程经验。2、通过学习掌握程序设计的方法与编程技术,学会良好的程序设计风格,为计算机在不同领域的应用打下坚实的基础。二二.训练题目描述和要求训练题目描述和要求题目题目:学生成绩管理系统应用链表及外部文件,独立设计上述应用系统,并编程实现以下功能: 信息录入录入学生信息(包括姓名、学号、各科成绩) 。 信息查询输入学号,查询与学号相对应的信息(包括成绩) ,并按可选的自定义规则进行排序。按班级查询学生成绩。按班级统计学科总分、平均分等。4 信息删除与

3、修改输入学号,删除该学号对应的成绩信息。输入学号,查询并显示出该学号信息,并在此基础上进行修改。 计算学生成绩计算每位学生的总分。计算每位学生的平均分。成绩排序。信息保存将学生信息保存在文件中。根据以上功能需求,定义通讯录信息结构,并采用链表结构对数据进行存储。提供友好的用户界面,方便用户操作。5三三.训练报告内容训练报告内容3.1 需求分析需求分析3.2 概要设计概要设计3.3 详细设计详细设计3.4 主要源程序代码主要源程序代码63.5 测试分析测试分析3.6 设计结果设计结果#include #include #include #include #include #include #de

4、fine YES 1 #define NO 0 typedef struct int num; float math_score; float engl_score; float chin_score; float phy_score; float chem_score; double aver_score; double sum_score; char sex; StudentDate;/学生基本信息 typedef struct student char name20;/学生姓名 StudentDate one;/学生其他信息 int rank;/成绩排名7struct student *

5、next; Student, *List;Student *startCheck(void);/开始检查 Student *createListHead(void);/创建链表的头 void menu(void);/主菜单 void sortList(Student *pHead);/排序链表 void readListWithFile(Student *pHead, char *file_name);/从文件中读取数据,并保存在链表中 void sorttList(Student *pHead);/排序链表 int userChioce(Student *pHead);/用户选择 int s

6、ortMenu(void);/打印选择菜单 void passwordCheck(void);/密码检测 void correctWord(void);/修改密码 void addStudentInfo(Student *pHead);/向链表的末尾添加数据 int scanMenu(void);/浏览菜单 void findStudentInfo(Student *pHead);/查找学生信息 void delStudentInfo(Student *pHead);/删除某一个学生信息 void alterStudentInfo(Student *pHead);/修改学生信息 void sa

7、veList(Student *pHead);/将链表保存在文件里 void printList(Student *pHead);/打印链表 void statisStudentInfo(Student *pHead);/查看学生信息 int statisMenu(void);/查看菜单 void gotoxy(int x, int y);/改变光标位置函数 void inputData(Student *pHead, Student *node);/输入信息,并检测是否合法int main(void) Student *pHead;HANDLE hOut = GetStdHandle(STD

8、_OUTPUT_HANDLE);/得到窗口句柄 SMALL_RECT rc = 0, 0, 94 - 1, 30 - 1 ;/Y 位置,X 位置,宽,高 SetConsoleWindowInfo(hOut, true, / 重置窗口位置和大小system(“color 5B“);/设置控制台颜色 pHead = startCheck();/读取信息while (1) if (9 = userChioce(pHead) /按 9 时退出系统 break; 8return 0; void menu(void) system(“CLS“);/清屏 printf(“nnnttttn“); printf

9、(“tttt学生成绩统计系统n“); printf(“ttttn“); printf(“tttt1增加学生记录n“); printf(“ttttn“); printf(“tttt2删除学生记录n“); printf(“ttttn“); printf(“tttt3修改学生记录n“); printf(“ttttn“); printf(“tttt4查找学生信息n“); printf(“ttttn“); printf(“tttt5统计学生成绩n“); printf(“ttttn“); printf(“tttt6查看学生成绩n“); printf(“ttttn“); printf(“tttt7修改登陆密

10、码n“); printf(“ttttn“); printf(“tttt8关于n“); printf(“ttttn“); printf(“tttt9退出系统n“); printf(“ttttn“); void gotoxy(int x, int y)/x 为列坐标,y 为行坐标 COORD pos = x, y ; HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hOut, pos); Student *startCheck(void) Student *pHead; FILE*fp1; char p

11、assword20 = “123456“; int i;if (fp1 = fopen(“password.dat“, “rb“) = NULL)/若密码文件不存在,新建密码文件9 fp1 = fopen(“password.dat“, “wb“); fwrite(password, 20, 1, fp1); fclose(fp1); printf(“密码初始化完成! (默认密码为:123456)“); passwordCheck(); else passwordCheck(); /读条 system(“CLS“); system(“title 学生成绩统计系统-载入中“);/将标题栏命名为“

12、学生成绩统计系统” printf(“nnttt 欢迎进入本系统!正在载入.“); printf(“nnnntttn“); printf(“tttn“); printf(“tttn“); gotoxy(26, 7); for ( i = 0; i next = NULL;return pHead; void readListWithFile(Student *pHead, char *file_name) FILE *fp;10Student *p1, *p2; int count, rank = 0; StudentDate dat; char stu_name20;fp = fopen(fi

13、le_name, “r“); if (fp = NULL) fp = fopen(file_name, “w“); fclose(fp); return; fseek(fp, 0L, 2); count = ftell(fp); p1 = pHead; fp = fopen(file_name, “r“); while (!feof(fp) p2 = (List)malloc(sizeof(Student); fscanf(fp,“%d%s%c%f%f%f%f%fn“, p2-one.sum_score=(double)(p2-one.chin_score+p2-one.chin_score+

14、 p2-one.engl_score + p2-one.chem_score + p2-one.phy_score); p2-one.aver_score = p2-one.sum_score / 5; p2-next = NULL; p1-next = p2; p1 = p2; if (ftell(fp) = count) break; /将链表排序,并初始化排名 for (p1 = pHead-next; p1 != NULL; p1 = p1-next) for (p2 = p1-next; p2 != NULL; p2 = p2-next) if (p2-one.aver_score p1-one.aver_score) dat = p2-one; strcpy(stu_name, p2-name);11p2-one = p1-one; strcpy(p2-name, p1-name); p1-one = dat; strcpy(p1-name, stu_name); p1-rank = +rank; fclose(fp); void sortList(Student *pHead) Student *p1, *p2; StudentDate dat; char stu_nam

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号