当前位置:文档之家› C语言课程设计报告——学生信息管理系统

C语言课程设计报告——学生信息管理系统

C语言课程设计报告——学生信息管理系统
C语言课程设计报告——学生信息管理系统

C语言程序设计

课程设计报告

设计题目:学生信息管理系统

专业电子信息工程

班级

学生

指导教师

年学期

一、总体设计

<一>.模块划分

总体分为4大板块,分别为:

1、输入信息模块:输入信息并将信息保存到文件当中:

2、浏览信息模块:显示需要全部的学生信息:

3、编辑信息模块:输入密码,修改或删除学生信息:

4、修改密码模块:修改系统密码;

5、系统初始化模块:删除保存的数据和修改后的密码,初始化系统。

<二>.数据结构

#define N 100 /* 所能容纳的数据数量*/

struct student

{

int number;

char name[10];

char gender[6];

int birthday;

char major[18];

char Class[10];

char address[30];

char dormitory[10];

}stu[N];

<三>. 函数原型声明

1、int menu1(); 主菜单输出函数

2、int menu2(); 浏览选项子菜单输出函数

3、int menu3(); 编辑选项子菜单输出函数

4、void input(); 信息输入函数

5、void scan(); 浏览学生信息子函数

6、void display(); 信息显示函数

7、void save(int n); 将输入的信息保存为文件

8、void edit(); 编辑学生信息子函数

9、void search(int s); 查找函数

10、void revise_info(); 信息修改函数

11、void code(); 密码管理函数

12、void del(); 信息删除函数

13、void recover(); 初始化程序

二、功能实现

1.main( )(流程图)

2.各功能模块详细流程图

(1)、输入信息模块

输入人数——输入信息——保存信息至文件

(2)、浏览信息模块

①、全部显示:从文件中读取信息至结构体——输出信息

②、按姓名查找:输入姓名——从文件中读取信息至结构体——查找姓名

——输出信息

③、按学号查找:输入学号——从文件中读取信息至结构体——查找学号

——输出信息

(3)、编辑信息模块

①、修改信息:输入学号——从文件中读取信息至结构体——查找学号

——选择修改项目——修改信息——保存信息至文件

②、删除信息:输入学号——从文件中读取信息至结构体——查找学号

——确认删除——删除信息——保存剩余信息至文件(4)、修改密码模块

从文件中读取旧密码——输入旧密码——输入新密码——保存至文件——修改成功

(5)、系统初始化模块

删除原文件——建立空白文件

三、测试及调试(测试方案、存在的问题及解决方法)

1、主菜单与子菜单无法建立联系,即输入相应的选项后不能运行相应的子函数。

分析与解决:函数的结构出现了一些问题,最终在老师的帮助下得以解决。

2、保存数据时无法调用文件(“软件提示:cannot open Debug/学生管理系统.exe

for writing”)。

分析与解决:原以为是程序某个地方有错误,于是检查了好长时间的程序,还向QQ群好友进行了求助。最终在网上查到的答案的提醒下,删除了“学生管理系统.exe”程序并重新进行了编译,问题因此得以解决。

3、用feof()函数判断文件中信息是否读取完毕时导致输出的信息总是比实际信

息多一组

分析与解决:在网上搜素该函数的具体用法后,才发现这是这个函数的弊端所在,读到文件中信息的最后,还要多执行一次循环。最终,我采用了先读出文件中信息的组数,然后在得到的组数的基础上减1的方法从头输出信息。

4、编写密码管理子函数时,每次启动程序时密码都会初始化

分析与解决:采用了文件的方法,将密码保存在文件中。

5、显示信息时出现乱码

分析与解决:该错误是由于给字符数组赋值时使用了“&”的同时使用了数组名进行赋值,二者发生了冲突导致。在王栋老师的指导下,删除了赋值符号“&”,问题得以解决。

6、运行程序的时候,只有本次存进去的信息才能实现查找功能

分析与解决:该错误是由于每次运行程序的时候没有将以前存在文件中的信息读取到内存当中导致。

四、总结

1、对C语言知识掌握程度得到了很大的提高,对C语言的编程实践有了比较深

刻的认识。

2、在遇到程序调试不通过时,学会通过缩小范围的分析来锁定问题所在。

3、通过这次实验,熟悉了从自然语言转换成伪代码再转换为流程图的过程。

4、在程序中设定合适的全局变量,可以简化程序的编写难度。

