课程设计
课程名称:初级程序设计
设计题目:基础程序设计、统计任意文本字数程序、小学算术运算测试、通讯录的管理
学院:信息工程与自动化学院
专业:计算机科学与技术
年级: 2015级
学生姓名:昆工校草柚子
指导教师:
日期:
教务处制
课程设计任务书
信息工程与自动化学院计算机科学与技术专业 2015 年级学生姓名:
课程设计题目:初级程序设计课程设计
课程设计主要内容:
一、基础程序设计:
本设计部分主要完成与链表操作相关的基本运算,其中包含:链表的建立、链表的输出、链表的插入、链表的删除等运算。.
二、综合程序设计:
该部分主要是培养学生在程序编写方面综合能力的训练,学生选作其中的1~3程序的编写与实施。
1、设计统计任意文本字数的程序:
要求包括:中文文本的字数;英文文本的单词数;中英文文本的:中文字数、英文字符数、英文单词数及其他符号。
2、小学算术运算测试程序
任意生成10道题,每道题有两个运算数,且都在1到100间的整数,它们参与的运算是+、-、×、÷中的任意一种。每给出一道题目后,要提示用户输入计算结果,当用户输入完毕后;给出下一道题目,并提示用户输入计算结果;……,当用户完成所有题目的运算后,按照每题10分的标准给出用户成绩,并把所有题目、标准答案及用户的输入显示出来。
3、万年历的设计:
要求: 模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。
当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。
当系统日期变到下一月时,系统自动翻页到下一月。
4、通讯录管理系统:
制作一个通讯录程序,该程序具有查找、添加、修改、删除功能。通讯录包括:姓名,电话,街道,城市,省,邮编等。
模块设计参考:
第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。
第二个模块——Menu()的功能是:显示英文提示选单。
第三个模块——Quit()的功能是:退出选单。
第四个模块——Create()的功能是:创建新的通讯录。
第五个模块——Add()的功能是:在通讯录的末尾,写入新的信息,并返回选单。
第六个模块——Find()的功能是:查询某人的信息,如果找到了,则显示该人的信息,如果未找到,则提示通讯录中没有此人的信息,并返回选单。
第七个模块——Alter()的功能是:修改某人的信息,如果未找到要修改的人,则提示通讯录中没有此人的信息,并返回选单。
第八个模块——Delete()的功能是:删除某人的信息,如果未找到要删除的人,则提示通讯录中没有此人的信息,并返回选单。
第九个模块——List()的功能是:显示通讯录中的所有记录。
5、成绩记录簿(限最多5人完成)
编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:(1)创建信息,并以磁盘文件保存(可选);
(2)读取磁盘文件(可选)并显示输出所有学生的成绩;
(3)按学号或姓名查询成绩;
(4)添加成绩记录;
(5)修改指定姓名或学号的学生的成绩;
(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。
6、文件加密程序
某公司采用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。
具体实现思想:
本题要任意输入一个四位整数,然后要按它的千、百、十、个位上的数都进行一定的处理改变,从而实现给文件加密,所以要定义一个含有四个元素的数组,然后把这个四位数的千、百、十、个位上的数处理后放到这个数据中,具体如下:
个位上的数存放在aa[0]中:aa[0]=a%10。十位上的数存放在aa[1]中:aa[1] =a/10%10。百位上的数存放在aa[2]中:aa[2] =a/100%10。千位上的数存放在aa[3]中:aa[3] =a/1000。
本题使用C语言程序来实现以下效果:任意输入一个四位整数,然后要按它的千、百、十、个位上的数都有进行一定的处理改变,从而实现给文件加密。如输入四位数4556,则它输入的结果为1009。
本题的目的是让学生掌握数据加密的基本思路及实现加密的具体方法。
设计指导教师(签字):
教学基层组织负责人(签字):
年月日
一、基础程序设计
本设计部分主要完成与链表操作相关的基本运算,其中包含:链表的建立、链表的输出、链表的插入、链表的删除等运算。
(1)设计目的:熟悉并使用链表的相关操作与基本运算
(2)解决问题的思路与方法:利用结构体和指针完成动态链表的创建,通过结点实现插入删除运算。
(3)程序源代码及程序的实现:
增加节点:
#include
#include
struct link
{
int data;//存储整形数据
link *next;
};
link *xin();//创建一个新的节点
link *create();//创建链表
void out(link *p);//输出链表
void insert(int a,link *head,link *p);//增加节点
void main()
{
link *head=create();
printf("链表为:\n");
out(head);
int a;
printf("您想在第几个节点后增加,请输入一个正整数:\n");
scanf("%d",&a);
insert(a,head,xin());
printf("新的链表为\n");
out(head);
}
link *xin()
{
link *p=(link *)malloc(sizeof(link));
printf("请输入节点存储数据:\n");
scanf("%d",&p->data);
return p;
}
link *create()
{
int a,i,j;
int b[100];//创建一个大数组存储处输入数据
link *head=NULL;
printf("请输入想创建的链表长度,输入一个正整数:\n"); scanf("%d",&a);
printf("请输入链表的元素(整形链表):\n");
for(j=0;j { scanf("%d",&b[j]);//往数组里存储 }