5、运用函数可以减少编写时的代码量,也使程序条理清晰。

6、通过本次C语言上机实验,我对这个介于人类与非人类之间的计算机编程语

言有了一定的体验。随着实验的成功与报告的完成,有点微微的成就感使人难忘。伴随着学习的深入,我发现高深的东西还有很多很多,等待着我自己去挖掘。对C语言的学习,我会加倍努力。

附件:源程序代码

/***************************学生管理系统***************************/

#include

#include /* 控制台输入输出库函数*/

#include

#include

int menu1(); /* 主菜单输出函数*/

int menu2(); /* 浏览选项子菜单输出函数*/

int menu3(); /* 编辑选项子菜单输出函数*/

void input(); /* 信息输入函数*/

void scan(); /* 浏览学生信息子函数*/

void display(); /* 信息显示函数*/

void save(int n); /* 将输入的信息保存为文件*/

void edit(); /* 编辑学生信息子函数*/

void search(int s); /* 查找函数*/

void revise_info(); /* 信息修改函数*/

void code(); /* 密码管理函数*/

void del(); /* 信息删除函数*/

void recover(); /* 初始化程序*/

#define N 100 /* 所能容纳的数据数量*/

struct student /* 学生信息结构体*/

{

int number;

char name[10];

char gender[6]; // 性别

int birthday;

char major[18];

char Class[10];

char address[30];

char dormitory[10]; // 宿舍

}stu[N];

int i,n;

int a,b,c; /* 传递选项的全局变量*/

int code0=123456; /* 初始密码*/

long longBytes; /* 读取文件长度的变量*/

FILE *fp; /* 创建与保存数据的文件student联系的指针变量*/ FILE *co;

/*************************主函数 *************************/

void main()

{

system("color 2e"); /* 设置文本背景颜色*/

co=fopen("code","ab+"); /* 判断是否有code文件,如果不存在则建立*/ fseek(co,0,SEEK_SET);

fseek(co,0,SEEK_END);

longBytes=ftell(co); /* 获取文件code的长度,以判断文件中是否有数据*/

if(longBytes==0)

fprintf(co,"%d",code0);

fclose(co);

fp=fopen("student","ab+"); /* 判断是否有student文件,如果不存在则建立*/ fclose(fp);

while(1)

{

a=menu1(); /* 引入主菜单*/

switch(a)

{

case 1:input();break; /* 调用信息输入子函数*/

case 2:scan();break; /* 调用浏览信息子函数*/

case 3:edit();break; /* 调用编辑信息子函数*/

case 4:code();break; /* 调用密码管理子函数*/

case 5:recover();break;

case 0:exit(1);break; /* 退出程序*/

default:system("CLS");

}

}

}

/*********************主菜单输出函数*********************/

int menu1()

{

int m1;

printf("\n\t\t———————学生管理系统———————");

printf("\n\n\n\t\t\t1、录入学生信息");

printf("\n\n\t\t\t2、浏览学生信息");

printf("\n\n\t\t\t3、编辑已有信息");

printf("\n\n\t\t\t4、修改密码");

printf("\n\n\t\t\t5、系统初始化");

printf("\n\n\t\t\t0、退出系统");

printf("\n\n\n\t\t————————————————————");

printf("\n\n\t\t请输入您的选择:");

scanf("%d",&m1); /* 读取选项值*/

return m1; /* 返回选项值*/

}

/**************************浏览选项子菜单输出函数*************************/ int menu2()

{

int m2;

printf("\n\t\t———————浏览学生信息———————");

printf("\n\n\n\t\t\t1、显示全部信息");

printf("\n\n\t\t\t2、按姓名查找");

printf("\n\n\t\t\t3、按学号查找");

printf("\n\n\t\t\t4、返回主菜单");

printf("\n\n\t\t\t0、退出系统");

printf("\n\n\n\t\t————————————————————");

printf("\n\n\t\t请输入您的选择:");

scanf("%d",&m2); /* 读取选项值*/

return m2; /* 返回选项值*/

}

/****************************编辑选项子菜单输出函数***********************/ int menu3()

{

int m3;

printf("\n\t\t———————编辑已有信息———————");

printf("\n\n\n\t\t\t1、修改信息");

printf("\n\n\t\t\t2、删除信息");

printf("\n\n\t\t\t3、返回主菜单");

printf("\n\n\t\t\t0、退出系统");

printf("\n\n\n\t\t————————————————————");

printf("\n\n\t\t请输入您的选择:");

scanf("%d",&m3); /* 读取选项值*/

return m3; /* 返回选项值*/

}

/****************************信息输入函数*************************/

void input()

{

system("CLS"); /* 清屏*/

printf("\n请输入需要录入信息的学生人数:");

scanf("%d",&n);

system("CLS"); /* 清屏*/

printf("\n\t\t————————信息录入————————");

for(i=0;i

{

printf("\n\n\t\t\t学号:");

scanf("%d",&stu[i].number);

printf("\n\t\t\t姓名:");

scanf("%s",stu[i].name);

printf("\n\t\t\t性别:");

scanf("%s",stu[i].gender);

printf("\n\t\t\t出生年月:");

scanf("%d",&stu[i].birthday);

printf("\n\t\t\t专业:");

scanf("%s",stu[i].major);

printf("\n\t\t\t班级:");

scanf("%s",stu[i].Class);

printf("\n\t\t\t家庭地址:");

scanf("%s",stu[i].address);

printf("\n\t\t\t宿舍号码:");

scanf("%s",stu[i].dormitory);

printf("\n\t\t————————————————————");

}

save(n); /* 调用保存信息函数*/

printf("\n\t\t数据保存成功!");

printf("\n\n按任意键返回主菜单!");

getch();

system("CLS"); /* 清屏*/

}

/***************************浏览学生信息子函数*************************/ void scan()

{

system("CLS"); /* 清屏*/

b=menu2(); /* 引入浏览子菜单*/

switch(b)

{

case 1:display();break; /* 调用显示全部信息子函数*/

case 2:search(2);break; /* 调用按姓名查找信息函数*/

case 3:search(3);break; /* 调用按学号查找信息函数*/

case 4:system("CLS");break; /* 清屏,返回主菜单*/

case 0:exit(1);break; /* 退出程序*/

default:system("CLS");

}

}

/****************************编辑学生信息子函数***********************/ void edit()

{

int m,n;

system("CLS"); /* 清屏*/

printf("\n请输入密码(初始密码123456) :");

scanf("%d",&m);

co=fopen("code","rb");

fscanf(co,"%d",&n);

fclose(co);

if(m==n) /* 验证密码是否正确*/

{

system("CLS"); /* 清屏*/

c=menu3(); /* 引入编辑选项子菜单*/

switch(c)

{

case 1:revise_info();break; /* 调用修改信息子函数*/

case 2:del();break; /* 调用删除信息子函数*/

case 3:system("CLS");break; /* 清屏,返回主菜单*/

case 0:exit(1);break; /* 退出程序*/

default:system("CLS");

}

}

else

{

printf("\n\t密码错误!");

getch();

system("CLS"); /* 清屏*/

}

}

/***************************信息保存函数************************/

void save(int n)

{

if((fp=fopen("student","ab+"))==NULL) /* 打开文件是否失败*/

{

printf("文件student打开失败!\n"); /* 显示打开文件失败信息*/

getchar();

exit(1); /* 退出程序*/

会计信息系统(含课程设计)随堂练习

第一章 1.系统的核心部分是()。 A.输入 B.处理 C.输出 D.反馈. 参考答案:B 2.系统的特点包括()。 A. 目的性 B. 关联性 C. 层次性 D. 集合性 E. 环境适应性 参考答案:ABCDE 3.按系统与外界环境的关系分类,分为()。 A.封闭系统 B.半封闭系统 C.开放系统 D.人工系统 E. 自然系统 参考答案:ABC 4.信息的质量要求包括()。 A. 完整性 B. 相关性 C. 可靠性 D. 及时性 E. 可理解性 参考答案:ABCDE 5.企业的结构包括()。 A. 战略决策层 B. 战术管理层 C. 运作管理层 D. 执行者 E.战术决策层 参考答案:ABCD 6.电算化会计信息系统是一个人机结合系统,该系统的组成包括()。A.会计人员 B.计算机硬件 C.软件 D.操作规程 E.数据 参考答案:ABCDE

7.常见的会计数据处理方式有()。 A.批处理 B.实时处理 C.不间断处理 D.间歇处理 参考答案:AB 8.会计信息的输出方式有()。 A.显示输出 B.打印输出 C.软盘输出 D.格式输出 参考答案:ABC 9.信息和数据是同一概念。 参考答案:× 10.信息的一致性是指要使同一主体不同使其的信息可以进行比较。 参考答案:√ 11.在信息的各个质量要求之间存在着冲突,我们在判断具体信息的质量时,是有所侧重的。 参考答案:√ 12.所谓决策中的非结构化的问题,是指问题可以客观地加以解决,解决方法是清楚的,最后可以得到一个正确的答案。 参考答案:× 13.管理信息系统是一个以人为主导,利用计算机硬件、软件、通讯网络、其他办公设备,进行信息的收集、传输、加工、储存、更新和维护,以企业取得竞竞争优势、提高效益和效率为目的,支持企业的高层决策、中层控制、基层运作的集成化的人机系统。 参考答案:√ 14.企业的信息系统由硬件系统、软件系统、数据资源、系统工作规程和人员组成。 参考答案:√ 15. 1954年10月,美国通用电气公司(GE)第一次在UNIVC-1计算机上计算职工的工资,从而引发了会计处理设备的变革,这被认为是会计电算化产生的标志。 参考答案:√ 16.电算化会计信息处理流程中仍然有账账核对这一流程。 参考答案:× 17.电算化会计信息系统与手工会计信息系统完全不同。 参考答案:× 18.电算化与手工方式下会计档案的存储发生了很大变化,从会计信息的安全性角度而言,磁性介质保存的会计档案比纸质会计档案安全。 参考答案:× 19.电算化会计信息系统中,无论凭证、账簿、还是会计报表都根据需要,以多种方式供信息使用者使用。 参考答案:√ 20.电算化会计信息系统与手工会计信息系统基本工作步骤相同。 参考答案:√ 21.电算化会计信息系统与手工会计信息系统遵循不同的基本会计理论和方法。

c语言课程设计报告·图书管理系统

第一章 §题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统,使之能提供以下功能: (1)新图书基本信息的输入; (2)图书基本信息的查询; (3)对撤销图书信息的删除; (4)办理借书手续; (5)办理还书手续; 【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。 §算法设计 1.设计思想: 在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。 2.实现注释: 这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行处理。 3.结构体系设计 图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程; §程序设计及代码分析 1.程序设计: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统; 选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告 学院:国际教育学院学院专业:电子信息工程 班级:1420606 学号:201420060638 姓名:钟天运

一、课程设计题目:游戏2048 二、课程设计要求: a)使用C语言编写2048这款游戏 b)能够正常运行,拥有游戏界面。 c)能正常进行游戏从开始到结束。 d)用户操作方便 三、设计思路: a)游戏介绍: i.2048是一款简单的数字类游戏,界面是一个 4*4的方形格子。每个格子里可以为空或者有 一个2^n的数值。 ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中 的数值向对应方向进行移动,直至移动到最边 上的格子或者有其他数值占用,如果碰到等大 数值,将会进行合并。此外,成功移动后,会 在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。 b)实现思路: i.可以使用二维数组来保存4*4格子中的数值 ii.指令,可以通过输入字符函数,读取用户

在键盘上的方向键,进行判断执行对应的代 码。 iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打 印界面。 iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量 v.当游戏结束时,能够询问用户是否重新开始。 vi.随机生成一个新数,可以调用随机函数,使用时间做种子。 c)实现难点: i.打印游戏界面,要实现灵活能根据棋盘数组里 面的数据灵活打印。 ii.执行操作时,数值的移动和合并。

四、流程图

五、C语言源代码 // 游戏2048.c #include "windows.h" #include "time.h" #include "stdio.h" #include "conio.h" #include "string.h" //宏定义常量方向键值 //const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80; #define LEFT 75 #define UP 72 #define RIGHT 77 #define DOWN 80 const char error_str[] = "您上次输入的指令无法识别,请重新输入。"; struct board { int place[4][4]; long int stepn; long int num; //存储游戏分数 long int time; int dtk; //direction key 记录方向键,及操作方向 int over; int zeronum; }; //该函数为游戏运行函数,当只是玩游戏的时候。进入该函数,游戏控制函数。int main() { //place数组为棋盘,其中为零代表空,-1代表不能合并的牌,其他2的倍数值为本身含义,初始化为全0。 struct board board1, board_backup; int newgame(struct board *, int), show(struct board *), operate(struct board *); char str[100] = "首次运行游戏"; //用于记录系统返回给用户的信息,例如:上一步执行向左合并,按键有误等 newgame(&board1, 0); //调用函数为新局初始化,第二个

《C语言课程设计》实验报告

《C语言课程设计》报告 学院:信息工程学院 专业:信息管理与信息系统设计题目:通讯录程序设计班级:2016级一班 学号:201601510138 姓名:张进步 指导教师:杨菲菲 时间:12.24

学生通讯管理系统 1.1 设计目的 学习如何实现一个复杂的信息管理系统——学生通讯管理系统,能够实现老师对学生基本信息的记录、查询、修改。 通过本次学习,读者能够掌握: (1)如何设计主菜单和子菜单,以及各级菜单的响应与返回操作; (2)如何合理设计不同的结构体对系统中多个实体进行封装; (3)如何合理设计多个结构体数组管理不同实体对应的数据; (4)如何对复杂的函数过程进行拆分,用多个子函数进行封装; (5)进一步熟悉文件读取的相关操作。 1.2需求分析 本章的学生信息管理系统的主要功能面向老师,能够实现对学生信息进行录入、修改、查询。 学生信息方面的功能需求如下。 (1)新增学生信息,包括姓名、籍贯、电话号码(2)、电子邮箱。 (2)修改学生信息,可以选择对某个学生的某个属性值进行修改。 (3)查找学生信息,即输入要查找的学生学号,实现学生信息查询。 (4)显示所有学生信息,并以列表的形式清晰呈现。 1.3总体设计 系统功能结构图如图所示;学生信息管理系统 学生信息管理模块:包括4个子模块,分别是学生信息的录入,学生信息的修改,学生信息的查询,学生信息的浏览。

1.4详细设计与实现 1.4.1 预处理及数据结构 1.头文件 本项目涉及4个头文件,其中#include使用字符串的函数的时候需要添加此头文件,#include #include /*system使用的函数*/ #include /*getchar、getch函数使用的头文件*/ #include /*strcmp比较2个字符串是否一样*/ 2.宏定义 LEN sizeof(struct student)表示struct student的长度。DATA是按格式输出结构体的各项数据,能够方便输出操作,减少代码量。 #define_CRT_SECURE_NO_W ARNINGS #include #include #include #include #define LEN sizeof(struct student) #define FORMAT "%-8d%-15s%-15s%-15d%-15d%-15s\n" #define DATA stu[i].numb,stu[i].name,stu[i].nat,stu[i].num1,stu[i].num2,stu[i].mail 3.结构体 利用一个结构体struct student struct student/*定义学生信息结构体*/ { int numb;/*学号*/ char name[15];/*姓名*/ char nat[16];/*籍贯*/ int num1;/*电话号码1*/ int num2;/*电话号码2*/ char mail[40];/*邮箱*/ }; 4.全局变量 分别利用全局变量结构体数组struct student stu[50];来记录所有学生的基本信息,避免程序运行过程中多次初始化,方便各个式子函数调用。 struct student stu[50];

编程导论课程设计题目

西南大学 计算机与信息科学学院 2015级计算机科学与技术大类专业 《编程导论》课程设计A案 1 课程设计的基本要求 1.1能从实际应用问题出发,合理选择数据结构,设计算法形成完整的设计方案。 1.2使用Python实现算法,合理添加注释以保证程序的可读性。 1.3针对项目认真撰写课程设计报告。 2 课程设计主要内容 课程设计题目由教师提供(见第5节),内容可以是一个具体的数据处理问题、字符串处理问题、统计问题和数据挖掘问题。允许学生自拟题目,但需经过教师审核。教师可根据教学实际情况增加题目。 3 课程设计考核方法及成绩评定 3.1考核方式:考查。 3.2成绩评定:课程设计成绩采用100分制,从以下几个评级指标进行评定:

4课程设计报告主要内容和要求 4.1 课程设计报告主要内容 封面 主要内容 4.2 课程设计报告编写的基本要求 (1)采用A4纸书写或打印; (2)如为打印,题目采用宋体3号字加重,正文小标体采用宋体四号,正文采用宋体五号字。 5、课程设计选题 5.1题目:数据挖掘:股票价格 数据挖掘是通过对大量的数据进行排序,挑选出相关信息的过程。商业情报结构和金融分析师会用到它,而且正日益被用在科学领域中,从现代实验和观测方法所产生的巨大数据

集中提取信息。 在这个项目中,我们想要对一些公司的股票价格进行初步的数据挖掘。以Google公司为对象。程序将计算出2010-2015年间Google股票的每月平均价格,并得出Google公司最好和最坏的6个月。提供读取函数的数据,请编写下面几个函数和调用这些函数的主程序。(a)首先需要股票历史价格。访问https://www.doczj.com/doc/d61896088.html,,在搜索字段中输入Google,选择“Historical Prices”(目前在页面左侧),并找到“Download to Spreadsheet”选项。 将文件保存在Python程序所在文件夹中。默认名称是“table.csv”,将使用该名称。 文件格式由文件前几行给出: Date, Open, High, Low, Close, V olume, Adj Close 2015-10-11, 461.00, 462.07, 443.28, 449.15, 10006000, 449.15 2015-10-10, 422.64, 439.18, 410.50, 439.08, 8589400, 439.08 (b)getDataList (FileName) “CSV”文件是“用逗号分隔的文件”,所以可以在逗号处分割数据。下面的函数将读取一个文件,从逗号处分隔文件中每行,并把数据放到返回的列表中。结果是二维列表,列表的每行又是一个列表。此外,每个项都是一个字符串。读文件需要使用文件名进行调用:get DataList(‘table.csv’),在shell中应用此函数,了解函数的返回值是什么。 def getDataList(fileName): dataFile = open(fileN ame, ‘r’) dataList = [ ] # start with an empty list for line in dataFile: # strip end-of-line, split on commas, and append items to list dataList. append (line.strip().split(‘,’)) return dataList (c)getMonthlyAverages (dataList) 在这个函数中,将使用getDataList函数产生的dataList作为参数。使用Date,Volume, Adj Close计算每月平均价格。下面是一个计算月平均价格的公式,其中Vi代表V olume,Ci是当天调整收盘价(Adj Close)。

c语言课程设计报告书--学生成绩管理

C 语言程序设计报告 课题:学生成绩管理 时间:

一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下: 1.主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 系统功能需求分析: 1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点; 2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。 二、概要设计 系统总体设计框架: 对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、输入信息函数 (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)返回头指针。 2、修改信息 (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入; (3)根据要修改的编号查找对应结点; (4)修改信息;

(5)修改成功。 3、排序函数 (1)定义所要排序的班级和链表的头指针为形参; (2)调用排序函数,把班级和链表的头指针赋给形参; (3)在子函数中进行排序; (4)输出排序结果。 4、显示学生成绩信息(void Disp(Link l)) (1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录; (3)若无记录,输出提示信息,返回主函数; 若有记录,移动指针,依次输出记录; 5、查询班级成绩信息(void Find(Link l)) (1)选择所要查询的班级; (2)输入班级: (3)在链表中寻找相应结点; (4)输出结点信息。 以上各个函数的流程图如下:

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

华中科技大学计算机学院C语言课设实验报告

华中科技大学计算机科学与技术学院 《C语言程序设计》课程设计 实验报告 题目:科研项目信息管理系统 专业:计算机 班级: 学号: 姓名: 成绩: 指导教师:李开 完成日期:2009年10 月20 日

科研项目信息管理系统一、系统功能结构模块图 二、数据结构设计及其用法说明 typedef struct lakey{ char name[30];/*团队名称*/ int total;/*自然科学基金的科研项目数*/ float dudu;/*经费数*/ struct lakey *next; }*plakey;/*统计3中用到的数据结构*/ typedef struct emmey{ char name[30];/*团队名称*/ int teacher;/*老师人数*/ int harden;/*项目数*/ float bizhi;/*比值*/ struct emmey *next; }*pemmey;/*统计4中用到的数据结构*/ typedef struct kPro{ char code[15];/*项目编号*/ char sort;/*项目种类*/ int aking1; char time[8];/*项目时间*/ float dudu;/*项目经费*/ int aking2;

char beiler[15];/*负责人*/ int aking3; char keynoName[30];/*所在团队名称*/ struct kPro *next; }harden,*pHarden; typedef struct Komo{ int teacher;/*老师人数*/ char name[20];/*院系名称*/ int student;/*学生人数*/ float bizhi;/*二者比值*/ struct Komo *next; }*pKomo;/*统计1中用到的数据结构,统计结果放在这个数据结构中*/ typedef struct kTea{ char name[30];/*团队名称*/ char beiler[15];/*负责人*/ int stuNum;/*学生人数*/ int aking2; int coco;/*老师人数*/ char colName[20];/*所在院系的名称*/ int aking1; struct kTea *next; pHarden child; }keyno,*pKeyno; typedef struct edward{ char name[20];/*院系名称*/ int totalnum;/*项目总数*/ int num973;/*973项目数*/ int num863;/*863项目数*/ float amount;/*经费数*/ struct edward *next; }*pedward;/*统计2中用到的数据结构*/ typedef struct kCol{ char name[20];/*院系名称*/ int aking; char beiler[15];/*院系负责人*/ struct kCol *next; char call[15];/*负责人电话号码*/ pKeyno child; }kekey,*pKekey;

人工智能课程设计报告-n皇后问题解读

人工智能课程设计报告 课班姓学程:人工智能课程设计报告级 : 名: 号: 指导教师:赵曼 2015年11月

人工智能课程设计报告 人工智能课程设计报告 课程背景 人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。 人工智能是对人的意识、思维的信息过程的模拟。人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 人工智能是一门极富挑战性的科学,从事这项工作的人必须懂得计算机知识,心理学和哲学。人工智能是包括十分广泛的科学,它由不同的领域组成,如机器学习,计算机视觉等等,总的说来,人工智能研究的一个主要目标是使机器能够胜任一些通常需要人类智能才能完成的复杂工作。但不同的时代、不同的人对这种“复杂工作”的理解是不同的。 人工智能是计算机学科的一个分支,二十世纪七十年代以来被称为世界三大尖端技术之一(空间技术、能源技术、人工智能)。也被认为是二十一世纪三大尖端技术(基因工程、纳米科学、人工智能)之一。这是因为近三十年来它获得了迅速的发展,在很多学科领域都获得了广泛应用,并取得了丰硕的成果,人工智能已逐步成为一个独立的分支,无论在理论和实践上都已自成一个系统。 人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

c语言课程设计报告

C语言程序设计B 课程设计报告 设计题目:学生成绩管理系统年级班级: 学号: 姓名: 指导教师: 2020 年 6 月 18 日

目录 一、设计目的 (3) 二、课程设计内容和要求 (4) 三、总体设计 (5) 四、主要步骤 (12) 五、功能实现 (13) 六、功能测试 (64) 七、评价程序 (83) 八、课程设计体会 (84)

一、设计目的 程序设计能力是当代理工类大学生的必备能力,当学生学习了C语言之后,编程能力远远不能达到开发实际应用程序的要求,特备是对其中的指针、结构体、链表和文件部分的理解和应用都比较弱。 程序设计的目的是通过对面向过程的学习,将C语言的主要知识点进行综合,针对提高学生C语言程序设计能力,强化编写较大的应用软件能力,熟练运用已掌握的知识解决实际需要解决的问题,以达到更加熟知指针、链表、结构体、文件读取、标准库的使用。 主要目的为以下几点: 1、熟练掌握面向过程(结构化)程序设计基本知识; 2、综合运用所学知识解决实际问题; 3、受到面向过程(结构化)程序设计的基本训练; 4、体会面向过程(结构化)开发程序的过程。

二、课程设计内容和要求 1.课程设计内容: 学生通过使用C语言进行编写算法,开发学生成绩管理系统,以实现对学生成绩的管理。 2.课程设计要求 1)具有菜单,可以在菜单上进行选择; 2)能实现学生数据录入、修改、删除、查询; 3)能实现数据排序; 4)有数据输出功能; 5)有数据读取与存储功能; 6)一个学生的数据(称为:每条记录)包含姓名、学号、语文、数 学、英语、总分、名次等信息; 7)以结构方式存储每条记录; 8)多条记录以链表方式存储到内存; 9)随时可将全部数据存储到磁盘文件中,方便下次从磁盘读取数据。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

Altium Designer课程设计

徐州师范大学 课程报告 课程名称:Altium Designer教程 题目: 专业班级:08电信 学生姓名: 学生学号: 日期: 2011/1/08 指导教师: 物电学院教务部印制

目录 (以下章节名称为参考) 摘要...................................................................................................II Abstract................................................................................................ II 1 课题背景(或绪论、概述) (1) 1.1 XXXX (1) 1.2 XXXX (x) 2 设计方案简述 (x) 2.1 XXXX (x) 2.2 XXXX (x) 2.3 XXXX (x) 3 详细设计 (x) 3.1 XXXX (x) 3.1 XXXX (x) 4 设计结果及分析 (x) 4.1 XXXX (x) 4.2 XXXX (x) 4.3 XXXX (x) 5总结 (x) 参考文献 (x) 附录主要程序代码 (x)

摘要 电子线路CAD是从实用角度出发,详细介绍了Altium Designe的实用功能,可以引导读者轻松入门,快速提高。全面介绍了Altium Designe的界面、基本组成及使用环境等,并详细讲解了电路原理图的绘制、元件设计、印制电路板图的基本知识、印制电路板图设计方法及操作步骤等,详细讲解了电路从电路原理图设计到印制电路板图输出的整个过程。 关键词:Altium Designe软件;电路原理图设计;电路板; Abstract Electronic circuit from a practical point of CAD is presented in detail Altium Designe practical function, can lead readers to get started, to rapidly improve. A comprehensive introduction to Altium Designe interface, basic composition and the use of the environment, and gave a detailed schematic drawing, component design, printed circuit board diagram of the basic knowledge of Design Method for printed circuit boards and other steps in detail explained from the circuit diagram of the circuit design to printed circuit board map out the entire process. Keywords:Altium Designe software; circuit schematic design; circuit board

C语言课程设计图书管理系统课程设计报告

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

C语言课程设计报告-模板

C语言课程设计报告 班级:16 物联网 一、题目说明 (1)读取输入信息,能正确进行数字运算

(2)拥有记忆功能,可查询最近几次计算结果并继续进行数字运算。 二、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。 (2)实现记忆功能,可保留近十位结果,可用#键查看。(3)*键作为清0键,清除当前屏幕上的值为0表示重新开三、设计流程(可以画流程图,可以直接写说明)

四、代码 #include #include #include #include double yunsuan(double a, char operate, double b); //处理数值之间的运算void PutRes(double array[], double res, int *i); //保存该次运算结果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf("欢迎进入计算功能(eg: 1 \n+ 1 ; '#':查询历史结果; 'q':退出程序)·\n"); while(1){

fgets(str,40,stdin); //将从键盘的一整行标准输入保存在字符串str中 if(sscanf(str,"%lf", &a) == 1){ //将str以长浮点型的格式放入a中,如果返回值为1,说明输入的是数值, scanf("%c %lf", &opt, &b); //获取操作符的值和另外一个操作数的值 res = yunsuan(a,opt,b); //调用yunsuan()函数计算,并将结果给res printf("%lf %c %lf = %lf\n\n",a, opt, b, res); PutRes(history, res, &i); //调用函数PutRes()将本次结果保存到数组history中(i用引用传递) // printf("%d\n", i); }else if(sscanf(str,"%c",&opt) == 1){ //将str以字符型的格式放入opt中,如果返回值为1,说明输入的是字符 if(opt == '#'){ //如果opt为‘#’,则显示history 中的数值 int j = 0; for(j = 0; j < i; ++j){ //i为history中存放的数值个数 printf(" %lf ", history[j]); } printf("\n");

c语言语言课程设计报告

上海应用技术学院 课程设计 2011~ 2012学年第二学期 设计题目成绩记录簿 院(系)计算机科学与信息工程学院 专业计算机应用技术 班级 11104114 学号 1110411414 学生姓名蒋佳琴 设计时间 2012.06.25 -2012.07.06 指导教师马智娴 提交日期 2012.07.06

上海应用技术学院课程设计任务书 指导教师(签名):马智娴教研室主任(签名):马智娴2012年6 月25日2012年6月25日

目录 1 设计目的 (5) 2 功能描述 (5) 2.1模块功能 (5) 2.2流程图 (6) 3 总体设计 (13) 3.1 功能模块设计 (13) 3.2 数据结构设计 (13) 3.3 函数功能描述 (13) 4 程序实现 (14) 4.2 运行结果 (25) 5课程设计总结 (28)

成绩记录簿 1. 设计要求: 基本功能 a) 添加成绩 b) 删除成绩 c) 查询学生成绩 d) 查询班级成绩 e) 退出 拓展功能 a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 基本功能: 成绩记录簿中记录以下数据: 学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分; 输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查询(班级或个人)成绩: a) 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成 的总学分。 b) 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同 学不同课程在不同分数段分布的人数及百分比。 拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件。 3. 提示 定义合适的结构体类型,使用链表或数组的方式组织数据。

相关主题
文本预览
相关文档 最新文档